pkg://newtonlink-1.29-1.src.rpm:291306/newtonlink-1.29.tar.gz
info downloads
newtonlink-1.29/COPYRIGHT 100444 21003 1604 2276 6574464401 14020 0 ustar kalli schoeb --------------------------------------------------------------------------
Newtonlink - a program to transfer data between an Apple Newton PDA and
Unix applications like xrolodex, addressbook, kjots, netscape and plan.
COPYRIGHT (C) 1996 - 1998 The Newtonlink Developers
(newtonlink@newton.bawue.de)
---------------------------------------------------------------------------
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
The full text of the GNU General Public License is included with Newtonlink
in the file GNU_GPL.
newtonlink-1.29/CallLpkg.pl 100444 21003 1604 3023 6574464401 14542 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# CallLpkg
#---------------------------------------------------------------------
# $Log: CallLpkg.pl,v $
# Revision 1.1 1998/03/06 19:59:55 kalli
# Initial revision
#
sub CallLpkg {
if (-e "$LPackageFile") {
# call Filip R. Zawadiaks lpkg application for installing a Newton package
system "$LpkgCommand $LPackageFile";
} else {
print "Error - File $LPackageFile not exists\n";
}
}
1;
newtonlink-1.29/DeviceReadWrite.pl 100444 21003 1604 6665 6574464401 16076 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#-----------------------------------------------------------------------
# DeviceReadWrite
#-----------------------------------------------------------------------
# $Log: DeviceReadWrite.pl,v $
# Revision 1.4 1998/09/01 13:52:32 kalli
# Im Fehlerfall wird String zurueckgegeben (wg. GreetUser.pl)
#
# Revision 1.3 1998/03/16 14:56:43 kalli
# Erste lauffaehige Version mit Timeout
#
# Revision 1.2 1998/03/08 20:45:21 kalli
# Neu mit Timeout
#
# Revision 1.1 1998/03/06 22:53:02 kalli
# Initial revision
#
# This function writes the string given by the second parameter to the
# filehandle, given by the first parameter. The string is terminated with an
# carriage return.
sub send_line {
#print "$_[1]\n";
syswrite ($_[0], "$_[1]\r", length ($_[1])+1) || die "sub send_line: write systemcall failed";
}
# This functions reads one line from the filehandle, given by the first
# parameter. The line must be terminated with an carriage return or a line
# feed or both. The return value is the read string.
sub receive_line {
$SerialInBuffer = ""; # clear input buffer
$LastSerialInChar = "";
$MAX_Time_Out = 4; # number out timeout
$Time_Out_Count = 0; # time out counter
vec ($vin, fileno (COMNEWTON), 1) = 1;
# read until EOL or timeout
while (1) {
($nfound, $timeleft) = select ($vout = $vin, undef, undef, $timeout);
# not timed out
if ($nfound != 0) {
# try to read one character
if (sysread ($_[0], $SerialInChar, 1) < 0) {
print " Error read from Newton\n";
} else {
# print Hexdump for Debug
#$nin = ord ($SerialInChar);
#printf ("%0x ", $nin);
# reset timout counter
$Time_Out_Count = 0;
# line end reached (0a/0a) ?
if (($LastSerialInChar eq "\x0a") && ($SerialInChar eq "\x0a")) {
# remove last 0a
chop $SerialInBuffer;
return $SerialInBuffer;
} else {
$SerialInBuffer = $SerialInBuffer . $SerialInChar;
$LastSerialInChar = $SerialInChar;
}
}
} else {
# blink for wait
$Time_Out_Count++;
# timeout reached, stop
if ( $Time_Out_Count > $MAX_Time_Out) {
#die "\nNewton connection timeout\n";
return "Timeout reached";
}
}
$nfound = 0;
}
}
1;
newtonlink-1.29/GNU_GPL 100444 21003 1604 43076 6574464401 13626 0 ustar kalli schoeb GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
newtonlink-1.29/Get4Addressbook.pl 100444 21003 1604 6155 6574464401 16046 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# Get4Addressbook
#---------------------------------------------------------------------
# $Log: Get4Addressbook.pl,v $
# Revision 1.8 1998/09/02 13:53:49 kalli
# *** empty log message ***
#
# Revision 1.7 1998/03/07 12:37:33 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.6 1997/12/06 17:17:17 kalli
# Umstellung auf Sloup
#
# Revision 1.5 1997/09/28 09:48:51 kalli
# Aenderungen von Andrew :
# select-Statement
#
# Revision 1.4 1997/03/27 19:33:28 kalli
# Andrew dazu
#
# Revision 1.3 1997/02/23 15:02:44 kalli
# Frank dazu
#
# Revision 1.2 1997/02/22 16:51:11 kalli
# GPL dazu
#
# Revision 1.1 1996/11/24 19:38:47 kalli
# Initial revision
#
sub Get4Addressbook {
# reset counter
$ABc = 0;
# Get actual Newton cards
&GetCards;
# save old Addressbook file
if (-e "$AddressbookFile") {
rename ("$AddressbookFile", "$AddressbookFile.bak");
}
# Open Newtonlink cards file
open (NLCARDFILE, "$NLCardsFile") || die "Can't open File : $!\n";
# Open new addressbook file
open (PFILE, ">> $AddressbookFile") || die "Can't open File : $!\n";
# print to stdout
printf "Writing addressbook file $AddressbookFile ...\n";
while (<NLCARDFILE>) {
($Cardclass, $CardlastName, $CardfirstName, $Cardhonorific, $Cardaddress, $Cardcountry, $Cardpostal_code,
$Cardcity, $Cardbday, $CardhomePhone, $CardworkPhone, $CardfaxPhone, $Cardemail, $Cardcompany) = split(/;/, $_, 20);
if ( ($Cardclass eq "company") || ($Cardclass eq "person") || ($Cardclass eq "owner") ) {
# save to memory
$ABArr[$ABc++] = "$CardlastName;$CardfirstName;$Cardhonorific;$Cardaddress;$Cardcountry;$Cardpostal_code;$Cardcity;$Cardbday;$CardhomePhone;$CardworkPhone;$CardfaxPhone;$Cardemail;$Cardcompany;";
}
}
# sort entrys alpabetical
@ABArrSorted = sort @ABArr;
# write cards file
for ($ABi = 0; $ABi < $ABc; $ABi++) {
printf PFILE "$ABArrSorted[$ABi]\n";
}
# close files
close (PFILE);
close (NLCARDFILE);
}
1;
newtonlink-1.29/Get4Kjots.pl 100444 21003 1604 4642 6574464401 14677 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# Get4Kjots
#---------------------------------------------------------------------
# $Log: Get4Kjots.pl,v $
# Revision 1.8 1998/09/02 13:54:13 kalli
# *** empty log message ***
#
# Revision 1.7 1998/09/01 14:52:17 kalli
# Umstellung auf Notes-File : Newtonlink Notesfile wird gelesen und als Kjots-File
# geschrieben.
#
# Revision 1.6 1998/06/28 16:33:00 kalli
# Aenderungen vo Tosten Uhlmann :
# select dazu, neue Replaces
#
# Revision 1.5 1998/03/16 14:57:33 kalli
# Umstellung auf ser. Treiber mit Timeout
#
# Revision 1.4 1998/03/07 17:29:44 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.3 1998/02/07 19:54:48 kalli
# Aenderung von Torsten :
# Sortierund der Notes
#
# Revision 1.1 1998/02/01 18:07:51 kalli
# Initial revision
#
sub Get4Kjots {
# Get actual Newton notes
&GetNotes;
# save old Kjots file
if (-e "$KjotsFile") {
rename ("$KjotsFile", "$KjotsFile.bak");
}
# Open Newtonlink notes file
open (NLNOTESFILE, "$NLNotesFile") || die "Can't open File : $NLNotesFile\n";
# Open new Kjots file
open (KJFILE, ">> $KjotsFile") || die "Can't open File : $KjotsFile\n";
# print to stdout
printf "Writing kjots file $KjotsFile ...\n";
while (<NLNOTESFILE>) {
print KJFILE $_
}
close (KJFILE);
close (NLNOTESFILE);
}
1;
newtonlink-1.29/Get4KsendfaxPhonebook.pl 100444 21003 1604 5500 6574464401 17207 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# Get4KsendfaxPhonebook
#---------------------------------------------------------------------
# $Log: Get4KsendfaxPhonebook.pl,v $
# Revision 1.1 1998/09/02 13:54:31 kalli
# Initial revision
#
# format for Ksendfax phonebook file
format KSFAXFILE =
@<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$CardfaxPhone $CardName $Cardcompany
.
sub Get4KsendfaxPhonebook {
# Get actual Newton cards
&GetCards;
# save old Ksendfax phonebook file
if (-e "$KsendfaxPhonebookFile") {
rename ("$KsendfaxPhonebookFile", "$KsendfaxPhonebookFile.bak");
}
# Open Newtonlink cards file
open (NLCARDFILE, "$NLCardsFile") || die "Can't open File : $!\n";
# Open Ksendfax phonebook file
open (KSFAXFILE, ">> $KsendfaxPhonebookFile") || die "Can't open File : $!\n";
# print to stdout
printf "Writing Ksendfax phonebook file $KsendfaxPhonebookFile ...\n";
while (<NLCARDFILE>) {
($Cardclass, $CardlastName, $CardfirstName, $Cardhonorific, $Cardaddress, $Cardcountry, $Cardpostal_code,
$Cardcity, $Cardbday, $CardhomePhone, $CardworkPhone, $CardfaxPhone, $Cardemail, $Cardcompany) = split(/;/, $_, 20);
if ( ($Cardclass eq "company") || ($Cardclass eq "person") || ($Cardclass eq "owner") ) {
if ($CardfaxPhone ne "") {
$CardName = "$CardlastName, ". "$CardfirstName";
# delete special characters ()x
$CardfaxPhone =~ s/\(/ /g;
$CardfaxPhone =~ s/\)/ /g;
$CardfaxPhone =~ s/x/ /g;
write KSFAXFILE;
}
}
}
# close files
close (KSFAXFILE);
close (NLCARDFILE);
}
1;
newtonlink-1.29/Get4Mail.pl 100444 21003 1604 20724 6574464401 14506 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# Get4Mail
#---------------------------------------------------------------------
# Revision 1.1 1997/02/22 21:20:00 dev
# Incorporated changes from Get4NetscapeMail.pl, Revision 1.5
# Revision 1.0 1997/02/22 19:00:00 dev
# Initial revision
# based on Get4NetscapeMail.pl, Revision 1.2
#
sub Get4Mail {
select((select(STDOUT), $|=1)[$[]);
# have you set your address in .newtonlink ?
if ( $YourEmailAddress eq "Your.Name\@host.domain" ) {
print "\nWARNING\n";
if (-e "$ENV{'HOME'}/.newtonlink"){
print "Before sending mail you need to set the value of ";
print "\$YourEmailAddress\nin ".$ENV{'HOME'}."/.newtonlink";
print " or /etc/newtonlink.config\n";
} else {
print "Before sending mail you need to set the value of ";
print "\$YourEmailAddress\nin \~/.newtonlink";
print " or /etc/newtonlink.config\n";
}
print "Mail fetch aborted.\n";
return;
}
# start counter
$EmailCounter = 0;
# set marker
$MailOn = "off";
# send commands to Sloup (get "to" entries)
&send_line (COMNEWTON, "Outbox");
&send_line (COMNEWTON, '{state: "string", category: "string",' .
'toRef: [{email: "binary", name: {first: "string", last: "string"}}]}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \";\"}");
# reset message counter
$MessCount = 0;
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232/oe/g; s/\212/ae/g; s/\237/ue/g; s/\247/ss/g; s/\205/Oe/g; s/\200/Ae/g; s/\206/Ue/g;
# split into
@Arrr = split(/;/, $_);
# if new outbox entry
if (($Arrr[0] eq "ready") && ($Arrr[1] eq $NewtonMailer)) {
#print;
# calculate number of to-entries
$ToCount[$MessCount] = ((scalar @Arrr) - 3) / 3;
# create string
$ToString[$MessCount] = "To: ";
for ($ri = 0; $ri < $ToCount[$MessCount]; $ri++) {
$ToString[$MessCount] = "$ToString[$MessCount]".",\n" if ($ri > 0);
$ToString[$MessCount] = "$ToString[$MessCount]"." \""."$Arrr[($ri*3)+2+2]"." "."$Arrr[($ri*3)+1+2]"."\" "."<$Arrr[($ri*3)+2]>";
}
#print "Message contains $ToCount[$MessCount] TO-entries :\n";
#print "$ToString[$MessCount]\n";
$MessCount++;
}
}
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSloupBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup (get "cc" entries)
&send_line (COMNEWTON, "Outbox");
&send_line (COMNEWTON, '{state: "string", category: "string",' .
'cc: [{email: "binary", name: {first: "string", last: "string"}}]}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \";\"}");
# reset message counter
$MessCount = 0;
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232/oe/g; s/\212/ae/g; s/\237/ue/g; s/\247/ss/g; s/\205/Oe/g; s/\200/Ae/g; s/\206/Ue/g;
# split into
@Arrr = split(/;/, $_);
# if new outbox entry
if (($Arrr[0] eq "ready") && ($Arrr[1] eq $NewtonMailer)) {
#print;
# calculate number of cc-entries
$CCCount[$MessCount] = ((scalar @Arrr) - 3) / 3;
# create string
for ($ri = 0; $ri < $CCCount[$MessCount]; $ri++) {
if( ($ri == 0 ) && (length( $Arrr[($ri*3)+2]) > 0)) {
$CCString[$MessCount] = "CC: ";
}
if( length( $Arrr[($ri*3)+2]) > 0) {
$CCString[$MessCount] = "$CCString[$MessCount]".",\n" if ($ri > 0);
$CCString[$MessCount] = "$CCString[$MessCount]"." \""."$Arrr[($ri*3)+2+2]"." "."$Arrr[($ri*3)+1+2]"."\" "."<$Arrr[($ri*3)+2]>";
}
}
#print "Message contains $CCCount[$MessCount] CC-entries :\n";
#print "$CCString[$MessCount]\n";
$MessCount++;
}
}
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSloupBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup (get "bcc" entries)
&send_line (COMNEWTON, "Outbox");
&send_line (COMNEWTON, '{state: "string", category: "string",' .
'bcc: [{email: "binary", name: {first: "string", last: "string"}}]}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \";\"}");
# reset message counter
$MessCount = 0;
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232/oe/g; s/\212/ae/g; s/\237/ue/g; s/\247/ss/g; s/\205/Oe/g; s/\200/Ae/g; s/\206/Ue/g;
# split into
@Arrr = split(/;/, $_);
# if new outbox entry
if (($Arrr[0] eq "ready") && ($Arrr[1] eq $NewtonMailer)) {
# calculate number of cc-entries
$BCCCount[$MessCount] = ((scalar @Arrr) - 3) / 3;
for ($ri = 0; $ri < $BCCCount[$MessCount]; $ri++) {
if( ($ri == 0 ) && (length( $Arrr[($ri*3)+2]) > 0)) {
$BCCString[$MessCount] = "BCC: ";
}
if( length( $Arrr[($ri*3)+2]) > 0) {
$BCCString[$MessCount] = "$BCCString[$MessCount]".",\n" if ($ri > 0);
$BCCString[$MessCount] = "$BCCString[$MessCount]"." \""."$Arrr[($ri*3)+2+2]"." "."$Arrr[($ri*3)+1+2]"."\" "."<$Arrr[($ri*3)+2]>";
}
}
#print "Message contains $BCCCount[$MessCount] BCC-entries :\n";
#print "$BCCString[$MessCount]\n";
$MessCount++;
}
}
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSloupBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup
&send_line (COMNEWTON, "Outbox");
&send_line (COMNEWTON, '{state: "string", category: "string", title: "string", dateStr: "string",' .
'fromName: "string", text: "string"}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \"\t\"}");
# reset message counter
$MessCount = 0;
while (($_ = &receive_line(COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232/oe/g; s/\212/ae/g; s/\237/ue/g; s/\247/ss/g; s/\205/Oe/g; s/\200/Ae/g; s/\206/Ue/g;
# split into
($Estate, $Ecategory, $Etitle, $EdateStr, $EfromName, $Ebody) = split(/\t/, $_, 20);
# if new outbox entry
if (defined ($Estate) && ($Estate eq "ready")) {
if (defined ($Ecategory) && ($Ecategory eq $NewtonMailer)) {
# set marker
$MailOn = "on";
# Open pipe to mailer
open (MAIL, "| $MailCommand") || die "Can't open File : $!\n";
# print to file
#printf MAIL "Message-ID: <>\n";
printf MAIL "From: $EfromName \<$YourEmailAddress\>\n";
printf MAIL "Reply-To: $EfromName \<$YourEmailAddress\>\n";
printf MAIL "Organization: $YourOrganisation\n";
printf MAIL "X-Mailer: Newton eWorld mail (via newtonlink/Linux)\n";
printf MAIL "MIME-Version: 1.0\n";
printf MAIL "$ToString[$MessCount]\n";
printf MAIL "$CCString[$MessCount]\n" if ( length ($CCString[$MessCount]) > 0);
printf MAIL "$BCCString[$MessCount]\n" if ( length ($BCCString[$MessCount]) > 0);
printf MAIL "Subject: $Etitle\n";
printf MAIL "Content-Type: text/plain; charset=us-ascii\n";
printf MAIL "Content-Transfer-Encoding: 7bit\n\n";
printf MAIL "\n$Ebody\n";
$MessCount++;
# Print sign to stdout
print "#";
$EmailCounter++;
} else {
# reset marker
$MailOn = "off";
# close file
close (MAIL);
}
# if not new outbox entry
} elsif ($MailOn eq "on") {
print MAIL;
}
}
# close file
close (MAIL);
# print to stdout
print ("\n$EmailCounter eWorld emails transfered");
}
1;
newtonlink-1.29/Get4NetscapeAddressbook.pl 100444 21003 1604 17007 6574464401 17547 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# Get4NetscapeAddress-book
#---------------------------------------------------------------------
# $Log: Get4NetscapeAddressbook.pl,v $
# Revision 1.12 1998/09/02 13:55:21 kalli
# *** empty log message ***
#
# Revision 1.11 1998/03/07 14:15:58 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.10 1998/01/11 16:23:22 kalli
# Erweiterung von Gerald Hofer fuer IRIX :
# Es wird zwischendurch ein Reopen auf COMNEWTON gemacht.
#
# Revision 1.9 1997/12/06 17:14:45 kalli
# Umstellung auf sloup
#
# Revision 1.8 1997/09/28 09:52:56 kalli
# Aenderung von Andrew :
# Select-Statement
#
# Revision 1.7 1997/05/31 09:48:01 kalli
# Unterscheidung limited/unlimited repeat meetings
#
# Revision 1.6 1997/05/30 13:21:54 kalli
# Netscape Communicator addressbook file wird vorher gesichert
#
# Revision 1.5 1997/05/29 20:55:29 kalli
# Email groups dazu
#
# Revision 1.4 1997/03/27 19:35:38 kalli
# Andrew dazu
#
# Revision 1.3 1997/02/23 15:05:36 kalli
# Frank dazu
#
# Revision 1.2 1997/02/22 16:55:35 kalli
# GPL dazu
#
# Revision 1.1 1997/02/22 16:53:26 kalli
# Initial revision
#
sub Get4NetscapeAddressbook {
# Get actual Newton cards
&GetCards;
# start counter
$NsAn = 0;
$NsGr = 0;
# save old Netscape Navigator Addressbook file
if (-e "$NetscapeNavigatorAddressbookFile") {
rename ("$NetscapeNavigatorAddressbookFile", "$NetscapeNavigatorAddressbookFile.bak");
}
# save old Netscape Communicator Addressbook file
if (-e "$NetscapeCommunicatorAddressbookFile") {
rename ("$NetscapeCommunicatorAddressbookFile", "$NetscapeCommunicatorAddressbookFile.bak");
}
# Open Newtonlink cards file
open (NLCARDFILE, "$NLCardsFile") || die "Can't open File : $!\n";
# Open Navigator addressbook file
open (NSAFILE, ">> $NetscapeNavigatorAddressbookFile") || die "Can't open File : $!\n";
# print to stdout
printf "Writing Navigator addressbook file $NetscapeNavigatorAddressbookFile ...\n";
while (<NLCARDFILE>) {
($Cardclass, $CardlastName, $CardfirstName, $Cardhonorific, $Cardaddress, $Cardcountry, $Cardpostal_code,
$Cardcity, $Cardbday, $CardhomePhone, $CardworkPhone, $CardfaxPhone, $Cardemail, $Cardcompany) = split(/;/, $_, 20);
if ( ($Cardclass eq "company") || ($Cardclass eq "person") || ($Cardclass eq "owner") ) {
if ($Cardemail ne "") {
$NsPersonAddressCounter++;
# save to memory
$NsAdrArr[$NsAn++] = "$CardlastName\t$CardfirstName\t$Cardemail";
}
}
}
# write addressbook header
printf NSAFILE "<!DOCTYPE NETSCAPE-Addressbook-file-1>\n";
printf NSAFILE "<!-- This is an automatically generated file by newtonlink.\n";
printf NSAFILE "It will be read and overwritten.\n";
printf NSAFILE "Do Not Edit! -->\n";
printf NSAFILE "<TITLE>My Address book generated by Newtonlink</TITLE>\n";
printf NSAFILE "<H1>My Address book generated by Newtonlink</H1>\n\n";
printf NSAFILE "<DL><p>\n";
# sort entrys
@NsAdrArrSorted = sort @NsAdrArr;
for ($Bi = 0; $Bi < $NsAn; $Bi++) {
# split into
($NsBlastName, $NsBfirstName, $NsBemail) = split(/\t/, $NsAdrArrSorted[$Bi], 20);
# replace German Umlaute (not allowed in names)
$NsBlastName =~ s//oe/g;
$NsBlastName =~ s//ae/g;
$NsBlastName =~ s//ue/g;
$NsBlastName =~ s//ss/g;
$NsBlastName =~ s//Oe/g;
$NsBlastName =~ s//Ae/g;
$NsBlastName =~ s//Ue/g;
$NsBfirstName =~ s//oe/g;
$NsBfirstName =~ s//ae/g;
$NsBfirstName =~ s//ue/g;
$NsBfirstName =~ s//ss/g;
$NsBfirstName =~ s//Oe/g;
$NsBfirstName =~ s//Ae/g;
$NsBfirstName =~ s//Ue/g;
# lowercase nickname
$NsBnickname = $NsBfirstName;
$NsBnickname =~ /.{2,}/;
$NsBnickname = lc "$NsBlastName$NsBnickname";
# substitude blanks
$NsBnickname =~ s/ //g;
# replace German Umlaute (not allowed in nicknames)
$NsBnickname =~ s//oe/g;
$NsBnickname =~ s//ae/g;
$NsBnickname =~ s//ue/g;
$NsBnickname =~ s//ss/g;
$NsBnickname =~ s//Oe/g;
$NsBnickname =~ s//Ae/g;
$NsBnickname =~ s//Ue/g;
# write to addressbook file
printf NSAFILE " <DT><A HREF=\"mailto:$NsBemail\" ALIASID=\"$Bi\" NICKNAME=\"$NsBnickname\">$NsBlastName, $NsBfirstName</A>\n";
}
# close file
close (NLCARDFILE);
# Reopen Newtonlink cards file
open (NLCARDFILE, "$NLCardsFile") || die "Can't open File : $!\n";
while (<NLCARDFILE>) {
if ($_ ne "\n") {
# split into
@Arre = split(/;/, $_);
# if group entry
if ($Arre[0] eq "group") {
# calculate number of email addresses in group
$GroupAdrCount = (scalar @Arre) - 3;
# lowercase group nickname
$NsGnickname = lc "$Arre[1]";
# substitude blanks
$NsGnickname =~ s/ //g;
# replace German Umlaute (not allowed in nicknames)
$NsGnickname =~ s//oe/g;
$NsGnickname =~ s//ae/g;
$NsGnickname =~ s//ue/g;
$NsGnickname =~ s//ss/g;
$NsGnickname =~ s//Oe/g;
$NsGnickname =~ s//Ae/g;
$NsGnickname =~ s//Ue/g;
# write addressbook group header
printf NSAFILE " <DT><H3 NICKNAME=\"$NsGnickname\">$Arre[1]</H3>\n";
printf NSAFILE " <DL><p>\n";
# write group to addressbook file
for ($Bnf = 0; $Bnf < $GroupAdrCount; $Bnf++) {
# look for email address in array
$EmailAdrFound = 0;
for ($Biz = 0; $Biz < ($NsPersonAddressCounter + $NsCompanyAddressCounter); $Biz++) {
# split into
($NsAlastName, $NsAfirstName, $NsAemail) = split(/\t/, $NsAdrArrSorted[$Biz], 20);
# replace German Umlaute (not allowed in names)
$NsAlastName =~ s//oe/g;
$NsAlastName =~ s//ae/g;
$NsAlastName =~ s//ue/g;
$NsAlastName =~ s//ss/g;
$NsAlastName =~ s//Oe/g;
$NsAlastName =~ s//Ae/g;
$NsAlastName =~ s//Ue/g;
$NsAfirstName =~ s//oe/g;
$NsAfirstName =~ s//ae/g;
$NsAfirstName =~ s//ue/g;
$NsAfirstName =~ s//ss/g;
$NsAfirstName =~ s//Oe/g;
$NsAfirstName =~ s//Ae/g;
$NsAfirstName =~ s//Ue/g;
if ("$NsAemail" eq "$Arre[$Bnf+2]") {
printf NSAFILE " <DT><A HREF=\"mailto:$Arre[$Bnf+2]\" ALIASOF=\"$Biz\">$NsAlastName, $NsAfirstName</A>\n";
$EmailAdrFound++;
}
}
# print error message if address not found in array
if ($EmailAdrFound == 0) {
printf "\nError : Address $Arre[$Bnf+2] not found in group $Arre[1] !";
}
}
# write addressbook group footer
printf NSAFILE " </DL><p>\n";
}
}
}
# write addressbook footer
printf NSAFILE "</DL><p>\n";
# close files
close (NSAFILE);
close (NLCARDFILE);
}
1;
newtonlink-1.29/Get4NetscapeMail.pl 100444 21003 1604 21760 6574464401 16172 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# Get4NetscapeMail
#---------------------------------------------------------------------
# $Log: Get4NetscapeMail.pl,v $
# Revision 1.12 1998/03/07 13:25:53 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.11 1997/12/06 17:13:24 kalli
# Umstellung auf Sloup
#
# Revision 1.10 1997/12/06 16:31:02 kalli
# Variable NewtonMailer nach Vorschlag von jack Snoeyink eingefuehrt
#
# Revision 1.9 1997/09/28 09:54:44 kalli
# Aenderung von Andrew :
# Select-Statement
#
# Revision 1.8 1997/05/28 19:14:49 kalli
# Aenderungen von Gerald Hofer fuer IRIX
#
# Revision 1.7 1997/03/27 19:36:42 kalli
# Andrew dazu
#
# Revision 1.6 1997/02/24 20:48:04 kalli
# Ausrufezeichen in Email-Adressen
#
# Revision 1.5 1997/02/23 14:58:18 kalli
# Ausgabe von Debuginfos raus
#
# Revision 1.4 1997/02/23 12:50:06 kalli
# Bugfixes, Umlaute werden nach ae, oe ... gewandelt
#
# Revision 1.3 1997/02/22 16:49:26 kalli
# Umstellung auf mehrfache TO, CC, und BCC Eintraege
#
# Revision 1.2 1996/12/04 17:39:31 kalli
# some bugs fixed
#
# Revision 1.1 1996/11/24 19:43:30 kalli
# Initial revision
#
sub Get4NetscapeMail {
select((select(STDOUT), $|=1)[$[]);
# start counter
$NetscapeEmailCounter = 0;
# set marker
$MailOn = "off";
# Open file
open (NSFILE, ">> $NetscapeOutboxFile") || die "Can't open File : $!\n";
# send commands to Sloup (get "to" entries)
&send_line (COMNEWTON, "\nOutbox");
&send_line (COMNEWTON, '{state: "string", category: "string",' .
'toRef: [{email: "binary", name: {first: "string", last: "string"}}]}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \";\"}");
# reset message counter
$MessCount = 0;
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232/oe/g; s/\212/ae/g; s/\237/ue/g; s/\247/ss/g; s/\205/Oe/g; s/\200/Ae/g; s/\206/Ue/g;
# split into
@Arrr = split(/;/, $_);
# if new outbox entry
if (($Arrr[0] eq "ready") && ($Arrr[1] eq $NewtonMailer)) {
#print;
# calculate number of to-entries
$ToCount[$MessCount] = ((scalar @Arrr) - 3) / 3;
# create string
$ToString[$MessCount] = "To: ";
for ($ri = 0; $ri < $ToCount[$MessCount]; $ri++) {
$ToString[$MessCount] = "$ToString[$MessCount]".",\n" if ($ri > 0);
$ToString[$MessCount] = "$ToString[$MessCount]"." \""."$Arrr[($ri*3)+2+2]"." "."$Arrr[($ri*3)+1+2]"."\" "."<$Arrr[($ri*3)+2]>";
}
# Print sign to stdout
print ".";
#print "Message contains $ToCount[$MessCount] TO-entries :\n";
#print "$ToString[$MessCount]\n";
$MessCount++;
}
}
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSloupBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup (get "cc" entries)
&send_line (COMNEWTON, "Outbox");
&send_line (COMNEWTON, '{state: "string", category: "string",' .
'cc: [{email: "binary", name: {first: "string", last: "string"}}]}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \";\"}");
# reset message counter
$MessCount = 0;
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232/oe/g; s/\212/ae/g; s/\237/ue/g; s/\247/ss/g; s/\205/Oe/g; s/\200/Ae/g; s/\206/Ue/g;
# split into
@Arrr = split(/;/, $_);
# if new outbox entry
if (($Arrr[0] eq "ready") && ($Arrr[1] eq $NewtonMailer)) {
#print;
# calculate number of cc-entries
$CCCount[$MessCount] = ((scalar @Arrr) - 3) / 3;
# create string
$CCString[$MessCount] = "CC: ";
for ($ri = 0; $ri < $CCCount[$MessCount]; $ri++) {
if( ($ri == 0 ) && (length( $Arrr[($ri*3)+2]) > 0)) {
$CCString[$MessCount] = "CC: ";
}
if( length( $Arrr[($ri*3)+2]) > 0) {
$CCString[$MessCount] = "$CCString[$MessCount]".",\n" if ($ri > 0);
$CCString[$MessCount] = "$CCString[$MessCount]"." \""."$Arrr[($ri*3)+2+2]"." "."$Arrr[($ri*3)+1+2]"."\" "."<$Arrr[($ri*3)+2]>";
}
}
# Print sign to stdout
print ".";
#print "Message contains $CCCount[$MessCount] CC-entries :\n";
#print "$CCString[$MessCount]\n";
$MessCount++;
}
}
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSloupBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup (get "bcc" entries)
&send_line (COMNEWTON, "Outbox");
&send_line (COMNEWTON, '{state: "string", category: "string",' .
'bcc: [{email: "binary", name: {first: "string", last: "string"}}]}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \";\"}");
# reset message counter
$MessCount = 0;
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232/oe/g; s/\212/ae/g; s/\237/ue/g; s/\247/ss/g; s/\205/Oe/g; s/\200/Ae/g; s/\206/Ue/g;
# split into
@Arrr = split(/;/, $_);
# if new outbox entry
if (($Arrr[0] eq "ready") && ($Arrr[1] eq $NewtonMailer)) {
# calculate number of cc-entries
$BCCCount[$MessCount] = ((scalar @Arrr) - 3) / 3;
# create string
$BCCString[$MessCount] = "BCC: ";
for ($ri = 0; $ri < $BCCCount[$MessCount]; $ri++) {
if( ($ri == 0 ) && (length( $Arrr[($ri*3)+2]) > 0)) {
$BCCString[$MessCount] = "BCC: ";
}
if( length( $Arrr[($ri*3)+2]) > 0) {
$BCCString[$MessCount] = "$BCCString[$MessCount]".",\n" if ($ri > 0);
$BCCString[$MessCount] = "$BCCString[$MessCount]"." \""."$Arrr[($ri*3)+2+2]"." "."$Arrr[($ri*3)+1+2]"."\" "."<$Arrr[($ri*3)+2]>";
}
}
# Print sign to stdout
print ".";
#print "Message contains $BCCCount[$MessCount] BCC-entries :\n";
#print "$BCCString[$MessCount]\n";
$MessCount++;
}
}
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSloupBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup
&send_line (COMNEWTON, "Outbox");
&send_line (COMNEWTON, '{state: "string", category: "string", title: "string", dateStr: "string",' .
'fromName: "string", text: "string"}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \"\t\"}");
# reset message counter
$MessCount = 0;
while (($_ = &receive_line(COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232/oe/g; s/\212/ae/g; s/\237/ue/g; s/\247/ss/g; s/\205/Oe/g; s/\200/Ae/g; s/\206/Ue/g;
# split into
($Estate, $Ecategory, $Etitle, $EdateStr, $EfromName, $Ebody) = split(/\t/, $_, 20);
# if new outbox entry
if (defined ($Estate) && ($Estate eq "ready")) {
if (defined ($Ecategory) && ($Ecategory eq $NewtonMailer)) {
# set marker
$MailOn = "on";
# print to file
printf NSFILE "From - $EdateStr\n";
printf NSFILE "X-Mozilla-Status: 0801\n";
printf NSFILE "FCC: /home/e1l52/nsmail/Sent\n";
printf NSFILE "$BCCString[$MessCount]\n";
printf NSFILE "Message-ID: <>\n";
printf NSFILE "Date: $EdateStr\n";
printf NSFILE "From: $EfromName \<$YourEmailAddress\>\n";
printf NSFILE "Reply-To: $EfromName \<$YourEmailAddress\>\n";
printf NSFILE "Organization: $YourOrganisation\n";
printf NSFILE "X-Mailer: Newton eWorld mail (via Newtonlink)\n";
printf NSFILE "MIME-Version: 1.0\n";
printf NSFILE "$ToString[$MessCount]\n";
printf NSFILE "$CCString[$MessCount]\n";
printf NSFILE "Subject: $Etitle\n";
printf NSFILE "Content-Type: text/plain; charset=us-ascii\n";
printf NSFILE "Content-Transfer-Encoding: 7bit\n\n";
printf NSFILE "\n$Ebody\n";
$MessCount++;
# Print sign to stdout
print "#";
$NetscapeEmailCounter++;
} else {
# reset marker
$MailOn = "off";
}
# if not new outbox entry
} elsif ($MailOn eq "on") {
print NSFILE "$_\n";
}
}
# close file
close (NSFILE);
# print to stdout
print ("\n$NetscapeEmailCounter eWorld emails transfered");
}
1;
newtonlink-1.29/Get4WebAddress.pl 100444 21003 1604 3242 6574464401 15623 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# Get4WebAddress
#---------------------------------------------------------------------
# $Log: Get4WebAddress.pl,v $
# Revision 1.3 1998/09/02 13:55:44 kalli
# *** empty log message ***
#
# Revision 1.2 1998/03/07 18:05:05 kalli
# *** empty log message ***
#
# Revision 1.1 1997/11/30 11:52:22 kalli
# Initial revision
#
sub Get4WebAddress {
# Get Newton addresses and write to addressbook file
&Get4Addressbook;
printf "Writing WebAddress files ...\n";
# Call WebAddress to convert from addressbook format
system "$WebAddressCommand";
}
1;
newtonlink-1.29/Get4XfmailAddressbook.pl 100444 21003 1604 6303 6574464401 17202 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# Get4XfmailAddressbook
#---------------------------------------------------------------------
# $Log: Get4XfmailAddressbook.pl,v $
# Revision 1.5 1998/07/05 17:16:55 kalli
# Alle Kommas raus bei Namen
#
# Revision 1.4 1998/03/07 17:49:35 kalli
# Umstellung auf Developer
#
# Revision 1.3 1997/12/17 09:41:18 kalli
# *** empty log message ***
#
# Revision 1.2 1997/11/17 19:30:06 kalli
# First rev.
#
# Revision 1.1 1997/11/17 18:52:07 kalli
# Initial revision
#
sub Get4XfmailAddressbook {
# Get Newton addresses and write to Netscape addressbook file
&Get4NetscapeAddressbook;
# save old Xfmail Addressbook file
if (-e "$XfmailAddressbookFile") {
rename ("$XfmailAddressbookFile", "$XfmailAddressbookFile.bak");
}
# Open Netscape Navigator Addressbook file
open (NSABOOKFILE, "$NetscapeNavigatorAddressbookFile") || die "Can't open File : $!\n";
# Open Xfmail Addressbook file
open (XFBOOKFILE, ">> $XfmailAddressbookFile") || die "Can't open File : $!\n";
# print to stdout
printf "Writing Xfmail addressbook file ...\n";
while (<NSABOOKFILE>) {
chop($_);
if (/<\/DL>/) {
$folded = 0;
}
if(/<DT>/) {
if(/H3/) {
$folded = 1;
s/<DT>//;
s/<H3 FOLDED>//;
s/<H3 NICKNAME=".*">//;
s/<\/H3>//;
s/ //g;
s/,//g;
printf XFBOOKFILE "@ ".$_."\n";
} else {
unless ($folded == 1) {
printf XFBOOKFILE "@ \n";
}
$line = $_;
s/>//g;
s/<DT<A HREF=//;
s/<\/A//;
s/ALIAS.*=.*//;
s/NICKNAME=.*//;
s/\"mailto://;
s/\".*//;
s/ //g;
s/,//g;
$mailaddress = "<" . $_ . ">";
$_ = $line;
s/<DT><A HREF=\".*\"//;
s/<\/A>//;
s/>//;
s/ //g;
s/,//g;
@names = split / /;
if ($names[1] eq '') {
printf XFBOOKFILE " ".$names[0]." ".$mailaddress."\n";
} elsif ($names[2] eq '') {
printf XFBOOKFILE " ".$names[0]." ".$names[1]." ".$mailaddress."\n";
} else {
printf XFBOOKFILE " ".$names[0]." ".$names[1]." ".$names[2]." ".$mailaddress."\n";
}
}
} else {
}
}
# close files
close (NSABOOKFILE);
close (XFBOOKFILE);
}
1;
newtonlink-1.29/Get4Xrolodex.pl 100444 21003 1604 7200 6574464401 15402 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# Get4Xrolodex
#---------------------------------------------------------------------
# $Log: Get4Xrolodex.pl,v $
# Revision 1.10 1998/09/02 13:56:21 kalli
# *** empty log message ***
#
# Revision 1.9 1998/08/29 17:20:32 kalli
# Select statement wieder eingefuehrt
#
# Revision 1.8 1998/03/22 19:45:43 kalli
# Previewer lt. Configfile
#
# Revision 1.7 1998/03/07 12:24:46 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.6 1997/12/06 17:27:02 kalli
# Umstellung auf Sloup
#
# Revision 1.5 1997/09/28 09:56:02 kalli
# Aenderung von Andrew :
# Select-Statement
#
# Revision 1.4 1997/03/27 19:37:48 kalli
# Andrew dazu
#
# Revision 1.3 1997/02/23 15:07:22 kalli
# Frank dazu
#
# Revision 1.2 1997/02/22 16:57:52 kalli
# GPL dazu
#
# Revision 1.1 1996/11/24 19:28:35 kalli
# Initial revision
#
sub Get4Xrolodex {
# Get actual Newton notes
&GetNotes;
$NotesCounter = 0;
# save old Xrolodex file
if (-e "$XrolodexFile") {
rename ("$XrolodexFile", "$XrolodexFile.bak");
}
# Open Newtonlink notes file
open (NLNKNOTESFILE, "$NLNotesFile") || die "Can't open File : $NLNotesFile\n";
# Open new Xrolodex file
open (XRFILE, ">> $XrolodexFile") || die "Can't open File : $XrolodexFile\n";
if ($XroloPrintCommand ne "") {
# save old printout file
if (-e "$XroloPrintFile") {
rename ("$XroloPrintFile", "$XroloPrintFile.bak");
}
# Open file
open (XRPRFILE, ">> $XroloPrintFile") || die "Can't open File : $XroloPrintFile\n";
}
# print to stdout
printf "Writing xrolodex file $XrolodexFile ...\n";
while (<NLNKNOTESFILE>) {
($FirstWord) = split(/ /, $_, 20);
if ($FirstWord eq "\\NewEntry") {
print XRFILE "####\n";
print XRPRFILE "\n\n\n";
$NotesCounter++;
} else {
print XRFILE $_;
print XRPRFILE $_;
}
}
# close files
close (XRFILE);
close (NLNKNOTESFILE);
if ($NotesCounter > 0) {
if ($XroloPrintCommand ne "") {
close (XRPRFILE);
printf "\nCreate postscript file $XroloPrintFile.ps\n";
# convert print file to postscript
system "$XroloPrintCommand $XroloPrintFile > $XroloPrintFile.ps";
# start previewer
if ($XroloPrintPreviewCommand ne "") {
printf "Starting previewer\n";
system "$XroloPrintPreviewCommand $XroloPrintFile.ps &";
}
}
if ($XrolodexCommand ne "") {
printf "Starting Xrolodex\n";
system "$XrolodexCommand $XrolodexFile &";
}
}
}
1;
newtonlink-1.29/GetCards.pl 100444 21003 1604 13015 6574464401 14567 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# GetCards
#
# This function reads the contents of all Newton cards and writes it
# to a file $NLCardsFile. This file can be used to create application
# specific input files like .addresses.dat
#
# Each line of this file shows the content of one Newton card in the
# following order (separated by colons) :
# class; last name; first name; honorific; address; country; postalcode;
# city; birthday; home phone; work phone; fax phone; email; company;
# If class is "group", the line contents the following :
# class; group name; group members
#---------------------------------------------------------------------
# $Log: GetCards.pl,v $
# Revision 1.1 1998/08/28 15:55:49 kalli
# Initial revision
#
sub GetCards {
if ($CardsAreActual ne "true") {
select((select(STDOUT), $|=1)[$[]);
# start counter
$PersonAddressesCounter = 0;
$CompanyAddressesCounter = 0;
$EmailGroupsCounter = 0;
$Cardn = 0;
# save old Newtonlink cards file
if (-e "$NLCardsFile") {
rename ("$NLCardsFile", "$NLCardsFile.bak");
}
# Open file
open (CARDSFILE, ">> $NLCardsFile") || die "Can't open File : $!\n";
printf "\nScanning for person and company cards ...\n";
# send commands to Sloup
&send_line (COMNEWTON, "Sloup");
&send_line (COMNEWTON, "{}");
&send_line (COMNEWTON, "Names");
&send_line (COMNEWTON, '{class: "string", name: {last: "string", first: "string", honorific: "string"},' .
'address: "string", country: "string", postal_code: "string", city: "string", bday: "date",' .
'phones: ["homePhone", "workPhone", "faxPhone"],' .
'email: "string", company: "string"}');
&send_line (COMNEWTON, "DUMP!");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace german Umlaute
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
# split into
($Cardclass, $CardlastName, $CardfirstName, $Cardhonorific, $Cardaddress, $Cardcountry, $Cardpostal_code, $Cardcity,
$Cardbday, $CardhomePhone, $CardworkPhone, $CardfaxPhone, $Cardemail, $Cardcompany) = split(/\t/, $_, 20);
if (defined ($Cardclass) && (($Cardclass eq "person") || ($Cardclass eq "owner"))) {
# Print to STDOUT
print "#";
$PersonAddressCounter++;
# save to memory
$CardsArr[$Cardn++] = "$Cardclass;$CardlastName;$CardfirstName;$Cardhonorific;$Cardaddress;$Cardcountry;$Cardpostal_code;$Cardcity;$Cardbday;$CardhomePhone;$CardworkPhone;$CardfaxPhone;$Cardemail;$Cardcompany;";
} elsif (defined ($Cardclass) && ($Cardclass eq "company")) {
# Print to STDOUT
print "#";
$CompanyAddressCounter++;
# save to memory
$CardsArr[$Cardn++] = "$Cardclass;$Cardcompany;;;$Cardaddress;$Cardcountry;$Cardpostal_code;$Cardcity;;;$CardhomePhone;$CardfaxPhone;$Cardemail;;";
}
}
printf "\nNow scanning for email groups ...\n";
# reopen Newton connection for IRIX !
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSlurpeeBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup : Send Email groups
&send_line (COMNEWTON, "\nNames");
&send_line (COMNEWTON, '{class: \'symbol, group: "string", members: [{email: "string"}]}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \";\"}");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
if ($_ ne "\n") {
# split into
@Arre = split(/;/, $_);
# if group entry
if ($Arre[0] eq "group") {
# Print to STDOUT
print "#";
$EmailGroupsCounter++;
# save to memory
$CardsArr[$Cardn++] = $_;
}
}
}
# print to stdout
print ("\n$PersonAddressCounter person addresses transfered\n");
print ("$CompanyAddressCounter company addresses transfered\n");
print ("$EmailGroupsCounter email groups transfered\n");
# write cards file
for ($Cardi = 0; $Cardi < $Cardn; $Cardi++) {
printf CARDSFILE "$CardsArr[$Cardi]\n";
}
# close file
close (CARDSFILE);
# mark cards file as actual
$CardsAreActual = "true";
}
}
1;
newtonlink-1.29/GetFaxOutbox.pl 100444 21003 1604 10776 6574464401 15465 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# GetFaxOutbox
#---------------------------------------------------------------------
# $Log: GetFaxOutbox.pl,v $
# Revision 1.8 1998/03/22 19:57:33 kalli
# Preview, Send nach Configfile
#
# Revision 1.7 1998/03/16 20:06:39 kalli
# Erste lauffaehige Version
#
# Revision 1.6 1998/03/07 17:57:47 kalli
# *** empty log message ***
#
# Revision 1.5 1997/09/28 09:57:35 kalli
# Aenderung von Andrew :
# Select-Statement
#
# Revision 1.4 1997/03/27 19:38:46 kalli
# Andrew dazu
#
# Revision 1.3 1997/02/23 15:09:27 kalli
# Frank dazu
#
# Revision 1.2 1997/02/22 16:59:12 kalli
# GPL dazu ;-)
#
# Revision 1.1 1996/11/24 19:55:02 kalli
# Initial revision
#
sub GetFaxOutbox {
# start counter
$FaxCounter = 0;
# set marker
$FaxOn = "off";
# send commands to Sloup
&send_line (COMNEWTON, "\nOutbox\n");
&send_line (COMNEWTON, '{state: "string", category: "string", fromTitle: "string", fromName: "string", toFullAddress: "string",' .
'timestamp: "date", phoneNumber: "string", body: {title: "string", data: [{text: "string"}]}}');
&send_line (COMNEWTON, "\nDUMP!\n");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
# split into
($FXstate, $FXcategory, $FXconcern, $FXfromName, $FXtoName, $FXtimestamp, $FXphoneNumber, $FXbodytitle, $FXdata) = split(/\t/, $_, 10);
# if new outbox entry
if (defined ($FXstate) && ($FXstate eq "ready")) {
if (defined ($FXcategory) && ($FXcategory eq "faxsend:newton")) {
# set marker
$FaxOn = "on";
# Open file
open (FXFILE, "> $FaxFile.$FaxCounter") || die "Can't open File : $!\n";
# print to file
#printf FXFILE "Fax by Newtonlink (http://privat.swol.de/ReinholSchoeb/Newton/newtonlink-doc-en.html\n";
#printf FXFILE "------------------------------------------------------------------------------------\n\n";
printf FXFILE "\n\n";
printf FXFILE "Concern : $FXconcern\n";
printf FXFILE "Title : $FXbodytitle\n";
printf FXFILE "Time : $FXtimestamp\n\n";
printf FXFILE "From $FXfromName\n\n";
printf FXFILE "To :\n\n";
printf FXFILE "$FXtoName";
printf FXFILE "Fax : $FXphoneNumber\n\n";
printf FXFILE "--------\n\n\n\n";
printf FXFILE "$FXdata\n";
# save fax number
$FaxNumber[$FaxCounter] = $FXphoneNumber;
# Print sign to stdout
print "#";
$FaxCounter++;
} else {
# reset marker
$FaxOn = "off";
}
# if not new outbox entry
} elsif ($FaxOn eq "on") {
print FXFILE "$_\n";
}
}
# print to stdout
print ("\n$FaxCounter fax(es) transfered\n");
close FXFILE;
if ($FaxCounter > 0) {
for ($nFax = 0; $nFax < $FaxCounter; $nFax++) {
# make fax file
if ($FaxMakeCommand ne "") {
print "\nMaking fax $FaxFile.$nFax ($FaxNumber[$nFax])\n";
system "$FaxMakeCommand $FaxFile.$nFax $FaxNumber";
}
# Start previewer
if ($FaxPreviewCommand ne "") {
printf "Starting previewer\n";
system "$FaxPreviewCommand $FaxFile.$nFax";
}
# send fax
if ($FaxSendCommand ne "") {
print "\nSending fax #$nFax ($FaxNumber[$nFax])\n";
system "$FaxSendCommand $FaxFile.$nFax $FaxNumber";
}
}
}
}
1;
newtonlink-1.29/GetMeetings4Plan.pl 100444 21003 1604 36534 6574464401 16220 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# GetMeetings4Plan
#---------------------------------------------------------------------
# $Log: GetMeetings4Plan.pl,v $
# Revision 1.20 1998/03/07 16:35:10 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.18 1998/01/11 16:46:50 kalli
# Erweiterungen von Gerald Hofer :
# Ersetzung der Umlaute bei IRIX
# Private Planfile
#
# Revision 1.16 1997/11/18 19:07:24 kalli
# Debugkommentare raus
#
# Revision 1.15 1997/11/15 20:17:26 kalli
# Bugfix : Repeat Meetings waren um einen Tag nach hinten verschoben.
#
# Revision 1.14 1997/11/15 19:18:18 kalli
# Convdate ersetzt durch Perl-Lib
#
# Revision 1.13 1997/09/05 20:01:42 kalli
# dos2unix darueber
#
# Revision 1.12 1997/09/05 19:38:23 kalli
# Erweiterungen von Andrew :
# Globale Optionen in .dayplan werden nicht ueberschrieben
#
# Revision 1.11 1997/05/31 09:49:12 kalli
# Unterscheidung limited/unlimited repeat meetings
#
# Revision 1.10 1997/05/28 19:25:35 kalli
# Aenderungen von Gerald Hofer fuer IRIX,
# Bugfixes
#
# Revision 1.8 1997/04/12 21:05:00 kalli
# Bugfixes :
# \n vor jedem Sloup-Kommando
# Repeat Meetings waren um einen Tag nach vorne verschoben
#
# Revision 1.7 1997/04/08 18:27:17 kalli
# Variables Datumsformat eingefuehrt : Andrew
# Bugfixes
#
# Revision 1.6 1997/03/27 19:39:46 kalli
# Andrew dazu
#
# Revision 1.5 1997/02/23 15:10:34 kalli
# Frank dazu
#
# Revision 1.4 1997/02/22 17:00:20 kalli
# GPL dazu
#
# Revision 1.3 1996/12/14 14:43:12 kalli
# Neu mit calendar notes, taeglich wiederholdende Termine
#
# Revision 1.2 1996/11/26 21:14:01 kalli
# Erste Version mit wiederholten Terminen
#
# Revision 1.1 1996/11/24 19:24:37 kalli
# Initial revision
#
use Date::Parse;
use Date::Format;
sub GetMeetings4Plan {
select((select(STDOUT), $|=1)[$[]);
if ( $Private ne "P" ) {
$Private = "-";
}
# start counter
$MeetingCounter = 0;
$RepMeetingCounter = 0;
$RepNotesCounter = 0;
$CalendarNotesCounter = 0;
# save old plan file
if (-e "$PlanFile") {
rename ("$PlanFile", "$PlanFile.bak");
}
# Open new plan file
open (PLFILE, ">> $PlanFile") || die "Can't open File : $!\n";
# first save the header information from an old planfile
if (-e "$PlanFile.bak"){
open (PLOLD, "$PlanFile.bak");
while(<PLOLD>){
if (/^[aelmoOpPtuUy]/){
print PLFILE;
}
}
}
# send commands to Sloup
&send_line (COMNEWTON, "\nCalendar");
&send_line (COMNEWTON, '{class: "string", mtgText: "string", mtgStartDate: "dateTime", mtgDuration: "time"}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \"\t\"}");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace german Umlaute
if ($SystemType eq "IRIX") {
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
}
else {
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
}
# split into
($PLclass, $PLmtgText, $PLmtgStartDate, $PLmtgDuration) = split(/\t/, $_, 20);
# remove all carrige return from meeting text
# $PLmtgText =~ s/\n/ /g;
# $PLmtgText =~s/\r/ /g;
# split date/time
($PLmtgStartDateGer, $PLmtgStartTime) = split(/ /, $PLmtgStartDate, 10);
# transfer different dateformates to US date
if ($DateFormat eq "German"){
($PLday, $PLmonth, $PLyear) = split(/\./, $PLmtgStartDateGer, 10);
} elsif ($DateFormat eq "British"){
($PLday, $PLmonth, $PLyear) = split(/\//, $PLmtgStartDateGer, 10);
} elsif ($DateFormat eq "US"){
($PLmonth, $PLday, $PLyear) = split(/\//, $PLmtgStartDateGer, 10);
} else {
die "Date format not recognised";
}
# transfer time in minutes to hours
$PLmtgDurationhours = int ($PLmtgDuration / 60);
$PLmtgDurationminutes = $PLmtgDuration % 60;
if (defined ($PLclass) && ($PLclass eq "meeting")) {
# Print to STDOUT
print "#";
$MeetingCounter++;
print PLFILE "$PLmonth/$PLday/$PLyear $PLmtgStartTime:0 $PLmtgDurationhours:$PLmtgDurationminutes:0 0:45:0 0:5:0 -$Private-------- 0\n";
# write to file : Meeting text
print PLFILE "N\t$PLmtgText\n";
}
}
# Print to STDOUT
print "\nNow scanning for repeat meetings ...\n";
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSloupBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup
&send_line (COMNEWTON, "\nRepeat Meetings");
&send_line (COMNEWTON, '{class: "string", mtgText: "string", mtgStartDate: "dateTime", mtgStopDate: "dateTime",' .
'mtgDuration: "time", mtgAlarm: "time", repeatType: "integer"}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \"\t\"}");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace german Umlaute
if ($SystemType eq "IRIX") {
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
}
else {
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
}
# split into
($PLRclass, $PLRmtgText, $PLRmtgStartDate, $PLRmtgStopDate, $PLRmtgDuration,
$PLRmtgAlarm, $PLRmtgRepeatType) = split(/\t/, $_, 20);
# remove \n from $PLRmtgText
$PLRmtgText =~ s/\n/\t/g;
# split date/time
($PLRmtgStartDateGer, $PLRmtgStartTime) = split(/ /, $PLRmtgStartDate, 10);
# transfer different dateformates to US date
if ($DateFormat eq "German") {
($PLRday, $PLRmonth, $PLRyear) = split(/\./, $PLRmtgStartDateGer, 10);
} elsif ($DateFormat eq "British"){
($PLRday, $PLRmonth, $PLRyear) = split(/\//, $PLRmtgStartDateGer, 10);
} elsif ($DateFormat eq "US") {
($PLRmonth, $PLRday, $PLRyear) = split(/\//, $PLRmtgStartDateGer, 10);
} else {
die "Dateformat not recognised";
}
#Plan begins year counting with 1970
if ($PLRyear < 1970) {
$PLRyear = 1970
}
# split date/time
($PLRmtgStopDateGer, $PLRmtgStopTime) = split(/ /, $PLRmtgStopDate, 10);
# transfer different dateformates to US date
if ($DateFormat eq "German"){
($PLRStopday, $PLRStopmonth, $PLRStopyear) = split(/\./, $PLRmtgStopDateGer, 10);
} elsif ($DateFormat eq "British"){
($PLRStopday, $PLRStopmonth, $PLRStopyear) = split(/\//, $PLRmtgStopDateGer, 10);
} elsif ($DateFormat eq "US"){
($PLRStopmonth, $PLRStopday, $PLRStopyear) = split(/\//, $PLRmtgStopDateGer, 10);
} else {
die "Dateformat not recognised";
}
# transfer time in minutes to hours
$PLRmtgDurationhours = int ($PLRmtgDuration / 60);
$PLRmtgDurationminutes = $PLRmtgDuration % 60;
$PLRmtgAlarmhours = int ($PLRmtgAlarm / 60);
$PLRmtgAlarmminutes = $PLRmtgAlarm % 60;
if (defined ($PLRclass) && ($PLRclass eq "meeting")) {
# Print to STDOUT
print "#";
$RepMeetingCounter++;
# if repeat every week
if ($NTRmtgRepeatType == 0) {
# write to file
print PLFILE "$PLRmonth/$PLRday/$PLRyear $PLRmtgStartTime:0 $PLRmtgDurationhours:$PLRmtgDurationminutes:0 0:0:0 $PLRmtgAlarmhours:$PLRmtgAlarmminutes:0 -$Private-------- 0\n";
# get weekday
#printf ("\nRepeat every week : $PLRyear/$PLRmonth/$PLRday");
$PLRtowa = Date::Parse::str2time ("$PLRyear/$PLRmonth/$PLRday");
$PLRtow = Date::Format::time2str ("%a", $PLRtowa);
#printf ("Tag : $PLRtow");
# check for unlimited repeat meeting
if ( ($PLRStopday eq "29") && ($PLRStopmonth eq "9") &&
($PLRStopyear eq "") && ($PLRmtgStopTime eq "0:31") ) {
# write to file : Unlimited repeat
print PLFILE "R\t 0 0 1 0 0\n" if ($PLRtow eq "Sun");
print PLFILE "R\t 0 0 2 0 0\n" if ($PLRtow eq "Mon");
print PLFILE "R\t 0 0 4 0 0\n" if ($PLRtow eq "Tue");
print PLFILE "R\t 0 0 8 0 0\n" if ($PLRtow eq "Wed");
print PLFILE "R\t 0 0 16 0 0\n" if ($PLRtow eq "Thu");
print PLFILE "R\t 0 0 32 0 0\n" if ($PLRtow eq "Fri");
print PLFILE "R\t 0 0 64 0 0\n" if ($PLRtow eq "Sat");
} else {
# get time since 1/1/70 0:0:0
$CC = "$PLRStopmonth/$PLRStopday/$PLRStopyear $PLRmtgStopTime\n";
$NTRRtowa = Date::Parse::str2time($CC);
#$NTRRtowa = $NTRRtowa+1 - 82740;
$NTRRtowa = $NTRRtowa+1;
# write to file : Repeat with limit
print PLFILE "R\t 0 $NTRRtowa 1 0 0\n" if ($PLRtow eq "Sun");
print PLFILE "R\t 0 $NTRRtowa 2 0 0\n" if ($PLRtow eq "Mon");
print PLFILE "R\t 0 $NTRRtowa 4 0 0\n" if ($PLRtow eq "Tue");
print PLFILE "R\t 0 $NTRRtowa 8 0 0\n" if ($PLRtow eq "Wed");
print PLFILE "R\t 0 $NTRRtowa 16 0 0\n" if ($PLRtow eq "Thu");
print PLFILE "R\t 0 $NTRRtowa 32 0 0\n" if ($PLRtow eq "Fri");
print PLFILE "R\t 0 $NTRRtowa 64 0 0\n" if ($PLRtow eq "Sat");
}
} else {
# write to file : Repeat
print PLFILE "R\t 0 0 0 0 0\n";
}
# write to file : Meeting text
print PLFILE "N\t$PLRmtgText\n";
}
}
# Print to STDOUT
print "\nNow scanning for repeat notes ...\n";
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSloupBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup
&send_line (COMNEWTON, "\nRepeat Notes");
&send_line (COMNEWTON, '{class: "string", mtgText: "string", mtgStartDate: "dateTime", mtgStopDate: "dateTime", ' .
'mtgDuration: "time", mtgAlarm: "time", repeatType: "integer"}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \"\t\"}");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace german Umlaute
if ($SystemType eq "IRIX") {
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
}
else {
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
}
# split into
($NTRclass, $NTRmtgText, $NTRmtgStartDate, $NTRmtgStopDate, $NTRmtgDuration,
$NTRmtgAlarm, $NTRmtgRepeatType) = split(/\t/, $_, 20);
# remove \n from $NTRmtgText
$NTRmtgText =~ s/\n/\t/g;
# split date/time
($NTRmtgStartDateGer, $NTRmtgStartTime) = split(/ /, $NTRmtgStartDate, 10);
# transfer German date to US date
if ($DateFormat eq "German"){
($NTRday, $NTRmonth, $NTRyear) = split(/\./, $NTRmtgStartDateGer, 10);
} elsif ($DateFormat eq "British"){
($NTRday, $NTRmonth, $NTRyear) = split(/\//, $NTRmtgStartDateGer, 10);
} elsif ($DateFormat eq "US"){
($NTRmonth, $NTRday, $NTRyear) = split(/\//, $NTRmtgStartDateGer, 10);
} else {
die "Dateformat not recognised";
}
#Plan begins year counting with 1970
if ($NTRyear < 1970) {
$NTRyear = 1970
}
# split date/time
($NTRmtgStopDateGer, $NTRmtgStopTime) = split(/ /, $NTRmtgStopDate, 10);
# transfer different dateformates to US date
if ($DateFormat eq "German"){
($NTRStopday, $NTRStopmonth, $NTRStopyear) = split(/\./, $NTRmtgStopDateGer, 10);
} elsif ($DateFormat eq "British"){
($NTRStopday, $NTRStopmonth, $NTRStopyear) = split(/\//, $NTRmtgStopDateGer, 10);
} elsif ($DateFormat eq "US"){
($NTRStopmonth, $NTRStopday, $NTRStopyear) = split(/\//, $NTRmtgStopDateGer, 10);
} else {
die "Dateformat not recognised";
}
# transfer time in minutes to hours
$NTRmtgDurationhours = int ($NTRmtgDuration / 60);
$NTRmtgDurationminutes = $NTRmtgDuration % 60;
$NTRmtgAlarmhours = int ($NTRmtgAlarm / 60);
$NTRmtgAlarmminutes = $NTRmtgAlarm % 60;
if (defined ($NTRclass) && ($NTRclass eq "meeting")) {
# Print to STDOUT
print "#";
$RepNotesCounter++;
# if repeat every year
if ($NTRmtgRepeatType == 3) {
# write to file : date / time of day / duration / late warning / early warning
print PLFILE "$NTRmonth/$NTRday/$NTRyear 99:99:99 $NTRmtgDurationhours:$NTRmtgDurationminutes:0 0:0:0 0:0:0 -$Private-------- 0\n";
# write to file : Repeat
print PLFILE "R\t0 0 0 0 1\n";
# if repeat every day
} elsif ($NTRmtgRepeatType == 0) {
# write to file : date / time of day / duration / late warning / early warning
print PLFILE "$NTRmonth/$NTRday/$NTRyear 99:99:99 0:0:0 0:0:0 0:0:0 -$Private-------- 0\n";
# get time since 1/1/70 0:0:0
$CC = "$NTRStopmonth/$NTRStopday/$NTRStopyear $NTRmtgStopTime\n";
#$NTRRtowa = `$ConvdateCommand -n '$CC'`;
$NTRRtowa = Date::Parse::str2time($CC);
$NTRRtowa = $NTRRtowa+1 - 82740;
# write to file : Repeat
print PLFILE "R\t86400 $NTRRtowa 0 0 0\n";
} else {
# write to file : Repeat
#print PLFILE "R\t 0 0 0 0 0\n";
}
# write to file : Meeting text
print PLFILE "N\t$NTRmtgText\n";
}
}
# Print to STDOUT
print "\nNow scanning for calendar notes ...\n";
if ($SystemType eq "IRIX") {
close COMNEWTON;
open (COMNEWTON, "+>$tty");
&SetSloupBaudrate;
printf (COMNEWTON "\n");
}
# send commands to Sloup
&send_line (COMNEWTON, "\nCalendar Notes");
&send_line (COMNEWTON, '{class: "string", mtgText: "string", mtgStartDate: "dateTime"}');
&send_line (COMNEWTON, "DUMP!{fieldDelimiter: \"\t\"}");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace german Umlaute
if ($SystemType eq "IRIX") {
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
}
else {
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
}
# split into
($CNclass, $CNmtgText, $CNmtgStartDate) = split(/\t/, $_, 20);
# remove \n from $CNmtgText
$CNmtgText =~ s/\n/\t/g;
# split date/time
($CNmtgStartDateGer, $CNmtgStartTime) = split(/ /, $CNmtgStartDate, 10);
# transfer different dateformates to US date
if ($DateFormat eq "German"){
($CNday, $CNmonth, $CNyear) = split(/\./, $CNmtgStartDateGer, 10);
} elsif ($DateFormat eq "British"){
($CNday, $CNmonth, $CNyear) = split(/\//, $CNmtgStartDateGer, 10);
} elsif ($DateFormat eq "US"){
($CNmonth, $CNday, $CNyear) = split(/\//, $CNmtgStartDateGer, 10);
} else {
die "Dateformat not recoginsed";
}
#Plan begins year counting with 1970
if ($CNyear < 1970) {
$CNyear = 1970
}
if (defined ($CNclass) && ($CNclass eq "meeting")) {
# Print to STDOUT
print "#";
$CalendarNotesCounter++;
print PLFILE "$CNmonth/$CNday/$CNyear 99:99:99 0:0:0 0:0:0 0:0:0 -$Private-------- 0\n";
# write to file : Meeting text
print PLFILE "N\t$CNmtgText\n";
}
}
# close file
close (PLFILE);
# print to stdout
print ("\n$MeetingCounter meetings transfered");
print ("\n$RepMeetingCounter repeat meetings transfered");
print ("\n$RepNotesCounter repeat notes transfered");
print ("\n$CalendarNotesCounter calendar notes transfered");
}
1;
newtonlink-1.29/GetNotes.pl 100444 21003 1604 23031 6574464401 14622 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# GetNotes
#---------------------------------------------------------------------
# $Log: GetNotes.pl,v $
# Revision 1.2 1998/09/02 13:56:36 kalli
# *** empty log message ***
#
# Revision 1.1 1998/09/01 14:53:34 kalli
# Initial revision
#
sub GetNotes {
if ($NotesAreActual ne "true") {
select((select(STDOUT), $|=1)[$[]);
# start counter
$KjNotesCounter = 0;
$KjPaperCounter = 0;
$KjListCounter = 0;
$KjCheckCounter = 0;
$NewEntry = 1;
$Underline = "-----------------------------------------------------------";
# temporarily save Folder name
$FolderName = "";
# save old Notes file
if (-e "$NLNotesFile") {
rename ("$NLNotesFile", "$NLNotesFile.bak");
}
# Open new Notes file
open (NOTESFILE, ">> $NLNotesFile") || die "Can't open File : $NLNotesFile\n";
# submit Notes separated as paperroll, list, checkList
# first line is Folder name,
# second line is title of note
print ("\nScanning for paperroll entries ...\n");
# send commands to Sloup
&send_line (COMNEWTON, "\nNotes");
&send_line (COMNEWTON, '{class: \'paperroll,labels: \'_all,title: \'String}');
&send_line (COMNEWTON, "DUMP!");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
if ($_ ne "") {
# replace german Umlaute
s/\232//g; s/\212//g;
s/\237//g;s/\247//g;s/\205//g;s/\200//g; s/\206//g;
s/\\u00F6\\u//g;
s// /g;
# Print sign to STDOUT
print "#";
$KjNotesCounter++;
$KjPaperCounter++;
if ($_ ne "-----") {
# write to Notes file
if (($NewEntry == 1) || ($NewEntry == 2)) {
if ($NewEntry == 1) {
$FolderName = $_;
chomp $FolderName;
$NewEntry = 2;
} else {
if ($NewEntry == 2) {
printf( NOTESFILE "\\NewEntry ");
printf( NOTESFILE $FolderName);
printf( NOTESFILE " / ");
print NOTESFILE "$_\n";
# Make a Header
print NOTESFILE "$_\n";
$LenOfTitle = length $_ ;
#if ($LenOfTitle > 0) {
# $LenOfTitle--;
#}
$Underl = substr $Underline,0,$LenOfTitle;
printf (NOTESFILE $Underl);
printf (NOTESFILE "\n\n");
$NewEntry = 0;
}
}
} else {
print NOTESFILE "$_\n";
$NewEntry = 0;
}
} else {
$NewEntry = 1;
}
}
}
# print to stdout
print ("\n$KjPaperCounter lines of paperroll notes transfered");
print ("\nNow scanning for list entries ...\n");
# submit list entries
# send commands to Sloup
&send_line (COMNEWTON, "\nNotes");
&send_line (COMNEWTON, '{class: \'list,labels: \'_all,title: \'String}');
&send_line (COMNEWTON, "DUMP!");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
if ($_ ne "") {
# replace german Umlaute
s/\232//g; s/\212//g;
s/\237//g;s/\247//g;s/\205//g;s/\200//g; s/\206//g;
s/\\u00F6\\u//g;
s// /g;
# Print sign to STDOUT
print "#";
$KjNotesCounter++;
$KjListCounter++;
if ($_ ne "-----") {
# write to Notes file
if (($NewEntry == 1) || ($NewEntry == 2)) {
if ($NewEntry == 1) {
$FolderName = $_;
chomp $FolderName;
$NewEntry = 2;
} else {
if ($NewEntry == 2) {
printf( NOTESFILE "\\NewEntry ");
printf( NOTESFILE $FolderName);
printf( NOTESFILE " / ");
print NOTESFILE "$_\n";
# Make a Header
print NOTESFILE "$_\n";
$LenOfTitle = length $_ ;
#if ($LenOfTitle > 0) {
# $LenOfTitle--;
#}
$Underl = substr $Underline,0,$LenOfTitle;
printf (NOTESFILE $Underl);
printf (NOTESFILE "\n\n");
$NewEntry = 0;
}
}
} else {
print NOTESFILE "$_\n";
$NewEntry = 0;
}
} else {
$NewEntry = 1;
}
}
}
# print to stdout
print ("\n$KjListCounter lines of list notes transfered");
print ("\nNow scanning for checklist entries ...\n");
# submit checkList entries
# send commands to Sloup
&send_line (COMNEWTON, "\nNotes");
&send_line (COMNEWTON, '{class: \'checkList,labels: \'_all,title: \'String}');
&send_line (COMNEWTON, "DUMP!");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
if ($_ ne "") {
# replace german Umlaute
s/\232//g; s/\212//g;
s/\237//g;s/\247//g;s/\205//g;s/\200//g; s/\206//g;
s/\\u00F6\\u//g;
s// /g;
# Print sign to STDOUT
print "#";
$KjNotesCounter++;
$KjCheckCounter++;
if ($_ ne "-----") {
# write to Notes file
if (($NewEntry == 1) || ($NewEntry == 2)) {
if ($NewEntry == 1) {
$FolderName = $_;
chomp $FolderName;
$NewEntry = 2;
} else {
if ($NewEntry == 2) {
printf( NOTESFILE "\\NewEntry ");
printf( NOTESFILE $FolderName);
printf( NOTESFILE " / ");
print NOTESFILE "$_\n";
# Make a Header
print NOTESFILE "$_\n";
$LenOfTitle = length $_ ;
#if ($LenOfTitle > 0) {
# $LenOfTitle--;
#}
$Underl = substr $Underline,0,$LenOfTitle;
printf (NOTESFILE $Underl);
printf (NOTESFILE "\n\n");
$NewEntry = 0;
}
}
} else {
print NOTESFILE "$_\n";
$NewEntry = 0;
}
} else {
$NewEntry = 1;
}
}
}
# print to stdout
print ("\n$KjCheckCounter lines of checklist notes transfered");
print ("\n$KjNotesCounter lines of notes totally transfered");
# close file
close (NOTESFILE);
# now read NOTESFILE, sort and output
print ("\nNotes file will now be sorted ...\n");
# Open new Notes file
$KString = "";
open (NOTESFILE, "$NLNotesFile") || die "Can't open File : $NLNotesFile\n";
while ($i = <NOTESFILE>) {
$KString = $KString.$i;
}
close (NOTESFILE);
@KList = split ("\NewEntry", $KString);
@KList = sort (@KList);
$KString = join ("\NewEntry", @KList);
open (NOTESFILE, "> $NLNotesFile") || die "Can't open File : $NLNotesFile\n";
printf (NOTESFILE "\\NewEntry");
printf (NOTESFILE $KString);
close (NOTESFILE);
# mark notes file as actual
$NotesAreActual = "true";
}
}
1;
newtonlink-1.29/GetPackage.pl 100444 21003 1604 5372 6574464401 15055 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# GetPackage
#---------------------------------------------------------------------
# $Log: GetPackage.pl,v $
# Revision 1.6 1998/03/06 23:37:18 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.5 1997/12/06 17:22:49 kalli
# Umstellung auf Sloup
#
# Revision 1.4 1997/09/28 10:00:34 kalli
# Aenderung von Andrew :
# Select-Statement
#
# Revision 1.3 1997/03/27 19:41:31 kalli
# Andrew dazu
#
# Revision 1.2 1997/03/06 18:51:31 kalli
# Erste Version lauffaehig
#
# Revision 1.1 1997/03/04 21:04:33 kalli
# Initial revision
#
sub GetPackage {
select((select(STDOUT), $|=1)[$[]);
# open Newton package file
open (PSFILE, "> $PackageFileName") || die "Can't open File : $!\n";
binmode PSFILE;
# set marker
$FirstLine = 0;
# send commands to Sloup
&send_line (COMNEWTON, "\nPackage");
&send_line (COMNEWTON, "{packageName: \"$PackageName\", packageEntry: \"binary:packageEntry\"}");
&send_line (COMNEWTON, "DUMP!");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# dont write first line
if ($FirstLine == 0) {
$FirstLine++;
} else {
# Print sign to STDOUT
print "#";
# replace last "\\n in line"
s/\n//g; s/\\//g;
# calculate # of chars in line
$Ccount = length ($_);
#printf ("No of chars : $Ccount\n");
# split into separate chars
@a = split (/ */, $_);
# put every two chars together
for ($hi = 0; $hi < $Ccount; $hi++) {
$b[$hi] = $a[$hi*2].$a[($hi*2)+1];
}
# write binary chars to Newton package file
for ($hi = 0; $hi < $Ccount/2; $hi++) {
printf (PSFILE "%c", hex ($b[$hi]));
}
}
}
# close file
close (PSFILE);
}
1;
newtonlink-1.29/GetPackageNames.pl 100444 21003 1604 5732 6574464401 16041 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# GetPackageNames
#---------------------------------------------------------------------
# $Log: GetPackageNames.pl,v $
# Revision 1.8 1998/09/02 13:56:51 kalli
# *** empty log message ***
#
# Revision 1.7 1998/03/24 20:30:28 kalli
# Umstellung auf format-Anweisung
#
# Revision 1.6 1998/03/16 14:58:05 kalli
# Umstellung auf neue ser. Treiber mit Timeout.
#
# Revision 1.5 1998/03/06 23:13:17 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.4 1997/12/06 17:23:46 kalli
# Umstellung auf Sloup
#
# Revision 1.3 1997/09/28 10:02:15 kalli
# Aenderung von Andrew :
# Select-Statement
#
# Revision 1.2 1997/03/27 19:42:23 kalli
# Andrew dazu
#
# Revision 1.1 1997/03/04 21:05:33 kalli
# Initial revision
#
format STDOUT =
@<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<
$PackageNames[$niP] $PackageNames[$niP+1] $PackageNames[$niP+2]
.
sub GetPackageNames {
select((select(STDOUT), $|=1)[$[]);
# save old Newtonlink package names file
if (-e "$NLPackageNamesFile") {
rename ("$NLPackageNamesFile", "$NLPackageNamesFile.bak");
}
# Open file
open (PACKAGENAMESFILE, ">> $NLPackageNamesFile") || die "Can't open File : $!\n";
printf "\nScanning for installed packages ...\n";
# start counter
$PackageCounter = 0;
# send commands to Sloup
&send_line (COMNEWTON, "\nPackage");
&send_line (COMNEWTON, "{}");
&send_line (COMNEWTON, "DUMP!");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
$PackageNames[$PackageCounter] = $_;
printf PACKAGENAMESFILE "$PackageNames[$PackageCounter]\n";
$PackageCounter++;
print "#";
}
# print result to stdout
print ("\n$PackageCounter package names transfered : \n");
for ($niP = 0; $niP < $PackageCounter; $niP += 3) {
write STDOUT;
}
# close file
close (PACKAGENAMESFILE);
}
1;
newtonlink-1.29/GetPrintOutbox.pl 100444 21003 1604 7611 6574464401 16015 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# GetPrintOutbox
#---------------------------------------------------------------------
# $Log: GetPrintOutbox.pl,v $
# Revision 1.8 1998/03/22 19:46:35 kalli
# Previewer lt. Confogfile
#
# Revision 1.7 1998/03/07 13:08:19 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.6 1997/12/06 17:25:48 kalli
# Umstellung auf Sloup
#
# Revision 1.5 1997/09/28 10:03:37 kalli
# Aenderung von Andrew :
# Select-Statement
#
# Revision 1.4 1997/03/27 19:44:27 kalli
# Andrew dazu
#
# Revision 1.3 1997/02/23 15:12:15 kalli
# Frank dazu
#
# Revision 1.2 1997/02/22 17:01:27 kalli
# GPL dazu
#
# Revision 1.1 1996/11/24 19:52:05 kalli
# Initial revision
#
sub GetPrintOutbox {
# start counter
$PrintCounter = 0;
# set marker
$PrintOn = "off";
# save old printout file
if (-e "$PrintFile") {
rename ("$PrintFile", "$PrintFile.bak");
}
# Open file
open (PRFILE, ">> $PrintFile") || die "Can't open File : $!\n";
# send commands to Sloup
&send_line (COMNEWTON, "\nOutbox\n");
&send_line (COMNEWTON, '{state: "string", category: "string", title: "string", fromName: "string", toName: "string",' .
'timestamp: "date", body: {title: "string", data: [{text: "string"}]}}');
&send_line (COMNEWTON, "\nDUMP!\n");
while (($_ = &receive_line (COMNEWTON)) ne "BYE!") {
# replace German Umlaute
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
# split into
($PRstate, $PRcategory, $PRconcern, $PRfromName, $PRtoName, $PRtimestamp, $PRbodytitle, $PRdata) = split(/\t/, $_, 10);
# if new outbox entry
if (defined ($PRstate) && ($PRstate eq "ready")) {
if (defined ($PRcategory) && ($PRcategory eq "print:newton")) {
# set marker
$PrintOn = "on";
# print to file
printf PRFILE "Concern : $PRconcern\n";
printf PRFILE "Title : $PRbodytitle\n";
printf PRFILE "From : $PRfromName\n";
printf PRFILE "To : $PRtoName\n";
printf PRFILE "Time : $PRtimestamp\n";
printf PRFILE "\n$PRdata\n";
# Print sign to stdout
print "#";
$PrintCounter++;
} else {
# reset marker
$PrintOn = "off";
}
# if not new outbox entry
} elsif ($PrintOn eq "on") {
print PRFILE "$_\n";
}
}
# close file
close (PRFILE);
# print to stdout
print ("\n$PrintCounter printouts transfered to $PrintFile");
if ($PrintCounter > 0) {
if ($SystemPrintCommand ne "") {
printf "\nCreate postscript file $PrintFile.ps\n";
# convert print file to postscript
system "$SystemPrintCommand $PrintFile > $PrintFile.ps";
# start previewer
if ($PrintPreviewCommand ne "") {
printf "Starting previewer\n";
system "$PrintPreviewCommand $PrintFile.ps &";
}
}
}
}
1;
newtonlink-1.29/GetSoupInfo.pl 100444 21003 1604 3301 6574464401 15252 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# GetSoupInfo
#---------------------------------------------------------------------
# $Log: GetSoupInfo.pl,v $
# Revision 1.1 1998/03/07 18:28:20 kalli
# Initial revision
#
sub GetSoupInfo {
select((select(STDOUT), $|=1)[$[]);
# send commands to Sloup
&send_line (COMNEWTON, "\n$SoupName");
&send_line (COMNEWTON, "{}");
&send_line (COMNEWTON, "DUMP!");
while (($_ = &receive_line(COMNEWTON)) ne "BYE!") {
# replace german Umlaute
s/\232//g; s/\212//g; s/\237//g; s/\247//g; s/\205//g; s/\200//g; s/\206//g;
# write to stdout
print "$_\n";
}
}
1;
newtonlink-1.29/GreetUser.pl 100444 21003 1604 5733 6574464401 14770 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#-----------------------------------------------------------------------
# GreetUser
#-----------------------------------------------------------------------
# $Log: GreetUser.pl,v $
# Revision 1.1 1998/09/01 13:51:38 kalli
# Initial revision
#
sub GreetUser {
my $notConnected = 1;
my $MAXTIMEOUTS = 5;
my $numTimeouts = 0;
my $slpVersion;
my $FirstName;
my $LastName;
# Checking if sloup is open
print "Trying to connect to your Newton...\n";
while ($notConnected) {
if (open (COMNEWTON, "+>$tty")) {
printf "Newton connection opened\n";
# set new baudrate
printf "Switch baudrate to $SloupBaudrate\n";
&SetSloupBaudrate;
# It seems that IRIX needs first a CR to initialize the serial connection
if ($SystemType eq "IRIX") { printf (COMNEWTON "\n"); }
}
&send_line (COMNEWTON, "\nEVAL!\"OK\"");
$_ = &receive_line (COMNEWTON);
if ($_ ne "OK") {
print "Make sure that sloup is working\n";
print "Will try again in $timeout seconds\n";
close (COMNEWTON);
print "Connection closed\n";
sleep ($timeout);
$numTimeouts++;
if ($numTimeouts > $MAXTIMEOUTS) {
die "Tried for $numTimeouts times. Giving up\n";
}
} else {
$notConnected=0;
print "\n";
}
}
# ask for Sloup version
&send_line (COMNEWTON, "\nEVAL!GetRoot().|Sloup:TknollSys|._proto.versionString");
$slpVersion = &receive_line (COMNEWTON);
if ($slpVersion == "Timeout reached") {
die "Please make sure your serial connection is working\n"
}
# ask for Newton user name
&send_line (COMNEWTON, "\nEVAL!getUserConfig(\'name)");
$_= &receive_line (COMNEWTON);
($FirstName,$LastName) = split(/ /,$_);
print "Hi $FirstName, you are using Sloup $slpVersion\n";
}
1;
newtonlink-1.29/InstallPackage.pl 100444 21003 1604 10347 6574464401 15762 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# InstallPackage
#---------------------------------------------------------------------
# $Log: InstallPackage.pl,v $
# Revision 1.15 1998/03/16 14:58:39 kalli
# Umstellung auf ser. Teiber mit Timeout
#
# Revision 1.14 1998/03/12 20:39:48 kalli
# Unix basename Kommando durch Perl-Lib ersetzt
#
# Revision 1.13 1998/03/07 17:46:53 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.12 1997/12/06 17:11:29 kalli
# Umstellung auf Sloup
#
# Revision 1.11 1997/10/01 18:05:40 kalli
# Bugfix von Andrew : .slp-File wird richtig geloescht.
#
# Revision 1.10 1997/09/28 10:05:39 kalli
# Aenderung von Andrew :
# Select-Statement
#
# Revision 1.9 1997/07/12 16:06:07 kalli
# Aenderungen von Andrew wg. der Tk-Version
#
# Revision 1.8 1997/04/20 15:32:17 kalli
# .slp-File wird in $TempDir angelegt und nach Installation
# wieder geloescht.
#
# Revision 1.7 1997/03/27 19:45:31 kalli
# Andrew dazu
# Wait-Message beim Installieren
#
# Revision 1.6 1997/03/06 18:53:33 kalli
# erste Version lauffaehig
#
# Revision 1.5 1997/03/02 21:47:26 kalli
# Umstellung auf Install via Sloup
#
# Revision 1.4 1997/02/23 15:13:13 kalli
# Frank dazu
#
# Revision 1.3 1997/02/22 17:02:19 kalli
# GPL dazu
#
# Revision 1.2 1997/01/05 16:05:37 kalli
# Neuer Aufruf : minicom
#
# Revision 1.1 1996/11/24 19:57:38 kalli
# Initial revision
#
use File::Basename;
sub InstallPackage {
select((select(STDOUT), $|=1)[$[]);
$LineCounter = 0;
$TByte = "";
$PkgByteCounter = 0;
# open Newton package file
open (PKGFILE, "$PackageFile") || die "Can't open File $PackageFile : $!\n";
binmode PKGFILE;
#extract file's basename
$PackageFile =~ s/\\/\//g;
($tempFile) = reverse(split(/\//, $PackageFile));
($tempFile) = split(/\./, $tempFile);
# open Sloup Hex file
$tempFile = "$TempDir\/$tempFile.slp";
print "$tempFile\n";
open (SLPFILE, ">$tempFile") || die "Can't open File : $!\n";
# print message
print "Converting package file, please wait ...\n";
# read byte from package file
while (read (PKGFILE, $TByte, 1)) {
# write to Sloup Hex file
printf (SLPFILE "%02X", ord($TByte));
# insert "\\n" every 36 bytes
if ($LineCounter == 36) {
printf SLPFILE ("\\\n");
$LineCounter = 0;
} else {
$LineCounter++;
}
# incr bytecounter
$PkgByteCounter++;
}
# close files
close (PKGFILE);
close (SLPFILE);
# print bytecounter
print "Package size is $PkgByteCounter bytes\n";
# open file
open (SLPFILE, $tempFile) || printf "Can't open file : $!\n";
# print message
print "Installing package, please wait ...\n";
# send commands to Sloup
&send_line (COMNEWTON, "\nPackage");
&send_line (COMNEWTON, "{packageName: \"string\", packageEntry: \"binary:packageEntry\"}");
&send_line (COMNEWTON, "REPLACE!packageName");
&send_line (COMNEWTON, "LoadPkg !\\");
# read lines from file
while (<SLPFILE>) {
# send line to Sloup
&send_line (COMNEWTON, "$_");
print "#";
}
&send_line (COMNEWTON, "BYE!");
print("\nPackage transferred\n");
# close file
close (SLPFILE);
# delete file
unlink $tempFile;
}
1;
newtonlink-1.29/KeyboardInput.pl 100444 21003 1604 3416 6574464401 15637 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# KeyboardInput
#---------------------------------------------------------------------
# $Log: KeyboardInput.pl,v $
# Revision 1.5 1998/03/07 17:09:31 kalli
# Umsetzung deutscher Umlaute
#
# Revision 1.4 1997/03/27 19:47:19 kalli
# Andrew dazu
#
# Revision 1.3 1997/02/23 15:14:06 kalli
# Frank dazu
#
# Revision 1.2 1997/02/22 17:03:21 kalli
# GPL dazu
#
# Revision 1.1 1996/11/24 19:59:54 kalli
# Initial revision
#
sub KeyboardInput {
while (<STDIN>) {
if ($_ eq "!!\n") {
last;
}
# replace German Umlaute
s//\232/g; s//\212/g; s//\237/g; s//\247/g; s//\205/g; s//\200/g; s//\206/g;
# send line to Sloup
print (COMNEWTON);
}
}
1;
newtonlink-1.29/Makefile 100444 21003 1604 5511 6574464401 14160 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1997 Reinhold Schoeb (schoeba@str.daimler-benz.com)
# Frank Scholz (dev@artus.pf.bawue.de)
# Andrew Maier (Andrew.Maier@cern.ch)
# Gerald Hofer (hofer@icg.tu-graz.ac.at)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
# $Log: Makefile,v $
# Revision 1.11 1997/11/29 19:29:43 kalli
# Erweiterung fuer Multi-Platform
#
#==================== START USER EDITABLE SECTION ======================
# for Linux :
# the Perl binary
PERL_BIN = /usr/bin/perl
# the wish binary
WISH_BIN = /usr/bin/wish
# the html browser for helpdoc
BROWSER = netscape
# Install command
INSTALL = install
# Directory in which to install the readme files
RDM_DIR = /usr/doc/newtonlink-1.26
# Directory in which to install the libraries
LIB_DIR = /usr/lib/newtonlink-1.26
# Directory in which to install the documentation
DOC_DIR = /usr/lib/newtonlink-1.26/doc
# Directory in which to install the manpage
MAN_DIR = /usr/local/man/man1
#==================== END USER EDITABLE SECTION ========================
install:
$(INSTALL) -m 755 -d $(RDM_DIR)
$(INSTALL) -m 644 COPYRIGHT GNU_GPL README $(RDM_DIR)
$(INSTALL) -m 755 -d $(LIB_DIR)
$(INSTALL) -m 644 COPYRIGHT GNU_GPL README $(LIB_DIR)
$(INSTALL) -m 755 newtonlink $(LIB_DIR)
$(INSTALL) -m 755 tknl $(LIB_DIR)
$(INSTALL) -m 644 *.pl $(LIB_DIR)
$(INSTALL) -m 755 -d $(LIB_DIR)/icons
$(INSTALL) -m 644 icons/* $(LIB_DIR)/icons
$(INSTALL) -m 755 -d $(LIB_DIR)/doc
$(INSTALL) -m 644 doc/*.html $(LIB_DIR)/doc
$(INSTALL) -m 755 -d $(LIB_DIR)/doc/Images
$(INSTALL) -m 644 doc/Images/* $(LIB_DIR)/doc/Images
$(INSTALL) -m 644 newtonlink.man $(MAN_DIR)/newtonlink.1
$(INSTALL) -m 644 newtonlink.config /etc
ln -s $(LIB_DIR) /usr/lib/newtonlink
ln -s /usr/lib/newtonlink/newtonlink /usr/bin/newtonlink
remove:
rm -rf $(RDM_DIR)
rm -rf $(LIB_DIR)
rm $(MAN_DIR)/newtonlink.1
rm /etc/newtonlink.config
rm /usr/lib/newtonlink
rm /usr/bin/newtonlink
newtonlink-1.29/README 100444 21003 1604 2255 6574464401 13402 0 ustar kalli schoeb Newtonlink
----------------------------------------------------------------------------
Newtonlink is a program to transfer data between an Apple Newton PDA and
Unix applications such as Xrolodex, Addressbook, Plan, Xfmail and Netscape.
You can also install and upload Newton packages to/from your Unix desktop.
We wrote this program because there was a need for it. You can get a lot
of Newton connection utilities for Micro$oft Windows and the Apple Macintosh.
So we decided to develop Newtonlink, with the main goal to get the contents
of the Newton soups via a serial link and convert this data for use with
several Linux applications which we normally use.
The program is distributed under the terms of the GNU General Public Licenses.
To install Newtonlink on an UNIX-System, run perl install.pl
To install Newtonlink on an OS/2-System, copy all files included in the
package to the directory where you want newtonlink to be and run the
installation with perl install_os2.pl.
Please look for more install instructions and documentation under
doc/newtonlink-doc-en.html and open it with your preferred HTML browser.
Enjoy - The Newtonlink Developer Team (newtonlink@newton.bawue.de)
newtonlink-1.29/SendFile2Newton.pl 100444 21003 1604 5104 6574464401 16021 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# SendFile2Newton
#---------------------------------------------------------------------
# $Log: SendFile2Newton.pl,v $
# Revision 1.10 1998/03/24 21:19:22 kalli
# Erweiterung um Soupname
#
# Revision 1.9 1998/03/06 23:26:57 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.8 1997/12/06 17:24:50 kalli
# Umstellung auf Sloup
#
# Revision 1.7 1997/09/28 10:08:00 kalli
# Aenderung von Andrew :
# Select-Statement
#
# Revision 1.5 1997/03/27 19:48:10 kalli
# Andrew dazu
#
# Revision 1.4 1997/02/23 15:15:04 kalli
# Frank dazu
#
# Revision 1.3 1997/02/22 17:04:05 kalli
# GPL dazu
#
# Revision 1.2 1996/12/10 20:39:07 kalli
# Konvertierung deutscher Umlaute bei der Uebertragung
#
# Revision 1.1 1996/12/07 18:36:14 kalli
# Initial revision
#
sub SendFile2Newton {
# open file
open (SDFILE, "$SendFile") || printf "Can't open file : $!\n";
# send soup header to Sloup
if ($SendFileSoup ne "") {
&send_line (COMNEWTON, "\n$SendFileSoup![]");
&send_line (COMNEWTON, '{a:"string"}');
}
# read lines from file
while (<SDFILE>) {
# replace German Umlaute
s//\232/g; s//\212/g; s//\237/g; s//\247/g; s//\205/g; s//\200/g; s//\206/g;
# Print to STDOUT
print "#";
# send line to Sloup
syswrite (COMNEWTON, $_, length($_)) || die "write systemcall failed";
}
# send soup end to Sloup
if ($SendFileSoup ne "") {
&send_line (COMNEWTON, "BYE!");
}
# close logfile
close (SDFILE);
}
1;
newtonlink-1.29/SetSloupBaudRate.pl 100444 21003 1604 12372 6574464401 16266 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# SetSloupBaudrate
#---------------------------------------------------------------------
# $Log: SetSloupBaudRate.pl,v $
# Revision 1.18 1998/04/10 15:10:59 kalli
# Aenderungen von Mark Bowyer
#
# Revision 1.17 1998/04/03 21:19:19 kalli
# Neuer Init-String fuer Solaris lt. Mark Bowyer
#
# Revision 1.16 1998/03/12 20:41:02 kalli
# XonXoff Protokoll bei OS-2 dazu
#
# Revision 1.15 1998/03/07 16:55:51 kalli
# OS/2 String nach OS-2 geaendert
#
# Revision 1.14 1998/03/06 23:21:48 kalli
# Option OS-2 dazu
#
# Revision 1.13 1997/12/15 09:25:03 kalli
# OSF1 option vorbereitet
#
# Revision 1.12 1997/12/06 17:05:40 kalli
# Umstellung auf Sloup
#
# Revision 1.11 1997/11/29 16:46:08 kalli
# Aenderungen am Solaris-Init-String nach Mark Bowyer
#
# Revision 1.10 1997/09/21 19:32:28 kalli
# Init-Strings fuer SunOS eingefuegt.
# Waren bislang nicht drin.
#
# Revision 1.9 1997/07/15 19:43:00 kalli
# Aenderung in HP-UX Init-String von Roland.
#
# Revision 1.8 1997/07/12 19:11:54 kalli
# Aenderungen der Struktur :
# Erweiterung fuer HP-UX nach Angaben von Roland Tanglao
#
# Revision 1.7 1997/05/28 19:22:40 kalli
# Aenderungen von Gerald Hofer fuer IRIX
#
# Revision 1.6 1997/05/24 15:28:05 kalli
# Aenderungen fuer IRIX-Version von Gerald Hofer
#
# Revision 1.5 1997/03/27 19:49:02 kalli
# Andrew dazu
#
# Revision 1.4 1997/02/23 15:16:08 kalli
# Frank dazu
#
# Revision 1.3 1997/02/22 17:05:06 kalli
# GPL dazu
#
# Revision 1.2 1997/02/19 20:49:41 kalli
# Anweisung stty sane < /dev/newton auf Anraten von
# Frank Scholz <dev@artus.pf.bawue.de> aufgenommen
#
# Revision 1.1 1996/11/24 19:15:40 kalli
# Initial revision
#
sub SetSloupBaudrate {
#---- for HP-UX ----------------------------------------------------
if ($SystemType eq "HP-UX") {
system "stty sane < $tty";
if (($SloupBaudrate eq "57600") || ($SloupBaudrate eq "38400") ||
($SloupBaudrate eq "19200") || ($SloupBaudrate eq "9600")) {
system "stty cs8 $SloupBaudrate -echo ignbrk -isig -icanon -iexten ixoff ixon -icrnl -istrip igncr -echoe -echok tabs < $tty";
} else {
printf "Exit - wrong Sloup baudrate selected\n";
exit;
}
}
#---- for IRIX ----------------------------------------------------
if ($SystemType eq "IRIX") {
system "stty -echo ignbrk -isig -icanon -iexten ixoff ixany -icrnl -istrip igncr -echoe -echok -echoke -echoctl tabs < $tty";
if (($SloupBaudrate eq "38400") || ($SloupBaudrate eq "19200") || ($SloupBaudrate eq "9600")) {
system "stty $SloupBaudrate < $tty";
} else {
printf "Exit - wrong Sloup baudrate selected\n";
exit;
}
}
#---- for OSF1 ----------------------------------------------------
if ($SystemType eq "OSF1") {
system "";
}
#---- for Solaris --------------------------------------------------
if ($SystemType eq "SunOS") {
system "";
if (($SloupBaudrate eq "38400") || ($SloupBaudrate eq "19200") || ($SloupBaudrate eq "9600")) {
system "stty cs8 $SloupBaudrate -echo ignbrk -isig -icanon -iexten ixoff ixany onlcr icrnl -istrip -igncr -echoe -echok -parenb tabs < $tty";
} else {
printf "Exit - wrong Sloup baudrate selected\n";
exit;
}
}
#---- for Linux ----------------------------------------------------
if ($SystemType eq "Linux") {
system "stty sane < $tty";
if ($SloupBaudrate eq "115200") {
system "setserial $tty spd_vhi";
system "stty 38400 < $tty";
} elsif ($SloupBaudrate eq "57600") {
system "setserial $tty spd_hi";
system "stty 38400 < $tty";
} elsif ($SloupBaudrate eq "38400") {
system "setserial $tty spd_normal";
system "stty 38400 < $tty";
} elsif ($SloupBaudrate eq "19200") {
system "setserial $tty spd_normal";
system "stty 19200 < $tty";
} elsif ($SloupBaudrate eq "9600") {
system "setserial $tty spd_normal";
system "stty 9600 < $tty";
} else {
printf "Exit - wrong Sloup baudrate selected\n";
exit;
}
}
#---- for OS/2 -----------------------------------------------------
if ($SystemType eq "OS-2") {
system "cmd /c mode $tty:$SloupBaudrate,n,8,1,XON=ON";
}
}
1;
newtonlink-1.29/SetYAPIBaudRate.pl 100444 21003 1604 1073 6574464401 15702 0 ustar kalli schoeb #---------------------------------------------------------------------
# SetYAPIBaudrate
#---------------------------------------------------------------------
# $Log: SetYAPIBaudRate.pl,v $
# Revision 1.1 1996/11/24 19:17:48 kalli
# Initial revision
#
sub SetYAPIBaudrate {
if ($YAPIBaudrate eq "38400") {
system "setserial $tty spd_normal";
system "stty 38400 < $tty";
} elsif ($YAPIBaudrate eq "19200") {
system "setserial $tty spd_normal";
system "stty 19200 < $tty";
} else {
printf "Exit - wrong YAPI baudrate selected\n";
exit;
}
}
1;
newtonlink-1.29/SloupTest.pl 100444 21003 1604 5100 6574464401 15011 0 ustar kalli schoeb #=======================================================================
# Newtonlink - transfer data between a Apple Newton Message Pad and
# Unix applications
#
# Copyright (C) 1996-1998 The Newtonlink Developers
# (newtonlink@newton.bawue.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=======================================================================
#---------------------------------------------------------------------
# SloupTest.pl
#---------------------------------------------------------------------
# $Log: SloupTest.pl,v $
# Revision 1.5 1998/03/06 23:12:27 kalli
# Umstellung auf neue ser. Treiber
#
# Revision 1.4 1997/12/15 12:31:25 kalli
# Dump all notes entries
#
# Revision 1.3 1997/12/06 17:08:23 kalli
# Umstellung auf Sloup
#
# Revision 1.2 1997/05/31 09:49:59 kalli
# Test email-groups
#
# Revision 1.1 1997/04/22 20:00:05 kalli
# Initial revision
#
sub SloupTest {
#send commands to Sloup : send new entries to notes soup
&send_line (COMNEWTON, "\nNotes");
&send_line (COMNEWTON, '{labels: \'Business, }');
&send_line (COMNEWTON, "first paragraph, first line");
&send_line (COMNEWTON, "second line");
&send_line (COMNEWTON, "third line");
&send_line (COMNEWTON, "that's all folks");
&send_line (COMNEWTON, "----------");
&send_line (COMNEWTON, "second paragraph, first line");
&send_line (COMNEWTON, "2nd line");
&send_line (COMNEWTON, "3rd line");
&send_line (COMNEWTON, "4th line");
&send_line (COMNEWTON, "more");
&send_line (COMNEWTON, "more");
&send_line (COMNEWTON, "more");
&send_line (COMNEWTON, "more");
&send_line (COMNEWTON, "more");
&send_line (COMNEWTON, "more");
&send_line (COMNEWTON, "etc.");
&send_line (COMNEWTON, "end");
&send_line (COMNEWTON, "---------");
&send_line (COMNEWTON, "third para");
&send_line (COMNEWTON, "---------");
&send_line (COMNEWTON, "BYE!");
}
1;
newtonlink-1.29/TimeDate-1.07.tar.gz 100444 21003 1604 31471 6574464401 15752 0 ustar kalli schoeb R2TimeDate-1.07.tar ;{Ȯ
]bܘ7$hRn܀& Ms>aWڞ_wsv=#i4FsgdZʥ;'ٝR @ȿs,v~X,;Emw@_<:8'|N_|)[I/=dGfQfwQRa{\ dOl \J6
8SBHvo
j~j! |;>cϷmx
L t,QN$ rχuzSj]ۇp`C`lm %+3"D`{iM[ko_ѴmuspRk5M{s>+ߛDx'gͣ&"CWX$=g;nz8ڣM0;{ԢB o!bsNK6ωtx3إEb̓7GgG':d7NF{z.2 <8:9r2){u<l]!8s[tF>3.J">8(d덳y݄F.LxzRov\Cs=lV
o>p<Wv945υscMi|AjO $R#j3`8$L\H$+\E=k2qЙ QsD!cr 3DOtU :!ξc6pj&BT\A
Fɡ&=ɚpRwj#)-oMkt.a7.\OF(`0m0Wx$lHCCˍKN*XEU\_QvmUoNߜ/8Ad[W*a6o
ah $Ґ &D{+̤P\pG5t,-zr5H24hnKppuLb-BfU9NK2M>&[wf/_2H<|ktRsSAd&d =[ܜ/=UqK<6R}2RZVhQhlhoVBJQd&<&z\h^Ը[(Es[FW-9<4oupE(Z~%M(a&rpݒD%agk
! юrXN
.i5iȟйuR)6`\X,OيuֶmW2 Q&.RCPasqh
C>X9<|o5Ma4ڄ!$;`c`@ԶhkOÕTc$\@0[ ;B;\ŋyK
lpsAϻ]U
m4b!Vk .9dwfiۃX`wir;yd!MS!v^WƑ-ĘUI 51>9BLX-,Z VM#="
1wD<qerfO`#{dNg}$(N%;Ib<-Tf+ޞ>}iʁ4TCgrtGXo57+Bztѝ}xs5g?|N'Kg$4:@Їv o,&CCY]q"qd/n4{tӉlbB&n4 Y6}hpI:CPQ/jICR躡ksr+[^8zD<GXUd:NzY:3_5Hr1iHFL~H_icC[yhVIImrDƵ^s司Jc;+L0lW!"zI//rm bEJ}>bCk-]xԾ>JREAP- b).H4M|67 69$X $ih 82w1BQ{f+[шM\%hfA菒{6E6.XO?
iϗ^a2vJi4A{r2TCw'AZ&oiJLBHp
WVHc<*;>G[k5_\Lz+=CD5"|9}.:L|w뉏
fyi_aqSm j#=Ɠ9Qp =7 Yp5{v<[K3kx 0n"EBc{Q4ؖ}tpwwPp\\-v` $8rn4mn!eLb7)UGt`rQN4zi@\MU~гΟf& ggUwdđ.#uӃq)Sn7qA2n2#q3#L`LpEiJ3_(d'ɰ:UBuN;0Ydy^z˜-;ҝ>%#T,=lee@v8Y+d`P#&ax9X "}] mk ]<>xc>G5ѐ7 E84MK[tت/mR !4A~ !_'B@v۰G*(emKm
.9h+`$Ths^O6{,
Nka}*(X;mQ2еϢz"C®e' gԣ
gqy.a#$&prHlQ6a8]B(!hLFAd_0d]Xh|o B5b+t&@a7I%x1[+S|igTR#8-T|URKs1}}<οzVouY-DzJSgaӬaѶb5]D=Td\L3Sޯ{uUxk|ĝP.6]Sك>8L^op'p
gp
wﻐry<EP掸}td
M *ړ346|'W(v?օ(D[NV$ƈi1~CGtj>``tnY2)b;]YEs\{VHzJNio&a|#k6! ^aÏX/Nät蛌=z3vZ*fTb.TD% Rn434eBA2N+30fhvR&;(dq٢xIimAݷy؍5>)tɰK'lܭY+1)Qӥ9 v2Sʈjjvé+.u8?-߷UE6_dfTfX~ZBC-o\nRhm%:%_2ûR /ǿ䇦wӻ2M[JgYmS3QNnYUZ9j8Df%qYSd$zߙP цQW ^I-_b{5XO\{Gtzfѽ>{+>WOf/%2=ۄn֟~
1L {wWd;_WdX1($UKlDy+<͈ޣ[3
фCDo=5$mvu1x:oiY:#<N\@FE""Kht:8Dlsҥz'> $K#-'q/h|<#,C!E4eF
8*kzFܲO \+6rѻeh+
VziJ:A.o
=JoƸ?3gE%I굆 Y%hCnH{4`B)ܣ/JB<{( @"<2ned,exFŜC;3HV@Ns4VZɖ~26`3XfYHj_ZG>w=u`sn[A۸h[f<2<Kvm/
8*Rdy`#!kp,Ҿ(#o[F}I|'~a/q~1 B悓B*MHYV*)2U?˘@0705pIk &XL(&S& gUrBZLHEn$[yַe̦9L='etk)Jb[8Lm$73`<.g
b2zr|^ls<ߨLg
3/GVT6+=%84}6H6bRtܳGTUb&1_
R߫̕DԈmW\#J7ԿK&U|mNzGNNÀOai.fϽ'ڊ}|BT3"$z#`bmUBVBLϣ,<#M$3n3fKa+U=V"uXFl{9Ƿ1%=J""N@>ɺξ^-+?rD5%P+5RK%":1
d:'%#@3Pqck0%h.yfM
9qUѧS^Lţff*ʟD`~VP`E?Qۮ"UuEpdmer4ʫ&u0(e da㊜̃sTtRP{[&|"9@)\TfTgJewY.cG^,?Nvg,Q+tgEٽ/
?VϔWz K@gLߨ;+;xY鰲^:p[=rQ7mDG%|ϋXg(r#dx4CoLǧC=5ay܋b M3e!7.CnQIȀ#Td++&