4 Commits

Author SHA1 Message Date
Bruno Haible 7040b13946 libtextstyle: Support the NO_COLOR environment variable.
It follows the specification at https://no-color.org/.

The support is in the example programs, not in the function
styled_ostream_create, so that it can be overridden through the command-line
option --color=always.

We only test whether the environment variable is set, not whether its value
is non-empty. POSIX-specified environment variables are treated like unset
when their value is empty; this is because in the old days it was not possible
to unset an environment variable. But nowadays:
  - all shells support the 'unset' built-in,
  - all platforms that have the setenv() function also have the unsetenv()
    function, and
  - the 'env' program from GNU coreutils supports --unset=VARIABLE to unset a
    variable.
This makes it possible to unset an environment variable that is set by the
parent process.

* libtextstyle/adhoc-tests/hello.c (main): Do not emit styling when the
environment variable NO_COLOR is set.
* libtextstyle/examples/color-filter/filter.c (main): Likewise.
* libtextstyle/examples/color-hello/hello.c (main): Likewise.
* gettext-tools/src/write-catalog.c (msgdomain_list_print): Likewise.
* libtextstyle/doc/libtextstyle.texi (The NO_COLOR variable): New section.
* libtextstyle/NEWS: Mention it.
2019-08-14 02:46:36 +02:00
Bruno Haible fe18e92743 libtextstyle: examples: Enable --color=html, for debuggability.
Reported by Akim Demaille.

* libtextstyle/examples/color-hello/hello.c (main): Handle color_html case.
* libtextstyle/examples/color-filter/filter.c (main): Likewise.
2019-05-07 01:27:33 +02:00
Bruno Haible ae8dc3bc97 libtextstyle: In the examples, actually respect the --color option.
Reported by Akim Demaille <akim.demaille@gmail.com>.

* libtextstyle/examples/color-filter/filter.c (main): Set style_file_name to
NULL when styling should be disabled.
* libtextstyle/examples/color-hello/hello.c (main): Likewise.
2019-02-14 22:55:50 +01:00
Bruno Haible 939ea33303 libtextstyle: New project.
* libtextstyle/AUTHORS: New file, extracted from gettext/AUTHORS.
* libtextstyle/COPYING: New file, copied from gettext/COPYING.
* libtextstyle/DEPENDENCIES: New file, based on gettext/DEPENDENCIES.
* libtextstyle/HACKING: New file, based on gettext/HACKING.
* libtextstyle/INSTALL: New file, copied from gettext/INSTALL.
* libtextstyle/Makefile.am: New file, based on libunistring/Makefile.am.
* libtextstyle/NEWS: New file.
* libtextstyle/README: New file, based on libunistring/README.
* libtextstyle/autogen.sh: New file, based on libunistring/autogen.sh.
* libtextstyle/configure.ac: New file, based on libunistring/configure.ac.
* libtextstyle/build-aux/texi2html: New file, copied from
libunistring/build-aux/texi2html.
* libtextstyle/doc/Makefile.am: New file, based on libunistring/doc/Makefile.am.
* libtextstyle/doc/fdl.texi: New file, copied from gnulib/doc/fdl.texi.
* libtextstyle/doc/gpl.texi: New file, copied from gnulib/doc/gpl-3.0.texi.
* libtextstyle/doc/libtextstyle.texi: New file, partially based on
gettext/gettext-tools/doc/gettext.texi.
* libtextstyle/examples/color-filter/INSTALL: New file, based on
gettext/gettext-tools/examples/hello-c/INSTALL.
* libtextstyle/examples/color-filter/Makefile.am: New file, based on
gettext/gettext-tools/examples/hello-c/Makefile.am.
* libtextstyle/examples/color-filter/README: New file.
* libtextstyle/examples/color-filter/autoclean.sh: New file, based on
gettext/gettext-tools/examples/hello-c/autoclean.sh.
* libtextstyle/examples/color-filter/autogen.sh: New file, based on
gettext/gettext-tools/examples/hello-c/autogen.sh.
* libtextstyle/examples/color-filter/configure.ac: New file.
* libtextstyle/examples/color-filter/filter.c: New file.
* libtextstyle/examples/color-filter/filter-default.css: New file.
* libtextstyle/examples/color-hello/INSTALL: New file, based on
gettext/gettext-tools/examples/hello-c/INSTALL.
* libtextstyle/examples/color-hello/Makefile.am: New file, based on
gettext/gettext-tools/examples/hello-c/Makefile.am.
* libtextstyle/examples/color-hello/README: New file.
* libtextstyle/examples/color-hello/autoclean.sh: New file, based on
gettext/gettext-tools/examples/hello-c/autoclean.sh.
* libtextstyle/examples/color-hello/autogen.sh: New file, based on
gettext/gettext-tools/examples/hello-c/autogen.sh.
* libtextstyle/examples/color-hello/configure.ac: New file.
* libtextstyle/examples/color-hello/hello.c: New file.
* libtextstyle/examples/color-hello/hello-default.css: New file.
* libtextstyle/examples/color-hello/names.c: New file.
* libtextstyle/lib/Makefile.am: New file, based on libunistring/lib/Makefile.am.
* libtextstyle/lib/misc.h: New file.
* libtextstyle/lib/misc.c: New file.
* libtextstyle/lib/notinline.h: New file, based on
libunistring/lib/unistring-notinline.h.
* libtextstyle/lib/stdbool.mini.h: New file, based on
libunistring/lib/stdbool.mini.h.
* libtextstyle/lib/textstyle.h: New file, based on
gnulib-local/lib/*ostream.oo.h.
* libtextstyle/lib/textstyle/version.in.h: New file, based on
libunistring/lib/unistring/version.in.h.
* libtextstyle/lib/textstyle/woe32dll.in.h: New file, based on
libunistring/lib/unistring/woe32dll.in.h.
* libtextstyle/lib/version.c: New file, based on libunistring/lib/version.c.
* libtextstyle/m4/init-package-version.m4: New file, copied from
libunistring/m4/init-package-version.m4.
* libtextstyle/tests/Makefile.am: New file, based on
libunistring/tests/Makefile.am.
* libtextstyle/version.sh: New file, based on libunistring/version.sh.
* libtextstyle/woe32dll/c++fd-styled-ostream.cc: New file.
* libtextstyle/woe32dll/c++html-styled-ostream.cc: New file.
* libtextstyle/woe32dll/c++term-styled-ostream.cc: New file.
* gnulib-local/lib/glib/gstring.c (g_string_append_c): In libtextstyle, honor a
macro definition.
* gnulib-local/lib/libxml/elfgcchack.h: In libtextstyle, make this entire file a
no-op.
* gnulib-local/lib/libxml/globals.in.h (docbDefaultSAXHandler,
htmlDefaultSAXHandler, oldXMLWDcompatibility, xmlBufferAllocScheme,
xmlDefaultBufferSize, xmlDefaultSAXHandler, xmlDefaultSAXLocator,
xmlDoValidityCheckingDefaultValue, xmlFree, xmlGenericError, xmlStructuredError,
xmlGenericErrorContext, xmlStructuredErrorContext, xmlGetWarningsDefaultValue,
xmlIndentTreeOutput, xmlTreeIndentString, xmlKeepBlanksDefaultValue,
xmlLineNumbersDefaultValue, xmlLoadExtDtdDefaultValue, xmlMalloc,
xmlMallocAtomic, xmlMemStrdup, xmlParserDebugEntities, xmlParserVersion,
xmlPedanticParserDefaultValue, xmlRealloc, xmlSaveNoEmptyTags,
xmlSubstituteEntitiesDefaultValue, xmlRegisterNodeDefaultValue,
xmlDeregisterNodeDefaultValue, xmlLastError,
xmlParserInputBufferCreateFilenameValue, xmlOutputBufferCreateFilenameValue): In
libtextstyle, honor a macro definition.
* gnulib-local/lib/libxml/globals.c (xmlFree, xmlMalloc, xmlMallocAtomic,
xmlMemStrdup, xmlRealloc, docbDefaultSAXHandler, htmlDefaultSAXHandler,
oldXMLWDcompatibility, xmlBufferAllocScheme, xmlDefaultBufferSize,
xmlDefaultSAXHandler, xmlDefaultSAXLocator, xmlDoValidityCheckingDefaultValue,
xmlGenericError, xmlStructuredError, xmlGenericErrorContext,
xmlStructuredErrorContext, xmlGetWarningsDefaultValue, xmlIndentTreeOutput,
xmlTreeIndentString, xmlKeepBlanksDefaultValue, xmlLineNumbersDefaultValue,
xmlLoadExtDtdDefaultValue, xmlParserDebugEntities, xmlParserVersion,
xmlPedanticParserDefaultValue, xmlSaveNoEmptyTags,
xmlSubstituteEntitiesDefaultValue, xmlRegisterNodeDefaultValue,
xmlDeregisterNodeDefaultValue, xmlLastError,
xmlParserInputBufferCreateFilenameValue, xmlOutputBufferCreateFilenameValue):
Likewise.
* gnulib-local/lib/libxml/xmlmemory.c (xmlMalloc): Likewise.
2019-02-10 20:59:08 +01:00