[BACK]Return to distinfo CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / time / pcal

File: [cvs.NetBSD.org] / pkgsrc / time / pcal / distinfo (download)

Revision 1.8, Wed Apr 8 06:14:46 2020 UTC (9 months, 1 week ago) by riastradh
Branch: MAIN
CVS Tags: pkgsrc-2020Q4-base, pkgsrc-2020Q4, pkgsrc-2020Q3-base, pkgsrc-2020Q3, pkgsrc-2020Q2-base, pkgsrc-2020Q2, HEAD
Changes since 1.7: +8 -14 lines

pcal: Update to version 4.11.0

Changes since 4.7:

"Pcal" Version 4.11.0

   This release of 'pcal' includes additional functionality, some bug fixes,
   and an update of the associated documentation.

   Major changes:

      1) New functionality:

         - Support for the following languages has been added:

              - Slovak ("-a sk")

                Thanks to Zdenko Podobny for this patch and for a new calendar
                configuration file with Slovak holidays ('calendar_sk.txt'),
                which is now included in the 'examples' directory.

              - Hawaiian ("-a ha")

                Thanks to Eric Nichols for this patch.

         - Added a sample Spanish calendar configuration file, with Spanish
           holidays ('calendar_es.txt'), generously provided by Francisco José
           Marín Pérez.

           Aside: The file was renamed from his original name of
           'calendar_sp.txt' to 'calendar_es.txt', in order to match the
           convention of using ISO 3166 (country codes) for 'pcal' sample
           configuration files.

         - Allow the drawing of moon phase icons ('-m' or '-M') and Julian
           dates ('-j' or '-J') on yearly-format calendars.

           Previously, these features were only allowed on monthly-format
           calendars.  If someone has eyes good enough to see these things,
           they should be allowed to add them to their yearly-format
           calendars! :^)

           Since moon phase icons and Julian dates were automatically disabled
           on yearly-format calendars in older releases, you might be
           surprised to suddenly find these (possibly unwanted) items on your
           yearly-format calendars, assuming you have a 'pcal' configuration
           file (loaded with '-f') with one of those 4 options enabled
           (i.e. 'opt -m', 'opt -M', 'opt -j', and/or 'opt -J').  If you want
           to see moon phases or Julian dates _only_ on your monthly-format
           calendars, simply modify your configuration file(s) to use a check
           such as this:

              # Display moon phase icons on every day of the month.
              # Beginning with version 4.11.0, this works on yearly-format (1
              # year per page) calendars too.  But it can be disabled as shown
              # below.
              ifndef whole_year
                 opt -M

           Note that the 'pcal-cfg.txt' sample configuration file (distributed
           with 'pcal' in the 'examples' subdirectory) has some examples of
           this too.

         - Added a new preposition -- 'on'.

           The use of this preposition is similar to the existing prepositions
           like 'on_or_before' and 'on_or_after', but it requires that the
           event occur exactly on the specified day.

           Some examples to clarify:

              Sat on Jul 4     Huge party!

                 This example causes the text "Huge party!" to be displayed
                 only if July 4th (for that year) occurs on a Saturday.

              Fri on all 13     Avoid black cats!

                 This example causes the text "Avoid black cats!" to be
                 displayed on Friday the 13th, for every month ("all") in
                 which it occurs.

           This new feature was added based on a request from (and partially
           based on a patch from) Erkki Petsalo.

         - Added a new option -- '-W [ left | center | right ]' -- to specify
           the horizontal alignment of the month/year title displayed at the
           top of monthly-format calendars.

           The default is, of course, 'center'.

           Thanks to Todd Foster for providing a complete and thorough patch
           to provide this new feature.  He uses it to avoid splitting the
           month/year label as he cuts a monthly-format calendar apart to fit
           into a 6x9-inch notebook, but this feature might be useful to
           others as well.

         - Per a request from Stefan Haubenthal, who provided a small patch
           and a proper makefile ('Makefile.Amiga'), re-added support for the
           Amiga platform, which had been removed in the last release (due to
           unavailability of someone to test on that platform).

      2) Removed functionality:

         - Removed the long-obsolete external 'moon file' concept.  Now, we
           depend solely on the algorithmic determination of moon phases,
           which has been in place for many years and seems to be plenty

           The 'moon98' file (with manual entries of the dates and times of
           the 4 primary moon phases for all of 1998) was also removed from
           the 'examples' subdirectory, since it no longer serves any purpose.

         - The 'F13' pre-defined event has been removed.  It is unnecessary
           now that 'pcal' has support for the new 'on' preposition (described

           Replace any occurrence of 'F13' in your configuration file(s) with

              Fri on all 13

           The 'examples/pcal-cfg.txt' and 'examples/calendar_nl.txt' files
           were altered accordingly, intelligently using a pre-processor
           'ifdef' directive and the pre-defined 'pcal' version symbol ('ifdef
           v4_8_0 | v4_9_0 | v4_9_1 | v4_10_0') to use the appropriate format
           for this event specification, depending upon which version of
           'pcal' is being used.

      3) Bug fixes:

         - Fixed a bug present since the 4.10.0 release of 'pcal' whereby the
           use of the '-J' (capital 'J') option to display both the Julian
           date (day of year) and the number of remaining days in the year
           erroneously caused garbage text (PostScript commands) to appear in
           place of the number of days remaining in the year.

         - Fixed a long-standing bug whereby the last line of a 'pcal'
           configuration file was silently ignored if it ended without a 'line
           feed' (ASCII 10 character).

           Thanks to Thomas Zastrow for reporting this bug.

          - Fixed a long-standing bug in the 'moon phase' calculations.

           This bug only affected the pure DOS build (i.e. made with
           'Makefile.DOS').  It did not affect the Linux/Unix builds or the
           DJGPP-based or Cygwin-based builds.

           This bug was causing the major phases of the moon (new, 1Q, full,
           3Q) to be erroneously detected on 2 adjacent days instead of on
           just the single day on which they actually occurred.

           This in turn caused 2 of the same moon phase icons to appear on
           adjacent days on monthly-format calendars when the '-m' option was

           Thanks to Eric Nichols who helped to confirm the presence of this

      4) Other changes:

         - In the USA calendar example file and the generic 'pcal-cfg.txt'
           example file, commented out the pre-2007 rules for Daylight Saving
           Time (DST) and added new rules for 2007 and beyond.

         - Made some tweaks to the 'examples/pcal-cfg.txt' 'pcal' sample
           configuration file, in some cases to demonstrate more 'pcal'

         - Added the Polish calendar ('examples/calendar_pl.txt'), provided by
           Dominik 'Chiron' Derlatka in the previous 'pcal' release, to the
           release package.

           It had been inadvertently omitted from the 4.10.0 release (but was
           available via CVS checkout since then).

         - Added 2 Unix shell scripts to a new 'scripts' directory in the
           'pcal' distribution:

              - my_daily_reminder_script.sh

                This script provides daily email schedule reminders.

              - group_calendaring.sh

                This script allows a simple 'group calendaring' capability.

           These scripts were written and generously provided by Kristofer
           Bergstrom.  They help automate his usage of 'pcal' and should prove
           useful to others.

           Kris' detailed explanation of the usage of these scripts is
           available as a link on the main 'pcal'/'lcal' website, but here's
           the direct link:


         - Modified the Unix makefile to allow use of a user-specified
           destination directory ('$DESTDIR') on the installation step.

           For example:

              make DESTDIR=$HOME/test install

           Thanks to "Jonathan" (who's packaging 'pcal' for Gentoo) for this
           idea and a related patch.

         - Made various tweaks and updates to the 'man pcal' page.

           Some of these are intended to provide more guidance and examples in
           the use of 'pcal'.

           Added a long-missing description of the pre-defined symbols for
           paper size and page orientation, which can be used to advantage in
           the 'pcal' configuration file.

         - Fixed up a few errors (wrong credits, etc) and made various
           required changes to previous release notes in this 'ReadMe.txt'


      The original calendar PostScript was Copyright (c) 1987 by Patrick Wood
      and Pipeline Associates, Inc. with permission to modify and

      The following people contributed to Pcal v4.11.0:

         Bug fixes, support for moon icons and
            Julian dates on yearly-format calendars,
            and various other fixes:			Bill Marr
         Slovak language support and config file:	Zdenko Podobny
         Hawaiian language support:			Eric Nichols
         Spanish config file:				Francisco José Marín Pérez
         Useful Unix scripts:				Kristofer Bergstrom
         New 'on' preposition:				Erkki Petsalo
         Title alignment option:			Todd Foster
         Amiga support:					Stefan Haubenthal

      For a list of all known contributors to date, see the 'Authors' section
      of the 'man' page.

   Bill Marr (marr99@users.sourceforge.net)
   18 Dec 2007


"Pcal" Version 4.10.0

   This release of 'pcal' includes additional functionality, some bug fixes,
   and an update of the associated documentation.

   Major changes:

      1) New functionality:

         - Support for the following languages has been added:

              - Danish ("-a da")
              - Dutch ("-a nl")
              - Polish ("-a pl")
              - Romanian ("-a ro")

           Thanks to Ewald Beekman, a new calendar configuration file with
           Dutch holidays ('calendar_nl.txt') is included in the 'examples'

           Thanks to Dominik 'Chiron' Derlatka, a new calendar configuration
           file with Polish holidays ('calendar_pl.txt') is included in the
           'examples' directory.

      2) Removed functionality:

         - Support for the OS/2, Amiga, and Vax/VMS platforms has been

           These platforms are essentially obsolete and the files and code
           needed to accommodate these platforms was cluttering things up and
           interfering with further progress by needlessly complicating the

           Anyone needing support for these platforms is advised to continue
           using the 4.9.1 release of 'pcal'.

      3) Bug fixes:

         - Fixed a couple of long-standing, recently-uncovered bugs in the use
           of the timezone ('-z') option, which is used in the 'moon phase'

              (1) Negative timezone arguments, used for areas east of
                  (i.e. later than) UTC/Greenwich (e.g. '-z-5'), were not
                  being processed correctly. (They were erroneously adjusted
                  by adding a full 24 hours to make them positive.)

                  Thanks to Lalit Chhabra for reporting this bug.

              (2) The user-specified timezone offset was being normalized to
                  +/- 12 hours.

                  Although this works for the vast majority of users, there
                  are places in the world which are outside that range. For
                  example, Christmas Island (aka 'Kiritimati', in the Pacific
                  Ocean) is in the UTC+14 timezone. The local time there is 14
                  hours ahead of UTC, so the 'pcal' option would be
                  '-z-14'. Obviously, with such places in the world, we can no
                  longer normalize the user-specified timezone offset to +/-
                  12 hours.

         - Fixed a problem whereby certain installations of Cygwin were unable
           to compile 'pcal', due to a namespace collision between the
           'getline()' routine in 'pcal' and the standard C library function

           Thanks to Daniela ('Dani') Duerbeck for reporting this and to
           Stefan Fronzek for confirming that the fix worked.

         - Worked around a problem whereby a 'segmentation fault' crash can
           occur when a single entry in the 'pcal' configuration file has more
           than 100 'words' defining an event. Thanks to Eric Herrera for the
           crash report.

           For now, the limit has been increased from from 100 to 300, which
           should solve the problem for the vast majority of 'pcal' users.

      4) Other changes:

         - Eliminated certain compile-time warnings that occur in a "GCC 3.4.2
           + Solaris" build environment, thanks to a report from David Mathog.

           This involved adding a bunch casting operations to the argument of
           certain function calls like 'isdigit()' and 'islower()'.

         - Eliminated the voluminous description of the syntax and operations
           for the 'pcal' configuration file from the 'pcal -h' output,
           leaving just the detailed description of the command-line

           The long description of the use of 'pcal' configuration file was
           somewhat out-of-date and basically just (badly) duplicated the
           content of the 'man pcal' page (or its HTML, PostScript, or ASCII
           equivalent file).

           The 'man pcal' page should be treated as the authoritative
           reference for detailed aspects of 'pcal' operation.

         - Changed the format for the timestamp in the PostScript comment
           output ('%%CreationDate:') to one which is more thorough and less

         - Provide the URL to the 'pcal'/'lcal' website in the header
           (comment) section ('%%Creator:') of the PostScript output.

         - In the USA calendar example file, a couple of out-of-date URLs were
           repaired and some erroneous comment information about the date of
           George Washington's birthday was fixed.

      5) Of interest to 'pcal' hackers and installers:

         - Made a major change to 'pcal' design.

           Previously, the PostScript output was generated in part using an
           external program ('pcalinit[.c]') which read the PostScript
           template file ('pcalinit.ps') and automatically generated a C
           header file ('pcalinit.h').

           This old method had a few disadvantages:

              (1) The PostScript output that it generated was ugly, with no
                  whitespace (vertically or horizontally) and devoid of the
                  (useful) comments that were part of the PostScript template

                  This made reading the PostScript much harder.

              (2) It was harder to take advantage of patterns in the
                  PostScript output, causing redundancy.

              (3) It was harder to compile (especially as the size of the
                  PostScript template file grew) under limited environments,
                  like DOS.

           The new method generates all the PostScript output using C code

           Minor optimizations in the code can be made this way, without
           needlessly replicating similar chunks of PostScript code.  This
           puts some of the logic behind the PostScript output back into C
           code, where it's easier to see what's happening.

           In truth, this change was first made (recently) to the 'lcal'
           application, where the inefficiencies are greater.  Logically,
           however, 'pcal' benefited from the same change.

         - Renamed the 'Makefile' flag 'EPS' to 'EPS_DSC' in order to more
           clearly show its purpose (i.e. to use different PostScript Document
           Structuring Conventions [DSC]) and to avoid confusion with the
           embedded EPS image capability for monthly calendars.


      The original calendar PostScript was Copyright (c) 1987 by Patrick Wood
      and Pipeline Associates, Inc. with permission to modify and

      The following people contributed to Pcal v4.10.0:

         Bug fixes, various other fixes:		Bill Marr
         Polish language support:			Dominik 'Chiron' Derlatka
         Dutch language support:			Ewald Beekman
         Romanian language support:			Claudiu Costin
         Danish language support:			Kenneth Geisshirt

      For a list of all known contributors to date, see the 'Authors' section
      of the 'man' page.

   Bill Marr (marr99@users.sourceforge.net)
   06 Aug 2006


"Pcal" Version 4.9.1

   This release of 'pcal' includes no new functionality.  It contains only a
   simple bug fix.

   Major changes:

      1) Bug fixes:

         - Fixed a bug which inadvertently slipped into the 4.9.0 release at
           the last minute.

           This bug is only encountered when building for the Unix/Linux,
           OS/2, or DOS+DJGPP environments (i.e. when using the 'Makefile'
           file).  It causes a syntax error if you attempt to install 'pcal'
           using the 'make install' command.

   Bill Marr (marr99@users.sourceforge.net)
   24 Aug 2005


"Pcal" Version 4.9.0

   This release of 'pcal' includes additional functionality, some bug fixes,
   and an update of the associated documentation.

   Major changes:

      1) New functionality:

         - Added new PostScript encoding vectors to support the following
           character sets:

              - KOI8-R      -- Russian
              - ISO 8859-2  -- Latin2 (East European)
              - ISO 8859-3  -- Latin3 (South European)
              - ISO 8859-4  -- Latin4 (North European)
              - ISO 8859-5  -- Cyrillic
              - ISO 8859-7  -- Greek
              - ISO 8859-9  -- Latin5 (Turkish)
              - ISO 8859-10 -- Latin6 (Nordic)
              - ISO 8859-11 -- Thai
              - ISO 8859-13 -- Latin7 (Baltic Rim)
              - ISO 8859-14 -- Latin8 (Celtic)
              - ISO 8859-15 -- Latin9 (adds euro, etc)

          Note that not all of these new encodings are currently used, simply
          because a language which requires the use of a given encoding may
          not yet be supported by 'pcal'.  Any of these encodings which are
          not yet used have been added with the intent of simplifying the
          future addition of support for other languages.

          Furthermore, encodings for Arabic (ISO 8859-6), Hebrew (ISO 8859-8),
          and Latin10 (ISO 8859-16) are not currently supported at all, but
          placeholders have been added to the 'pcal' source code to allow
          easier entry of those encodings in the future, if someone comes up
          with the necessary PostScript encoding vectors.

        - Support for the following languages has been added:

             - Czech ("-a cz")
             - Hungarian ("-a hu")
             - Catalan ("-a ca")

        - Russian language support is no longer considered "experimental", now
          that 'pcal' properly supports the KOI8-R character encoding.

          The default encoding for Russian is now KOI8-R instead of KOI8-U
          (which was used in v4.8.0 as a crude, temporary method).

          Latvian and Lithuanian language support is no longer considered
          "experimental", now that 'pcal' properly supports the 'Latin7' (ISO
          8859-13) character encoding.

          The default encoding for both Latvian and Lithuanian is now 'Latin4'
          instead of 'Latin1' (which was used in v4.8.0 as a crude, temporary

      2) New date file functionality:

         - Based on a patch from Bill Bogstad, added the capability to delete
           specific events, thereby allowing one to exclude one or more events
           that were inserted as a group of events, by using the new 'delete'

           More details are in the 'man' page.

           The sample configuration file ('examples/pcal-cfg.txt') also
           includes an example of the usage of this new capability.

      3) Other changes:

         - Changed the date/event separator character from a space to a tab
           when using the '-c' option (to output text lines which are
           compatible with the Unix 'calendar' program).

           This was done at the behest of a user who found that the space
           character was inadequate as a separator.  In fact, the 'calendar'
           program from a recent stable version (6.0.17) of the Debian
           'bsdmainutils' package proves that the space character is truly
           inadequate as a separator when running 'pcal -c > pcal-output.txt;
           calendar -f pcal-output.txt'.

         - Added a Perl script ('html/pcal.pl') from David Mathog which is an
           alternate way (compared to the existing 'pcal.cgi' Bourne shell
           script) to generate calendars via HTML/CGI.

         - Now that new character encodings are available, the default
           Greek-language character encoding was changed from 'Latin-1' (ISO
           8859-1) to 'Greek' (ISO 8859-7) to prevent having to specify '-r
           none' in order to get a usable Greek calendar.

          - Added new 'pcal' calendar configuration files to the 'examples/'

               - 'calendar_us.txt'

                 This example, provided by J. Rhett Hooper, contains events
                 for users in the USA.

               - 'calendar_hu.txt'

                 This example, provided by Ferenc Kruzslicz, contains events
                 for users in Hungary.

          - Now that the Latin3 (ISO 8859-3) character encoding is provided,
            there's no need to use the previous (customized) method of
            supporting the Esperanto language.  Because of this, the custom
            'Esperanto' encoding has been eliminated.

            Esperanto speakers/users should now just use the standard 'Latin3'
            (ISO 8859-3) characters, which fully support the unique characters
            in the Esperanto language.

            This change cleans up the code in several spots.

          - Tweaked several of the sample calendar configuration files in the
            'examples/' directory to not specify any fonts.

            The specification of fonts is better left to the command line,
            since the necessary fonts to display/print a given language's
            calendar will undoubtedly differ amongst various users.

          - Added several new 'examples/fonttest_*' files to support testing
            of the various character encodings.  These 'font test' files can
            be used as shown in this example to check any of your fonts for
            use with the specified character encoding:

               pcal -f examples/fonttest_koi8r -n some_koi8_fontname

            Renamed old 'examples/fonttest_x' files to be more explicit,
            thereby avoiding confusion with newly-added 'fonttest' files.

         - Fixed a long-standing misrepresentation of the Spanish word for
           'Saturday'.  The word is 'Sábado', but the acute accent on the
           first 'a' was missing.

         - Fixed misrepresentations of the Lithuanian word for 'August' and
           the Latvian words for 'June' and 'July'.  Since these languages
           were added in the previous release, these months erroneously used a
           'u'+circumflex instead of the proper 'u'+macron.

      4) Bug fixes:

         - Fixed a bug introduced in version 4.8.0 whereby the specification
           of a plural form of the day-of-week name was not being properly
           detected, reporting an 'unrecognized line in file' error.  Here's
           an example:

              all Fridays in Oct  xxxxx

           Thanks to Pedro I. Sanchez <pedro.sanchez at rogers.com> for
           reporting this bug.

           A work-around for this bug was to simply change the plural form to
           the singular form (e.g. "Fridays" to "Friday" or just "Fri").

         - Fix a long-standing bug whereby a centered "footer" specification
           with 'strftime()'-like date specifiers used in an HTML yearly
           calendar was using/showing the correct date values for the HTML
           'title' but the wrong date values for the centered header string at
           the start of the actual displayed (HTML) content.

      5) Documentation changes:

         - Added an entry to this 'ReadMe.txt' file in the v4.8.0 'Bug fixes'
           section due to a last-minute v4.8.0 change to fix a couple of
           security holes which accidentally went undocumented in this file.

         - Various updates throughout.

      6) Of interest to 'pcal' hackers and installers:

         - All PostScript encoding vectors used to define the various
           character encodings were defined as 'readonly'. This is mostly a
           cosmetic change rather than a functional change.

         - Made changes to the 'Makefile.DOS' file to accommodate the separate
           directories for the source, the objects, and the executables.  That
           change should have been part of the v4.8.0 release but was
           accidentally neglected.

           Make further changes to the DOS build process (via 'Makefile.DOS'):

              - Define '-DEPS' so that EPS-compatible PostScript is generated,
                just like has been done for the Unix build for a while.  This
                allows PostScript utilities to process pages more
                intelligently (e.g. so that a preview utility can page up and
                down properly).

              - Define several compile-time flags to prevent certain warnings.

              - Define the '-DPROTOS' compile-time flag to include full
                prototypes, thereby preventing many warnings about 'missing

              - Define the '-DSTDLIB' compile-time flag to prevent warnings
                about multiply-defined prototypes.

         - To enhance compatibility with the Debian GNU/Linux distribution,
           made a change to the (Unix, OS/2, DOS+DJGPP) 'Makefile' file
           (specifically, to the 'D_SEARCH_PCAL_DIR' variable) to default to
           _not_ searching the directory with the 'pcal' executable file when
           searching for the 'calendar' ('pcal' configuration) file.

         - Made a minor change to the (Unix, OS/2, DOS+DJGPP) 'Makefile' file
           based on a patch from Thiago F.G. Albuquerque to prevent an error
           when building in the DOS+DJGPP environment when the directory
           specified by 'CATDIR' does not exist.

         - Remove obsolete comment in the 'Makefile' file about separate
           directories for the source, the objects, and the executables.  This
           comment was accidentally left in place for the v4.8.0 release.

         - In 'pcallang.h', to be consistent, converted all high-order
           characters in the language string specifications to simple octal
           format, to match the octal format used in the PostScript encoding
           vector specifications of 'pcalinit.ps'.  This makes it easier to
           edit the 'pcallang.h' file in any editor.  It also makes checking
           of the language strings against the character encodings simpler.


      The original calendar PostScript was Copyright (c) 1987 by Patrick Wood
      and Pipeline Associates, Inc. with permission to modify and

      The following people contributed to Pcal v4.9.0:

         Bug fixes, 12 new character encodings,
            language support, various other fixes:	Bill Marr
         Event deletion capability:			Bill Bogstad
         Czech language support:			Peter Cernoch
         Hungarian language support:			Ferenc Kruzslicz
         Catalan language support:			Carles Sadurní Anguita
         Perl script for HTML/CGI:			David Mathog
         US example calendar:				J. Rhett Hooper
         DOS/DJGPP build fix/support:			Thiago F.G. Albuquerque

      For a list of all known contributors to date, see the 'Authors' section
      of the 'man' page.

   Bill Marr (marr99@users.sourceforge.net)
   18 Aug 2005


"Pcal" Version 4.8.0

   This release of 'pcal' includes additional functionality, some bug fixes,
   and a thorough update of the associated documentation.

   Major changes:

      1) New functionality:

         - A method of adding Encapsulated PostScript (EPS) images to any
           given day(s) on a monthly-format calendar has been incorporated.

           Now you can have (e.g.) photos of a person on their birthday and/or
           icons for various holiday events, etc.

           For details, see the expanded documentation in the 'man' file, but
           briefly, to add an EPS image (photo, icon, etc) to a day, use an
           event entry like this (for the Thanksgiving holiday event):

              4th Thu in Nov*   image:/eps-path/turkey.eps 1.0 1.0 0 0

           The 'image:' text is a keyword which precedes the EPS image
           filename.  As shown, a path to the file can be specified.

           The first 2 values after the EPS image name are X/Y scaling values,
           in case the output of the EPS file is not sized properly (which is
           almost always the case) to fit in the 'day box'.  The last 2 values
           are X/Y translations, in case you want to move the EPS image around
           within the 'day box'.

           Note: Your EPS images will not be directly usable!  As a minimum,
           you'll first need to remove/comment-out the PostScript 'showpage'
           command near the end of the EPS image file!  Depending upon the
           source of the EPS image, you may also want to remove/comment-out
           some of the PostScript 'translate' commands too.

           Again, much more information about all this can be found in the
           'man' page for 'pcal', so please read that first!

           A sample EPS image (the 'recycle' icon, with 3 green arrows in a
           circle) has been provided with the 'pcal' distribution (under the
           'eps/' directory) as a quick way to test the EPS image embedding
           capability on one of your calendars.  This file was converted from
           a '.WMF' image file (using the 'libwmf'/'wmf2eps' library/utility
           mentioned in the 'man' file) and the string '%%% DISABLED: ' was
           prepended in 3 spots to disable the PostScript 'translate' and
           'showpage' commands associated with those lines.  This file is
           intended as a guide for what needs to be done to make your own EPS
           images usable by 'pcal'.

           To test with this sample EPS icon, add lines like these to your
           'pcal' configuration file:

              second Sat in all  RECYCLE!
              second Sat in all  image:/path-to-eps/recycle.eps 0.029 0.029 66 -28

          With the provided X/Y scaling and X/Y translation values, it should
          place the symbol in the lower right corner of the 'day box',
          assuming you're using letter-sized paper and landscape orientation
          on a monthly calendar.

        - Support for 'legal' (8.5 x 14.0 inch) and 'tabloid' (11.0 x 17.0
          inch) paper has been added.

          Specifying the paper size is now done differently than in the past.
          See the section 'New command-line options' (below) for details.

        - Added new automatically-defined symbols based on the current paper

             - "PAPERSIZE_LETTER"
             - "PAPERSIZE_LEGAL"
             - "PAPERSIZE_A4"
             - "PAPERSIZE_TABLOID"

          These can be useful for providing alternate values in the 'pcal'
          configuration file for EPS image placement and scaling, based on
          paper size.

        - Added new automatically-defined symbols based on the current page


          These can be useful for providing alternate values in the 'pcal'
          configuration file for EPS image placement and scaling, based on the
          page orientation.

        - Support the definition of a symbol value along with a symbol name in
          'define' pre-processor directives in the 'pcal' configuration file.

          For example:

             define sem_start 8/23  # Beginning of semester
             sem_start                 CIS136 Start
             7th  day after sem_start  CIS136 Quiz 1
             14th day after sem_start  CIS136 Quiz 2
             undef sem_start

          This capability came from an unknown author via the Debian Bug
          Tracking System for 'pcal'.  It was somewhat buggy in the Debian
          implementation, but was (completely?) repaired prior to inclusion in
          this release of 'pcal'.

        - Support for the following languages has been added:

             - Swedish ("-a sv")
             - Ukrainian ("-a uk")
             - Portuguese ("-a pt")
             - Estonian ("-a et")
             - Russian ("-a ru")
             - Latvian ("-a lv")
             - Lithuanian ("-a lt")

           Note: The support for Russian, Latvian, and Lithuanian is
           considered "experimental".  The day-of-week names and month names
           have been provided for these languages, but the character encodings
           have not been provided.  Russian support has been set up to use the
           KOI8-U (Ukrainian) character encoding instead of the KOI8-R
           encoding that it should use.  Latvian and Lithuanian support have
           been set up to use the Latin-1 (ISO-8859-1) encoding instead of the
           ISO-8859-13 character encoding that they should use.  From a
           practical standpoint, this probably means that these languages will
           appear mostly correct (i.e. for characters which can be
           displayed/printed in the encoding used) but will not be 100%.
           Patches would be gratefully accepted from anyone with the expertise
           to provide the necessary character encodings!


              As of 'pcal-4.9.0', Russian, Latvian, and Lithuanian language
              support is no longer considered "experimental" due to the
              addition of the proper character encodings for those languages.
              See the 'pcal-4.9.0' release notes (above) for details.

         - Substantial changes were made to the HTML user interface used to
           generate calendars.

           Added the appropriate option for the (already-existing) Finnish
           language support.

           Changed the 'Language:' selection in HTML calendar generation files
           ('pcal.html' and 'pcalw.html') to support the new languages.  Also,
           make this a 'drop-down' list instead of a series of 'radio
           buttons', which makes for a cleaner interface now that there are 12
           language options.

           Added a new 'Paper Size' option to correspond to the new '-P'
           option to 'pcal'.

           Changed the description of the last option ('Holidays:') to 'Bypass
           Date File Processing:' to more accurately reflect what it really
           does!  Changed the interface for this item to a 'check box' instead
           of 2 'radio buttons' to match common user interface guidelines and
           to clean-up the interface.

           Changed references to 'gray' date numerics to instead say "'date
           shade' color (default = gray)" to reflect the fact that a user can
           override the 'grey' default color in his/her 'pcal' options file
           (via the 'opt -s ...'  command/switch).

           Provide a new 'default' option for all the 'Day Numerics' (Weekday,
           Sat/Sun, Holiday) selection sets.  This allows the CGI script to
           bypass the specification of the '-g', '-O', '-G', and '-b' options.
           This is needed because of odd interactions between these switches
           which prevented the creation of a simple colored calendar.  For
           example, there was no way to generate a monthly or yearly calendar
           with the defaults (Mon-Fri in black, Sat/Sun in the 'date shade'
           [gray by default] color, and holidays in the 'date shade' [gray by
           default] color, even though this is the common case when PostScript
           calendars are generated from the command line version of 'pcal'.

           Make separate entries for 'day numerics' font and 'title (etc)
           font' to the user interface since these are distinct and therefore
           separately controllable in 'pcal'.  Previously, whatever font the
           user selected was used in both cases.

           Overhauled each group of 'radio buttons', changing from a
           horizontal set of options (which was long and difficult to discern
           for some entries) to a nicer, more-readable set of
           vertically-aligned options in a clean, captioned table for each
           group of radio buttons.

           Provide the user interface option to generate HTML-format calendars
           instead of PostScript-format calendars.

      2) New command-line options:

         - In the past, the paper size could only be specified via the
           'Makefile', which required recompiling if you wanted to change
           paper sizes.  This is somewhat bothersome, but even more so now
           that 'pcal' supports more paper sizes (i.e. not just 'letter' and

           Beginning with this release of 'pcal', a new '-P' option is now
           supported to declare the 'paper size'.  This option takes a value
           which can be any of the following (case-insensitive) values:

              - "letter"
              - "legal"
              - "a4"
              - "tabloid"

           This option can be specified using any of the 3 methods: (1) via
           the 'PCAL_OPTS' environment variable, (2) via the 'pcal'
           configuration file (aka '.calendar', aka the 'date' file), or (3)
           via the command line itself.

      3) New date file functionality:

         - Added support for "Friday the 13th" events.  Use the keyword 'F13'
           on the event specification.  For example:

              F13   Avoid black cats!

         - Added a new 'input-language' directive for the 'pcal' configuration
           file.  It takes a single parameter -- the 2-letter version of the
           ISO 639 (language code) standard.  This 'input language' will be
           used when deciphering any month names and/or day-of-week names when
           processing the event entries in the 'pcal' configuration file.  The
           default language is currently the same as the default 'output'
           language (English).

           An example entry in the 'pcal' configuration file:

              input-language fr   # interpret event dates in French

           In previous versions of 'pcal', which had no concept of 'input' and
           'output' languages, both the default language (English) and the
           currently-selected ('output') language were checked when parsing
           and checking for month names and day-of-week names during event
           processing.  For the same reason as the creation of this new
           'input-language' directive (i.e. to avoid conflicts), the default
           language is no longer checked in addition to the current (input)
           language.  Only the current 'input' language is checked.

           Note that the input language only makes sense in the 'pcal'
           configuration file, so it can only be specified there.

           Note also that the 'input language' can be changed as needed at any
           time during processing of the 'pcal' configuration file, for the
           rare case where someone has multiple language event definitions
           within the same file.

      4) Other changes:

         - The 2-letter language code for Greek was re-assigned from 'gr' to
           'el' to be compatible with ISO 639 (2-letter and 3-letter language

           This means that you need to (for example) use '-a el' on the 'pcal'
           command line to generate a Greek-language calendar rather than the
           old '-a gr'.

         - Added the '-p' and '-l' flags ('portrait' and 'landscape' paper
           orientations) to the list of those processed from the command line
           prior to the processing of the 'pcal' configuration file.

           This is needed so that directives like 'ifdef ORIENTATION_PORTRAIT'
           in the configuration file work as expected.

         - Fixed a flaw in the sizing of calendars generated in the 'portrait'
           page orientation.  They were not using as much of the physical page
           space as they should have been.

         - Collected all sample 'calendar options' files for various countries
           (some which were on the 'pcal' website or in the mailing list
           archives but weren't part of the actual distribution) and named
           them all 'calendar_XX.txt' where 'XX' is the 2-letter country name
           code based on the ISO 3166 standard.  This required a change to the
           Greek ('gk' to 'gr') and Estonian ('et' to 'ee') 2-letter codes
           used in the filenames.

           Since 'pcal' can be run under DOS, converted sample 'calendar
           options' files from Unix-style to DOS-style line-endings (as
           needed) for maximum portability.

         - The '%a' format specifier (which is used to represent the
           abbreviated day-of-week name [e.g. 'Wed']) was using a simplified
           method of generating the abbreviated name from the full name -- by
           using just the first 3 characters.

           With the addition of Ukrainian and (later) Estonian language
           support, this simple scheme became inadequate because those
           languages don't use 3-character abbreviations for the day-of-week

           Instead, a new array (with entries for each supported language) of
           the abbreviated day-of-week names was created.  The '%a' format
           specifier uses this new array to derive abbreviated day-of-week

      5) Bug fixes:

         - Fixed a design flaw whereby certain languages (like Italian,
           French, Esperanto, and Spanish) which have a day-of-the-week name
           with the same first 3 letters as a month name can cause problems
           detecting events in the 'pcal' configuration file.

           Aside: When parsing unknown tokens, day-of-week names are compared
           before month names.

           For example, French has the day 'Mardi' (Tuesday) and the month
           'Mars' (March).  Finnish has the day 'Maanantai' (Monday) and the
           month 'Maaliskuu' (March). The following event in the configuration
           file will yield an error because the string intended as an
           abbreviated month name 'Mar' (for 'Mars'/March) is erroneously
           interpreted as a weekday name 'Mardi':

              Mar 21   Event for March 21st

           It should be possible to specify the full month name ('Mars') to
           avoid the conflict, but 'pcal' was only examining the first 3
           letters of the weekday names when looking for a matching token.

           The code which looks for matching weekday names has now been
           modified to use the full length of the specified token string from
           the configuration file, which allows one to specify the full name
           of the month to avoid any conflict.

           Note: A similar change was made to the month name comparison,
           because an event of 'Mars 21' (French) was being erroneously
           detected in an English-language setting!  This ties in with the new
           'input-language' directive (described above).

         - Fix bug whereby 'Holidays:' option in 'pcalw.html' was using older,
           incorrect name, causing that option to be completely ignored.

         - Fixed the bug (present since v4.7.1 of 'pcal', and previously
           documented on the 'pcal' website) whereby use of the '-q' option to
           generate 1-column-per-month HTML output required one to use the '-F
           1' flag to force the day-of-week to begin with 'Monday'.  This
           restriction is now removed and one can generate HTML
           1-column-per-month calendars with any value for the '-F' flag (or
           without using the '-F' flag at all).

         - Fixed a couple of security holes whereby a malicious calendar file
           (e.g from an external source) could cause an exploitable buffer
           overflow attack.

      6) Documentation changes:

         - Made major changes to the 'pcal.man' file to bring it up-to-date
           and make it more useful and/or readable, both in raw format and as
           a rendered 'man' page.

           Those changes are described in detail in a newly-added comment
           section at the beginning of that file, which acts as a 'ChangeLog'
           section.  See that file for details.

         - Provided a new sample 'pcal' configuration file ('pcal-cfg.txt') in
           the new 'examples/' subdirectory.

           This file attempts to demonstrate the various features that are
           possible with 'pcal' in a manner which is well-documented and can
           be easily incorporated by others into their own 'pcal'
           configuration file(s).  It was created with the idea that "an
           example (or two, or three) is worth a thousand words".

           Among other things, it demonstrates the use of various format
           specifiers, the use of the 'Notes' box, the use of pre-processor
           directives and conditional processing, and the use of some
           predefined events.

         - Removed the 'Pcal.hlp' file, which was essentially just a duplicate
           of the 'pcal.man' content in a human-readable form.  The content of
           the 'pcal.man' file is intended to be pre-rendered (by the 'pcal'
           maintainer / release manager) into other human-readable forms
           (PostScript, HTML, ASCII text) as described in the 'Overview:'
           section at the beginning of this file.

           Now, there are essentially just 2 files which need to be updated to
           document 'pcal' operation: 'pcal.man' and 'ReadMe.txt'.

           Renamed 'ReadMe' to 'ReadMe.txt' and merged all the old versions of
           'ReadMe.4.x' into that single file for clarity, consistency, and
           ease of access.

         - Moved old 'pscalendar' file into the new 'doc/obsolete/' directory
           since it only has historical significance.

      7) Of interest to 'pcal' hackers and installers:

         - Created new subdirectories to better organize the 'pcal'
           distribution files:

              - 'src/'

                 all 'pcal' source code (*.c, *.h, *.ps)

              - 'obj/'

                 empty subdirectory which will contain all object code and the
                 single C header file ('pcalinit.h') which is auto-generated
                 at compile time

              - 'exec/'

                 empty subdirectory which will contain all executable code
                 ('pcal[.exe]' and 'pcalinit[.exe]')

              - 'doc/' and 'doc/obsolete/'

                 various documentation (current and historical)

              - 'examples/'

                 several sample 'calendar options' files, mostly for various
                 holidays in each of several countries; also includes various
                 'calendar options' files used to test the fonts and character

              - 'html/'

                 files used to generate calendars using the HTML/CGI (web
                 browser) interface

         - Added build instructions for the various platforms that 'pcal'
           supports to this file ('ReadMe.txt').

         - Added a new compile-time flags setting ('CFLAGS = -O2 -Wall -W') to
           the Unix 'Makefile'.  The first 2 of those flags were already in
           the OS/2 'make' file (which was almost identical to the Unix
           'Makefile'), but for some unknown reason they were not in the Unix

           Added a brief description of each flag ('-O2' and '-Wall' and '-W')
           used on the 'CFLAGS = ...' line to the Unix 'make' file.

           For those not familiar with these flags, '-O2' provides code
           optimization, '-Wall' enables many compile-time warning messages,
           and '-W' enables more compile-time warning messages.

           Made several minor code modifications to prevent the compile-time
           warning messages that resulted from enabling those flags.

         - Merged the OS/2 'make' file ('Makefile.os2') into the Unix 'make'
           file ('Makefile').  These files were almost identical and did not
           merit separate files.

           Added support for the DOS+DJGPP environment to this same file.

           Use these commands:

              Unix/Linux: make

              OS/2: make OS=OS2

              DOS+DJGPP: make OS=DJGPP

         - Added a (commented-out) '# PACK = gzip' option in the Unix 'make'
           file for those who don't have the 'compress' utility.

         - Modified the existing 'man' target in the Unix 'make' file
           ('Makefile') to generate the content of the 'pcal' 'man' page in
           HTML, PostScript, and raw text formats.

           Before a new release of 'pcal', the 'pcal' maintainer should run
           'make man' to generate these help files.

           These files should also be placed on the 'pcal' website, since the
           main page provides links to these files.

         - Removed Control-L ('^L', page eject) characters from C and
           PostScript source code.  Who puts that in source files?!?

         - Remove obsolete, unused targets and definitions (used to compress
           and 'uuencode' the source) from Unix and OS/2 'Makefile' files.

         - Changed 'find_sym()' routine to 'find_sym_name()' to be distinct
           from new 'find_sym_val()' routine in code searches.

         - Removed extraneous files from previous distribution ('Makefile~'
           and 'pcal' [pre-built DOS executable binary file]).  If anyone
           really needs a pre-built 'pcal.exe' DOS executable file, it can
           always be provided separately on the project webpage.

         - Change sense of and provide proper comment for 'SEARCH_PCAL_DIR'
           flag setting in Unix and OS/2 'make' files.

         - Provide comments in the 'Makefile' for the '-DEPS' option,
           describing what it does and why it's useful.

         - Removed executable permission from various text files:

              moon98 Readme writefil.c Pcal.hlp

           In general, fixed up the permissions on several files.  For
           example, some makefiles had 'rw' permission and others had just 'r'

         - Changed the misleading name of array 'holidays[]' to
           'predef_events[]' to reflect the fact that this is a list of
           'predefined events', which are often, but not necessarily, holiday
           events.  For example, this includes the new 'Friday the 13th'
           events, which, like every other event in this array, are not
           treated as a 'holiday' event unless the user specifies a '*' after
           the date portion of the event specification in the 'pcal' options

         - Converted the 'Makefile.DOS' file from Unix-style line-endings to

           Tweaked the same file to successfully compile under MS-DOS using
           the Borland C++ v5.0 compiler.


      The original calendar PostScript was Copyright (c) 1987 by Patrick Wood
      and Pipeline Associates, Inc. with permission to modify and

      The following people contributed to Pcal v4.8.0:

         EPS images, 'paper size' option,
            new paper sizes, HTML UI update,
            various other fixes:			Bill Marr
         "Friday the 13th" events:			Don Laursen
         Swedish language support:			Joel Fredrikson
         Ukrainian language support:			Volodymyr M. Lisivka
         Portuguese language support:			Pedro Zorzenon Neto
         Estonian, Russian, Lithuanian, and
            Latvian language support:			Neeme Praks
         Enhanced 'define' capability:			unknown (requested by
                                                        Louis Taber)
         French example calendar:			Valéry Bruniaux
         DOS/DJGPP build support:			Thiago F.G. Albuquerque
         Detection of security holes:			Danny Lungstrom

      For a list of all known contributors to date, see the 'Authors' section
      of the 'man' page.

   Bill Marr (marr99@users.sourceforge.net)
   15 Dec 2004


"Pcal" Version 4.7.1

This is a new release of "Pcal", the PostScript calendar program. It has
minor changes to the 4.7 version: the -q flag that allows the printing of
a yearplanner and an additional Finnish languages support with the -a flag.

The -q flag gives prints out as one column per month resulting in table
that gives a quicker overview over several months and which can be used
as a yearplanner. As a yearplanner obviously has less space for text, only
the first character of the weekday and the first 5 characters of each calendar
entry are printed. Holidays are marked red but the text of the calendar
entry is not printed. The yearplanner gives output at the moment only in
HTML and therefore has effect only when used the -H flag.

To print a half-yearplanner of the first six months:
pcal -H -q 1 2003 6 > yearplanner_I_2003.html

The Finnish language is switched on with "-a fi".

For more general information see the readme-file of version 4.7 below.

Stefan Fronzek (stefan@fronzek.akshor.com), January 15 2003

$NetBSD: distinfo,v 1.8 2020/04/08 06:14:46 riastradh Exp $

SHA1 (pcal-4.11.0.tgz) = 214bcb4c4b7bc986ae495c96f2ab169233a7f973
RMD160 (pcal-4.11.0.tgz) = f2c6d061ff0abbb01c33b8d7617f3e1c03e967c5
SHA512 (pcal-4.11.0.tgz) = a04ed4e859c4df32dd9c8b8dd8076f88679cc631aa4acecfb23524c14eef758fa3cac41f52bc88a018544e2df025b5f659d1bcc8c8f6c317ebfdcbe197c066c8
Size (pcal-4.11.0.tgz) = 324368 bytes
SHA1 (patch-ab) = aa664915b47cf9119ef7a1e5a3db964dc30c9a72
SHA1 (patch-ac) = da39b0cb675f2e955f183964c9ece0263364c97e
SHA1 (patch-ad) = eaacccb3b3830e0d169820271e8f74d5ec2fc514