Compare commits

...

78 Commits

Author SHA1 Message Date
dfs
324aa01f80 Remove logo stuff from tkremind. 2005-04-14 17:34:34 +00:00
dfs
8d0adfa6b7 New logo in build.tk 2005-04-14 17:33:26 +00:00
dfs
bffae3724c Corrected typo in docs. 2005-04-14 12:30:58 +00:00
dfs
a60dc3d1c8 Set status to "Editor already active" if editor is open and a reminder
is right-clicked.
2005-04-12 13:50:29 +00:00
dfs
df9977d4da Force gzip. 2005-04-12 13:41:54 +00:00
dfs
c31678d28e Updated man page for tkremind. 2005-04-12 13:41:27 +00:00
dfs
40c1a5a3ee Add hooks so right-clicking on a reminder brings up file on that line. 2005-04-12 02:30:21 +00:00
dfs
846dbd9338 Fix it so "SPECIAL COLOR" reminders are sorted as if they were MSG-type
reminders in the calendar.
2005-04-12 01:49:45 +00:00
dfs
2bfed13ebc Updated copyright dates. 2005-04-12 01:27:52 +00:00
dfs
2a5c625a7f Updated WHATSNEW file. 2005-04-12 01:25:58 +00:00
dfs
7660e4a5f1 Updated COPYRIGHT 2005-04-12 01:25:52 +00:00
dfs
779672a5b5 Updated README files. 2005-04-12 01:18:22 +00:00
dfs
46e9ac86bc Skip comments in remind -p output. 2005-04-12 01:14:48 +00:00
dfs
8d6ca79934 Fix regression test error. 2005-04-12 00:59:41 +00:00
dfs
2212d1eebe Create bindir and mandir/man1 2005-04-12 00:57:56 +00:00
dfs
c78c284f19 Updated docs for -l option 2005-04-12 00:57:48 +00:00
dfs
b6b30637c6 Make rem2html ignore "#" lines. 2005-04-12 00:51:36 +00:00
dfs
b17198697c Make rem2ps ignore lines beginning with '#' 2005-04-12 00:49:07 +00:00
dfs
3ec57a608d Add -l option for printing out line numbers (Paul Pelzl) 2005-04-12 00:44:07 +00:00
dfs
49cd14846c Fix bug in parsing unterminated date literals. 2004-09-04 03:17:09 +00:00
dfs
1fd794a5bc Documented COLOR special and arbitrary media sizes. 2004-08-11 14:59:49 +00:00
dfs
5848991c27 Bump version to 03.00.23 2004-08-11 14:54:11 +00:00
dfs
d71f92d034 Fixed typos. 2004-08-11 02:22:35 +00:00
dfs
f9719ae7f5 Fixed typos. 2004-08-11 02:14:36 +00:00
dfs
4e0be6645a ? 2004-08-11 02:01:46 +00:00
dfs
da25a18610 Added support for SPECIAL COLOR. 2004-08-11 01:55:39 +00:00
dfs
7bc3aa52d4 Added support for SPECIAL COLOR and for arbitrary media sizes. 2004-08-11 01:55:32 +00:00
dfs
ca5bb13096 Added support for SPECIAL COLOR 2004-08-11 01:55:20 +00:00
dfs
da124475fa Allow specification of arbitrary media sizes in rem2ps. 2004-08-09 19:48:04 +00:00
dfs
ff04b2e481 Whitespace cleanup. 2001-11-06 15:51:37 +00:00
dfs
09d66135b2 Change phone number to work number. 2001-11-05 14:41:36 +00:00
dfs
65cb72f7e8 *** empty log message *** 2001-05-07 14:15:22 +00:00
dfs
8ae1f93899 Made canvas background white. 2001-05-07 14:14:21 +00:00
dfs
0017f81da5 Made timed reminders have finer (5-minute) granularity. 2001-05-07 14:13:15 +00:00
dfs
8c782c5b4e Updated docs. 2001-05-07 14:12:58 +00:00
dfs
ffd283d779 Updated docs. 2001-05-07 14:08:08 +00:00
dfs
b9227e11df Corrected Hebrew dates for Yom Hazikaron/Yom Ha'atzmaut when 5 Iyar
falls on a Saturday.
2001-05-07 14:06:17 +00:00
dfs
5a289add73 *** empty log message *** 2000-12-18 14:09:16 +00:00
dfs
614254a40d Added Icelandic language. 2000-12-18 14:05:29 +00:00
dfs
e31981c4c8 -- Bumped version to 3.0.22 2000-06-26 14:50:52 +00:00
dfs
eb67e7757b -- Doh. Config stuff. 2000-06-26 14:47:25 +00:00
dfs
ececf4a76e -- Added option to name cgi files *.cgi 2000-06-26 14:44:17 +00:00
dfs
0a437420d8 -- Fixed serious bug -- NumQueued was not being incremented. 2000-06-26 14:44:07 +00:00
dfs
b6ddc22c80 -- Added option to display all reminders on startup; added ability to delete
a reminder from the popup dialog.
2000-06-26 14:43:51 +00:00
dfs
83d88affb7 -- Updated documentation. 2000-06-26 14:43:34 +00:00
dfs
5ae835db6c -- Clarified build instructions. 2000-06-26 14:43:25 +00:00
dfs
47e16f5525 -- Updated docs. 2000-03-26 00:01:32 +00:00
dfs
a6a3dffbd6 -- Changed packing order so buttons don't disappear. 2000-03-25 23:59:30 +00:00
dfs
9d1fcb19bf -- Fixed bug in configure.in 2000-03-15 16:05:18 +00:00
dfs
7176277ddb -- Moved no-longer-supported files to OBSOLETE. 2000-03-15 16:03:36 +00:00
dfs
d9acf28ea5 -- Updated WHATSNEW doc. 2000-03-15 15:58:46 +00:00
dfs
00bbb8b159 -- Updated e-mail address. 2000-03-15 15:51:33 +00:00
dfs
dbe22e99ee -- Added -Wall -Wstrict-prototype to gcc invocation. 2000-03-15 15:42:37 +00:00
dfs
361aa04c6d -- Clarified build instructions. 2000-03-13 17:40:38 +00:00
dfs
7e82b93a84 *** empty log message *** 2000-03-12 12:52:02 +00:00
dfs
36731d2606 -- More copyright fixes. 2000-02-18 03:55:47 +00:00
dfs
2e3ca89e0b -- More copyright message fixes. 2000-02-18 03:53:45 +00:00
dfs
394c4d0791 -- Fixed typo. 2000-02-18 03:48:53 +00:00
dfs
2bc3d991c1 -- Updated contact info, copyright years, etc. 2000-02-18 03:45:11 +00:00
dfs
a479ea971d -- Added "dusk" and "dawn" functions, courtesy of Ron Aaron. 2000-02-18 03:08:18 +00:00
dfs
075a491847 -- Fixed typo in queue.c which caused compilation failure for compilers
without function prototypes.
2000-02-02 20:20:33 +00:00
dfs
fefaea005b -- Added syntax highlighting file for Vim. 2000-02-02 20:20:13 +00:00
dfs
c564fa6165 -- Updated WHATSNEW 2000-02-02 20:20:00 +00:00
dfs
0f4d6b5f8b -- Removed "id" field from queued reminder. 1999-10-18 20:38:48 +00:00
dfs
55059d60e7 -- Updated regression test. 1999-10-18 20:38:18 +00:00
dfs
d45b590e59 -- Got the www scripts working properly. 1999-10-18 20:08:54 +00:00
dfs
76938d27f9 -- Updated what's-new doc. 1999-10-18 20:08:46 +00:00
dfs
e89b5a2d91 -- Fixed makefile. 1999-10-18 19:58:46 +00:00
dfs
a9ffc57ce6 -- Modified Makefile for my system 1999-10-18 19:57:38 +00:00
dfs
97fdee4616 -- Converted .gif images to .png 1999-10-18 19:55:10 +00:00
dfs
f9884f3e9d -- Added cm2rem.tcl script 1999-10-18 19:54:56 +00:00
dfs
87b9dbf36b -- Documented changes. 1999-10-18 19:54:45 +00:00
dfs
415c49fdb9 -- First more-or-less working cm2rem.tcl script. 1999-08-30 16:27:58 +00:00
dfs
89cbe86ad9 -- Decreased size of .gif images. 1999-08-23 18:14:09 +00:00
dfs
db605a774c -- Started on cm2rem conversion script. 1999-08-23 18:13:56 +00:00
dfs
0e00cf4ee9 -- Updated WHATSNEW doc. 1999-08-23 18:13:42 +00:00
dfs
5bfac19a2e -- Changed version to 3.0.21
-- Made queue.c restore some globals (LastTriggerDate, etc.) before
   issuing a reminder.
-- Removed version number where superfluous.
-- Fixed typo in dynbuf.c
1999-04-21 01:47:59 +00:00
dfs
ea34bd0950 -- Changed version to 3.0.21 1999-04-21 01:47:08 +00:00
111 changed files with 1927 additions and 2635 deletions

View File

@@ -1,4 +1,4 @@
$Id: ACKNOWLEDGEMENTS,v 1.1 1998-01-19 03:33:34 dfs Exp $
$Id: ACKNOWLEDGEMENTS,v 1.2 2000-02-18 03:45:11 dfs Exp $
I would like to thank the following people:
@@ -45,7 +45,7 @@ Finally, all those who donated money to support the production of
REMIND. Your donations were gratefully appreciated.
--
David F. Skoll <dfs@doe.carleton.ca> <aa775@freenet.carleton.ca>
David F. Skoll <dfs@roaringpenguin.com> <aa775@freenet.carleton.ca>
986 Eiffel Avenue
Ottawa, Ontario K2C 0J2
CANADA

View File

@@ -1,10 +1,10 @@
$Id: COPYRIGHT,v 1.11 1999-04-05 17:34:27 dfs Exp $
$Id: COPYRIGHT,v 1.16 2005-04-12 01:27:52 dfs Exp $
THE REMIND COPYRIGHT
1. REMIND refers to the entire set of files and documentation in the
REMIND package.
2. REMIND is Copyright 1999 by Roaring Penguin Software Inc.,
2. REMIND is Copyright 1999-2005 Roaring Penguin Software Inc.,
except where noted in individual files.
3. DISTRIBUTION AND USE
@@ -294,11 +294,8 @@ POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
--
David F. Skoll <dskoll@iname.com>
986 Eiffel Avenue
Ottawa, Ontario K2C 0J2
CANADA
David F. Skoll <dfs@roaringpenguin.com>
Tel. (613) 225-8687
Tel. (613) 231-6599
http://www.roaringpenguin.com

12
README
View File

@@ -27,8 +27,14 @@ If you do NOT have Tcl/Tk or are NOT running X Windows:
2) Edit the file "src/lang.h" to choose a language.
3) Type: "make"
3) Type: "./configure" (You can supply options; type "./configure --help"
for details.)
4) Type: "make install" -- you may need to be root to do this.
4) Type: "make"
$Id: README,v 1.4 1998-01-19 03:24:03 dfs Exp $
5) Type: "make install" -- you may need to be root to do this.
$Id: README,v 1.7 2000-06-26 14:43:25 dfs Exp $
Contact info: mailto:dfs@roaringpenguin.com
Home page: http://www.roaringpenguin.com/remind.html

1089
build.tk

File diff suppressed because it is too large Load Diff

499
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
dnl $Id: configure.in,v 1.5 1998-02-16 03:41:39 dfs Exp $
dnl $Id: configure.in,v 1.8 2000-03-15 16:05:19 dfs Exp $
AC_INIT(src/amiga.c)
AC_INIT(src/queue.c)
cat <<'EOF'
@@ -28,7 +28,7 @@ AC_CHECK_LIB(m, sqrt)
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(sys/file.h sys/time.h sys/types.h unistd.h malloc.h stdarg.h stdlib.h pwd.h)
AC_CHECK_HEADERS(sys/file.h sys/select.h sys/time.h sys/types.h unistd.h malloc.h stdarg.h stdlib.h pwd.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
@@ -43,4 +43,8 @@ AC_HEADER_TIME
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(mktime putenv strstr timegm difftime)
if test "$GCC" = yes; then
CFLAGS="$CFLAGS -Wall -Wstrict-prototypes"
fi
AC_OUTPUT(src/Makefile)

View File

@@ -1,6 +1,9 @@
$Id: README.AMIGA,v 1.2 1998-01-17 04:50:33 dfs Exp $
$Id: README.AMIGA,v 1.4 2005-04-12 01:18:22 dfs Exp $
REMIND version 3.0 for AmigaDOS
I DO NOT SUPPORT REMIND ON AmigaDOS. THE AmigaDOS PORT HAS NOT BEEN MAINTAINED
FOR QUITE A WHILE. IT MOST LIKELY NO LONGER WORKS.
REMIND is a sophisticated alarm/calendar program. Details are given
in the man page, "remind.1".
@@ -20,12 +23,12 @@ This will create remind, which is ready to be executed.
See README.UNIX for more info.
--
David F. Skoll <dfs@doe.carleton.ca>
David F. Skoll <dfs@roaringpenguin.com>
986 Eiffel Avenue
Ottawa, Ontario K2C 0J2
CANADA
Tel. (613) 225-8687
http://www.roaringpenguin.com/remind.html

View File

@@ -1,8 +1,8 @@
$Id: README.BCC,v 1.2 1998-01-17 04:50:33 dfs Exp $
$Id: README.BCC,v 1.4 2005-04-12 01:18:22 dfs Exp $
REMIND version 3.0 for Borland C++
IMPORTANT NOTE: BCC SUPPORT MAY BE BROKEN. I DON'T CARE. I'M NOT
MAINTAINING IT ANY LONGER.
MAINTAINING IT ANY LONGER. IT MOST LIKELY NO LONGER WORKS.
1 - Read the file COPYRIGHT. (This may be called COPYRIGH on your
MS-DOS system.)
@@ -24,10 +24,10 @@ directories.
See README.UNIX for more info.
--
David F. Skoll <dfs@doe.carleton.ca>
David F. Skoll <dfs@roaringpenguin.com>
986 Eiffel Avenue
Ottawa, Ontario K2C 0J2
CANADA
Tel. (613) 225-8687
http://www.roaringpenguin.com/remind.html

View File

@@ -1,8 +1,8 @@
$Id: README.DOS,v 1.2 1998-01-17 04:50:33 dfs Exp $
$Id: README.DOS,v 1.4 2005-04-12 01:18:22 dfs Exp $
REMIND version 3.0 for MS-DOS
IMPORTANT NOTE: DOS SUPPORT MAY BE BROKEN. I DON'T CARE. I NO LONGER
MAINTAIN THE DOS VERSION.
MAINTAIN THE DOS VERSION. IT MOST LIKELY NO LONGER WORKS.
REMIND is a sophisticated alarm/calendar program. Details are given
in the man page, "remind.1".
@@ -29,10 +29,10 @@ as well as U.S. and Jewish holidays.
See README.UNIX for more info.
--
David F. Skoll <dfs@doe.carleton.ca>
David F. Skoll <dfs@roaringpenguin.com>
986 Eiffel Avenue
Ottawa, Ontario K2C 0J2
CANADA
Tel. (613) 225-8687
http://www.roaringpenguin.com/remind.html

View File

@@ -1,6 +1,9 @@
$Id: README.OS2,v 1.2 1998-01-17 04:50:34 dfs Exp $
$Id: README.OS2,v 1.4 2005-04-12 01:18:22 dfs Exp $
REMIND version 3.0 for OS/2
I DO NOT SUPPORT REMIND ON OS/2. THE OS/2 PORT HAS NOT BEEN MAINTAINED
FOR QUITE A WHILE. IT MOST LIKELY NO LONGER WORKS.
This file contains instructions for compiling Remind under OS/2 with
Eberhard Mattes' emx/gcc compiler and with the Microsoft C compiler.
There are a number of targets in Makefile.os2, including OS/2-only
@@ -99,11 +102,13 @@ exit
See README.UNIX for some more information about Remind.
--
David F. Skoll <dfs@doe.carleton.ca>
David F. Skoll <dfs@roaringpenguin.com>
986 Eiffel Avenue
Ottawa, Ontario K2C 0J2
CANADA
Tel. (613) 225-8687
http://www.roaringpenguin.com/remind.html

View File

@@ -1,4 +1,4 @@
$Id: README.UNIX,v 1.4 1998-01-19 03:24:09 dfs Exp $
$Id: README.UNIX,v 1.5 2000-02-18 03:45:33 dfs Exp $
REMIND version 3.0 for UNIX
REMIND is a sophisticated alarm/calendar program. Details are given
@@ -125,9 +125,10 @@ exit
--
David F. Skoll <dfs@doe.carleton.ca>
David F. Skoll <dfs@roaringpenguin.com>
986 Eiffel Avenue
Ottawa, Ontario K2C 0J2
CANADA
Tel. (613) 225-8687
http://www.roaringpenguin.com/remind.html

View File

@@ -1,6 +1,9 @@
$Id: README_QDOS,v 1.3 1998-03-01 20:43:04 dfs Exp $
$Id: README_QDOS,v 1.5 2005-04-12 01:18:22 dfs Exp $
REMIND version 3.0.19 for QDOS / SMSQ
I DO NOT SUPPORT REMIND ON QDOS. THE QDOS PORT HAS NOT BEEN MAINTAINED
FOR QUITE A WHILE. IT MOST LIKELY NO LONGER WORKS.
REMIND is a sophisticated alarm/calendar program. Details are given
in the documentation file, "remind_doc" (QUILL format).
[Note from David Skoll -- I was not sent the file `remind_doc', so

View File

@@ -1,5 +1,82 @@
CHANGES TO REMIND
* Version 3.0 Patch 23
+ MINOR ENHANCEMENTS
- Added the COLOR special for putting colored reminders in the calendar.
Supported by the HTML, Tcl/Tk and PostScript back-ends.
- Many minor tweaks to tkremind.
- Added ability to specify paper size in inches or centimetres to rem2ps.
- Added the "-l" option to Remind. This outputs additional information
for back-end programs that use the "-p" output format. Currently
used only by the "tkremind" back-end.
- Fixed dates for Yom Hazikaron and Yom Ha'atzmaut if 5 Iyar falls on a
Saturday. (Hebrew calendar fix.)
- Added support for the Icelandic language, courtesy of Björn Davíðsson.
+ BUG FIXES
- Fixed parser error for unterminated date constant: '2005/01/01
* Version 3.0 Patch 22
+ MINOR ENHANCEMENTS
- Added option to have TkRemind display all of today's reminders in a text
box on startup. This option is on by default.
- Makefile in "www" directory allows you to add ".cgi" suffix to CGI scripts.
- Added option to completely delete a reminder from the reminder file in
the timed reminder popup dialog.
- Clarified build instructions.
+ BUG FIXES
- Fixed packing order in TkRemind so resizing window doesn't make control
buttons disappear.
- Fixed serious bug in which background queued reminders were ignored and
Remind simply exited. Doh! Sorry about that.
* Version 3.0 Patch 21
+ MINOR ENHANCEMENTS
- Updated copyright years and contact info.
- Changed GIF images to PNG to avoid patent problems.
- Added "cm2trem.tcl" to convert from CDE's "cm" calendar manager to Remind
format. It handles only an older version of "cm" data; there is a utility
available (under Solaris anyway) to convert newer files to the older "cm"
format.
- Fixed the scripts in the "www" directory to install and work properly.
- Added "remind.vim" file for Vim syntax highlighting of Remind files,
thanks to Davide Alberani.
- Added "dusk" and "dawn" built-in functions, thanks to Ron Aaron.
+ BUG FIXES
- Files for no-longer-supported platforms (OS/2, amiga, MS-DOS) have been
moved to OBSOLETE subdirectory. They will disappear unless someone
wants to maintain them.
- Fixed typo which caused compilation failure on compilers without function
prototypes. Thanks to Ian Darwin for the patch.
- Fixed compilation problem on FreeBSD, IRIX, Tru64 and other UNIXes.
* Version 3.0 Patch 20
+ NEWS

View File

@@ -17,13 +17,13 @@
# "#COLORS" for examples of ANSI color escape sequences. #
# #
# This file is part of REMIND. #
# Copyright (C) 1992-1997 by David F. Skoll #
# Copyright (C) 1999 by Roaring Penguin Software Inc. #
# Copyright (C) 1992-1997 David F. Skoll #
# Copyright (C) 1999-2000 Roaring Penguin Software Inc. #
# #
#############################################################################
#
# $Id: defs.rem,v 1.3 1999-04-05 17:34:38 dfs Exp $
# $Id: defs.rem,v 1.5 2001-05-07 14:06:17 dfs Exp $
#
RUN OFF
@@ -472,7 +472,8 @@ SET Reform 0
FSET _h(x, y) TRIGGER(HEBDATE(x,y))
FSET _h2(x, y) HEBDATE(x, y, TODAY()-7)
FSET _PastSat(x, y) TRIGGER(IIF(WKDAYNUM(_h2(x,y))!=6, _h2(x,y), _h2(x,y)+1))
FSET _BackTwoFri(x, y) TRIGGER(IIF(WKDAYNUM(_h2(x,y))!=5, _h2(x,y), _h2(x,y)-2))
FSET _BackTwoSat(x, y) TRIGGER(IIF(WKDAYNUM(_h2(x,y))!=6, _h2(x,y), _h2(x,y)-2))
# Default values in case InIsrael and Reform are not set
SET InIsrael VALUE("InIsrael", 0)
SET Reform VALUE("Reform", 0)
@@ -542,8 +543,8 @@ IF !InIsrael && !Reform
ENDIF
[_h(27, "Nisan")] ++4 MSG %"Yom HaShoah%" is %b.
[_h(4, "Iyar")] ++4 MSG %"Yom HaZikaron%" is %b.
[_h(5, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
[_BackTwoFri(4, "Iyar")] ++4 MSG %"Yom HaZikaron%" is %b.
[_BackTwoSat(5, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
# Not sure about Reform's position on Lag B'Omer
IF !Reform

53
examples/remind.vim Normal file
View File

@@ -0,0 +1,53 @@
" Vim syntax file
" Language: Remind
" Maintainer: Davide Alberani <alberanid@bigfoot.com>
" Last change: 03 Dec 1999
" Version: 0.1
" URL: http://members.xoom.com/alberanid/vim/syntax/remind.vim
"
" remind is a sophisticated reminder service
" you can download remind from ftp://ftp.doe.carleton.ca/pub/remind-3.0/
" clear any unwanted syntax defs
syn clear
" shut case off
syn case ignore
syn keyword remindCommands REM OMIT SET FSET UNSET
syn keyword remindExpiry UNTIL SCANFROM SCAN WARN SCHED
syn keyword remindTag PRIORITY TAG
syn keyword remindTimed AT DURATION
syn keyword remindMove ONCE SKIP BEFORE AFTER
syn keyword remindSpecial INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP
syn keyword remindRun MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
syn keyword remindConditional IF ELSE ENDIF IFTRIG
syn match remindComment "#.*$"
syn region remindString start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline
syn region remindString start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline
syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
syn match remindVar "\$[_a-zA-Z][_a-zA-Z0-9]*"
syn match remindSubst "%[^ ]"
syn match remindAdvanceNumber "\(\*\|+\|-\|++\|--\)[0-9]\+"
if !exists("did_remind_syntax_inits")
let did_remind_syntax_inits = 1
hi link remindCommands Function
hi link remindExpiry Repeat
hi link remindTag Label
hi link remindTimed Statement
hi link remindMove Statement
hi link remindSpecial Include
hi link remindRun Function
hi link remindConditional Conditional
hi link remindComment Comment
hi link remindString String
hi link remindDebug Debug
hi link remindVar Identifier
hi link remindSubst Constant
hi link remindAdvanceNumber Number
endif
let b:current_syntax = "remind"
"EOF vim: ts=8 noet tw=100 sw=8 sts=0

29
man/cm2rem.1 Normal file
View File

@@ -0,0 +1,29 @@
.\" $Id: cm2rem.1,v 1.2 2000-03-15 15:51:36 dfs Exp $
.TH CM2REM 1 "18 October 1999"
.UC4
.SH NAME
cm2rem.tcl \- Convert Sun's "cm" input file to Remind format
.SH SYNOPSIS
.B cm2rem.tcl < cm_file > remind_file
.SH DESCRIPTION
\fBcm2rem.tcl\fR reads the Sun calendar manager data file and converts
it into a \fBRemind\fR script. Note that \fBcm2rem.tcl\fR can convert
\fIonly\fR version 3 calendar manager files. If you are using version 4
files, there should be a system utility to convert them to version 3 files.
.SH AUTHOR
\fBcm2rem.tcl\fR is supported by Roaring Penguin Software
Inc. (http://www.roaringpenguin.com)
.PP
\fBcm2rem.tcl\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
.SH BUGS
Not all of the Sun calendar manager options are respected. In particular,
nothing is done for e-mail actions. Also, the resulting Remind script
is not editable with \fBTkRemind\fR; you can only edit it with a text
editor.
.PP
\fBcm2rem.tcl\fR requires Tcl/Tk version 8.0 or higher. The
\fBtclsh\fR interpreter must be on your \fBpath\fR.
.SH SEE ALSO
\fBremind(1)\fR, \fBtkremind(1)\fR

View File

@@ -1,5 +1,5 @@
.\" $Id: rem2ps.1,v 1.3 1999-04-13 01:46:18 dfs Exp $
.TH REM2PS 1 "1 February 1998"
.\" $Id: rem2ps.1,v 1.6 2005-04-12 00:57:48 dfs Exp $
.TH REM2PS 1 "11 April 2005"
.UC4
.SH NAME
rem2ps \- draw a PostScript calendar from Remind output
@@ -112,6 +112,15 @@ Quarto
.TP
10x14
10 x 14 in.
.TP
\fIX\fRx\fIY\fRin
\fIX\fR by \fIY\fR inches, where \fIX\fR and \fIY\fR can be floating-point
numbers.
.TP
\fIX\fRx\fIY\fRcm
\fIX\fR by \fIY\fR centimetres, where \fIX\fR and \fIY\fR can be floating-point
numbers.
.PP
Type "rem2ps -m help" for a list of available media. Note that the media
type (and all \fBRem2ps\fR options) are case-sensitive. If you don't use
@@ -370,11 +379,21 @@ emits the line:
However, back-ends should keep reading until EOF in case more data for
subsequent months is forthcoming.
.PP
If you supply the \fB\-l\fR option to \fBremind\fR, then reminders
may be preceded by a line that looks like this:
.PP
\fB# fileinfo \fIlineno filename\fR
.PP
The word \fBfileinfo\fR is literal; \fIlineno\fR and \fIfilename\fR specify
the line number and file name of the file containing the reminder. Back-ends
that don't care about this information should ignore lines starting with
"#" (except, of course, for the # rem2ps lines.)
.PP
.SH AUTHOR
Rem2PS is now supported by Roaring Penguin Software
Inc. (http://www.roaringpenguin.com)
.PP
Rem2PS was written by David F. Skoll (dskoll@iname.com).
Rem2PS was written by David F. Skoll <dfs@roaringpenguin.com>.
.SH BUGS
All \fBRem2ps\fR options are case-sensitive, unlike \fBRemind\fR.
Any time you supply

View File

@@ -1,5 +1,5 @@
.\" $Id: remind.1,v 1.10 1999-04-13 01:46:19 dfs Exp $
.TH REMIND 1 "1 February 1998"
.\" $Id: remind.1,v 1.15 2005-04-12 00:57:48 dfs Exp $
.TH REMIND 1 "11 April 2005"
.UC 4
.SH NAME
remind \- a sophisticated reminder service
@@ -64,6 +64,13 @@ option, \fIn\fR cannot start with "+"; it must specify a number of months.
The format of the \fB\-p\fR output is described in the \fBrem2ps(1)\fR
man page.
.TP
.B \-l
If you use the \-l option in conjunction with the \-p option, then
\fBRemind\fR outputs additional information for back-end programs such
as \fBrem2ps\fR. This additional information lets the back-end programs
correlate a reminder with the source file and line number that produced
it.
.TP
.B \-m
The \fB\-m\fR option causes the \fB\-c\fR or \fB\-p\fR options to produce
a calendar whose first column is Monday rather than Sunday.
@@ -1068,7 +1075,7 @@ is similar to \fB%3\fR but displays the current time.
.TP
.B
%"
(percent-doublequote) is removed. This sequence is not
(percent-doublequote - ") is removed. This sequence is not
used by the substitution filter,
but is used to tell \fBRemind\fR which text to include in a calendar
entry when the \fB\-c\fR, \fB\-s\fR or \fB\-p\fR option is chosen.
@@ -1885,6 +1892,10 @@ converted using the reverse of procedures described above. A
The \fBdate()\fR function returns a \fBDATE\fR object with the year,
month and day components specified by \fIy\fR, \fIm\fR and \fId\fR.
.TP
.B dawn([d_date])
Returns the time of "civil dawn" on the specified \fIdate\fR. If \fIdate\fR
is omitted, defaults to \fBtoday()\fR.
.TP
.B day(d_date)
This function takes a \fBDATE\fR as an argument, and returns an \fBINT\fR
which is the day-of-month component of \fIdate\fR.
@@ -1929,6 +1940,10 @@ will produce undefined results.
\fBRemind\fR.
.RE
.TP
.B dusk([d_date])
Returns the time of "civil twilight" on the specified \fIdate\fR. If
\fIdate\fR is omitted, defaults to \fBtoday()\fR.
.TP
.B easterdate(di_arg)
If \fIarg\fR is an \fBINT\fR, then returns the date of Easter Sunday
for the specified year. If \fIarg\fR is a \fBDATE\fR, then returns the
@@ -3491,7 +3506,7 @@ to \fBRemind\fR backends, such as \fBtkremind\fR or \fBRem2PS\fR.
They are used only when piping data from a \fBremind -p\fR line.
.PP
The various \fBSPECIAL\fRs recognized are particular for each
backend; however, there are two \fBSPECIAL\fRs which all backends
backend; however, there are three \fBSPECIAL\fRs which all backends
should attempt to support. They are currently supported by
\fBRem2PS\fR, \fBtkremind\fR and \fBrem2html\fR.
.PP
@@ -3537,6 +3552,18 @@ size.
Note that only the \fBRem2PS\fR backend supports \fImoonsize\fR
and \fIfontsize\fR; the other backends use fixed sizes.
.PP
The \fBCOLOR\fR special lets you place colored reminders in the
calendar. Use it like this:
.nf
REM ... SPECIAL COLOR 255 0 0 This is a bright red reminder
REM ... SPECIAL COLOR 0 128 0 This is a dark green reminder
.fi
Immediately following COLOR should be three decimal numbers ranging
from 0 to 255 specifying red, green and blue intensities, respectively.
The rest of the line is the text to put in the calendar.
.PP
.SH MISCELLANEOUS
.PP
.B COMMAND ABBREVIATIONS
@@ -3713,7 +3740,7 @@ versions of \fBRemind\fR prior to 03.00.01.
Remind is now supported by Roaring Penguin Software
Inc. (http://www.roaringpenguin.com)
.PP
David F. Skoll (dskoll@iname.com) wrote \fBRemind\fR. The moon code
David F. Skoll <dfs@roaringpenguin.com> wrote \fBRemind\fR. The moon code
was copied largely unmodified from "moontool" by John Walker. The
sunrise and sunset functions use ideas from programs by Michael
Schwartz and Marc T. Kaufman. The Hebrew calendar support was taken
@@ -3756,6 +3783,9 @@ Liviu Daia
.PP
\fBSpanish\fR --
Rafa Couto
.PP
\fBIcelandic\fR --
Björn Davíðsson
.SH BUGS
.PP
There's no good reason why read-only system variables are not

View File

@@ -1,4 +1,4 @@
.\" $Id: tkremind.1,v 1.8 1999-04-13 01:46:20 dfs Exp $ "
.\" $Id: tkremind.1,v 1.11 2005-04-12 13:41:27 dfs Exp $ "
.TH TKREMIND 1 "15 February 1998"
.UC 4
.SH NAME
@@ -149,6 +149,13 @@ in the \fBPreview reminder\fR dialog.
If the reminder was not created with \fBTkRemind\fR, you can't edit
it with \fBTkRemind\fR.
.SH USING A TEXT EDITOR
If you have set the "text editor" option correctly, right-clicking
on a reminder will bring up a text editor on the file containing
the reminder. The cursor will be positioned on the line that
generated the reminder.
.SH BACKGROUND REMINDERS
If you create "timed" reminders, \fBTkRemind\fR will queue them in
@@ -168,6 +175,12 @@ certain aspects of \fBTkRemind\fR. The configuration options are:
If this is selected, \fBTkRemind\fR starts up iconified. Otherwise,
it starts up in a normal window.
.TP
.B Show Today's Reminders on Startup
If this is selected, \fBTkRemind\fR shows a text window containing reminders
which would be issued by "remind -q -a -r" on startup, and when the date
changes at midnight.
.TP
.B Confirm Quit
If this is selected, you will be asked to confirm when you press
@@ -197,6 +210,14 @@ background reminder pops up.
.B Feed popped-up reminder to command's standard input
If selected, feeds the text of the reminder to the command described
above.
.TP
.B Text Editor
This specifies a text editor to invoke when a reminder is right-clicked.
The characters "%d" are replaced with the lined number of the file
containing the reminder, and "%s" are replaced with the file name.
Useful strings might be "emacs +%d %s" or "gvim +%d %s"
.PP
Once you've configured the options the way you like them,
press \fBApply Options\fR to put them into effect, \fBSave Options\fR
@@ -309,7 +330,7 @@ This line is emitted in response to a \fBSTATUS\fR command. The number
TkRemind is now supported by Roaring Penguin Software
Inc. (http://www.roaringpenguin.com)
.PP
TkRemind was written by David F. Skoll (dskoll@iname.com)
TkRemind was written by David F. Skoll <dfs@roaringpenguin.com>.
\fBTkRemind\fR is Copyright 1996-1998 by David F. Skoll, Copyright
1999 by Roaring Penguin Software Inc.

View File

@@ -1,7 +1,7 @@
Begin3
Title: Remind
Version: 03.00.19
Entered-date: 9 May 1998
Version: 03.00.22
Entered-date: 12 Apr 1999
Description: Full-featured calendar/reminder program featuring
sophisticated date calculation, moon phases, sunrise/sunset,
Hebrew calendar, alarms, PostScript output, X-Windows
@@ -10,14 +10,14 @@ Description: Full-featured calendar/reminder program featuring
platforms. Includes scripts for making a nice WWW
calendar server.
Keywords: calendar reminder alarm datebook PostScript www
Author: aa775@freenet.carleton.ca (David F. Skoll)
Maintained-by: aa775@freenet.carleton.ca (David F. Skoll)
Primary-site: ftp.doe.carleton.ca /pub/Remind-3.0
266kB remind-3.0.19.tgz
Author: dskoll@iname.com (David F. Skoll)
Maintained-by: dskoll@iname.com (David F. Skoll)
Primary-site: http://www.roaringpenguin.com/remind.html
304kB remind-3.0.22.tgz
Alternate-site:
Original-site:
Platform: Linux, Solaris, SunOS, HP-UX -- virtually any UN*X-like
system. Wish 8.x required for TCL/Tk front-end, but
this is not essential to use the software.
Copying-policy: GPL (No ports to MS Windows allowed)
Copying-policy: GPL
End

361
scripts/cm2rem.tcl Executable file
View File

@@ -0,0 +1,361 @@
#!/bin/sh
# -*-Mode: TCL;-*-
#--------------------------------------------------------------
# cm2rem.tcl
#
# A cheesy Tcl script to convert Sun's "cm" calendar manager
# files (version 3 only) to Remind format.
#
# This file is part of REMIND.
# Copyright (C) 1992-1998 by David F. Skoll
# Copyright (C) 1999-2000 by Roaring Penguin Software Inc.
#
#--------------------------------------------------------------
# $Id: cm2rem.tcl,v 1.3 2000-02-18 03:45:38 dfs Exp $
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
set i 0
foreach month {January February March April May June
July August September October November December} {
incr i
set MonthNum($month) $i
set FullMonth([string range $month 0 2]) $month
}
#***********************************************************************
# %PROCEDURE: convertParens
# %ARGUMENTS:
# line -- a line read from a cm file
# %RETURNS:
# A new line with all ( and ) outside quotes converted to { and }.
# This cheap trick allows us to use Tcl's built-in list manipulation
# functions to munge the line.
#***********************************************************************
proc convertParens { line } {
# Convert all ( and ) to { and } unless they are inside a quoted
# string
set out ""
set len [string length $line]
set inQuotes 0
for {set i 0} {$i < $len} {incr i} {
set char [string range $line $i $i]
if {$char == "\\" && $inQuotes} {
append out $char
incr i
set char [string range $line $i $i]
append out $char
continue
}
if {$char == "(" && !$inQuotes} {
set char \{
}
if {$char == ")" && !$inQuotes} {
set char \}
}
if {$char == "\""} {
set inQuotes [expr !$inQuotes]
}
append out $char
}
return $out
}
#***********************************************************************
# %PROCEDURE: processLine
# %ARGUMENTS:
# line -- a line read from a cm file
# %RETURNS:
# Nothing
# %DESCRIPTION:
# Processes a single line from the file, possibly writing a reminder
# in Remind format to stdout
#***********************************************************************
proc processLine { line } {
global Attributes
global FullMonth
catch {unset Attributes}
# Only convert lines which start with "(add"
if {[string range $line 0 3] != "(add"} {
return
}
set line [convertParens $line]
# Convert it to a list. CAREFUL: Potential security problem if
# $line contains something nasty.
eval set line $line
set Attributes(body) ""
foreach {key val} $line {
switch -exact -- $key {
"add" {
set Attributes(date) $val
}
"what:" {
append Attributes(body) $val
}
"details:" {
append Attributes(body) $val
}
"duration:" {
set Attributes(duration) $val
}
"period:" {
set Attributes(period) $val
}
"ntimes:" {
set Attributes(ntimes) $val
}
"attributes:" {
set Attributes(action) $val
}
}
}
if {[info exists Attributes(action)]} {
# Nuke quotes and commas in action
regsub -all {[,\"]} $Attributes(action) { } Attributes(action)
# Add spaces to pairs
regsub -all \}\{ $Attributes(action) \}\ \{ Attributes(action)
# Add another pair of brackets to make a proper list
set Attributes(action) "{$Attributes(action)}"
# Convert to a real Tcl list
eval set Attributes(action) $Attributes(action)
}
# Split out date into month, day, year, time parts
scan $Attributes(date) "%s%s%s%s%s" wkday month day time year
set time [string range $time 0 4]
set Attributes(wkday) $wkday
set Attributes(month) $FullMonth($month)
set Attributes(day) $day
set Attributes(time) $time
set Attributes(year) $year
# Convert newlines in body to spaces
set body $Attributes(body)
regsub -all "\n" $body " " body
# TODO: Escape BODY to get rid of [] chars.
set Attributes(body) $body
# Convert to Reminder format
convertReminder
}
#***********************************************************************
# %PROCEDURE: convertReminder
# %ARGUMENTS:
# None -- uses global Attributes variable which must be filled in
# %RETURNS:
# Nothing
# %DESCRIPTION:
# Converts a reminder to Remind format.
#***********************************************************************
proc convertReminder {} {
global Attributes
switch -exact $Attributes(period) {
single { convertSingleReminder }
daily { convertDailyReminder }
weekly { convertWeeklyReminder }
monthly { convertMonthlyReminder }
yearly { convertYearlyReminder }
default {
puts "\# Unable to convert reminder with period $Attributes(period)"
puts "\# Body is: $Attributes(body)"
}
}
}
#***********************************************************************
# %PROCEDURE: convertSingleReminder
# %ARGUMENTS:
# None -- uses global Attributes variable which must be filled in
# %RETURNS:
# Nothing
# %DESCRIPTION:
# Converts a reminder with "single" period to Remind format.
#***********************************************************************
proc convertSingleReminder {} {
global Attributes
puts "REM $Attributes(day) $Attributes(month) $Attributes(year) [at][duration]MSG $Attributes(body)"
}
#***********************************************************************
# %PROCEDURE: convertDailyReminder
# %ARGUMENTS:
# None -- uses global Attributes variable which must be filled in
# %RETURNS:
# Nothing
# %DESCRIPTION:
# Converts a reminder with "daily" period to Remind format.
#***********************************************************************
proc convertDailyReminder {} {
global Attributes
set ntimes [expr $Attributes(ntimes) - 1]
if {$ntimes <= 1} {
convertSingleReminder
return
}
set until [getUntilDate $Attributes(day) $Attributes(month) $Attributes(year) $ntimes]
puts "REM $Attributes(day) $Attributes(month) $Attributes(year) *1 [at][duration]UNTIL $until MSG $Attributes(body)"
}
#***********************************************************************
# %PROCEDURE: convertWeeklyReminder
# %ARGUMENTS:
# None -- uses global Attributes variable which must be filled in
# %RETURNS:
# Nothing
# %DESCRIPTION:
# Converts a reminder with "daily" period to Remind format.
#***********************************************************************
proc convertWeeklyReminder {} {
global Attributes
set ntimes [expr $Attributes(ntimes) - 1]
if {$ntimes <= 1} {
convertSingleReminder
return
}
set until [getUntilDate $Attributes(day) $Attributes(month) $Attributes(year) [expr $ntimes * 7]]
puts "REM $Attributes(day) $Attributes(month) $Attributes(year) *7 [at][duration]UNTIL $until MSG $Attributes(body)"
}
#***********************************************************************
# %PROCEDURE: convertMonthlyReminder
# %ARGUMENTS:
# None -- uses global Attributes variable which must be filled in
# %RETURNS:
# Nothing
# %DESCRIPTION:
# Converts a reminder with "monthly" period to Remind format.
#***********************************************************************
proc convertMonthlyReminder {} {
global Attributes
set ntimes [expr $Attributes(ntimes) - 1]
if {$ntimes <= 1} {
convertSingleReminder
return
}
# If repetition > 1000, it's infinite
if {$ntimes > 1000} {
puts "REM $Attributes(day) [at][duration]MSG $Attributes(body)"
return
}
### UNTIL date is fudged!
set until [getUntilDate $Attributes(day) $Attributes(month) $Attributes(year) [expr $ntimes * 30]]
puts "REM $Attributes(day) [at][duration]UNTIL $until MSG $Attributes(body)"
}
#***********************************************************************
# %PROCEDURE: convertYearlyReminder
# %ARGUMENTS:
# None -- uses global Attributes variable which must be filled in
# %RETURNS:
# Nothing
# %DESCRIPTION:
# Converts a reminder with "yearly" period to Remind format.
#***********************************************************************
proc convertYearlyReminder {} {
global Attributes
# No special handling of ntimes et al.
puts "REM $Attributes(day) $Attributes(month) [at][duration]MSG $Attributes(body)"
}
#***********************************************************************
# %PROCEDURE: at
# %ARGUMENTS:
# None -- uses Attributes global variable
# %RETURNS:
# A string providing the correct AT clause for a timed reminder.
#***********************************************************************
proc at {} {
global Attributes
if {![info exists Attributes(time)]} {
return ""
}
if {"$Attributes(time)" == ""} {
return ""
}
return "AT $Attributes(time) "
}
#***********************************************************************
# %PROCEDURE: duration
# %ARGUMENTS:
# None -- uses Attributes global variable
# %RETURNS:
# A string providing the correct DURATION clause for a timed reminder.
#***********************************************************************
proc duration {} {
global Attributes
if {![info exists Attributes(duration)]} {
return ""
}
if {"$Attributes(duration)" == ""} {
return ""
}
set h [expr $Attributes(duration) / 3600]
set remainder [expr $Attributes(duration) - $h*3600]
set m [expr $remainder / 60]
return "DURATION [format "%d:%02d " $h $m]"
}
#***********************************************************************
# %PROCEDURE: getUntilDate
# %ARGUMENTS:
# day, month, year -- a date
# days -- number of days to add to date
# %RETURNS:
# The date which is "days" later than supplied date in a correct UNTIL
# format.
#***********************************************************************
proc getUntilDate { day month year days } {
global RemindPipe
global MonthNum
set date "'$year/$MonthNum($month)/$day'"
puts $RemindPipe "MSG \[trigger($date + $days)\]%"
puts $RemindPipe "flush"
flush $RemindPipe
gets $RemindPipe line
return $line
}
catch {wm withdraw .}
# Start a Remind process to issue reminders
if {[catch {set RemindPipe [open "|remind -" "r+"]} err]} {
puts stderr "Error: Cannot run Remind: $err"
exit 1
}
puts $RemindPipe "banner %"
flush $RemindPipe
# Write some blurb
puts "\# Reminder file converted from \"cm\" data by cm2rem.tcl"
puts ""
while {[gets stdin line] >= 0} {
processLine $line
}
exit 0

View File

@@ -3,10 +3,10 @@
# This file is part of REMIND
#
# $Id: remind-all.sh,v 1.3 1999-04-05 17:34:40 dfs Exp $
# $Id: remind-all.sh,v 1.4 2000-02-18 03:45:39 dfs Exp $
#
# REMIND is Copyright (C) 1992-1998 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# Copyright (C) 1999-2000 Roaring Penguin Software Inc.
# This file is Copyright (C) 1990 by Bill Aten
# Thanks to Bill Aten for this script.

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
# Makefile.in for REMIND
#
# $Id: Makefile.in,v 1.11 1998-05-10 02:19:20 dfs Exp $
# $Id: Makefile.in,v 1.20 2005-04-12 13:41:54 dfs Exp $
VERSION= 03.00.19
VERSION=03.00.23
SHELL= /bin/sh
srcdir=@srcdir@
@@ -19,10 +19,11 @@ INSTALL_DATA=@INSTALL_DATA@
PROGS= remind rem2ps
SCRIPTS= $(srcdir)/../scripts/kall $(srcdir)/../scripts/rem \
$(srcdir)/../scripts/tkremind
$(srcdir)/../scripts/tkremind $(srcdir)/../scripts/cm2rem.tcl
MANS= $(srcdir)/../man/kall.1 $(srcdir)/../man/rem.1 \
$(srcdir)/../man/rem2ps.1 $(srcdir)/../man/remind.1 \
$(srcdir)/../man/tkremind.1
$(srcdir)/../man/tkremind.1 $(srcdir)/../man/cm2rem.1
.SUFFIXES:
.SUFFIXES: .c .o
@@ -39,7 +40,7 @@ test: remind
sh ../tests/test-rem
.c.o:
@CC@ -c @CFLAGS@ @DEFS@ $(LANGDEF) -DUNIX -I. -I$(srcdir) $<
@CC@ -c @CFLAGS@ @DEFS@ $(CEXTRA) $(LANGDEF) -DUNIX -I. -I$(srcdir) $<
rem2ps: rem2ps.o dynbuf.o
@CC@ @LDFLAGS@ -o rem2ps rem2ps.o dynbuf.o
@@ -48,11 +49,13 @@ remind: $(REMINDOBJS)
@CC@ @LDFLAGS@ -o remind $(REMINDOBJS) @LIBS@
install: all
-mkdir -p $(bindir)
for prog in $(PROGS) $(SCRIPTS) ; do \
$(INSTALL_PROGRAM) $$prog $(bindir) ; \
done
-strip $(bindir)/remind
-strip $(bindir)/rem2ps
-mkdir -p $(mandir)/man1
for man in $(MANS) ; do \
$(INSTALL_DATA) $$man $(mandir)/man1 ; \
done
@@ -70,18 +73,16 @@ depend:
# distributions, etc.
# Build a tar file based on all files checked into CVS.
tgz:
distro:
ln -s .. remind-$(VERSION)
peekentry `find remind-$(VERSION) -depth -follow -name 'Entries' -print` | xargs tar cvf remind-$(VERSION).tar
gzip -v -9 remind-$(VERSION).tar
mv remind-$(VERSION).tar.gz remind-$(VERSION).tgz
gzip -f -v -9 remind-$(VERSION).tar
rm -f remind-$(VERSION)
beta-tgz:
ln -s .. remind-$(VERSION)-BETA
peekentry `find remind-$(VERSION)-BETA -depth -follow -name 'Entries' -print` | xargs tar cvf remind-$(VERSION)-BETA.tar
gzip -v -9 remind-$(VERSION)-BETA.tar
mv remind-$(VERSION)-BETA.tar.gz remind-$(VERSION)-BETA.tgz
gzip -f -v -9 remind-$(VERSION)-BETA.tar
rm -f remind-$(VERSION)-BETA
#---------------- Stuff after this added by "make depend" -----------------

View File

@@ -1,4 +1,4 @@
#$Id: Makefile_QDOS,v 1.2 1998-03-01 20:43:53 dfs Exp $
#$Id: Makefile_QDOS,v 1.1 2000-03-15 16:03:57 dfs Exp $
# Makefile for REMIND for QDOS / SMSQ
#-----------------------------------------------------------------------------
@@ -24,7 +24,6 @@ LDFLAGS= -bufp200K
# YOU SHOULDN'T EDIT ANYTHING BELOW HERE. You may want to change some things
# in config_h; then, you should be able to type 'make'.
#-----------------------------------------------------------------------------
VERSION= 03.00.19
MATHLIB= -lm
HDRS= config_h err_h expr_h globals_h protos_h types_h version_h \

View File

@@ -8,11 +8,11 @@
/* */
/* This file is part of REMIND. */
/* Remind is Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: amiga.c,v 1.3 1999-04-05 17:34:42 dfs Exp $";
static char const RCSID[] = "$Id: amiga.c,v 1.1 2000-03-15 16:03:57 dfs Exp $";
#include <stdlib.h>
#include <string.h>

View File

@@ -1,7 +1,5 @@
# Makefile for REMIND for Borland C++
# $Id: makefile.bcc,v 1.2 1998-03-01 20:43:56 dfs Exp $
VERSION= 03.00.19
# $Id: makefile.bcc,v 1.1 2000-03-15 16:03:57 dfs Exp $
MODEL=l

View File

@@ -1,5 +1,5 @@
# Makefile for REMIND for Microsoft C for MSDOS
# $Id: makefile.msc,v 1.1 1998-01-15 02:50:32 dfs Exp $
# $Id: makefile.msc,v 1.1 2000-03-15 16:03:57 dfs Exp $
OBJS= calendar.obj dorem.obj dosubst.obj expr.obj files.obj funcs.obj \
globals.obj init.obj main.obj omit.obj token.obj trigger.obj userfns.obj \

View File

@@ -1,6 +1,6 @@
# Makefile for REMIND
#
# $Id: makefile.os2,v 1.1 1998-01-15 02:50:32 dfs Exp $
# $Id: makefile.os2,v 1.1 2000-03-15 16:03:57 dfs Exp $
#
# THIS IS OUT OF DATE!
#

View File

@@ -1,8 +1,7 @@
# Makefile for REMIND for Turbo C for MSDOS
# $Id: makefile.tc,v 1.2 1998-03-01 20:43:57 dfs Exp $
# $Id: makefile.tc,v 1.1 2000-03-15 16:03:57 dfs Exp $
CC= tcc
VERSION= 03.00.19
HDRS= config.h err.h expr.h globals.h protos.h types.h version.h \
lang.h english.h german.h dutch.h finnish.h french.h norwgian.h \

View File

@@ -8,12 +8,12 @@
/* */
/* This file is Copyright (C) 1993 by Russ Herman. */
/* REMIND is Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: os2func.c,v 1.3 1999-04-05 17:34:54 dfs Exp $";
static char const RCSID[] = "$Id: os2func.c,v 1.1 2000-03-15 16:03:57 dfs Exp $";
#ifdef OS2_POPUP
#define INCL_VIO

View File

@@ -1,4 +1,4 @@
# $Id: smakefile,v 1.1 1998-01-15 02:50:36 dfs Exp $
# $Id: smakefile,v 1.1 2000-03-15 16:03:57 dfs Exp $
# Makefile for REMIND, suitable for SAS/C 6.50 under AmigaDOS
# English version
# THIS IS OUT OF DATE!

View File

@@ -6,12 +6,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: calendar.c,v 1.8 1999-04-05 17:34:42 dfs Exp $";
static char const RCSID[] = "$Id: calendar.c,v 1.12 2005-04-12 01:49:45 dfs Exp $";
#include <stdio.h>
#include <string.h>
@@ -41,6 +41,8 @@ typedef struct cal_entry {
char tag[TAG_LEN+1];
char passthru[PASSTHRU_LEN+1];
int duration;
char *filename;
int lineno;
} CalEntry;
/* Global variables */
@@ -88,7 +90,7 @@ void ProduceCalendar()
if (CalMonths) {
FromJulian(JulianToday, &y, &m, &d);
JulianToday = Julian(y, m, 1);
JulianToday = Julian(y, m, 1);
while (CalMonths--)
DoCalendarOneMonth();
return;
@@ -148,9 +150,9 @@ static void DoCalendarOneWeek()
PutChar('|');
for (i=0; i<7; i++) {
FromJulian(OrigJul+i, &y, &m, &d);
sprintf(buf, "%d %c%c%c ", d, MonthName[m][0], MonthName[m][1],
sprintf(buf, "%d %c%c%c ", d, MonthName[m][0], MonthName[m][1],
MonthName[m][2]);
if (OrigJul+i == RealToday)
if (OrigJul+i == RealToday)
PrintLeft(buf, ColSpaces, '*');
else
PrintLeft(buf, ColSpaces, ' ');
@@ -183,7 +185,7 @@ static void DoCalendarOneWeek()
PutChar('\n');
}
/* Write the final line */
/* Write the final line */
WriteIntermediateCalLine();
}
@@ -229,7 +231,7 @@ static void DoCalendarOneMonth()
if (PsCal) printf("%s\n", PSEND);
if (!DoSimpleCalendar) WriteCalTrailer();
}
}
/***************************************************************/
/* */
@@ -271,7 +273,7 @@ static int WriteCalendarRow()
}
return (d+7-wd <= DaysInMonth(m, y));
}
/* Here come the first few lines... */
PutChar('|');
@@ -394,7 +396,7 @@ static int WriteOneCalLine()
return done;
}
/***************************************************************/
/* */
/* WriteOneColLine */
@@ -425,6 +427,7 @@ int col;
PrintLeft("", ColSpaces, ' ');
CalColumn[col] = e->next;
free(e->text);
free(e->filename);
free(e);
return 1;
}
@@ -464,6 +467,7 @@ int col;
if (!*s && !e->next) {
CalColumn[col] = e->next;
free(e->text);
free(e->filename);
free(e);
} else {
e->pos = s;
@@ -527,7 +531,7 @@ int col;
switch(tok.type) {
case T_Empty:
case T_Empty:
case T_Comment:
break;
@@ -544,7 +548,7 @@ int col;
case T_UnSet: r=DoUnset(&p); break;
case T_Clr: r=DoClear(&p); break;
case T_Flush: r=DoFlush(&p); break;
case T_Debug: break; /* IGNORE DEBUG CMD */
case T_Debug: break; /* IGNORE DEBUG CMD */
case T_Dumpvars: break; /* IGNORE DUMPVARS CMD */
case T_Banner: break; /* IGNORE BANNER CMD */
case T_Omit: r=DoOmit(&p);
@@ -556,7 +560,7 @@ int col;
break;
case T_Pop: r=PopOmitContext(&p); break;
case T_Push: r=PushOmitContext(&p); break;
case T_Preserve: r=DoPreserve(&p); break;
case T_Preserve: r=DoPreserve(&p); break;
case T_RemType: if (tok.val == RUN_TYPE) {
r=DoRun(&p);
break;
@@ -703,12 +707,12 @@ int col;
if (!PsCal && trig.typ == PASSTHRU_TYPE) return OK;
/* Remove any "at" times from PS or PSFILE reminders */
if (trig.typ == PASSTHRU_TYPE) {
if (trig.typ == PASSTHRU_TYPE && strcmp(trig.passthru, "COLOR")) {
tim.ttime = NO_TIME;
tim.duration = NO_TIME;
}
/* If trigger date == today, add it to the current entry */
/* If trigger date == today, add it to the current entry */
DBufInit(&obuf);
if (jul == JulianToday) {
NumTriggered++;
@@ -780,7 +784,17 @@ int col;
}
e->duration = tim.duration;
e->priority = trig.priority;
if (trig.typ == PASSTHRU_TYPE) {
e->filename = StrDup(FileName);
if(!e->filename) {
free(e);
return E_NO_MEM;
}
e->lineno = LineNo;
/* Ugly hack... a SPECIAL COLOR is not treated as "passthru"
to preserve ordering and make it behave like a MSG-type reminder */
if (trig.typ == PASSTHRU_TYPE && strcmp(trig.passthru, "COLOR")) {
StrnCpy(e->passthru, trig.passthru, PASSTHRU_LEN);
e->pos = e->passthru;
e->time = NO_TIME;
@@ -788,6 +802,11 @@ int col;
CalPs[col] = e;
SortCol(&CalPs[col]);
} else {
if (trig.typ == PASSTHRU_TYPE) {
StrnCpy(e->passthru, trig.passthru, PASSTHRU_LEN);
} else {
e->passthru[0] = 0;
}
e->pos = e->text;
e->time = tim.ttime;
e->next = CurCol;
@@ -819,6 +838,7 @@ int col, jul;
/* Do all the PASSTHRU entries first, if any */
FromJulian(jul, &y, &m, &d);
while(e) {
if (DoPrefixLineNo) printf("# fileinfo %d %s\n", e->lineno, e->filename);
printf("%04d/%02d/%02d ", y, m+1, d);
printf("%s ", e->passthru);
printf("%s ", e->tag);
@@ -834,16 +854,23 @@ int col, jul;
}
printf("%s\n", e->text);
free(e->text);
free(e->filename);
n = e->next;
free(e);
e = n;
}
CalPs[col] = NULL;
e = CalColumn[col];
e = CalColumn[col];
while(e) {
if (DoPrefixLineNo) printf("# fileinfo %d %s\n", e->lineno, e->filename);
printf("%04d/%02d/%02d", y, m+1, d);
printf(" * %s ", e->tag);
if (e->passthru[0]) {
printf(" %s", e->passthru);
} else {
printf(" *");
}
printf(" %s ", e->tag);
if (e->duration != NO_TIME) {
printf("%d ", e->duration);
} else {
@@ -856,6 +883,7 @@ int col, jul;
}
printf("%s\n", e->text);
free(e->text);
free(e->filename);
n = e->next;
free(e);
e = n;
@@ -934,7 +962,7 @@ int tim;
int h, min, hh;
buf[0] = 0;
switch(ScFormat) {
case SC_AMPM:

View File

@@ -1,6 +1,6 @@
/* src/config.h.in. Generated automatically from configure.in by autoheader. */
/* $Id: config.h.in,v 1.3 1998-02-16 03:41:44 dfs Exp $ */
/* $Id: config.h.in,v 1.4 2000-02-18 03:45:44 dfs Exp $ */
/* Define to empty if the keyword does not work. */
#undef const
@@ -68,6 +68,9 @@
/* Define if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H

View File

@@ -7,11 +7,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: custom.h,v 1.19 1999-04-05 17:42:35 dfs Exp $ */
/* $Id: custom.h,v 1.31 2005-04-12 00:59:41 dfs Exp $ */
/*---------------------------------------------------------------------*/
/* LAT_DEG, LAT_MIN and LAT_SEC: Latitude of your location */
@@ -229,11 +229,6 @@
#define PUBLIC
#define PRIVATE static
#ifdef UNIX
#define _POSIX_SOURCE
#define _SVID_SOURCE
#endif
#define PSBEGIN "# rem2ps begin"
#define PSEND "# rem2ps end"

View File

@@ -7,11 +7,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: custom.h.in,v 1.6 1999-04-05 17:34:43 dfs Exp $ */
/* $Id: custom.h.in,v 1.7 2000-02-18 03:45:46 dfs Exp $ */
/*---------------------------------------------------------------------*/
/* LAT_DEG, LAT_MIN and LAT_SEC: Latitude of your location */
@@ -229,11 +229,6 @@
#define PUBLIC
#define PRIVATE static
#ifdef UNIX
#define _POSIX_SOURCE
#define _SVID_SOURCE
#endif
#define PSBEGIN "# rem2ps begin"
#define PSEND "# rem2ps end"

View File

@@ -8,12 +8,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: dorem.c,v 1.8 1999-04-05 17:34:44 dfs Exp $";
static char const RCSID[] = "$Id: dorem.c,v 1.10 2005-04-12 01:49:45 dfs Exp $";
#include <stdio.h>
#include <ctype.h>
@@ -109,7 +109,7 @@ ParsePtr p;
jul = ComputeTrigger(trig.scanfrom, &trig, &r);
if (r) return r;
}
/* Queue the reminder, if necessary */
#ifdef HAVE_QUEUED
if (jul == JulianToday &&

View File

@@ -7,12 +7,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: dosubst.c,v 1.9 1999-04-05 17:34:44 dfs Exp $";
static char const RCSID[] = "$Id: dosubst.c,v 1.10 2000-02-18 03:45:48 dfs Exp $";
#define L_IN_DOSUBST
#include <stdio.h>
@@ -32,7 +32,7 @@ static char const RCSID[] = "$Id: dosubst.c,v 1.9 1999-04-05 17:34:44 dfs Exp $"
#include "types.h"
#include "protos.h"
#define UPPER(c) (islower(c) ? toupper(c) : c)
#define UPPER(c) (islower(c) ? toupper(c) : (c))
#define ABS(x) ( (x) < 0 ? -(x) : (x) )
#ifndef NL
#define NL "\n"

View File

@@ -7,12 +7,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
static char const RCSID[] =
"$Id: dynbuf.c,v 1.3 1999-04-05 17:34:45 dfs Exp $";
"$Id: dynbuf.c,v 1.5 2000-02-18 03:45:49 dfs Exp $";
#include "config.h"
#include "dynbuf.h"
@@ -182,7 +182,7 @@ PUBLIC int DBufGets(DynamicBuffer *dbuf, FILE *fp)
#else
int DBufGets(dbuf, fp)
DynamicBuffer *dbuf;
FILE *fp
FILE *fp;
#endif
{
char tmp[256]; /* Safe to hard-code */

View File

@@ -6,11 +6,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: dynbuf.h,v 1.2 1999-04-05 17:34:45 dfs Exp $ */
/* $Id: dynbuf.h,v 1.3 2000-02-18 03:45:50 dfs Exp $ */
#ifndef DYNBUF_H
#define DYNBUF_H

View File

@@ -6,11 +6,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: err.h,v 1.3 1999-04-05 17:34:46 dfs Exp $ */
/* $Id: err.h,v 1.4 2000-02-18 03:45:51 dfs Exp $ */
/* Note that not all of the "errors" are really errors - some are just
messages for information purposes. Constants beginning with M_ should

View File

@@ -6,12 +6,12 @@
/* expressions. */
/* */
/* Copyright 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: expr.c,v 1.7 1999-04-05 17:34:46 dfs Exp $";
static char const RCSID[] = "$Id: expr.c,v 1.9 2004-09-04 03:17:09 dfs Exp $";
#include <stdio.h>
#include <ctype.h>
@@ -186,11 +186,11 @@ char **in;
{
char c;
DBufFree(buf);
/* Skip white space */
while (**in && isspace(**in)) (*in)++;
if (!**in) return OK;
c = *(*in)++;
@@ -221,7 +221,7 @@ char **in;
(*in)++;
}
return OK;
case '!':
case '>':
case '<':
@@ -265,6 +265,7 @@ char **in;
}
if (c == '\'') return OK;
DBufFree(buf);
return E_MISS_QUOTE;
}
if (!ISID(c) && c != '$') {
@@ -345,10 +346,10 @@ Var *locals;
Operator op, op2;
Value va;
char *ufname = NULL; /* Stop GCC from complaining about use of uninit var */
OpBase = OpStackPtr;
ValBase = ValStackPtr;
while(1) {
/* Looking for a value. Accept: value, unary op, func. call or left paren */
r = ParseExprToken(&ExprBuf, s);
@@ -487,7 +488,7 @@ Var *locals;
PushOpStack(*f);
}
}
/***************************************************************/
/* */
/* MakeValue */
@@ -555,7 +556,7 @@ Var *locals;
if (DebugFlag & DB_PRTEXPR)
fprintf(ErrFp, "%s => ", s);
r = GetSysVar(s+1, v);
if (! (DebugFlag & DB_PRTEXPR)) return r;
if (r == OK) {
PrintValue(v, ErrFp);
@@ -568,7 +569,7 @@ Var *locals;
r = GetVarValue(s, v, locals);
if (! (DebugFlag & DB_PRTEXPR)) return r;
if (r == OK) {
PrintValue(v, ErrFp);
PrintValue(v, ErrFp);
Putc('\n', ErrFp);
}
return r;
@@ -589,15 +590,15 @@ Value *v;
{
int h, d, m, y, i;
char *s;
/* Do nothing if value is already the right type */
if (type == v->type) return OK;
switch(type) {
case STR_TYPE:
switch(v->type) {
case INT_TYPE: sprintf(CoerceBuf, "%d", v->v.val); break;
case TIM_TYPE: sprintf(CoerceBuf, "%02d%c%02d", v->v.val / 60,
case TIM_TYPE: sprintf(CoerceBuf, "%02d%c%02d", v->v.val / 60,
TIMESEP, v->v.val % 60);
break;
case DATE_TYPE: FromJulian(v->v.val, &y, &m, &d);
@@ -718,13 +719,13 @@ static int Add()
{
Value v1, v2, v3;
int r;
PopValStack(v2);
if ( (r = FnPopValStack(&v1)) ) {
DestroyValue(v2);
return r;
}
/* If both are ints, just add 'em */
if (v2.type == INT_TYPE && v1.type == INT_TYPE) {
v2.v.val += v1.v.val;
@@ -741,7 +742,7 @@ static int Add()
PushValStack(v1);
return OK;
}
/* If it's a time plus an int, add 'em mod 1440 */
if ((v1.type == TIM_TYPE && v2.type == INT_TYPE) ||
(v1.type == INT_TYPE && v2.type == TIM_TYPE)) {
@@ -750,7 +751,7 @@ static int Add()
v1.type = TIM_TYPE;
PushValStack(v1);
return OK;
}
}
/* If either is a string, coerce them both to strings and concatenate */
if (v1.type == STR_TYPE || v2.type == STR_TYPE) {
@@ -778,7 +779,7 @@ static int Add()
/* Don't handle other types yet */
return E_BAD_TYPE;
}
/***************************************************************/
/* */
/* Subtract */
@@ -794,7 +795,7 @@ static int Subtract()
{
Value v1, v2;
int r;
PopValStack(v2);
if ( (r = FnPopValStack(&v1)) ) {
DestroyValue(v2);
@@ -1147,7 +1148,7 @@ int num;
}
return NULL;
}
/***************************************************************/
/* */
/* PrintValue */
@@ -1172,9 +1173,9 @@ FILE *fp;
for (y=0; y<MAX_PRT_LEN && *s; y++) Putc(*s++, fp);
Putc('"',fp);
if (*s) fprintf(fp, "...");
}
}
else if (v->type == INT_TYPE) fprintf(fp, "%d", v->v.val);
else if (v->type == TIM_TYPE) fprintf(fp, "%02d%c%02d", v->v.val / 60,
else if (v->type == TIM_TYPE) fprintf(fp, "%02d%c%02d", v->v.val / 60,
TIMESEP, v->v.val % 60);
else if (v->type == DATE_TYPE) {
FromJulian(v->v.val, &y, &m, &d);
@@ -1248,7 +1249,7 @@ int *jul;
d += *(*s)++ - '0';
}
if (!DateOK(y, m, d)) return E_BAD_DATE;
*jul = Julian(y, m, d);
return OK;
@@ -1277,4 +1278,3 @@ Value *val;
return OK;
}
}

View File

@@ -6,11 +6,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: expr.h,v 1.3 1999-04-05 17:34:48 dfs Exp $ */
/* $Id: expr.h,v 1.4 2000-02-18 03:45:53 dfs Exp $ */
/* Define the types of values */
#define ERR_TYPE 0

View File

@@ -8,12 +8,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: files.c,v 1.9 1999-04-05 17:34:48 dfs Exp $";
static char const RCSID[] = "$Id: files.c,v 1.10 2000-02-18 03:45:54 dfs Exp $";
#include <stdio.h>

View File

@@ -7,12 +7,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: funcs.c,v 1.7 1999-04-05 17:34:49 dfs Exp $";
static char const RCSID[] = "$Id: funcs.c,v 1.9 2000-02-18 03:45:55 dfs Exp $";
#include <stdio.h>
@@ -115,8 +115,10 @@ PRIVATE int FPsshade ARGS ((void));
PRIVATE int FShell ARGS ((void));
PRIVATE int FStrlen ARGS ((void));
PRIVATE int FSubstr ARGS ((void));
PRIVATE int FSunrise ARGS ((void));
PRIVATE int FDawn ARGS ((void));
PRIVATE int FDusk ARGS ((void));
PRIVATE int FSunset ARGS ((void));
PRIVATE int FSunrise ARGS ((void));
PRIVATE int FTime ARGS ((void));
PRIVATE int FTrigdate ARGS ((void));
PRIVATE int FTrigtime ARGS ((void));
@@ -210,10 +212,12 @@ Operator Func[] = {
{ "choose", 2, NO_MAX, FChoose },
{ "coerce", 2, 2, FCoerce },
{ "date", 3, 3, FDate },
{ "dawn", 0, 1, FDawn},
{ "day", 1, 1, FDay },
{ "daysinmon", 2, 2, FDaysinmon },
{ "defined", 1, 1, FDefined },
{ "dosubst", 1, 3, FDosubst },
{ "dusk", 0, 1, FDusk },
{ "easterdate", 1, 1, FEasterdate },
{ "filedate", 1, 1, FFiledate },
{ "filedir", 0, 0, FFiledir },
@@ -1011,7 +1015,10 @@ static int FUpper()
if (ARG(0).type != STR_TYPE) return E_BAD_TYPE;
DCOPYVAL(RetVal, ARG(0));
s = RetVal.v.str;
while (*s) { *s = UPPER(*s); s++; }
while (*s) {
*s = UPPER(*s);
s++;
}
return OK;
}
@@ -1026,7 +1033,10 @@ static int FLower()
if (ARG(0).type != STR_TYPE) return E_BAD_TYPE;
DCOPYVAL(RetVal, ARG(0));
s = RetVal.v.str;
while (*s) { *s = LOWER(*s); s++; }
while (*s) {
*s = LOWER(*s);
s++;
}
return OK;
}
@@ -2014,6 +2024,7 @@ int jul;
int year, mon, day;
int jan0;
int mins, hours;
int dusk_or_dawn;
double M, L, tanA, sinDelta, cosDelta, a, a_hr, cosH, t, H, T;
double latitude, longdeg, UT, local;
@@ -2037,6 +2048,9 @@ int jul;
FromJulian(jul, &year, &mon, &day);
jan0 = jul - Julian(year, 0, 1);
dusk_or_dawn = rise;
if (rise > 1)
rise -= 2;
/* Following formula on page B6 exactly... */
t = (double) jan0;
if (rise) t += (6.0 + longdeg/15.0) / 24.0;
@@ -2047,6 +2061,11 @@ int jul;
/* Sun's true longitude */
L = M + 1.916*sin(DEGRAD*M) + 0.02*sin(2*DEGRAD*M) + 282.565;
if (dusk_or_dawn == 2) {/* dusk */
L += 6;
} else if (dusk_or_dawn == 3) {/* dawn */
L -= 14;
}
if (L > 360.0) L -= 360.0;
/* Tan of sun's right ascension */
@@ -2065,7 +2084,7 @@ int jul;
}
/* if (fabs(a - L) > 90.0)
a += 180.0; */
if (a > 360.0)
a -= 360.0;
a_hr = a / 15.0;
@@ -2073,10 +2092,10 @@ int jul;
/* Sine of sun's declination */
sinDelta = 0.39782 * sin(DEGRAD*L);
cosDelta = sqrt(1 - sinDelta*sinDelta);
/* Cosine of sun's local hour angle */
cosH = (cosz - sinDelta * sin(latitude)) / (cosDelta * cos(latitude));
if (cosH < -1.0) { /* Summer -- permanent daylight */
if (rise) return NO_TIME;
else return -NO_TIME;
@@ -2092,9 +2111,9 @@ int jul;
T = H / 15.0 + a_hr - 0.065710*t - 6.620;
if (T >= 24.0) T -= 24.0;
else if (T < 0.0) T+= 24.0;
UT = T + longdeg / 15.0;
local = UT + (double) mins / 60.0;
if (local < 0.0) local += 24.0;
@@ -2102,7 +2121,7 @@ int jul;
hours = (int) local;
mins = (int) ((local - hours) * 60.0);
/* Sometimes, we get roundoff error. Check for "reasonableness" of
answer. */
if (rise) {
@@ -2167,6 +2186,23 @@ static int FSunset()
return FSun(0);
}
#ifdef HAVE_PROTOS
PRIVATE int FDawn(void)
#else
static int FDawn()
#endif
{
return FSun(3);
}
#ifdef HAVE_PROTOS
PRIVATE int FDusk(void)
#else
static int FDusk()
#endif
{
return FSun(2);
}
/***************************************************************/
/* */
/* FFiledate */

View File

@@ -9,12 +9,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: globals.c,v 1.3 1999-04-05 17:34:50 dfs Exp $";
static char const RCSID[] = "$Id: globals.c,v 1.4 2000-02-18 03:45:56 dfs Exp $";
#include <stdio.h> /* For defintion of FILE - sigh! */
#include "types.h"

View File

@@ -8,11 +8,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: globals.h,v 1.6 1999-04-05 17:34:50 dfs Exp $ */
/* $Id: globals.h,v 1.8 2005-04-12 00:44:08 dfs Exp $ */
#ifdef MK_GLOBALS
#undef EXTERN
@@ -42,6 +42,7 @@ EXTERN INIT( int ShowAllErrors, 0);
EXTERN INIT( int DebugFlag, 0);
EXTERN INIT( int DoCalendar, 0);
EXTERN INIT( int DoSimpleCalendar, 0);
EXTERN INIT( int DoPrefixLineNo, 0);
EXTERN INIT( int MondayFirst, 0);
EXTERN INIT( int Iterations, 1);
EXTERN INIT( int PsCal, 0);

View File

@@ -6,7 +6,7 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/* Derived from code written by Amos Shapir in 1978; revised */
/* 1985. */
@@ -14,7 +14,7 @@
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: hbcal.c,v 1.3 1999-04-05 17:34:50 dfs Exp $";
static char const RCSID[] = "$Id: hbcal.c,v 1.4 2000-02-18 03:45:58 dfs Exp $";
#include <stdio.h> /* For FILE used by protos.h - sigh. */
#include "types.h"

View File

@@ -8,12 +8,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2005 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: init.c,v 1.11 1999-04-12 19:45:27 dfs Exp $";
static char const RCSID[] = "$Id: init.c,v 1.15 2005-04-12 01:27:56 dfs Exp $";
#define L_IN_INIT 1
#include <stdio.h>
@@ -58,6 +58,8 @@ static char const RCSID[] = "$Id: init.c,v 1.11 1999-04-12 19:45:27 dfs Exp $";
* -w[n,n,n] = Specify output device width, padding and spacing
* -s[n] = Produce calendar in "simple calendar" format
* -p[n] = Produce calendar in format compatible with rem2ps
* -l = Prefix simple calendar lines with a comment containing
* their trigger line numbers and filenames
* -v = Verbose mode
* -o = Ignore ONCE directives
* -a = Don't issue timed reminders which will be queued
@@ -320,6 +322,11 @@ char *argv[];
if (!CalMonths) CalMonths = 1;
break;
case 'l':
case 'L':
DoPrefixLineNo = 1;
break;
case 'w':
case 'W':
if (*arg != ',') {
@@ -488,8 +495,8 @@ PUBLIC void Usage(void)
void Usage()
#endif /* HAVE_PROTOS */
{
fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-1998 by David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "Copyright 1999 by Roaring Penguin Software Inc.\n");
fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-1998 David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "Copyright 1999-2005 Roaring Penguin Software Inc.\n");
#ifdef BETA
fprintf(ErrFp, ">>>> BETA VERSION <<<<\n");
#endif
@@ -502,6 +509,7 @@ void Usage()
fprintf(ErrFp, " -w[n[,p[,s]]] Specify width, padding and spacing of calendar\n");
fprintf(ErrFp, " -s[+][n] Produce `simple calendar' for n (1) months (weeks)\n");
fprintf(ErrFp, " -p[n] Same as -s, but input compatible with rem2ps\n");
fprintf(ErrFp, " -l Prefix each simple calendar line with line number and filename comment\n");
fprintf(ErrFp, " -v Verbose mode\n");
fprintf(ErrFp, " -o Ignore ONCE directives\n");
fprintf(ErrFp, " -t Trigger all future reminders regardless of delta\n");

View File

@@ -6,11 +6,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: lang.h,v 1.4 1999-04-05 17:34:51 dfs Exp $ */
/* $Id: lang.h,v 1.6 2000-12-18 14:05:32 dfs Exp $ */
/* I'm chauvinistic and name each language with its English name... */
@@ -26,8 +26,9 @@
#define ITALIAN 9 /* translated by Valerio Aimale */
#define ROMANIAN 10 /* translated by Liviu Daia */
#define SPANISH 11 /* translated by Rafa Couto */
#define ICELANDIC 12 /* translated by Björn Davíðsson */
/* Add more languages here - but please e-mail aa775@freenet.carleton.ca
/* Add more languages here - but please e-mail dfs@roaringpenguin.com
to have your favorite language assigned a number. If you add a
language, please send me the header file, and permission to include
it in future releases of Remind. Note that you'll get no remuneration
@@ -69,6 +70,8 @@
#include "langs/romanian.h"
#elif LANG == SPANISH
#include "langs/spanish.h"
#elif LANG == ICELANDIC
#include "langs/icelandic.h"
/* If no sensible language, choose English. I intended to use
the #error directive here, but some C compilers barf. */

View File

@@ -7,12 +7,12 @@
/* This file is part of REMIND. */
/* */
/* REMIND is Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* This file is Copyright (C) 1993 by Mogens Lynnerup. */
/* */
/***************************************************************/
/* $Id: danish.h,v 1.6 1999-04-05 17:35:05 dfs Exp $ */
/* $Id: danish.h,v 1.7 2000-02-18 03:46:17 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "Danish"

View File

@@ -12,11 +12,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: dutch.h,v 1.4 1999-04-05 17:35:06 dfs Exp $ */
/* $Id: dutch.h,v 1.5 2000-02-18 03:46:18 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "Dutch"

View File

@@ -6,11 +6,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: english.h,v 1.4 1999-04-05 17:35:06 dfs Exp $ */
/* $Id: english.h,v 1.5 2000-02-18 03:46:19 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "English"

View File

@@ -12,11 +12,11 @@
/* This file is part of REMIND. */
/* This file is Copyright (C) 1993-1998 by Mikko Silvonen. */
/* REMIND is Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: finnish.h,v 1.8 1999-04-12 19:45:41 dfs Exp $ */
/* $Id: finnish.h,v 1.10 2000-02-18 03:53:49 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "Finnish"
@@ -523,8 +523,8 @@ PUBLIC void Usage(void)
void Usage()
#endif /* HAVE_PROTOS */
{
fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-1998 by David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "Copyright 1999 by Roaring Penguin Software Inc.\n");
fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-1998 David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "Copyright 1999-2000 Roaring Penguin Software Inc.\n");
#ifdef BETA
fprintf(ErrFp, ">>>> BETAVERSIO <<<<\n");
#endif

View File

@@ -9,13 +9,13 @@
/* This file is part of REMIND. */
/* */
/* REMIND is Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* This file is Copyright (C) 1993 by Laurent Duperval and */
/* David F. Skoll. */
/* */
/***************************************************************/
/* $Id: french.h,v 1.7 1999-04-12 19:45:42 dfs Exp $ */
/* $Id: french.h,v 1.9 2000-02-18 03:53:50 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "French"
@@ -359,8 +359,8 @@ PUBLIC void Usage(void)
void Usage()
#endif /* HAVE_PROTOS */
{
fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-1998 by David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "Copyright 1999 by Roaring Penguin Software Inc.\n");
fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-1998 David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "Copyright 1999-2000 Roaring Penguin Software Inc.\n");
#ifdef BETA
fprintf(ErrFp, ">>>> BETA VERSION <<<<\n");
#endif

View File

@@ -10,11 +10,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: german.h,v 1.5 1999-04-05 17:35:08 dfs Exp $ */
/* $Id: german.h,v 1.6 2000-02-18 03:46:22 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "German"

86
src/langs/icelandic.h Normal file
View File

@@ -0,0 +1,86 @@
/***************************************************************/
/* */
/* ICELANDIC.H */
/* */
/* Support for the Icelandic language. */
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* Translated by Björn Davíðsson (bjossi@snerpa.is) */
/* */
/***************************************************************/
/* $Id: icelandic.h,v 1.1 2000-12-18 14:05:33 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "Icelandic"
/* Day names */
#define L_SUNDAY "sunnudagur"
#define L_MONDAY "mánudagur"
#define L_TUESDAY "þriðjudagur"
#define L_WEDNESDAY "miðvikudagur"
#define L_THURSDAY "fimmtudagur"
#define L_FRIDAY "föstudagur"
#define L_SATURDAY "laugardagur"
/* Month names */
#define L_JAN "janúar"
#define L_FEB "febrúar"
#define L_MAR "mars"
#define L_APR "apríl"
#define L_MAY "maí"
#define L_JUN "júní"
#define L_JUL "júlí"
#define L_AUG "ágúst"
#define L_SEP "september"
#define L_OCT "október"
#define L_NOV "nóvember"
#define L_DEC "desember"
/* Today and tomorrow */
#define L_TODAY "í dag"
#define L_TOMORROW "á morgun"
/* The default banner */
#define L_BANNER "Minnisatriði: %w, %d%s %m, %y%o:"
/* "am" and "pm" */
#define L_AM "fh"
#define L_PM "eh"
/*** The following are only used in dosubst.c ***/
#ifdef L_IN_DOSUBST
/* Ago and from now */
#define L_AGO "síðan"
#define L_FROMNOW "frá því nú"
/* "in %d days' time" */
#define L_INXDAYS "eftir %d daga"
/* "on" as in "on date..." */
#define L_ON "þann"
/* Pluralizing - this is a problem for many languages and may require
a more drastic fix */
#define L_PLURAL "a"
/* Minutes, hours, at, etc */
#define L_NOW "núna"
#define L_AT "kl."
#define L_MINUTE "mínútu"
#define L_HOUR "klukkustund"
#define L_IS "er"
#define L_WAS "var"
#define L_AND "og"
/* What to add to make "hour" plural */
#define L_HPLU "ir"
/* What to add to make "minute" plural */
#define L_MPLU "r"
/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc.
See the file dosubst.c for more info. */
#endif /* L_IN_DOSUBST */

View File

@@ -8,11 +8,11 @@
/* It is Copyright (C) 1996 by Valerio Aimale */
/* */
/* Remind is copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: italian.h,v 1.5 1999-04-05 17:35:09 dfs Exp $ */
/* $Id: italian.h,v 1.6 2000-02-18 03:46:23 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "Italian"

View File

@@ -7,11 +7,11 @@
/* This file is part of REMIND. */
/* This file is Copyright (C) 1993 by Trygve Randen. */
/* Remind is Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: norwgian.h,v 1.5 1999-04-05 17:35:09 dfs Exp $ */
/* $Id: norwgian.h,v 1.6 2000-02-18 03:46:24 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "Norwegian"

View File

@@ -10,11 +10,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: polish.h,v 1.7 1999-04-12 19:45:43 dfs Exp $ */
/* $Id: polish.h,v 1.9 2000-02-18 03:53:51 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "Polish"
@@ -394,8 +394,8 @@ PUBLIC void Usage(void)
void Usage()
#endif /* HAVE_PROTOS */
{
fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-1998 by David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "Copyright 1999 by Roaring Penguin Software Inc.\n");
fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-1998 David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "Copyright 1999-2000 Roaring Penguin Software Inc.\n");
#ifdef BETA
fprintf(ErrFp, ">>>> BETA VERSION <<<<\n");
#endif

View File

@@ -9,13 +9,13 @@
/* This file is part of REMIND. */
/* */
/* REMIND is Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* This file is Copyright (C) 1996 by Marco Paganini and */
/* David F. Skoll. */
/* */
/***************************************************************/
/* $Id: portbr.h,v 1.6 1999-04-12 19:45:43 dfs Exp $ */
/* $Id: portbr.h,v 1.8 2000-02-18 03:53:52 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "Brazilian Portuguese"
@@ -259,8 +259,8 @@ PUBLIC void Usage(void)
void Usage()
#endif /* HAVE_PROTOS */
{
fprintf(ErrFp, "\nREMIND %s (versao %s) (C) 1992-1998 by David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "(C) 1999 by Roaring Penguin Software Inc.\n");
fprintf(ErrFp, "\nREMIND %s (versao %s) (C) 1992-1998 David F. Skoll\n", VERSION, L_LANGNAME);
fprintf(ErrFp, "(C) 1999-2000 Roaring Penguin Software Inc.\n");
#ifdef BETA
fprintf(ErrFp, ">>>> VERSAO BETA <<<<\n");
#endif

View File

@@ -9,12 +9,12 @@
/* This file is part of REMIND. */
/* */
/* REMIND is Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* This file is Copyright (C) 1996-1998 by Liviu Daia */
/* */
/***************************************************************/
/* $Id: romanian.h,v 1.5 1999-04-05 17:35:10 dfs Exp $ */
/* $Id: romanian.h,v 1.6 2000-02-18 03:46:27 dfs Exp $ */
/* The very first define in a language support file must be L_LANGNAME: */
#define L_LANGNAME "Romanian"

View File

@@ -8,11 +8,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright 1999 by Roaring Penguin Software Inc. */
/* Copyright 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: spanish.h,v 1.2 1999-04-05 17:35:11 dfs Exp $ */
/* $Id: spanish.h,v 1.3 2000-02-18 03:46:28 dfs Exp $ */
#define L_LANGNAME "Spanish"

View File

@@ -7,12 +7,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: main.c,v 1.10 1999-04-05 17:34:52 dfs Exp $";
static char const RCSID[] = "$Id: main.c,v 1.11 2000-02-18 03:46:01 dfs Exp $";
#ifdef HAVE_STDLIB_H
#include <stdlib.h>

View File

@@ -6,12 +6,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: moon.c,v 1.4 1999-04-05 17:34:53 dfs Exp $";
static char const RCSID[] = "$Id: moon.c,v 1.5 2000-02-18 03:46:02 dfs Exp $";
/* All of these routines were adapted from the program "moontool"
by John Walker, February 1988. Here's the blurb from moontool:

View File

@@ -7,12 +7,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: omit.c,v 1.5 1999-04-05 17:34:54 dfs Exp $";
static char const RCSID[] = "$Id: omit.c,v 1.6 2000-02-18 03:46:03 dfs Exp $";
#include <stdio.h>

View File

@@ -6,11 +6,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: protos.h,v 1.7 1999-04-05 17:34:54 dfs Exp $ */
/* $Id: protos.h,v 1.8 2000-02-18 03:46:05 dfs Exp $ */
#ifdef HAVE_PROTOS
#define ARGS(x) x

View File

@@ -6,17 +6,16 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: queue.c,v 1.10 1999-04-05 17:34:55 dfs Exp $";
static char const RCSID[] = "$Id: queue.c,v 1.16 2000-06-26 14:44:07 dfs Exp $";
/* Solaris needs this to get select() prototype */
#ifdef __sun__
#define __EXTENSIONS__ 1
#undef _POSIX_SOURCE
#endif
/* We only want object code generated if we have queued reminders */
@@ -31,6 +30,10 @@ static char const RCSID[] = "$Id: queue.c,v 1.10 1999-04-05 17:34:55 dfs Exp $";
#include <sys/time.h>
#endif
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
@@ -118,6 +121,7 @@ char *sched;
free(qelem);
return E_NO_MEM;
}
NumQueued++;
qelem->typ = trig->typ;
qelem->tt = *tim;
qelem->next = QueueHead;
@@ -126,7 +130,6 @@ char *sched;
strcpy(qelem->sched, sched);
strcpy(qelem->tag, trig->tag);
QueueHead = qelem;
NumQueued++;
return OK;
}
@@ -251,6 +254,12 @@ void HandleQueuedReminders()
}
printf("\n");
}
/* Set up global variables so some functions like trigdate()
and trigtime() work correctly */
LastTriggerDate = JulianToday;
LastTriggerTime = q->tt.ttime;
LastTrigValid = 1;
#ifdef OS2_POPUP
(void) TriggerReminder(&p, &trig, &q->tt, JulianToday, 1);
#else
@@ -301,8 +310,13 @@ QueuedRem *q;
r = CalculateNextTimeUsingSched(q);
if (r != NO_TIME) return r;
}
if (delta == NO_DELTA)
if (tim < curtime) return NO_TIME; else return tim;
if (delta == NO_DELTA) {
if (tim < curtime) {
return NO_TIME;
} else {
return tim;
}
}
tim -= delta;
if (rep == NO_REP) rep = delta;
@@ -474,7 +488,7 @@ QueuedRem *q;
PRIVATE void DaemonWait(unsigned int sleeptime)
#else
static DaemonWait(sleeptime)
unsigned int sleeptime
unsigned int sleeptime;
#endif
{
fd_set readSet;

View File

@@ -6,13 +6,13 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
#include "dynbuf.h"
static char const RCSID[] = "$Id: rem2ps.c,v 1.9 1999-04-05 17:34:55 dfs Exp $";
static char const RCSID[] = "$Id: rem2ps.c,v 1.13 2005-04-12 00:49:07 dfs Exp $";
#include <stdio.h>
#include <string.h>
@@ -44,8 +44,16 @@ static char const RCSID[] = "$Id: rem2ps.c,v 1.9 1999-04-05 17:34:55 dfs Exp $";
#endif
#define NEW(type) ((type *) malloc(sizeof(type)))
#define SPECIAL_NORMAL 0
#define SPECIAL_POSTSCRIPT 1
#define SPECIAL_PSFILE 2
#define SPECIAL_MOON 3
#define SPECIAL_SHADE 4
#define SPECIAL_COLOR 5
typedef struct calentry {
struct calentry *next;
int special;
char *entry;
} CalEntry;
@@ -82,7 +90,8 @@ PageType Pages[] =
{"B5", 519, 729},
{"Folio", 612, 936},
{"Quarto", 612, 780},
{"10x14", 720, 1008}
{"10x14", 720, 1008},
{"-custom-", 0, 0}
};
PageType DefaultPage[1] =
@@ -133,7 +142,7 @@ int DoQueuedPs ARGS ((void));
void DoSmallCal ARGS((char *m, int days, int first, int col, int which));
void WriteProlog ARGS ((void));
void WriteCalEntry ARGS ((void));
void WriteOneEntry ARGS ((char *s));
void WriteOneEntry ARGS ((CalEntry *c));
void GetSmallLocations ARGS ((void));
char *EatToken(char *in, char *out, int maxlen);
@@ -280,14 +289,18 @@ void DoPsCal()
fprintf(stderr, "Input from REMIND is corrupt!\n");
exit(1);
}
DBufGets(&buf, stdin);
if (!strcmp(DBufValue(&buf), PSEND)) {
DBufFree(&buf);
break;
}
/* Read the day number - a bit of a hack! */
/* Ignore lines beginning with '#' */
if (DBufValue(&buf)[0] == '#') {
continue;
}
/* Read the day number - a bit of a hack! */
DayNum = (DBufValue(&buf)[8] - '0') * 10 + DBufValue(&buf)[9] - '0';
if (DayNum != CurDay) {
for(; CurDay<DayNum; CurDay++) {
@@ -295,13 +308,14 @@ void DoPsCal()
WkDayNum = (WkDayNum + 1) % 7;
}
}
/* Add the text */
/* Add the text */
c = NEW(CalEntry);
if (!c) {
fprintf(stderr, "malloc failed - aborting.\n");
exit(1);
}
c->next = NULL;
c->special = SPECIAL_NORMAL;
/* Skip the tag, duration and time */
startOfBody = DBufValue(&buf)+10;
@@ -325,38 +339,45 @@ void DoPsCal()
!strcmp(passthru, "SHADE")) {
is_ps = 1;
}
c->entry = malloc(strlen(startOfBody) + 1 + is_ps);
c->entry = malloc(strlen(startOfBody) + 1);
if (!c->entry) {
fprintf(stderr, "malloc failed - aborting.\n");
exit(1);
}
strcpy(c->entry+is_ps, startOfBody);
strcpy(c->entry, startOfBody);
if (is_ps) {
/* Save the 'P' or 'F' flag */
/* Save the type of SPECIAL */
if (!strcmp(passthru, "PostScript")) {
*(c->entry) = 'P';
c->special = SPECIAL_POSTSCRIPT;
} else if (!strcmp(passthru, "SHADE")) {
*(c->entry) = 'S';
c->special = SPECIAL_SHADE;
} else if (!strcmp(passthru, "MOON")) {
*(c->entry) = 'M';
c->special = SPECIAL_MOON;
} else {
*(c->entry) = 'F';
c->special = SPECIAL_PSFILE;
}
if (!PsEntries[DayNum]) PsEntries[DayNum] = c;
else {
if (!PsEntries[DayNum]) {
PsEntries[DayNum] = c;
} else {
d = PsEntries[DayNum];
while(d->next) d = d->next;
d->next = c;
}
} else if (!strcmp(passthru, "*")) {
/* Put on linked list */
if (!CurEntries) CurEntries = c;
else {
} else if (!strcmp(passthru, "*") ||
!strcmp(passthru, "COLOR")) {
/* Put on linked list */
if (!CurEntries) {
CurEntries = c;
} else {
d = CurEntries;
while(d->next) d = d->next;
d->next = c;
}
if (!strcmp(passthru, "COLOR")) {
c->special = SPECIAL_COLOR;
}
}
}
for(; CurDay<=days; CurDay++) {
@@ -520,7 +541,7 @@ void WriteCalEntry()
CurEntries = NULL;
while(c) {
WriteOneEntry(c->entry);
WriteOneEntry(c);
free(c->entry);
d = c->next;
free(c);
@@ -540,7 +561,7 @@ void WriteCalEntry()
/* If WkDayNum is a Sunday or Monday, depending on MondayFirst,
move to next row. Also handle the queued PS and PSFILE reminders */
if ((!MondayFirst && WkDayNum == 6) ||
(MondayFirst && WkDayNum == 0) || CurDay == MaxDay) {
(MondayFirst && WkDayNum == 0) || CurDay == MaxDay) {
HadQPS = 0;
if (MondayFirst) begin = CurDay - (WkDayNum ? WkDayNum-1 : 6);
else begin = CurDay - WkDayNum;
@@ -589,36 +610,66 @@ void WriteCalEntry()
/* */
/***************************************************************/
#ifdef HAVE_PROTOS
void WriteOneEntry(char *s)
void WriteOneEntry(CalEntry *c)
#else
void WriteOneEntry(s)
char *s;
void WriteOneEntry(c)
CalEntry *c;
#endif
{
int c;
int ch, i;
char *s = c->entry;
printf(" [");
/* Chew up leading spaces */
/* Chew up leading spaces */
while(isspace((unsigned char) *s)) s++;
/* Skip three decimal numbers for COLOR special */
if (c->special == SPECIAL_COLOR) {
for (i=0; i<3; i++) {
while(*s && !isspace(*s)) s++;
while(*s && isspace(*s)) s++;
}
}
PutChar('(');
while(*s) {
/* Use the "unsigned char" cast to fix problem on Solaris 2.5 */
/* which treated some latin1 characters as white space. */
c = (unsigned char) *s++;
if (c == '\\' || c == '(' || c == ')') PutChar('\\');
if (!isspace(c)) PutChar(c);
/* which treated some latin1 characters as white space. */
ch = (unsigned char) *s++;
if (ch == '\\' || ch == '(' || ch == ')') PutChar('\\');
if (!isspace(ch)) PutChar(ch);
else {
PutChar(')');
while(isspace((unsigned char)*s)) s++;
if (!*s) {
printf("]\n");
return;
goto finish;
}
PutChar('(');
}
}
printf(")]\n");
printf(")\n");
finish:
if (c->special == SPECIAL_COLOR) {
int r, g, b;
if (sscanf(c->entry, "%d %d %d", &r, &g, &b) == 3) {
if (r < 0) r = 0;
else if (r > 255) r = 255;
if (g < 0) g = 0;
else if (g > 255) g = 255;
if (b < 0) b = 0;
else if (b > 255) b = 255;
printf("(gsave %f %f %f setrgbcolor)(grestore)",
r / 255.0, g / 255.0, b / 255.0);
} else {
/* Punt... unrecognized color is black */
printf("()()");
}
} else {
printf("()()");
}
printf("]\n");
}
/***************************************************************/
@@ -676,9 +727,9 @@ char *argv[];
case 'e': EntrySize = t; break;
case 'd': DaySize = t; break;
case 't': TitleSize = t; break;
default: Usage("Size must specify h, t, e, or d");
default: Usage("Size must specify h, t, e, or d");
}
}
}
break;
case 'f':
@@ -691,9 +742,9 @@ char *argv[];
case 'd': DayFont = t; break;
case 's': SmallFont = t; break;
case 't': TitleFont = t; break;
default: Usage("Font must specify s, h, t, e, or d");
default: Usage("Font must specify s, h, t, e, or d");
}
}
}
break;
case 'v':
@@ -704,20 +755,35 @@ char *argv[];
if (i == argc) Usage("Media must be supplied");
t = argv[i++];
CurPage = NULL;
for (j=0; j<NUMPAGES; j++)
for (j=0; j<NUMPAGES-1; j++)
if (!strcmp(t, Pages[j].name)) {
CurPage = &Pages[j];
CurPage = &Pages[j];
break;
}
if (!CurPage) {
double w, h;
if (sscanf(t, "%lfx%lfin", &w, &h) == 2) {
CurPage = &Pages[NUMPAGES-1];
CurPage->xsize = (int) (w * 72.0);
CurPage->ysize = (int) (h * 72.0);
} else if (sscanf(t, "%lfx%lfcm", &w, &h) == 2) {
CurPage = &Pages[NUMPAGES-1];
CurPage->xsize = (int) ((double) w * 28.346457);
CurPage->ysize = (int) ((double) w * 28.346457);
}
}
if (!CurPage) {
fprintf(stderr, "\nUnknown media specified.\n");
fprintf(stderr, "\nAvailable media types:\n");
for (j=0; j<NUMPAGES; j++)
for (j=0; j<NUMPAGES-1; j++) {
fprintf(stderr, " %s\n", Pages[j].name);
}
fprintf(stderr, " WxHin Specify size in inches (W and H are decimal numbers)\n");
fprintf(stderr, " WxHcm Specify size in centimetres (W and H are decimal numbers)\n");
fprintf(stderr, "Default media type is %s\n", DefaultPage[0].name);
exit(1);
}
}
break;
case 'o':
@@ -843,7 +909,7 @@ int days, first, col;
/* Move origin to upper-left hand corner of appropriate box */
printf("%d xincr mul MinX add ysmall%d translate\n", col, which);
/* Print the month */
/* Print the month */
printf("SmallWidth 7 mul (%s) stringwidth pop sub 2 div Border add Border neg SmallFontSize sub moveto (%s) show\n", m, m);
/* Print the days of the week */
@@ -910,14 +976,14 @@ int DoQueuedPs()
while (e) {
/* Now do the user's PostScript code */
fnoff = 1;
/* Now do the PostScript SPECIAL */
fnoff = 0;
while (isspace(*(e->entry+fnoff))) fnoff++;
switch(*e->entry) {
case 'P': /* Send PostScript through */
switch(e->special) {
case SPECIAL_POSTSCRIPT: /* Send PostScript through */
printf("%s\n", e->entry+fnoff);
break;
case 'F': /* PostScript from a file */
case SPECIAL_PSFILE: /* PostScript from a file */
fp = fopen(e->entry+fnoff, "r");
if (!fp) {
fprintf(stderr, "Could not open PostScript file `%s'\n", e->entry+1);
@@ -930,7 +996,7 @@ int DoQueuedPs()
fclose(fp);
}
break;
case 'S': /* Shading */
case SPECIAL_SHADE: /* Shading */
num = sscanf(e->entry+fnoff, "%d %d %d", &r, &g, &b);
if (num == 1) {
g = r;
@@ -952,7 +1018,7 @@ int DoQueuedPs()
r/255.0, g/255.0, b/255.0);
break;
case 'M': /* Moon phase */
case SPECIAL_MOON: /* Moon phase */
num = sscanf(e->entry+fnoff, "%d %d %d", &phase, &moonsize,
&fontsize);
if (num == 1) {
@@ -975,7 +1041,7 @@ int DoQueuedPs()
sprintf(buffer, "%d", moonsize);
size = buffer;
}
printf("gsave 0 setgray newpath Border %s add BoxHeight Border sub %s sub\n", size, size);
printf(" %s 0 360 arc closepath\n", size);
switch(phase) {
@@ -1079,14 +1145,14 @@ void GetSmallLocations()
switch(c) {
case 'b':
/* Adjust Feb. if we want it on the bottom */
if (MaxDay == 28 && colfirst == 0) {
if (MaxDay == 28 && colfirst == 0) {
printf("/ysmallbot ymin def /ymin ysmallbot MinBoxSize sub def\n");
printf("MinX ymin MaxX ymin L\n");
printf("/ysmall1 ysmallbot def /ysmall2 ysmallbot def\n");
SmallCol1 = 5;
SmallCol2 = 6;
return;
}
}
if (collast <= 4) {
printf("/ysmall1 ysmallbot def /ysmall2 ysmallbot def\n");
SmallCol1 = 5;
@@ -1117,7 +1183,7 @@ void GetSmallLocations()
NoSmallCal = 1;
return;
}
/***************************************************************/
/* */
/* EatToken */

View File

@@ -6,11 +6,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: rem2ps.h,v 1.3 1999-04-05 17:34:56 dfs Exp $ */
/* $Id: rem2ps.h,v 1.5 2004-08-11 01:55:32 dfs Exp $ */
char *PSProlog1[] =
{
@@ -178,8 +178,22 @@ char *PSProlog2[] =
" /width exch def",
" /xleft exch def",
" /curline () def",
" % The last two strings in the word array are actually the PostScript",
" % code to execute before and after the entry is printed.",
" dup dup",
" length 1 sub",
" get",
" exch",
" dup dup",
" length 2 sub",
" get",
" dup length 0 gt",
" {cvx exec} {pop} ifelse",
" dup length 2 sub 0 exch getinterval",
" {EnterOneWord} forall",
" FinishFormatting",
" dup length 0 gt",
" {cvx exec} {pop} ifelse",
" y",
"} bind def",
"% Variables for calendar boxes:",

View File

@@ -6,12 +6,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: sort.c,v 1.5 1999-04-05 17:34:56 dfs Exp $";
static char const RCSID[] = "$Id: sort.c,v 1.6 2000-02-18 03:46:09 dfs Exp $";
#include <stdio.h>
#include <string.h>

View File

@@ -7,12 +7,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: token.c,v 1.8 1999-04-05 17:34:57 dfs Exp $";
static char const RCSID[] = "$Id: token.c,v 1.10 2001-11-06 15:51:37 dfs Exp $";
#include <stdio.h>
#include <string.h>
@@ -49,63 +49,63 @@ while (isdigit(*(string))) { \
Token TokArray[] = {
/* NAME MINLEN TYPE VALUE */
{ "after", 3, T_Skip, AFTER_SKIP },
{ "after", 3, T_Skip, AFTER_SKIP },
{ "april", 3, T_Month, 3 },
{ "at", 2, T_At, 0 },
{ "august", 3, T_Month, 7 },
{ "banner", 3, T_Banner, 0 },
{ "before", 3, T_Skip, BEFORE_SKIP },
{ "cal", 3, T_RemType, CAL_TYPE },
{ "before", 3, T_Skip, BEFORE_SKIP },
{ "cal", 3, T_RemType, CAL_TYPE },
{ "clear-omit-context", 5, T_Clr, 0 },
{ "debug", 5, T_Debug, 0 },
{ "december", 3, T_Month, 11 },
{ "dumpvars", 4, T_Dumpvars, 0 },
{ "duration", 3, T_Duration, 0 },
{ "else", 4, T_Else, 0 },
{ "endif", 5, T_EndIf, 0 },
{ "else", 4, T_Else, 0 },
{ "endif", 5, T_EndIf, 0 },
{ "errmsg", 6, T_ErrMsg, 0 },
{ "exit", 4, T_Exit, 0 },
{ "february", 3, T_Month, 1 },
{ "february", 3, T_Month, 1 },
{ "flush", 5, T_Flush, 0 },
{ "friday", 3, T_WkDay, 4 },
{ "fset", 4, T_Fset, 0 },
{ "if", 2, T_If, 0 },
{ "iftrig", 6, T_IfTrig, 0 },
{ "include", 3, T_Include, 0 },
{ "january", 3, T_Month, 0 },
{ "include", 3, T_Include, 0 },
{ "january", 3, T_Month, 0 },
{ "july", 3, T_Month, 6 },
{ "june", 3, T_Month, 5 },
{ "march", 3, T_Month, 2 },
{ "may", 3, T_Month, 4 },
{ "may", 3, T_Month, 4 },
{ "monday", 3, T_WkDay, 0 },
{ "msf", 3, T_RemType, MSF_TYPE },
{ "msg", 3, T_RemType, MSG_TYPE },
{ "november", 3, T_Month, 10 },
{ "october", 3, T_Month, 9 },
{ "msg", 3, T_RemType, MSG_TYPE },
{ "november", 3, T_Month, 10 },
{ "october", 3, T_Month, 9 },
{ "omit", 3, T_Omit, 0 },
{ "once", 3, T_Once, 0 },
{ "once", 3, T_Once, 0 },
{ "pop-omit-context", 3, T_Pop, 0 },
{ "preserve", 8, T_Preserve, 0 },
{ "priority", 8, T_Priority, 0 },
{ "ps", 2, T_RemType, PS_TYPE },
{ "psfile", 6, T_RemType, PSF_TYPE },
{ "push-omit-context", 4, T_Push, 0 },
{ "ps", 2, T_RemType, PS_TYPE },
{ "psfile", 6, T_RemType, PSF_TYPE },
{ "push-omit-context", 4, T_Push, 0 },
{ "rem", 3, T_Rem, 0 },
{ "run", 3, T_RemType, RUN_TYPE },
{ "run", 3, T_RemType, RUN_TYPE },
{ "satisfy", 7, T_RemType, SAT_TYPE },
{ "saturday", 3, T_WkDay, 5 },
{ "scanfrom", 4, T_Scanfrom, 0 },
{ "sched", 5, T_Sched, 0 },
{ "september", 3, T_Month, 8 },
{ "september", 3, T_Month, 8 },
{ "set", 3, T_Set, 0 },
{ "skip", 3, T_Skip, SKIP_SKIP },
{ "skip", 3, T_Skip, SKIP_SKIP },
{ "special", 7, T_RemType, PASSTHRU_TYPE },
{ "sunday", 3, T_WkDay, 6 },
{ "tag", 3, T_Tag, 0 },
{ "thursday", 3, T_WkDay, 3 },
{ "tuesday", 3, T_WkDay, 1 },
{ "unset", 5, T_UnSet, 0 },
{ "until", 3, T_Until, 0 },
{ "unset", 5, T_UnSet, 0 },
{ "until", 3, T_Until, 0 },
{ "warn", 4, T_Warn, 0 },
{ "wednesday", 3, T_WkDay, 2 }
};
@@ -171,7 +171,7 @@ char *s;
return s;
}
/***************************************************************/
/* */
@@ -196,7 +196,7 @@ Token *tok;
tok->type = T_Empty;
return;
}
if (*s == '#' || *s == ';') {
tok->type = T_Comment;
return;
@@ -244,7 +244,7 @@ Token *tok;
array. */
#if LANG != ENGLISH
for (r=0; r<(sizeof(NonEnglishToks) / sizeof(Token)); r++) {
if (l >= NonEnglishToks[r].MinLen &&
if (l >= NonEnglishToks[r].MinLen &&
!TokStrCmp(&NonEnglishToks[r], s)) {
tok->type = NonEnglishToks[r].type;
tok->val = NonEnglishToks[r].val;
@@ -252,7 +252,7 @@ Token *tok;
}
}
#endif
return;
}

View File

@@ -6,12 +6,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: trigger.c,v 1.4 1999-04-05 17:34:57 dfs Exp $";
static char const RCSID[] = "$Id: trigger.c,v 1.5 2000-02-18 03:46:11 dfs Exp $";
#include <stdio.h>

View File

@@ -6,11 +6,11 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: types.h,v 1.4 1999-04-05 17:34:58 dfs Exp $ */
/* $Id: types.h,v 1.5 2000-02-18 03:46:12 dfs Exp $ */
#include "dynbuf.h"

View File

@@ -7,12 +7,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: userfns.c,v 1.5 1999-04-05 17:34:59 dfs Exp $";
static char const RCSID[] = "$Id: userfns.c,v 1.6 2000-02-18 03:46:13 dfs Exp $";
#include <stdio.h>
#include <ctype.h>

View File

@@ -6,12 +6,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: utils.c,v 1.4 1999-04-05 17:34:59 dfs Exp $";
static char const RCSID[] = "$Id: utils.c,v 1.5 2000-02-18 03:46:14 dfs Exp $";
#include <string.h>
#include <stdio.h>

View File

@@ -7,12 +7,12 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
#include "config.h"
static char const RCSID[] = "$Id: var.c,v 1.6 1999-04-05 17:34:59 dfs Exp $";
static char const RCSID[] = "$Id: var.c,v 1.8 2005-04-12 00:44:08 dfs Exp $";
#include <stdio.h>
#include <string.h>
@@ -515,6 +515,7 @@ static SysVar SysVarArr[] = {
{ "NextMode", 0, INT_TYPE, &NextMode, 0, 0 },
{ "NumQueued", 0, INT_TYPE, &NumQueued, 0, 0 },
{ "NumTrig", 0, INT_TYPE, &NumTriggered, 0, 0 },
{ "PrefixLineNo", 0, INT_TYPE, &DoPrefixLineNo,0, 0 },
{ "PSCal", 0, INT_TYPE, &PsCal, 0, 0 },
{ "RunOff", 0, INT_TYPE, &RunDisabled, 0, 0 },
{ "SimpleCal", 0, INT_TYPE, &DoSimpleCalendar, 0, 0 },

View File

@@ -6,9 +6,9 @@
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992-1998 by David F. Skoll */
/* Copyright (C) 1999 by Roaring Penguin Software Inc. */
/* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */
/* */
/***************************************************************/
/* $Id: version.h,v 1.7 1999-04-05 17:35:00 dfs Exp $ */
#define VERSION "03.00.20"
/* $Id: version.h,v 1.11 2001-05-07 14:08:09 dfs Exp $ */
#define VERSION "03.00.23"

View File

@@ -2,15 +2,15 @@
# ---------------------------------------------------------------------------
# TEST-REM
#
# $Id: test-rem,v 1.3 1999-04-05 17:35:13 dfs Exp $
# $Id: test-rem,v 1.4 2000-02-18 03:46:29 dfs Exp $
#
# This file runs an acceptance test for Remind. To use it, type:
# sh test-rem OR make test
# in the build directory.
#
# This file is part of REMIND.
# Copyright (C) 1992-1997 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# Copyright (C) 1992-1997 David F. Skoll
# Copyright (C) 1999-2000 Roaring Penguin Software Inc.
# ---------------------------------------------------------------------------
TEST_GETENV="foo bar baz" ; export TEST_GETENV

View File

@@ -2,15 +2,15 @@
rem ---------------------------------------------------------------------------
rem TEST-REM
rem
rem $Id: test-rem.bat,v 1.2 1999-04-05 17:35:14 dfs Exp $
rem $Id: test-rem.bat,v 1.3 2000-02-18 03:46:31 dfs Exp $
rem
rem This file runs an MSDOS acceptance test for Remind. To use it, type:
rem test-rem
rem in the build directory.
rem
rem This file is part of REMIND.
rem Copyright (C) 1992-1997 by David F. Skoll
rem Copyright (C) 1999 by Roaring Penguin Software Inc.
rem Copyright (C) 1992-1997 David F. Skoll
rem Copyright (C) 1999-2000 Roaring Penguin Software Inc.
rem ---------------------------------------------------------------------------
del test.out > nul

View File

@@ -2,15 +2,15 @@
rem ---------------------------------------------------------------------------
rem TEST-REM
rem
rem $Id: test-rem.cmd,v 1.2 1999-04-05 17:35:14 dfs Exp $
rem $Id: test-rem.cmd,v 1.3 2000-02-18 03:46:32 dfs Exp $
rem
rem This file runs an OS/2 acceptance test for Remind. To use it, type:
rem test-rem
rem in the build directory.
rem
rem This file is part of REMIND.
rem Copyright (C) 1992-1997 by David F. Skoll
rem Copyright (C) 1999 by Roaring Penguin Software Inc.
rem Copyright (C) 1992-1997 David F. Skoll
rem Copyright (C) 1999-2000 Roaring Penguin Software Inc.
rem ---------------------------------------------------------------------------
del /f test.out > nul

View File

@@ -631,7 +631,7 @@ set a057 value("a05"+"6")
"a05" + "6" => "a056"
value("a056") => "SDFJHSDF KSJDFH KJSDFH KSJDFH"
set a058 version()
version() => "03.00.20"
version() => "03.00.23"
set a059 wkday(today())
today() => 1991/02/16
wkday(1991/02/16) => "Saturday"
@@ -772,7 +772,7 @@ dump
a048 "foo"
a067 "INT"
a039 "February"
a058 "03.00.20"
a058 "03.00.23"
a077 "1992 92
"
a049 21

View File

@@ -3,7 +3,7 @@
#
# TSTLANG.REM
#
# $Id: tstlang.rem,v 1.2 1999-04-05 17:35:14 dfs Exp $
# $Id: tstlang.rem,v 1.3 2000-02-18 03:46:33 dfs Exp $
#
# Use this file to test new language headers you may want to create.
# Usage: remind -rq tstlang.rem
@@ -13,8 +13,8 @@
# Use the output to verify your translations.
#
# This file is part of REMIND.
# Copyright (C) 1992-1997 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# Copyright (C) 1992-1997 David F. Skoll
# Copyright (C) 1999-2000 Roaring Penguin Software Inc.
#
# ---------------------------------------------------------------------------

View File

@@ -3,31 +3,31 @@
# Copyright (C) 1992-1997 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# $Id: Makefile,v 1.9 1999-04-05 17:35:16 dfs Exp $
# $Id: Makefile,v 1.13 2000-06-26 14:44:17 dfs Exp $
# The complete name of your www host. Example: www.mycompany.com
WWWHOST = shevy.skoll.ca
WWWHOST = localhost
# WWWHOST = www.mycompany.com
# The complete path to where the scripts actually live, as seen by
# the UNIX operating system.
SCRIPTDIR = /var/web/cgi-bin
SCRIPTDIR = /home/httpd/cgi-bin
# SCRIPTDIR = /home/dfs/Remind/www/TEST
# Where the scripts live as seen by the web browser. If
# they live in WWWHOST/cgi-bin, supply /cgi-bin
CGIDIR = /cgi-bin
# The complete path to the HTML file "calendar.html". This is a sample
# file containing links to all the scripts. This path should be the
# path as seen by the UNIX operating system
HTMLDIR = /home/dfs/public_html
# The complete path to the directory containing the HTML file "calendar.html".
# This is a sample file containing links to all the scripts. This path
# should be the path as seen by the UNIX operating system
HTMLDIR = /home/httpd/html/remind
# Where you stick images, as seen by UNIX
IMAGEDIR = /home/dfs/public_html
IMAGEDIR = /home/httpd/html/remind
# Where images are, as seen by web browers
IMAGEBASE = /~dfs
IMAGEBASE = /remind
# Location. Typically, the name of your city or town. Example: Ottawa
LOCATION = Ottawa
@@ -37,11 +37,24 @@ LOCATION = Ottawa
REMIND = /usr/local/bin/remind
REM2PS = /usr/local/bin/rem2ps
# If your Web server requires CGI programs to have a .cgi suffix, use
# the next line. Otherwise, comment it out
CGISUFFIX=.cgi
# Don't change stuff below here.
# --------------------------------------------------------------------
# Construct a rotten mean nasty sed script to do the dirty work
SEDSCRIPT = -e 's/Ottawa/$(LOCATION)/g' \
-e 's@http://your.machine/your.dir@http://$(WWWHOST)$(CGIDIR)@g' \
-e 's@%SCRIPTDIR%@$(SCRIPTDIR)@g' \
-e 's@%REMIND%@$(REMIND)@g' \
-e 's@%IMAGEBASE%@$(IMAGEBASE)@g' \
-e 's@%REM2PS%@$(REM2PS)@g' \
-e 's@cal_dispatch@cal_dispatch$(CGISUFFIX)@g' \
-e 's@rem2html@rem2html$(CGISUFFIX)@g'
SEDSCRIPT2 = -e 's/Ottawa/$(LOCATION)/g' \
-e 's@http://your.machine/your.dir@http://$(WWWHOST)$(CGIDIR)@g' \
-e 's@%SCRIPTDIR%@$(SCRIPTDIR)@g' \
-e 's@%REMIND%@$(REMIND)@g' \
@@ -54,27 +67,30 @@ all:
# OK, it's abominable. But it works...
install:
cp rem2html calps hebdate hebps hebhtml moon sunrise sunset $(SCRIPTDIR)
sed $(SEDSCRIPT) < cal_dispatch-DIST > $(SCRIPTDIR)/cal_dispatch
sed $(SEDSCRIPT) < hebdate.rem-DIST > $(SCRIPTDIR)/hebdate.rem
sed $(SEDSCRIPT) < moon.rem-DIST > $(SCRIPTDIR)/moon.rem
sed $(SEDSCRIPT) < sunrise.rem-DIST > $(SCRIPTDIR)/sunrise.rem
sed $(SEDSCRIPT) < sunset.rem-DIST > $(SCRIPTDIR)/sunset.rem
sed $(SEDSCRIPT) < calendar.html-DIST > $(HTMLDIR)/calendar.html
sed $(SEDSCRIPT) < rem2html > $(SCRIPTDIR)/rem2html
-mkdir $(SCRIPTDIR)
cp calps hebdate hebps hebhtml moon sunrise sunset $(SCRIPTDIR)
sed $(SEDSCRIPT) < cal_dispatch-DIST > $(SCRIPTDIR)/cal_dispatch$(CGISUFFIX)
sed $(SEDSCRIPT) < hebdate.rem-DIST > $(SCRIPTDIR)/hebdate.rem
sed $(SEDSCRIPT) < moon.rem-DIST > $(SCRIPTDIR)/moon.rem
sed $(SEDSCRIPT) < sunrise.rem-DIST > $(SCRIPTDIR)/sunrise.rem
sed $(SEDSCRIPT) < sunset.rem-DIST > $(SCRIPTDIR)/sunset.rem
sed $(SEDSCRIPT) < calendar.html-DIST > $(HTMLDIR)/calendar.html
sed $(SEDSCRIPT) < hebhtml > $(SCRIPTDIR)/hebhtml
sed $(SEDSCRIPT2) < rem2html > $(SCRIPTDIR)/rem2html$(CGISUFFIX)
chmod 644 $(SCRIPTDIR)/sunrise.rem
chmod 644 $(SCRIPTDIR)/moon.rem
chmod 644 $(SCRIPTDIR)/hebdate.rem
chmod 644 $(SCRIPTDIR)/sunset.rem
chmod 644 $(HTMLDIR)/calendar.html
chmod 755 $(SCRIPTDIR)/cal_dispatch
chmod 755 $(SCRIPTDIR)/rem2html
chmod 755 $(SCRIPTDIR)/cal_dispatch$(CGISUFFIX)
chmod 755 $(SCRIPTDIR)/rem2html$(CGISUFFIX)
chmod 755 $(SCRIPTDIR)/calps $(SCRIPTDIR)/hebdate \
$(SCRIPTDIR)/hebps $(SCRIPTDIR)/moon $(SCRIPTDIR)/sunrise \
$(SCRIPTDIR)/sunset $(SCRIPTDIR)/hebhtml $(SCRIPTDIR)/rem2html
$(SCRIPTDIR)/sunset $(SCRIPTDIR)/hebhtml $(SCRIPTDIR)/rem2html$(CGISUFFIX)
cp firstquarter.gif fullmoon.gif lastquarter.gif newmoon.gif $(IMAGEDIR)
chmod 644 $(IMAGEDIR)/firstquarter.gif $(IMAGEDIR)/fullmoon.gif $(IMAGEDIR)/lastquarter.gif $(IMAGEDIR)/newmoon.gif
-mkdir $(IMAGEDIR)
cp firstquarter.png fullmoon.png lastquarter.png newmoon.png $(IMAGEDIR)
chmod 644 $(IMAGEDIR)/firstquarter.png $(IMAGEDIR)/fullmoon.png $(IMAGEDIR)/lastquarter.png $(IMAGEDIR)/newmoon.png

View File

@@ -2,12 +2,12 @@
# This file is part of REMIND.
# Copyright (C) 1992-1997 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# Copyright (C) 1999-2000 by Roaring Penguin Software Inc.
# CAL_DISPATCH -- Shell script for CGI directory to dispatch calendar
# commands.
#
# $Id: cal_dispatch-DIST,v 1.4 1999-04-05 17:35:16 dfs Exp $
# $Id: cal_dispatch-DIST,v 1.5 2000-02-18 03:46:34 dfs Exp $
#
# WARNING WARNING WARNING -- If your /bin/sh is really GNU's "bash",
# make sure you don't have a buggy version which treats char 0xFF as

View File

@@ -1,12 +1,12 @@
<HTML>
<!-- Sample HTML file with links to the calendar stuff -->
<!-- $Id: calendar.html-DIST,v 1.4 1997-07-31 02:19:05 dfs Exp $ -->
<!-- $Id: calendar.html-DIST,v 1.5 2000-06-26 14:44:17 dfs Exp $ -->
<HEAD>
<TITLE>David Skoll's Calendar Server</TITLE>
</HEAD>
<BODY>
<H1>David Skoll's Calendar Server</H1>
<H1>Roaring Penguin's Calendar Server</H1>
<a HREF="http://your.machine/your.dir/cal_dispatch?sunrise">
Sunrise Information</a><P>
@@ -23,7 +23,7 @@ PostScript Calendar with Jewish Holidays</a> (Approximately 35 kB)<P>
<a HREF="http://your.machine/your.dir/cal_dispatch?hebhtml">
HTML Calendar with Jewish Holidays</a> (Your browser must support tables.)<P>
<HR>
<a HREF="ftp://ftp.doe.carleton.ca/pub/remind-3.0">
<a HREF="http://www.roaringpenguin.com/remind.html">
Get the Remind software</a> that provides this service.<P>
</BODY>

View File

@@ -3,9 +3,9 @@
#
# This file is part of REMIND.
# Copyright (C) 1992-1997 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# Copyright (C) 1999-2000 by Roaring Penguin Software Inc.
# $Id: calps,v 1.2 1999-04-05 17:35:17 dfs Exp $
# $Id: calps,v 1.3 2000-02-18 03:46:35 dfs Exp $
echo "Content-type: application/postscript"
echo

Binary file not shown.

Before

Width:  |  Height:  |  Size: 957 B

BIN
www/firstquarter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 944 B

BIN
www/fullmoon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

View File

@@ -3,9 +3,9 @@
#
# This file is part of REMIND.
# Copyright (C) 1992-1997 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# Copyright (C) 1999-2000 by Roaring Penguin Software Inc.
# $Id: hebdate,v 1.3 1999-04-05 17:35:17 dfs Exp $
# $Id: hebdate,v 1.4 2000-02-18 03:46:36 dfs Exp $
echo Content-type: text/html
echo ""

View File

@@ -2,9 +2,9 @@
#
# This file is part of REMIND.
# Copyright (C) 1992-1997 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# Copyright (C) 1999-2000 by Roaring Penguin Software Inc.
# $Id: hebdate.rem-DIST,v 1.6 1999-04-05 17:35:17 dfs Exp $
# $Id: hebdate.rem-DIST,v 1.8 2000-02-18 03:46:37 dfs Exp $
BANNER %
IF !$PSCAL
@@ -161,7 +161,7 @@ ENDIF
IF !$PSCAL
REM 20 ++40 msg Also available: <a HREF="http://your.machine/your.dir/cal_dispatch?hebps">a PostScript calendar</a> (about 35KB) for %m %y, complete with Hebrew dates, Jewish holidays, and moon phases for Ottawa. (This takes a few seconds to generate.)
REM 20 ++40 msg And: <a HREF="http://your.machine/your.dir/cal_dispatch?hebhtml">an HTML version</a> of the above. (No moons, and your browser must handle tables.)
REM 20 ++40 msg And: <a HREF="http://your.machine/your.dir/cal_dispatch?hebhtml">an HTML version</a> of the above. (Your browser must handle tables.)
ELSE
[trigger(moondate(0))] SPECIAL MOON 0
[trigger(moondate(1))] SPECIAL MOON 1

View File

@@ -3,9 +3,9 @@
#
# This file is part of REMIND.
# Copyright (C) 1992-1997 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# Copyright (C) 1999-2000 by Roaring Penguin Software Inc.
# $Id: hebhtml,v 1.3 1999-04-05 17:35:18 dfs Exp $
# $Id: hebhtml,v 1.4 2000-02-18 03:46:38 dfs Exp $
echo "Content-Type: text/html"
echo ""

View File

@@ -3,9 +3,9 @@
#
# This file is part of REMIND.
# Copyright (C) 1992-1997 by David F. Skoll
# Copyright (C) 1999 by Roaring Penguin Software Inc.
# Copyright (C) 1999-2000 by Roaring Penguin Software Inc.
# $Id: hebps,v 1.4 1999-04-05 17:35:19 dfs Exp $
# $Id: hebps,v 1.5 2000-02-18 03:46:39 dfs Exp $
# Figure out the month: If day <= 20, use this month; otherwise, use
# next month.

Some files were not shown because too many files have changed in this diff Show More