From 2a65624f71954cd1d6b62818852a8b1075b535a8 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Thu, 12 Dec 2013 21:07:53 +0200 Subject: New file in helpers. --- helpers/ChangeLog | 4 +++ helpers/do.outline | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100755 helpers/do.outline (limited to 'helpers') diff --git a/helpers/ChangeLog b/helpers/ChangeLog index 4b720787..a43fcd0c 100644 --- a/helpers/ChangeLog +++ b/helpers/ChangeLog @@ -1,3 +1,7 @@ +2013-12-12 Arnold D. Robbins + + * do.outline: New file. + 2013-06-27 Arnold D. Robbins * ChangeLog: Created. diff --git a/helpers/do.outline b/helpers/do.outline new file mode 100755 index 00000000..203d27ad --- /dev/null +++ b/helpers/do.outline @@ -0,0 +1,102 @@ +#! /usr/local/bin2/gawk -f + +# do.outline --- produce an outline of a texinfo document + +BEGIN { + # manifest constants + TRUE = 1 + FALSE = 0 + + # Levels at which different nodes can be + Level["@top"] = 0 + Level["@appendix"] = 1 + Level["@chapter"] = 1 + Level["@majorheading"] = 1 + Level["@unnumbered"] = 1 + Level["@preface"] = 1 + Level["@appendixsec"] = 2 + Level["@heading"] = 2 + Level["@section"] = 2 + Level["@unnumberedsec"] = 2 + Level["@unnumberedsubsec"] = 3 + Level["@appendixsubsec"] = 3 + Level["@subheading"] = 3 + Level["@subsection"] = 3 + Level["@appendixsubsubsec"] = 4 + Level["@subsubheading"] = 4 + Level["@subsubsection"] = 4 + Level["@unnumberedsubsubsec"] = 4 + + ah = bh = ch = 0 + + appendix = 0 +} + +/^@ignore/ && Pass == 1, /^@end[ \t]+ignore/ && Pass == 1 { + next +} + + +$1 in Level { + # save type + type = $1 + + lev = Level[$1] + + if (lev == 1 && tolower($0) !~ /preface|foreword/) { + if ($1 == "@appendix") { + appendix = next_appendix(appendix) + ah = appendix + } else + ah++ + bh = ch = dh = 0 + } else if (lev == 2) { + bh++ + ch = dh = 0 + } else if (lev == 3) { + ch++ + dh = 0 + } else if (lev == 4) + dh++ + + Unnumbered = ($1 ~ /^@unnumbered/) + + $1 = "" + $0 = preprocess($0) + + for (i = 1; i < lev; i++) + printf "\t" + + if (! Unnumbered) { + printf("%s.", ah) + if (bh) + printf("%d.", bh) + if (ch) + printf("%d.", ch) + if (dh) + printf("%d.", dh) + } + + printf("%s\n", $0) +} + +function preprocess(record) +{ + record = gensub(/@(code|command|samp|env)\{([^\}]+)\}/, "\\2", "g", record) + record = gensub(/@dots\{\}/, "...", "g", record) + + return record +} + +function next_appendix(cur, ind, letters) +{ + if (cur == 0) + return "A" # first time + + letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + ind = index(letters, cur) + if (ind > 0 && ind <= 26) + return substr(letters, ++ind, 1) + + return "Z" +} -- cgit v1.2.3 From 6d3ff31ea2921361e1044356b2c7fce7da35ad72 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Sat, 21 Dec 2013 19:18:07 +0200 Subject: Fixes in helpers/testdfa.c. --- helpers/ChangeLog | 4 ++++ helpers/testdfa.c | 12 ++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'helpers') diff --git a/helpers/ChangeLog b/helpers/ChangeLog index a43fcd0c..91d43464 100644 --- a/helpers/ChangeLog +++ b/helpers/ChangeLog @@ -1,3 +1,7 @@ +2013-12-21 Arnold D. Robbins + + * testdfa.c: Fix some bugs and compiler warnings. + 2013-12-12 Arnold D. Robbins * do.outline: New file. diff --git a/helpers/testdfa.c b/helpers/testdfa.c index c644fb04..813acaab 100644 --- a/helpers/testdfa.c +++ b/helpers/testdfa.c @@ -76,7 +76,6 @@ int main(int argc, char **argv) size_t len; const char *pattern; const char *rerr; - int infd; char *data; reg_syntax_t dfa_syn; bool ignorecase = false; @@ -180,7 +179,7 @@ int main(int argc, char **argv) /* run the regex matcher */ ret = re_search(& pat, data, len, 0, len, NULL); - printf("re_search returned %d (%s)\n", ret, (ret != 0) ? "true" : "false"); + printf("re_search returned position %d (%s)\n", ret, (ret >= 0) ? "true" : "false"); /* run the dfa matcher */ /* @@ -202,6 +201,8 @@ int main(int argc, char **argv) free(regs.end); dfafree(dfareg); free(dfareg); + + return 0; } /* genflags2str --- general routine to convert a flag value to a string */ @@ -366,12 +367,15 @@ setup_pattern(const char *pattern, size_t len) { size_t is_multibyte = 0; int c, c2; - size_t buflen; + size_t buflen = 0; mbstate_t mbs; bool has_anchor = false; - char *buf, *dest; + char *buf = NULL; + char *dest; const char *src, *end; + memset(& mbs, 0, sizeof(mbs)); + src = pattern; end = pattern + len; -- cgit v1.2.3 From a0841dfa1e1a7ebdd8d29188ce7b304c67daa42d Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Sat, 8 Mar 2014 21:22:18 +0200 Subject: Some new helper files added. --- helpers/ChangeLog | 4 ++++ helpers/quoteconvert2.sh | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ helpers/scanfmt.c | 22 ++++++++++++++++++++++ helpers/tryfmt.c | 23 +++++++++++++++++++++++ 4 files changed, 98 insertions(+) create mode 100755 helpers/quoteconvert2.sh create mode 100644 helpers/scanfmt.c create mode 100644 helpers/tryfmt.c (limited to 'helpers') diff --git a/helpers/ChangeLog b/helpers/ChangeLog index 91d43464..14affebc 100644 --- a/helpers/ChangeLog +++ b/helpers/ChangeLog @@ -1,3 +1,7 @@ +2014-03-08 Arnold D. Robbins + + * quoteconvert2.sh, tryfmt.c, scanfmt.c: New files. + 2013-12-21 Arnold D. Robbins * testdfa.c: Fix some bugs and compiler warnings. diff --git a/helpers/quoteconvert2.sh b/helpers/quoteconvert2.sh new file mode 100755 index 00000000..e33a4d05 --- /dev/null +++ b/helpers/quoteconvert2.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +# quoteconvert2.sh --- test locale dependent output of numbers +# Michal Jaegermann, michal@harddata.com, 2014/Mar/1 + +#AWK="../gawk" +SCRIPT=`basename $0` + +if [ "$AWK" = "" ] +then + echo $0: You must set AWK >&2 + exit 1 +fi + +# The last entry on this list represents "a locale with a typo". + +llist=" +C +en_US +en_US.utf8 +de_DE +de_DE.utf8 +fr_FR +fr_FR.utf8 +pt_PT +pt_PT.utf8 +pt_BR +pt_BR.utf8 +ru_RU +ru_RU.utf8 +pl_PX +" + +error=0 +for lc in $llist ; do + wanted=`LC_ALL=$lc locale -c LC_NUMERIC 2>/dev/null | \ + $AWK 'NR == 2 { decimal_point = $0 } + NR == 3 { thousands_sep = $0 } + END { printf("123%s456%s789%s15\n", + thousands_sep, thousands_sep, decimal_point)}'` + got=`LC_ALL=$lc $AWK "BEGIN {printf(\"%'.2f\n\",123456789.15)}"` + if [ "$wanted" != "$got" ] ; then + echo "$lc - unexpected output $got instead of $wanted" + error=1 + fi +done + +[ "$error" = 0 ] && echo ok || echo bummer +exit $error diff --git a/helpers/scanfmt.c b/helpers/scanfmt.c new file mode 100644 index 00000000..2d7bd73a --- /dev/null +++ b/helpers/scanfmt.c @@ -0,0 +1,22 @@ +/* + * Test out ' flag in different locales. + * Michal Jaegermann + * March, 2014 + */ + +#include +#include +#include +int +main(int argc, char **argv) +{ + double t; + + if (argc == 1) + return 1; + + setlocale(LC_ALL, getenv("LC_ALL")); + sscanf(argv[1], "%lf", &t); + printf("%.2f\n", t); + return 0; +} diff --git a/helpers/tryfmt.c b/helpers/tryfmt.c new file mode 100644 index 00000000..8166d3f1 --- /dev/null +++ b/helpers/tryfmt.c @@ -0,0 +1,23 @@ +/* + * Test out ' flag in different locales. + * Michal Jaegermann + * March, 2014 + */ + +#include +#include +#include +int +main(int argc, char **argv) +{ + const char *fmt; + if (argc == 1) + fmt = "%'.2f"; + else + fmt = argv[1]; + + setlocale(LC_ALL, getenv("LC_ALL")); + printf(fmt, 12456789.01); + printf("\n"); + return 0; +} -- cgit v1.2.3 From 1e956e9f38bc43bb68bd88a286fa7c6a66af2503 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Mon, 10 Mar 2014 22:17:08 +0200 Subject: Improvement in helpers/quoteconvert2.sh. --- helpers/ChangeLog | 5 +++++ helpers/quoteconvert2.sh | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'helpers') diff --git a/helpers/ChangeLog b/helpers/ChangeLog index 14affebc..e5087f37 100644 --- a/helpers/ChangeLog +++ b/helpers/ChangeLog @@ -1,3 +1,8 @@ +2014-03-10 Arnold D. Robbins + + * quoteconvert2.sh: Use .UTF-8 locales per request from + Michal Jaegermann. + 2014-03-08 Arnold D. Robbins * quoteconvert2.sh, tryfmt.c, scanfmt.c: New files. diff --git a/helpers/quoteconvert2.sh b/helpers/quoteconvert2.sh index e33a4d05..63750a37 100755 --- a/helpers/quoteconvert2.sh +++ b/helpers/quoteconvert2.sh @@ -17,17 +17,17 @@ fi llist=" C en_US -en_US.utf8 +en_US.UTF-8 de_DE -de_DE.utf8 +de_DE.UTF-8 fr_FR -fr_FR.utf8 +fr_FR.UTF-8 pt_PT -pt_PT.utf8 +pt_PT.UTF-8 pt_BR -pt_BR.utf8 +pt_BR.UTF-8 ru_RU -ru_RU.utf8 +ru_RU.UTF-8 pl_PX " -- cgit v1.2.3 From dc5af665700d9b04fdf9c18930526d28eef5d5d9 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Tue, 8 Apr 2014 21:15:08 +0300 Subject: Make release tar ball. --- helpers/ChangeLog | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'helpers') diff --git a/helpers/ChangeLog b/helpers/ChangeLog index e5087f37..17624c3f 100644 --- a/helpers/ChangeLog +++ b/helpers/ChangeLog @@ -1,3 +1,7 @@ +2014-04-08 Arnold D. Robbins + + * 4.1.1: Release tar ball made. + 2014-03-10 Arnold D. Robbins * quoteconvert2.sh: Use .UTF-8 locales per request from -- cgit v1.2.3