HISTORY file for `gcal'. Incomplete history (dates and events from my brain): v1.00 19960309 Table sizes of all STRINGS are managed dynamically now. Specific copyright conditions are part of Gcal now, see the file COPYING2 for more information. The option `--starting-day=0' can now be specified as `--starting-day=today' respectively `-s today', too. The German program version now accepts the English day and month names if no appropriate German names are given. Added %1, %2, %3 and %4 macros for user defined text highlighting in the text part of a resource file. Unlimited nesting level of include files realized. Implemented the use of an optional "repetition" factor and an optional "appearance" factor, which can be added to the end of a date part of fixed dates, which are given in a resource file (`:' leads a repetition factor, `.' leads an appearance factor): yyyymmdd:N yyyymmdd:N.N yyyymmdd:N,[mm]dd:N.N ... yyyymmdd#[mm]dd.N yyyymmdd#[mm]`www'N.N yyyymm`www'N:N yyyymm`www'N:N.N yyyymm`www'N:N,[mm]`www'N:N.N ... yyyymm`www'N#[mm]`www'N.N yyyymm`www'N#[mm]dd.N yyyymm`www'#`www'.N [ All the above codings are allowed with the yyyy*e|dvar[+|-]N[`www'] and the yyyy*d|wN[`www'] date formats, too! ] Implemented optional lists and ranges of days, which can be added to the date part of fixed dates, which are given in a resource file (`,' is the list separator character, `#' the range separator character): yyyymmdd|`www'|`www'N,[mm]dd|[mm]`www'|[mm]`www'N ... yyyymm`www'#`www' yyyymm`www'N#[mm]`www'N yyyymmdd#[mm]`www'N yyyymm`www'N#[mm]dd yyyy*d|wN|N`www',N|N`www' ... yyyy*d|wN#N`www' yyyy*d|wN`www'#N yyyy*d|wN`www'#N`www' yyyy@e|dvar,|[+|-]N[`www'],[+|-]N[`www'],[+|-]N[`www'],[+|-]N[`www'] ... yyyy@e|dvar[+|-]N[`www']#[+|-]N[`www'] Gcal now checks for the existence of an external `pg' pager. Put all help screens, the software license and the version information into the new `gcal_hlp.c' file. Renamed `gcal_cfg.h.in' to `gcal_cfg.hin'. The subject for an outgoing Email is now created via the `-s' option of the `mail' program. Added %j[[-]N] macro (real Julian day number). Changed the `week number of year' text. A fixed date warning which results to a leap day (i.e. the 29'th February), is displayed at the 28'th February in non-leap years if the option `--leap-day=february' is given resp., at the 1'st March if the option `--leap-day=march' is given. Elimated a bug in `eval_longopt()' function which occured if option `--usage=version' was given. Splitted the `rc_check()' and the `rc_use()' functions. The `--long-help=?' resp., `--usage=?' option now prints a list of all valid long-style options. Renamed `--hidden' option to `--export-local-date-variables'. Alternative format of fixed date list (--alternative-format resp., fixed date modifier [A]) implemented. Table size of `month_list[]' is managed dynamically now. Increased the version number to 1.00. v0.39 19951220 Fixed some bugs in the C sources. A positive displacement value for a date variable may either be given `@dvar+N' or `@dvarN' now. v0.38 19951213 Changed introduction text in `gcal-*.info*' files. `configure' script creates definition file `gcal_cfg.h' now. Corrected the buggy `Makefile' target "check". Added environment variable GCALANSI, which must be defined (not necessarily set) if ANSI escape highlighting sequences should be substituted respectively emitted by default. Redefined the "starting_day_of_week_option", which requires an argument now (--starting-day=ARG respectively -s ARG, and new ARG is 0 | 1|Mon|2|Tue|...|7|Sun). Short-style options which require an argument can be given now either in the `-Xfoo' or in the `-X foo' notation. --exclude-holiday-list-title resp., -X option excludes the title text of an eternal holiday list now. Independant use of standard dates, Julian dates and both standard- and Julian dates in calendar sheet (-j -jb), eternal holiday list (-jn -jnb) and fixed date warning list (-jc -jcb). Now all internal tables are checked if they are presorted to decide whether the `qsort()' function must be called. Improved the speed of the file reading function. Complete revision of -c|C[] modifier parsing. -c|C option eliminated. -c|C[0]... for indicating a list eliminated, used further modifier [l] --list-mode instead. -c|Cmmwwwn is now -c|Cmmwww without mode character 'n'. Further fixed date modifiers added ([0] indicates that a list instead of a single date is generated): [0]*d1...365|366|999 (== *d) means absolute day of year. [0]*d1...52|53|99www (== *dwww) means 'th weekday www of year. [0]*w0|1...52|53|99 (== *w) means Monday of 'th week of year. [0]*w0|1...52|53|99www (== *wwww) means weekday `www' of 'th week of year. Date variables are able to manage the new date format now (e.g. dvar=*d[www]). The %s..., %e..., %b... and %y... macros are able to manage the new date format now (e.g. %syyyy*d[www]). Actual date modifier manages the new date formats now (%yyyy*d[ww] resp., %yyyy*w[www]). Included new date formats yyyy*d[ww] and yyyy*w[www] for encoding fixed dates in a resource file. Changed description text of `wn' to `www' (means short weekday name consisting of two or three characters). The number 99 encodes the last month mm of a year now. The number 99 encodes the last day dd of a month now. The number 999 encodes the last day of a year now. Changed default behaviour of fixed date warning period modifiers t, w+, m+ and y+ (the produced list doesn't start today now). Option --include-today resp., fixed date modifier [d] is new. Option --shell-script=ARG resp., -S creates a shell script for calling gcal with all given arguments of the command line and GCAL environment variable (similar the --response-file=ARG resp., -R response file option). Option `-H yes' added, which forces the output of highlighting sequences if output is redirected/piped. Option --highlighting=yes is the equivalence of -H yes. Option --highlighting=no is the equivalence of -H no. -q[1..4] short style option doesn't exist anymore (changed to --debug[=list_of_arguments]). C Preprocessorsymbols USE_RC, USE_HLS and USE_PAGER are default now! Revised several long and short style options and changed their option character resp., mnemonic name. Revised documentation and help screens again. Revised configure.in, Makefile.in, MANIFEST, README, INSTALL, SYMBOLS and tcal. Table size of a `*rc_table[]' and `*my_argv[]' are allocated dynamically now. Use of my_malloc() and my_realloc() functions returning VOID_PTR in C source code now. UN*X man pages are shortend. Changed old FSF address to new address. v0.37 19951011 More long options implemented. Revised documentation. v0.36 19950804 Bugfix for OS/2 systems: gcal_tty.c: function v_vio_init() obsolete. makefile.emx: extended by USE_PAGER feature. Several typos in man-pages and Texinfo files corrected. The German "Umlaute" are supported now in dvi file of German Texinfo documentation. v0.35 19950727 Official distributed version. First version of Texinfo documentation created. v0.34 19950708 External pager is respected now. Another fiscal year command `:yyyy' added. Two further special 3 month modes added: command `.+': actual and next two month of current year. command `.-': actual and previous two month of current year. UN*X screen-size detection via ioctl() function. Termcap padding realized. Help screens updated. Email option -m|M included, which sends gcal's output by mail(1) program to user. Extension of actual date modifier: %month name[dd], %weekday name[n], %dd. Global suppress calendar sheet option -u added. Renamed options: -f|F is -n|N now and vice versa. Added further "eternal holiday list" option -F for displaying legal days only. Bug-fixes. Actual date modifier %yyyy@[[-][wn]] added. Further fixed date modifiers added: @dvar[[-]] (Display fixed date warnings of day relative date variables date of actual year; warning level is same as -c). 0@dvar[[-]] (Display list of fixed date warnings, starting yesterday/tomorrow [depending on value given in ] and ending at 'th day relative date variables date of actual year; warning level is same as -cy). @[-]wn (Display fixed date warnings of 'th weekday `wn' relative Easter Sundays or date variables date of actual year; warning level is same as -c). 0@[-]wn (Display list of fixed date warnings, starting yesterday/tomorrow [depending on value given in ] and ending at 'th weekday `wn' relative Easter Sundays or date variables date of actual year; warning level is same as -cy). Some long options (--help --help-long --license --version) added. Error message #114 (invalid date variable operation), #113 (referenced date variable undefined) and #112 (Invalid date value assigned to date variable) included. Added further command line option for setting global date variables (-v). Implementation of simple global and local date variables and some basic operations on them (dvar=mmdd, dvar=mmwn, dvar=dvar, dvar++, dvar--, dvar+= and dvar-=). Calculation of eternal holidays from A.D.464...YEAR_MAX. Further fixed date modifiers added: d (Display fixed date warnings of absolute day of actual year; warning level is same as -c). 0d (Display list of fixed date warnings, starting yesterday/tomorrow [depending on value given in ] and ending at 'th absolute day of actual year; warning level is same as -cy). @e[[-]] (Display fixed date warnings of day relative Easter Sunday date of actual year; warning level is same as -c). 0@e[[-]] (Display list of fixed date warnings, starting yesterday/tomorrow [depending on value given in ] and ending at 'th day relative Easter Sundays date of actual year; warning level is same as -cy). Renamed C Preprocessor symbols: CATHOLIC to USE_CATH, EXT_ASCII to USE_EASC, GERMAN to USE_GER and US_HDY to USE_USHDY. Further fixed date modifier [E] added which enables inclusion of those eternal holiday dates, which are legal days only. Added further command line option -d for setting user defined highlighting sequence / marking character pairs, which must be colon separated. Replaced conditional compilation symbol ANSISYS by USE_HLS. Error message #243 (can't write response file) included. Response file write option -l implemented. Actual date modifier %yyyy[mm[dd|wn[n]]] resp., %yyyy@e[[-]] added. Standard date part of resource file line more flexible now -> yyyy[mm[dd[n]]]`text' @... holiday coding of date part of resource file line added, e.g.: yyyy@e-20 = date at Easter-20 days in year yyyy 0000@e20 = date at Easter+20 days every year Further fixed date modifiers added: w (Display fixed date warnings of week number <0|1...52|53|99> of actual year; warning level is same as -cw). 0w (Display list of fixed date warnings, starting yesterday or tomorrow [depending on given week number ] and ending at first resp., last day of given week number <0|1...52|53|99> of actual year; warning level is same as -cy). `mmdd'n (Display fixed date warnings of 'th weekday `dd|wn' in month `mm' of actual year; warning level is same as -c). 0`mmdd'n (Display list of fixed date warnings, starting yesterday/tomorrow [depending on the value given in `mmdd'] and ending at 'th weekday `dd|wn' of month `mm' of actual year; warning level is same as -cy). Acorn Archimedes RISC/OS Makefile created. Fixed date modifiers [k] (display ISO week numbers) and [u] (suppress output of calendar sheet) added. Two special 3 month modes added: command `.': previous, actual and next month of current year. command `..': actual quarter of current year. Included error messages #245 (invalid `n'-field entry), #244 (missing whitespace delimiter). Extended %b..., %y..., %s... and %e... macros by the "n'th weekday of month" field and the [yyyy] is optional now (explicit year or 0000), e.g.: %s[yyyy[mm[dd|wn[n]]]]. Extension of RC-file's date part by a "n'th weekday of month" field. Further exit code #1 implemented which occurs, if activated `rc_use_flag' causes no output of RC-file entries. Increased the number of managed resource file entries to 10000. Further command line option for setting the warning level (-q[1...4]) added. #include statements in resource files are respected now. Resource files are searched in `gcal's user library directory GCAL_USR_LIBDIR and `gcal's system library directory GCAL_SYS_LIBDIR, too. Included error messages #248 (malformed #include), #247 (invalid sub-#include) und #246 (file not found). Conditional compilation symbol USE_PAGER controls, whether a simple, internal pager is built-in. Extended %syyyy[mm[dd]] and %eyyyy[mm[dd]] macros. Added simple %d macro (day difference), simple %w macro (week difference), simple %m macro (month difference), simple %y macro (year difference) and the %n[[-]] macro (effective date text). Bug fixed in computation of "weekday_of_date()" which occurred if the year to compute is greater 6100. Extended time macro %t[12|24] (12 / 24 hour display) added. RC-file %... items may be quoted by \%... now. Used autoconf installation technology. Amiga, Atari, Windows NT, OS/2, PRIMOS and VMS Makefiles created. Further fixed date modifier [z] added for showing the consecutive number of a fixed date warning message. A line of the resource file can be continued at next line by a BACKSLASH-NEWLINE character sequence now. Header file "gcal_tai.h" (target specific part) created. Response file (@file) handling added. MS-DOS DJGPP (DJ-GCC) Makefile created. Some bugs corrected in UN*X-`man' pages. Further fixed date modifier `simple' for showing the fixed date warnings of absolute day of actual year added; warning level is same as -c. Extended help screen (-hh|-??) added. Function usage_msg() replaced by C Preprocessor symbol USAGE_MSG. German and English UN*X-`man' pages created. Further fixed date modifiers added: `mmdd' (Display fixed date warnings of day `dd' in month `mm' of actual year; warning level is same as -c). 0`mmdd' (Display list of fixed date warnings, starting yesterday/tomorrow [depending on the value given in `mmdd'] and ending at day `dd' of month `mm' of actual year; warning level is same as -cy). <+|-> (Display fixed date warnings of day `actual day +/- [days]' of actual year; warning level is same as -c). 0<+|-> (Display list of fixed date warnings, starting yesterday[-] or tomorrow[+] and ending at `actual day +/- [days]' of actual year; warning level is same as -cy). Renamed environment variable `CAL' to `GCAL'. Renamed `cal' to `gcal'! v0.33 19941108 Alternative resource file (-n|N) feature added. Designed separate functions to display special texts: usage_msg(), my_help(), my_version(), my_license(). MY_ISSPACE() replaces the "ctype.h" isspace() macro now. NEWS, HISTORY, THANKS, TODO, README and INSTALL created. Management of %t, %syyyy and %eyyyy items in RC-file. Fixed date modifiers [a] (show RC-file name in warning) and [x] (exclude title of fixed date list) added. Starting day of week option [-s[]] without trailing modifier sets starting day of week to actual weekday. Function "jdate_to_sdate()", which converts a Julian date to a standard date, added. Display all dates of fixed date warning period feature added (-C[] or -C[][T|W|M|Y] or -c[][T|W|M|Y] or -N<>) (thanks to Stephan Forth). Fixed date modifier for grouping [g[`txt']] added (thanks to Stephan Forth). Fixed date modifier added for omitting the date part of a warning [o] in case more than one warning refers to that date. Added quoting of `~'-TILDE character by `\~' resp., `\\~'. v0.32 19940930 Split the main C-source file into two header files and five C-files. MS-DOS C-compiler Makefiles created (TCC, BCC, MSC, ZTC, WCC). German "Tag der Deutschen Einheit" holiday respected after 1953 and 1989 now. Fiscal year mode ([mm:]yyyy) implemented. Due to this: help screen updated. `gcal' error/version/license prompt bug eliminated. Added highlighting of eternal holiday list and fixed some bugs in this function. Merged the two functions "compare_dayname()" and "compare_monthname()" to single function "compare_d_m_name ()". Whole calendar output is managed by function "print_text()". Very poor and simple internal pager (-p) implemented. CAL environment variable for options is respected now. (-i) international calendar format (similar BSD-cal) added. function "my_error()" processes all common errors now. v0.31 19940912 Symbol ISO_ASCII eliminated (now !EXT_ASCII). Changed my signature. Print year using %04d format always. GNU coding-scheme implemented. Several bug-fixes. v0.30 19940909 Respected Julian flag for RC fixed dates/holiday list. Julian option modifiers [bfc] (thanks to John T. Foley). Modified help screen. `~'-char in RC-file line is replaced by a "real" `\n'-NEWLINE char. v0.29 19940905 Included copyright notice (gpl) and version. U.S. holidays (US_HDAY). Respected eternal holidays in case symbol USE_RC is defined. Ascending/descending sort of holiday list/RC fixed dates. Several bugs fixed (internal version). v0.28 19940827 Management of %byyyy and %yyyyy items in RC-file. v0.27 19940824 Help screen / holiday list modified (highlighting). v0.26 19940819 Extended year-list / year-range mode implemented (yyyy+yyyy yyyy;...;yyyy). v0.25 19940815 Extended month-list / month-range mode implemented (mm[/yyyy]-mm[/yyyy] mm[/yyyy],...,mm[/yyyy]). v0.24 19940808 (quick)sorted output of RC-file lines implemented (internal version). v0.23 19940803 Some conditional compilation statements (USE_RC) added (internal version). v0.22 19940717 Resource file management (RC-file) implemented (internal version). v0.21 19940712 Textual day/month names feature added. v0.20 19940603 Variable starting day of week feature (-s1...7|day name) added. v0.19 19931117 \ ... > Internal versions. v0.01 19910923 /