Parts are inspired by the FreeBSD port.
I could not easily find a telnetd with SSL support so I did not really test it.
Without SSL/TLS, it disconnects from NetBSD's telnetd if telnetd is run
with "-a valid" ("Authentication failed: No authentication method
available"); but "telnetd -a none" works.
- Get the preferred sample rate from the device.
This ensures sample rate conversion is done in user space,
which is a Good Idea and should improve output quality.
This backend is now Even More NetBSD.
- Implement drain().
- Bump up the buffer size.
Bump PKGREVISION
3.0.21
Feature improvements
New stored procedure for allocating IPs with PostgreSQL. Rates of 1500 IPs per second are now possible. See raddb/mods-config/sql/ippool/postgresql/procedure.sql
Add SQL IP pool support for Microsoft SQL Server See raddb/mods-config/sql/ippool/mssql/
Added RCNTEC dictionary.
Added Pica8 dictionary.
Add TLS-Client-Cert-Valid-Since attribute holding notBefore date.
Generate attributes containing unknown OIDs. See raddb/sites-available/tls.
Update the WiMAX dictionary.
Added ability to rlm_python (Python2) show a stacktrace from errors.
Add WiFi Alliance Policy OIDs. See raddb/certs/xpextensions
radmin now shows coa stats, too.
Sample schema extensions for summarizing data in SQL. See mods-config/sql/main/*/process-radacct.sql Many patches from Terry Burton.
Update dictionary.aerohive, dictionary.fortinet, dictionary.arista and dictionary.erx
Added VAS Experts dictionary.
Many updates to RPM and jenkins builds from Matthew Newton
Added %C (time now in seconds) and %c (microsecond component of now) back-ported from the "master" branch.
Add reload capability to systemd unit file in Debian and RedHat.
Increase timestamp precision in postauth to maximum supported by each database and simplify (and make more consistent between drivers) the timestamps in SQL queries by using expansions.
Option to set dictionary path in raduat script.
Bug fixes
Various fixes found by PVS-Studio.
Set permissions of certificates in bootstrap shell script.
Increase the nasportid SQL field for varchar(32).
Skip processing proxy reply if there are no home servers available.
Update SQLite IPPool queries.
rlm_sql_unixodbc fixes.
Fixes when building with LibreSSL.
Fix the rlm_python3 build. Note that this module is experimental.
The rlm_python should append the python_path paths in sys.path, It fixes the expected behaviour to use the existing Python modules.
Fix rlm_python to print the script errors properly.
Bound total query time for PostgreSQL.
Many fixes to Oracle sqlippool. It now does 500 IPs per second without any tuning.
Reference sqlippool by it's correct name.
Revert 3.0.20 patch which caused crashes on duplicate clients.
Update WiMAX-MSK attribute.
Fix crash when trying to access non-existant regex capture group.
Use timestamps (request or server) rather than SQL NOW() in accounting queries so that these are stable when replayed from a file buffer.
6.2.0:
* Improved error reporting when trying to format an object of a non-formattable type
* Reduced library size by ~10%.
* Always print decimal point if # is specified
* Implemented the 'L' specifier for locale-specific numeric formatting to improve compatibility with std::format. The 'n' specifier is now deprecated and will be removed in the next major release.
* Moved OS-specific APIs such as windows_error from fmt/format.h to fmt/os.h. You can define FMT_DEPRECATED_INCLUDE_OS to automatically include fmt/os.h from fmt/format.h for compatibility but this will be disabled in the next major release.
* Added precision overflow detection in floating-point formatting.
* Implemented detection of invalid use of fmt::arg.
* Used type_identity to block unnecessary template argument deduction.
* Improved UTF-8 handling
* Added experimental dynamic argument storage
* Made fmt::join accept initializer_list
* Fixed handling of empty tuples
* Fixed handling of output iterators in format_to_n
* Fixed formatting of std::chrono::duration types to wide output
* Added const begin and end overload to buffers
* Added the ability to disable floating-point formatting via FMT_USE_FLOAT, FMT_USE_DOUBLE and FMT_USE_LONG_DOUBLE macros for extremely memory-constrained embedded system
* Made FMT_STRING work with constexpr string_view
* Implemented a minor optimization in the format string parser
* Improved attribute detection
* Improved documentation
* Fixed symbol visibility on Linux when compiling with -fvisibility=hidden
* Implemented various build configuration fixes and improvements
* Fixed various warnings and compilation issues
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
endif
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
accurate.
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
above).
Replace any occurrence of 'F13' in your configuration file(s) with
this:
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
used.
Thanks to Eric Nichols who helped to confirm the presence of this
bug.
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'
functionality.
- 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:
http://pcal.sourceforge.net/scripts.html
- 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'
file.
Credits:
The original calendar PostScript was Copyright (c) 1987 by Patrick Wood
and Pipeline Associates, Inc. with permission to modify and
redistribute.
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'
directory.
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
removed.
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
code.
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'
calculations:
(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
'getline()'.
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
parameters.
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
ambiguous.
- 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
file.
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
only.
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.
Credits:
The original calendar PostScript was Copyright (c) 1987 by Patrick Wood
and Pipeline Associates, Inc. with permission to modify and
redistribute.
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
method).
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'
keyword.
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/'
directory:
- '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
prototype'.
- 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.
Credits:
The original calendar PostScript was Copyright (c) 1987 by Patrick Wood
and Pipeline Associates, Inc. with permission to modify and
redistribute.
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
size:
- "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
orientation:
- "ORIENTATION_PORTRAIT"
- "ORIENTATION_LANDSCAPE"
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!
UPDATE:
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
'A4').
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
codes).
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
names.
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
names.
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
mappings
- '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
'Makefile'.
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'
permission!
- 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
file.
- Converted the 'Makefile.DOS' file from Unix-style line-endings to
DOS-style.
Tweaked the same file to successfully compile under MS-DOS using
the Borland C++ v5.0 compiler.
Credits:
The original calendar PostScript was Copyright (c) 1987 by Patrick Wood
and Pipeline Associates, Inc. with permission to modify and
redistribute.
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
Release 1.10.0
1.10.0 Release reflects a current version of the project.
The 1.10.x will not consider any requests for any new features, The bug fix
requests will only be considered if proven "critical"
High Level Changes:
This release deprecated "....TEST_CASE" API in favor of "....TEST_SUITE". In a
nutshell if you have code that uses something like
"INSTANTIATE_TYPED_TEST_CASE_P " - this and all other "*_TEST_CASE " are now
deprecated in favor of more standard _TEST_SUITE.
There is also new powerful MOCK_METHOD macro.
Changelog:
CHANGELOG (curl)
----------
Fixed in 7.69.1 - March 11 2020
Bugfixes:
ares: store dns parameters for duphandle
cirrus-ci: disable the FreeBSD 13 builds
curl_share_setopt.3: Note sharing cookies doesn't enable the engine
lib1564: reduce number of mid-wait wakeup calls
libssh: Fix matching user-specified MD5 hex key
MANUAL: update a dict-using command line
mime: do not perform more than one read in a row
mime: fix the binary encoder to handle large data properly
mime: latch last read callback status
multi: skip EINTR check on wakeup socket if it was closed
pause: bail out on bad input
pause: force a connection recheck after unpausing (take 2)
pause: return early for calls that don't change pause state
runtests.1: rephrase how to specify what tests to run
runtests: fix missing use of exe_ext helper function
seek: fix fall back for missing ftruncate on Windows
sftp: fix segfault regression introduced by #4747 in 7.69.0
sha256: Added SecureTransport implementation
sha256: Added WinCrypt implementation
socks4: fix host resolve regression
socks5: host name resolv regression fix
tests/server: fix missing use of exe_ext helper function
tests: fix static ip:port instead of dynamic values being used
tests: make sleeping portable by avoiding select
unit1612: fix the inclusion and compilation of the HMAC unit test
urldata: remove the 'stream_was_rewound' connectdata struct member
version: make curl_version* thread-safe without using global context
Fixed in 7.69.0 - March 4 2020
Changes:
polarssl: removed
smtp: add CURLOPT_MAIL_RCPT_ALLLOWFAILS and --mail-rcpt-allowfails
wolfSSH: new SSH backend
Bugfixes:
altsvc: improved header parser
altsvc: keep a copy of the file name to survive handle reset
altsvc: make saving the cache an atomic operation
altsvc: use h3-27
azure: disable brotli on the macos debug-builds
build: remove all HAVE_OPENSSL_ENGINE_H defines
checksrc.bat: Fix not being able to run script from the main curl dir
cleanup: fix several comment typos
cleanup: fix typos and wording in docs and comments
cmake: add support for CMAKE_LTO option
cmake: clean up and improve build procedures
cmake: enable SMB for Windows builds
cmake: improve libssh2 check on Windows
cmake: Show HTTPS-proxy in the features output
cmake: support specifying the target Windows version
cmake: use check_symbol_exists also for inet_pton
configure.ac: fix comments about --with-quiche
configure: disable metalink if mbedTLS is specified
configure: disable metalink support for incompatible SSL/TLS
conn: do not reuse connection if SOCKS proxy credentials differ
conncache: removed unused Curl_conncache_bundle_size()
connect: remove some spurious infof() calls
connection reuse: respect the max_concurrent_streams limits
contributors: also include people who contributed to curl-www
contrithanks: use the most recent tag by default
cookie: check __Secure- and __Host- case sensitively
cookies: make saving atomic with a rename
create-dirs.d: mention the mode
curl: avoid using strlen for testing if a string is empty
curl: error on --alt-svc use w/o support
curl: let -D merge headers in one file again
curl: make #0 not output the full URL
curl: make the -# spaceship bar not wrap the line
curl: remove 'config' field from OutStruct
curl:progressbarinit: ignore column width from terminals < 20
curl_escape.3: add a link to curl_free
curl_getenv.3: fix the memory handling description
curl_global_init: assume the EINTR bit by default
curl_global_init: move the IPv6 works status bool to multi handle
CURLINFO_COOKIELIST.3: Fix example
CURLOPT_ALTSVC_CTRL.3: fix the DEFAULT wording
CURLOPT_PROXY_SSL_OPTIONS.3: Sync with CURLOPT_SSL_OPTIONS.3
CURLOPT_REDIR_PROTOCOLS.3: update the DEFAULT section
data.d: remove "Multiple files can also be specified"
digest: do not quote algorithm in HTTP authorisation
docs/HTTP3: add --enable-alt-svc to curl's configure
docs/HTTP3: update the OpenSSL branch to use for ngtcp2
docs: fix typo on CURLINFO_RETRY_AFTER
easy: remove dead code
form.d: fix two minor typos
ftp: convert 'sock_accepted' to a plain boolean
ftp: remove superfluous checking for crlf in user or pwd
ftp: shrink temp buffers used for PORT
github action: add CIFuzz
github: Instructions to post "uname -a" on Unix systems in issues
GnuTLS: always send client cert
gtls: fixed compilation when using GnuTLS < 3.5.0
hostip: move code to resolve IP address literals to `Curl_resolv`
HTTP-COOKIES: describe the cookie file format
HTTP-COOKIES: mention that a trailing newline is required
http2: make pausing/unpausing set/clear local stream window
http2: now requires nghttp2 >= 1.12.0
http: added 417 response treatment
http: increase EXPECT_100_THRESHOLD to 1Mb
http: mark POSTs with no body as "upload done" from the start
http: move "oauth_bearer" from connectdata to Curl_easy
include: remove non-curl prefixed defines
KNOWN_BUGS: Multiple methods in a single WWW-Authenticate: header
libssh2: add support for forcing a hostkey type
libssh2: fix variable type
libssh: improve known hosts handling
llist: removed unused Curl_llist_move()
location.d: the method change is from POST to GET only
md4: fixed compilation issues when using GNU TLS gcrypt
md4: use init/update/final functions in Secure Transport
md5: added implementation for mbedTLS
mk-ca-bundle: add support for CKA_NSS_SERVER_DISTRUST_AFTER
multi: change curl_multi_wait/poll to error on negative timeout
multi: fix outdated comment
multi: if Curl_readwrite sets 'comeback' use expire, not loop
multi_done: if multiplexed, make conn->data point to another transfer
multi_wait: stop loop when sread() returns zero
ngtcp2: add error code for QUIC connection errors
ngtcp2: fixed to only use AF_INET6 when ENABLE_IPV6
ngtcp2: update to git master and its draft-25 support
ntlm: move the winbind data into the NTLM data structure
ntlm: pass the Curl_easy structure to the private winbind functions
ntlm: removed the dependency on the TLS libaries when using MD5
ntlm_wb: use Curl_socketpair() for greater portability
oauth2-bearer.d: works for HTTP too
openssl: make CURLINFO_CERTINFO not truncate x509v3 fields
openssl: remove redundant assignment
os400: fixed the build
pause: force-drain the transfer on unpause
quiche: update to draft-25
README: mention that the docs is in docs/
RELEASE-PROCEDURE: feature win is closed post-release a few days
runtests: make random seed fixed for a month
runtests: restore the command log
schannel: make CURLOPT_CAINFO work better on Windows 7
schannel_verify: Fix alt names manual verify for UNICODE builds
sha256: use crypto implementations when available
singleuse.pl: support new API functions, fix curl_dbg_ handling
smtp: support the SMTPUTF8 extension
smtp: support UTF-8 based host names in MAIL FROM
SOCKS: make the connect phase non-blocking
strcase: turn Curl_raw_tolower into static
strerror: increase STRERROR_LEN 128 -> 256
test1323: added missing 'unit test' feature requirement
tests: add a unit test for MD4 digest generation
tests: add a unit test for SHA256 digest generation
tests: add a unit test for the HMAC hash generation
tests: deduce the tool name from the test case for unit tests
tests: fix Python 3 compatibility of smbserver.py
tool_dirhie: allow directory traversal during creation
tool_homedir: change GetEnv() to use libcurl's curl_getenv()
tool_util: improve Windows version of tvnow()
travis: update non-OpenSSL Linux jobs to Bionic
url: include the failure reason when curl_win32_idn_to_ascii() fails
urlapi: guess scheme properly with credentials given
urldata: do string enums without #ifdefs for build scripts
vtls: refactor Curl_multissl_version to make the code clearer
win32: USE_WIN32_CRYPTO to enable Win32 based MD4, MD5 and SHA256
Fixed in 7.68.0 - January 8 2020
Changes:
TLS: add BearSSL vtls implementation
XFERINFOFUNCTION: support CURL_PROGRESSFUNC_CONTINUE
curl: add --etag-compare and --etag-save
curl: add --parallel-immediate
multi: add curl_multi_wakeup()
openssl: CURLSSLOPT_NO_PARTIALCHAIN can disable partial cert chains
Bugfixes:
CVE-2019-15601: file: on Windows, refuse paths that start with \\
Azure Pipelines: add several builds
CMake: add support for building with the NSS vtls backend
CURL-DISABLE: initial docs for the CURL_DISABLE_* defines
CURLOPT_HEADERFUNCTION.3: Document that size is always 1
CURLOPT_QUOTE.3: fix typos
CURLOPT_READFUNCTION.3: fix the example
CURLOPT_URL.3: "curl supports SMB version 1 (only)"
CURLOPT_VERBOSE.3: see also ERRORBUFFER
HISTORY: added cmake, HTTP/3 and parallel downloads with curl
HISTORY: the SMB(S) support landed in 2014
INSTALL.md: provide Android build instructions
KNOWN_BUGS: Connection information when using TCP Fast Open
KNOWN_BUGS: LDAP on Windows doesn't work correctly
KNOWN_BUGS: TLS session cache doesn't work with TFO
OPENSOCKETFUNCTION.3: correct the purpose description
TrackMemory tests: always remove CR before LF
altsvc: bump to h3-24
altsvc: make the save function ignore NULL filenames
build: Disable Visual Studio warning "conditional expression is constant"
build: fix for CURL_DISABLE_DOH
checksrc.bat: Add a check for vquic and vssh directories
checksrc: repair the copyrightyear check
cirrus-ci: enable clang sanitizers on freebsd 13
cirrus: Drop the FreeBSD 10.4 build
config-win32: cpu-machine-OS for Windows on ARM
configure: avoid unportable `==' test(1) operator
configure: enable IPv6 support without `getaddrinfo`
configure: fix typo in help text
conncache: CONNECT_ONLY connections assumed always in-use
conncache: fix multi-thread use of shared connection cache
copyrights: fix copyright year range
create_conn: prefer multiplexing to using new connections
curl -w: handle a blank input file correctly
curl.h: add two missing defines for "pre ISO C" compilers
curl/parseconfig: fix mem-leak
curl/parseconfig: use curl_free() to free memory allocated by libcurl
curl: cleanup multi handle on failure
curl: fix --upload-file . hangs if delay in STDIN
curl: fix -T globbing
curl: improved cleanup in upload error path
curl: make a few char pointers point to const char instead
curl: properly free mimepost data
curl: show better error message when no homedir is found
curl: show error for --http3 if libcurl lacks support
curl_setup_once: consistently use WHILE_FALSE in macros
define: remove HAVE_ENGINE_LOAD_BUILTIN_ENGINES, not used anymore
docs: Change 'experiemental' to 'experimental'
docs: TLS SRP doesn't work with TLS 1.3
docs: fix several typos
docs: mention CURL_MAX_INPUT_LENGTH restrictions
doh: improved both encoding and decoding
doh: make it behave when built without proxy support
examples/postinmemory.c: Call curl_global_cleanup always
examples/url2file.c: corrected erroneous comment
examples: add multi-poll.c
global_init: undo the "intialized" bump in case of failure
hostip: suppress compiler warning
http_ntlm: Remove duplicate NSS initialisation
lib: Move lib/ssh.h -> lib/vssh/ssh.h
lib: fix compiler warnings with `CURL_DISABLE_VERBOSE_STRINGS`
lib: fix warnings found when porting to NuttX
lib: remove ASSIGNWITHINCONDITION exceptions, use our code style
lib: remove erroneous +x file permission on some c files
libssh2: add support for ECDSA and ed25519 knownhost keys
multi.h: remove INITIAL_MAX_CONCURRENT_STREAMS from public header
multi: free sockhash on OOM
multi_poll: avoid busy-loop when called without easy handles attached
ngtcp2: Support the latest update key callback type
ngtcp2: fix thread-safety bug in error-handling
ngtcp2: free used resources on disconnect
ngtcp2: handle key updates as ngtcp2 master branch tells us
ngtcp2: increase QUIC window size when data is consumed
ngtcp2: use overflow buffer for extra HTTP/3 data
ntlm: USE_WIN32_CRYPTO check removed to get USE_NTLM2SESSION set
ntlm_wb: fix double-free in OOM
openssl: Revert to less sensitivity for SYSCALL errors
openssl: improve error message for SYSCALL during connect
openssl: prevent recursive function calls from ctx callbacks
openssl: retrieve reported LibreSSL version at runtime
openssl: set X509_V_FLAG_PARTIAL_CHAIN by default
parsedate: offer a getdate_capped() alternative
pause: avoid updating socket if done was already called
projects: Fix Visual Studio projects SSH builds
projects: Fix Visual Studio wolfSSL configurations
quiche: reject HTTP/3 headers in the wrong order
remove_handle: clear expire timers after multi_done()
runtests: --repeat=[num] to repeat tests
runtests: introduce --shallow to reduce huge torture tests
schannel: fix --tls-max for when min is --tlsv1 or default
setopt: Fix ALPN / NPN user option when built without HTTP2
strerror: Add Curl_winapi_strerror for Win API specific errors
strerror: Fix an error looking up some Windows error strings
strerror: Fix compiler warning "empty expression"
system.h: fix for MCST lcc compiler
test/sws: search for "Testno:" header unconditionally if no testno
test1175: verify symbols-in-versions and libcurl-errors.3 in sync
test1270: a basic -w redirect_url test
test1456: remove the use of a fixed local port number
test1558: use double slash after file:
test1560: require IPv6 for IPv6 aware URL parsing
tests/lib1557: fix mem-leak in OOM
tests/lib1559: fix mem-leak in OOM
tests/lib1591: free memory properly on OOM, in the trailers callback
tests/unit1607: fix mem-leak in OOM
tests/unit1609: fix mem-leak in OOM
tests/unit1620: fix bad free in OOM
tests: Change NTLM tests to require SSL
tests: Fix bounce requests with truncated writes
tests: fix build with `CURL_DISABLE_DOH`
tests: fix permissions of ssh keys in WSL
tests: make it possible to set executable extensions
tests: make sure checksrc runs on header files too
tests: set LC_ALL=en_US.UTF-8 instead of blank in several tests
tests: use DoH feature for DoH tests
tests: use \r\n for log messages in WSL
tool_operate: fix mem leak when failed config parse
travis: Fix error detection
travis: abandon coveralls, it is not reliable
travis: build ngtcp2 with --enable-lib-only
travis: export the CC/CXX variables when set
vtls: make BearSSL possible to set with CURL_SSL_BACKEND
winbuild: Define CARES_STATICLIB when WITH_CARES=static
winbuild: Document CURL_STATICLIB requirement for static libcurl