From a30caf02785fd0ac37b662d82937d5195696dd4e Mon Sep 17 00:00:00 2001 From: Mark Murray Date: Sat, 2 Jan 2021 11:49:33 +0000 Subject: [PATCH] Updaye to v1.53.0. (20 years since the previous release!) From the release notes: Par 1.53.0 released 2020-Mar-14 Fixed the following bugs: An unintended bad interaction between and . The specification was inconsistent. Although it said that the lines inserted by the feature were vacant, the feature could interpret the quote character of inserted lines as a repeat character, in which case the lines were not vacant (according to the definition), and more quote/repeat characters would be inserted to extend the line to the full width, which no one would ever want. The definition of "bodiless line" is revised so that lines inserted by the feature are excluded from consideration by the feature. A printf format string mismatch (ptrdiff_t vs. %d), reported by Quentin Barnes (qbarnes at gmail.com). protoMakefile's clean target removed par rather than par$E, reported by George V. Reilly (george at reilly.org). Added the following features: Locale support for single-byte character sets. The previous verson, 1.52, attempted to do this in one line of code (setlocale()), but it's not that simple. Versions before 1.52 gave no thought to character sets other than US-ASCII and did not handle them entirely correctly. Calling setlocale() in version 1.52 corrected some flaws but not all, and created one new flaw. This version and the previous two all have the same character handling in the "C" locale and when processing US-ASCII text; differences arise only when processing non-US-ASCII text in another locale. In versions before 1.52 the implementation assumed that "uppercase letter" means only the 26 characters A-Z and that "lowercase letter" means only the 26 characters a-z, and the specification assumed that every letter is either upper case or lower case. These assumptions hold for US-ASCII, but not for most other character sets; therefore versions before 1.52 did not really support non-US-ASCII text. Version 1.52, by calling setlocale(), relaxed the three assumptions in the implementation but not the assumption in the specification, and inadvertantly caused the implementation to deviate from the specification by converting all space characters to spaces rather than converting only the specified white characters, which is not necessarily what you want (for example, you probably don't want no-break space converted to space, but some locales on some platforms have been known to classify no-break space as white-space, like FreeBSD did in 2004). This version fixes the specification by introducing the concept of "neither-case letter" and redefining "alphanumeric character" to include it, and fixes the implementation to convert only the white characters to spaces. It also makes the white characters configurable so that the version 1.52 space-conversion behavior can be restored if desired (W=_S). Note that Par still assumes constant display width per byte, which is not true for UTF-8 nor ISO-2022-*, but is true for most single-byte charsets and for EUC-* text without the single-shift-in/out codes. The W option, for configuring the set of white characters. The Z option, for configuring the set of terminal characters. The _@ escape sequence (neither-case letter) in charset syntax. The _S escape sequence (any space) in charset syntax. Added _@ and apostrophe to the set of body characters in PARINIT. Add #includes for whatever interfaces are used rather than depending on included files to #include other files. In protoMakefile introduced CPPFLAGS and CFLAGS (default empty) into the default definition of CC. Added a test-par script and a test target in protoMakefile. Fixed a misspelling (preceed => precede) in par.doc and par.1. Changed the top-of-file comment convention so that every release won't need to touch every file (this is the last time). Updated the author contact information. Clarified the license and added the MIT License as an alternative. Adopted a modern version number format, with minor and patch numbers as dot-separated integers rather than adjacent single digits. --- textproc/par/Makefile | 5 ++--- textproc/par/distinfo | 5 +++-- textproc/par/files/patch-par.c | 12 ------------ textproc/par/files/patch-protoMakefile | 14 ++++++++------ textproc/par/files/patch-reformat.c | 11 ----------- 5 files changed, 13 insertions(+), 34 deletions(-) delete mode 100644 textproc/par/files/patch-par.c delete mode 100644 textproc/par/files/patch-reformat.c diff --git a/textproc/par/Makefile b/textproc/par/Makefile index af5392c199f2..4fcd89cefb99 100644 --- a/textproc/par/Makefile +++ b/textproc/par/Makefile @@ -2,12 +2,11 @@ # $FreeBSD$ PORTNAME= par -PORTVERSION= 1.52 -PORTREVISION= 1 +PORTVERSION= 1.53.0 PKGNAMESUFFIX= _format CATEGORIES= textproc MASTER_SITES= http://www.nicemice.net/par/ -DISTNAME= Par${PORTVERSION:S|.||} +DISTNAME= Par-${PORTVERSION} MAINTAINER= markm@FreeBSD.org COMMENT= Paragraph reformatter for email diff --git a/textproc/par/distinfo b/textproc/par/distinfo index 849f75029ee2..53cd32df0d88 100644 --- a/textproc/par/distinfo +++ b/textproc/par/distinfo @@ -1,2 +1,3 @@ -SHA256 (Par152.tar.gz) = 33dcdae905f4b4267b4dc1f3efb032d79705ca8d2122e17efdecfd8162067082 -SIZE (Par152.tar.gz) = 47999 +TIMESTAMP = 1609587143 +SHA256 (Par-1.53.0.tar.gz) = c809c620eb82b589553ac54b9898c8da55196d262339d13c046f2be44ac47804 +SIZE (Par-1.53.0.tar.gz) = 52209 diff --git a/textproc/par/files/patch-par.c b/textproc/par/files/patch-par.c deleted file mode 100644 index 397e32c6cae5..000000000000 --- a/textproc/par/files/patch-par.c +++ /dev/null @@ -1,12 +0,0 @@ ---- ./par.c.orig 2001-04-02 05:25:57.000000000 +0100 -+++ ./par.c 2014-02-10 21:14:29.000000000 +0000 -@@ -403,7 +403,8 @@ - } - continue; - } -- if (isspace(c)) ch = ' '; -+ // Exclude non-breaking space from the class of space chars -+ if (isspace(c) && isascii(c)) ch = ' '; - else blank = 0; - additem(cbuf, &ch, errmsg); - if (*errmsg) goto rlcleanup; diff --git a/textproc/par/files/patch-protoMakefile b/textproc/par/files/patch-protoMakefile index 1c11bccdb77f..21a12c6d7b95 100644 --- a/textproc/par/files/patch-protoMakefile +++ b/textproc/par/files/patch-protoMakefile @@ -1,11 +1,13 @@ ---- ./protoMakefile.orig 2001-03-09 00:53:25.000000000 +0000 -+++ ./protoMakefile 2014-02-10 21:14:29.000000000 +0000 -@@ -47,7 +47,7 @@ +--- protoMakefile.orig 2020-03-14 21:01:24 UTC ++++ protoMakefile +@@ -45,8 +45,8 @@ # Example (for Solaris 2.x with SPARCompiler C): # CC = cc -c -O -s -Xc -DDONTFREE --CC = cc -c -+CC = cc -c ${CFLAGS} +-CPPFLAGS = +-CFLAGS = ++#CPPFLAGS = ++#CFLAGS = + CC = cc $(CPPFLAGS) $(CFLAGS) -c # Define LINK1 and LINK2 so that the command - # diff --git a/textproc/par/files/patch-reformat.c b/textproc/par/files/patch-reformat.c deleted file mode 100644 index 9b9d0f0d84ab..000000000000 --- a/textproc/par/files/patch-reformat.c +++ /dev/null @@ -1,11 +0,0 @@ ---- ./reformat.c.orig 2014-02-10 21:14:43.000000000 +0000 -+++ ./reformat.c 2014-02-10 21:17:35.000000000 +0000 -@@ -335,7 +335,7 @@ - for (end = *line; *end; ++end); - if (end - *line < affix) { - sprintf(errmsg, -- "Line %d shorter than + = %d + %d = %d\n", -+ "Line %zd shorter than + = %d + %d = %d\n", - line - inlines + 1, prefix, suffix, affix); - goto rfcleanup; - }