groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Groff-commit] groff ./ChangeLog ./Makefile.in ./configure ./c...


From: Werner LEMBERG
Subject: [Groff-commit] groff ./ChangeLog ./Makefile.in ./configure ./c...
Date: Sat, 31 Dec 2005 08:26:57 +0000

CVSROOT:        /cvsroot/groff
Module name:    groff
Branch:         
Changes by:     Werner LEMBERG <address@hidden> 05/12/31 08:26:57

Modified files:
        .              : ChangeLog Makefile.in configure configure.ac 
        src/include    : config.hin 
        src/roff/groff : groff.cpp groff.man pipeline.h 

Log message:
        Integrate preconv into the groff binary.  Changes based on a patch
        from Michail Vidiassov.
        
        * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase by 1.
        
        * src/roff/groff/groff.cpp (PRECONV_INDEX): New macro.
        (SOELIM_INDEX): Updated.
        (help, synopsis): Updated.
        (main): Add command line options `-k' and `-K enc' to select
        encoding.
        Add support for GROFF_ENCODING environment variable.
        
        * src/roff/groff/groff.man: Updated and revised.
        
        Start with autoconf support for preconv.
        
        * configure.ac: Call AC_C_BIGENDIAN.
        * configure, src/include/config.hin: Regenerated.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/groff/groff/ChangeLog.diff?tr1=1.871&tr2=1.872&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/groff/groff/Makefile.in.diff?tr1=1.89&tr2=1.90&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/groff/groff/configure.diff?tr1=1.72&tr2=1.73&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/groff/groff/configure.ac.diff?tr1=1.36&tr2=1.37&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/groff/groff/src/include/config.hin.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/groff/groff/src/roff/groff/groff.cpp.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/groff/groff/src/roff/groff/groff.man.diff?tr1=1.42&tr2=1.43&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/groff/groff/src/roff/groff/pipeline.h.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: groff/ChangeLog
diff -u groff/ChangeLog:1.871 groff/ChangeLog:1.872
--- groff/ChangeLog:1.871       Fri Dec 30 09:31:50 2005
+++ groff/ChangeLog     Sat Dec 31 08:26:57 2005
@@ -1,3 +1,25 @@
+2005-12-31  Werner LEMBERG  <address@hidden>
+
+       Integrate preconv into the groff binary.  Changes based on a patch
+       from Michail Vidiassov.
+
+       * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase by 1.
+
+       * src/roff/groff/groff.cpp (PRECONV_INDEX): New macro.
+       (SOELIM_INDEX): Updated.
+       (help, synopsis): Updated.
+       (main): Add command line options `-k' and `-K enc' to select
+       encoding.
+       Add support for GROFF_ENCODING environment variable.
+
+       * src/roff/groff/groff.man: Updated and revised.
+
+
+       Start with autoconf support for preconv.
+
+       * configure.ac: Call AC_C_BIGENDIAN.
+       * configure, src/include/config.hin: Regenerated.
+
 2005-12-30  Werner LEMBERG  <address@hidden>
 
        New preprocessor `preconv' to convert input encodings to something
Index: groff/Makefile.in
diff -u groff/Makefile.in:1.89 groff/Makefile.in:1.90
--- groff/Makefile.in:1.89      Fri Dec 30 09:31:50 2005
+++ groff/Makefile.in   Sat Dec 31 08:26:57 2005
@@ -251,6 +251,9 @@
 address@hidden@
 
 # DEFINES should include the following:
+#
+# -DWORDS_BIGENDIAN            if your target platform is big-endian
+#
 # -DHAVE_MMAP                  if you have mmap() and <sys/mman.h>
 # -DARRAY_DELETE_NEEDS_SIZE    if your C++ doesn't understand `delete []'
 # -DSYS_SIGLIST_DECLARED       if you have sys_siglist[]
Index: groff/configure
diff -u groff/configure:1.72 groff/configure:1.73
--- groff/configure:1.72        Mon Dec 12 07:14:59 2005
+++ groff/configure     Sat Dec 31 08:26:57 2005
@@ -8527,6 +8527,243 @@
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+# check endianness
+echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
+if test "${ac_cv_c_bigendian+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # See if sys/param.h defines the BYTE_ORDER macro.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
+
+int
+main ()
+{
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+ bogus endian macros
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_bigendian=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+# It does not; compile a test program.
+if test "$cross_compiling" = yes; then
+  # try to guess the endianness by grepping values into an object file
+  ac_cv_c_bigendian=unknown
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
+short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
+int
+main ()
+{
+ _ascii (); _ebcdic ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
+  ac_cv_c_bigendian=yes
+fi
+if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+  if test "$ac_cv_c_bigendian" = unknown; then
+    ac_cv_c_bigendian=no
+  else
+    # finding both strings is unlikely to happen, but who knows?
+    ac_cv_c_bigendian=unknown
+  fi
+fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+  /* Are we little or big endian?  From Harbison&Steele.  */
+  union
+  {
+    long int l;
+    char c[sizeof (long int)];
+  } u;
+  u.l = 1;
+  exit (u.c[sizeof (long int) - 1] == 1);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=no
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_bigendian=yes
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext 
conftest.$ac_ext
+fi
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+echo "${ECHO_T}$ac_cv_c_bigendian" >&6
+case $ac_cv_c_bigendian in
+  yes)
+
+cat >>confdefs.h <<\_ACEOF
+#define WORDS_BIGENDIAN 1
+_ACEOF
+ ;;
+  no)
+     ;;
+  *)
+    { { echo "$as_me:$LINENO: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+echo "$as_me: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+
+
 # checks for libraries
 echo "$as_me:$LINENO: checking for main in -lc" >&5
 echo $ECHO_N "checking for main in -lc... $ECHO_C" >&6
Index: groff/configure.ac
diff -u groff/configure.ac:1.36 groff/configure.ac:1.37
--- groff/configure.ac:1.36     Thu Oct 27 21:30:30 2005
+++ groff/configure.ac  Sat Dec 31 08:26:57 2005
@@ -83,6 +83,9 @@
 GROFF_TYPE_SIGNAL
 GROFF_STRUCT_EXCEPTION
 
+# check endianness
+AC_C_BIGENDIAN
+
 # checks for libraries
 GROFF_LIBC
 GROFF_LIBM
Index: groff/src/include/config.hin
diff -u groff/src/include/config.hin:1.12 groff/src/include/config.hin:1.13
--- groff/src/include/config.hin:1.12   Sat Apr 30 07:03:14 2005
+++ groff/src/include/config.hin        Sat Dec 31 08:26:57 2005
@@ -203,6 +203,10 @@
    core image was produced for a process that was terminated by a signal. */
 #undef WCOREFLAG
 
+/* Define to 1 if your processor stores words with the most significant byte
+   first (like Motorola and SPARC, unlike Intel and VAX). */
+#undef WORDS_BIGENDIAN
+
 /* Define to 1 if the X Window System is missing or not being used. */
 #undef X_DISPLAY_MISSING
 
Index: groff/src/roff/groff/groff.cpp
diff -u groff/src/roff/groff/groff.cpp:1.8 groff/src/roff/groff/groff.cpp:1.9
--- groff/src/roff/groff/groff.cpp:1.8  Thu May 26 21:02:01 2005
+++ groff/src/roff/groff/groff.cpp      Sat Dec 31 08:26:57 2005
@@ -1,5 +1,5 @@
 // -*- C++ -*-
-/* Copyright (C) 1989-2000, 2001, 2002, 2003, 2004
+/* Copyright (C) 1989-2000, 2001, 2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
      Written by James Clark (address@hidden)
 
@@ -51,7 +51,8 @@
 #endif /* NEED_DECLARATION_PUTENV */
 
 // The number of commands must be in sync with MAX_COMMANDS in pipeline.h
-const int SOELIM_INDEX = 0;
+const int PRECONV_INDEX = 0;
+const int SOELIM_INDEX = PRECONV_INDEX + 1;
 const int REFER_INDEX = SOELIM_INDEX + 1;
 const int GRAP_INDEX = REFER_INDEX + 1;
 const int PIC_INDEX = GRAP_INDEX + 1;
@@ -110,6 +111,7 @@
   setbuf(stderr, stderr_buf);
   assert(NCOMMANDS <= MAX_COMMANDS);
   string Pargs, Largs, Fargs;
+  int Kflag = 0;
   int vflag = 0;
   int Vflag = 0;
   int zflag = 0;
@@ -119,6 +121,7 @@
   int safer_flag = 1;
   int opt;
   const char *command_prefix = getenv("GROFF_COMMAND_PREFIX");
+  const char *encoding = getenv("GROFF_ENCODING");
   if (!command_prefix)
     command_prefix = PROG_PREFIX;
   commands[TROFF_INDEX].set_name(command_prefix, "troff");
@@ -127,9 +130,10 @@
     { "version", no_argument, 0, 'v' },
     { NULL, 0, 0, 0 }
   };
-  while ((opt = getopt_long(argc, argv,
-                           
"abcCd:eEf:F:gGhiI:lL:m:M:n:No:pP:r:RsStT:UvVw:W:XzZ",
-                           long_options, NULL))
+  while ((opt = getopt_long(
+                 argc, argv,
+                 "abcCd:eEf:F:gGhiI:lkK:L:m:M:n:No:pP:r:RsStT:UvVw:W:XzZ",
+                 long_options, NULL))
         != EOF) {
     char buf[3];
     buf[0] = '-';
@@ -149,6 +153,13 @@
       Pargs += optarg;
       Pargs += '\0';
       break;
+    case 'K':
+      commands[PRECONV_INDEX].append_arg("-e", optarg);
+      Kflag = 1;
+      // fall through
+    case 'k':
+      commands[PRECONV_INDEX].set_name(command_prefix, "preconv");
+      break;
     case 't':
       commands[TBL_INDEX].set_name(command_prefix, "tbl");
       break;
@@ -185,16 +196,15 @@
       break;
     case 'v':
       vflag = 1;
-      {
-       printf("GNU groff version %s\n", Version_string);
-       printf("Copyright (C) 2004 Free Software Foundation, Inc.\n"
-              "GNU groff comes with ABSOLUTELY NO WARRANTY.\n"
-              "You may redistribute copies of groff and its subprograms\n"
-              "under the terms of the GNU General Public License.\n"
-              "For more information about these matters, see the file named 
COPYING.\n");
-       printf("\ncalled subprograms:\n\n");
-        fflush(stdout);
-      }
+      printf("GNU groff version %s\n", Version_string);
+      printf(
+       "Copyright (C) 2005 Free Software Foundation, Inc.\n"
+       "GNU groff comes with ABSOLUTELY NO WARRANTY.\n"
+       "You may redistribute copies of groff and its subprograms\n"
+       "under the terms of the GNU General Public License.\n"
+       "For more information about these matters, see the file named 
COPYING.\n");
+      printf("\ncalled subprograms:\n\n");
+      fflush(stdout);
       commands[POST_INDEX].append_arg(buf);
       // fall through
     case 'C':
@@ -284,6 +294,11 @@
       break;
     }
   }
+  if (encoding) {
+    commands[PRECONV_INDEX].set_name(command_prefix, "preconv");
+    if (!Kflag && *encoding)
+      commands[PRECONV_INDEX].append_arg("-e", encoding);
+  }
   if (safer_flag)
     commands[PIC_INDEX].append_arg("-S");
   else
@@ -309,7 +324,8 @@
   }
   if (postdriver)
     commands[POST_INDEX].set_name(postdriver);
-  int gxditview_flag = postdriver && strcmp(xbasename(postdriver), GXDITVIEW) 
== 0;
+  int gxditview_flag = postdriver
+                      && strcmp(xbasename(postdriver), GXDITVIEW) == 0;
   if (gxditview_flag && argc - optind == 1) {
     commands[POST_INDEX].append_arg("-title");
     commands[POST_INDEX].append_arg(argv[optind]);
@@ -690,9 +706,9 @@
 void synopsis(FILE *stream)
 {
   fprintf(stream,
-"usage: %s [-abceghilpstvzCENRSUVXZ] [-Fdir] [-mname] [-Tdev] [-ffam]\n"
+"usage: %s [-abceghiklpstvzCENRSUVXZ] [-Fdir] [-mname] [-Tdev] [-ffam]\n"
 "       [-wname] [-Wname] [-Mdir] [-dcs] [-rcn] [-nnum] [-olist] [-Parg]\n"
-"       [-Larg] [-Idir] [files...]\n",
+"       [-Karg] [-Larg] [-Idir] [files...]\n",
          program_name);
 }
 
@@ -701,6 +717,7 @@
   synopsis(stdout);
   fputs("\n"
 "-h\tprint this message\n"
+"-k\tpreprocess with preconv\n"
 "-t\tpreprocess with tbl\n"
 "-p\tpreprocess with pic\n"
 "-e\tpreprocess with eqn\n"
@@ -737,6 +754,7 @@
 "-S\tenable safer mode (the default)\n"
 "-U\tenable unsafe mode\n"
 "-Idir\tsearch dir for soelim, troff, and grops.  Implies -s\n"
+"-Karg\tuse arg as input encoding.  Implies -k\n"
 "\n",
        stdout);
   exit(0);
Index: groff/src/roff/groff/groff.man
diff -u groff/src/roff/groff/groff.man:1.42 groff/src/roff/groff/groff.man:1.43
--- groff/src/roff/groff/groff.man:1.42 Sun Jul  3 12:18:55 2005
+++ groff/src/roff/groff/groff.man      Sat Dec 31 08:26:57 2005
@@ -1,7 +1,7 @@
 .ig
 groff.man
 
-Last update: 01 Jul 2005
+Last update: 30 Dec 2005
 
 Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 Rewritten in 2002 by Bernd Warken <address@hidden>
@@ -52,15 +52,15 @@
 .\" --------------------------------------------------------------------
 .\" Begin of macro definitions
 .de c
-.\" this is like a comment request when escape mechanism is off
+.  \" this is like a comment request when escape mechanism is off
 ..
 .eo
 .
 .c --------------------------------------------------------------------
 .de TP+
-.br
-.ns
-.TP \$1
+.  br
+.  ns
+.  TP \$1
 ..
 .c --------------------------------------------------------------------
 .c Like TP, but if specified indent is more than half
@@ -241,11 +241,12 @@
 .
 .ad l
 .Synopsis groff
-.ShortOpt[] abcegilpstzCEGNRSUVXZ
+.ShortOpt[] abcegiklpstzCEGNRSUVXZ
 .ShortOpt[] d cs
 .ShortOpt[] f fam
 .ShortOpt[] F dir
 .ShortOpt[] I dir
+.ShortOpt[] K arg
 .ShortOpt[] L arg
 .ShortOpt[] m name
 .ShortOpt[] M dir
@@ -388,13 +389,35 @@
 escapes).
 The current directory is always searched first.
 This option may be specified more than once;
-the directories will be searched in the order specified.
+the directories are searched in the order specified.
 No directory search is performed for files specified using an absolute path.
 This option implies the
 .ShortOpt s
 option.
 .
 .
+.OptDef k
+Preprocess with
+.BR preconv .
+This is run before any other preprocessor.
+.
+Please refer to
+.BR preconv 's
+manual page for its behaviour if no
+.ShortOpt K
+option is specified.
+.
+.
+.OptDef K "" arg
+Set input encoding used by
+.B preconv
+to
+.IR arg .
+.
+Implies
+.ShortOpt k .
+.
+.
 .OptDef l
 Send the output to a spooler program for printing.
 .
@@ -627,7 +650,7 @@
 .BR groff
 (as a wrapper program) on the standard output, but do not execute it.
 If given more than once,
-the commands will be both printed on the standard error and run.
+the commands are both printed on the standard error and run.
 .
 .
 .OptDef X
@@ -674,7 +697,7 @@
 .OptDef z
 Suppress output generated by
 .BR @address@hidden .
-Only error messages will be printed.
+Only error messages are printed.
 .
 .
 .OptDef Z
@@ -873,35 +896,47 @@
 The groff preprocessors are reimplementations of the classical
 preprocessors with moderate extensions.
 .
-The preprocessors distributed with the
+The standard preprocessors distributed with the
 .I groff
 package are
 .
 .TP
 .BR @address@hidden (@MAN1EXT@)
 for mathematical formul\(ae,
+.
 .TP
 .BR @address@hidden (@MAN1EXT@)
 for including
 .BR gremlin (1)
 pictures,
+.
 .TP
 .BR @address@hidden (@MAN1EXT@)
 for drawing diagrams,
+.
 .TP
 .BR address@hidden@refer (@MAN1EXT@)
 for bibliographic references,
+.
 .TP
 .BR address@hidden@soelim (@MAN1EXT@)
 for including macro files from standard locations,
 .
 .P
 and
+.
 .TP
 .BR @address@hidden (@MAN1EXT@)
 for tables.
 .
 .P
+A new preprocessor not available in classical troff is
+.BR \%preconv (@MAN1EXT@)
+which converts various input encodings to something groff can understand.
+.
+It is always run first before any other preprocessor.
+.
+.P
 Besides these, there are some internal preprocessors that are
 automatically run with some devices.
 .
@@ -1062,7 +1097,7 @@
 .
 In roff, the output targets are called
 .IR devices .
-A device can be a piece of hardware, e.g. a printer, or a software
+A device can be a piece of hardware, e.g., a printer, or a software
 file format.
 .
 A device is specified by the option
@@ -1077,7 +1112,7 @@
 .
 .TP
 .B cp1047
-Text output using the EBCDIC code page IBM cp1047 (e.g. OS/390 Unix).
+Text output using the EBCDIC code page IBM cp1047 (e.g., OS/390 Unix).
 .
 .TP
 .B dvi
@@ -1117,6 +1152,7 @@
 .BR \%xditview (1x)
 and
 .BR \%gxditview (@MAN1EXT@).
+.
 A variant for a 12\|pt document base font is
 .BR \%X75-12 .
 .
@@ -1126,6 +1162,7 @@
 .BR \%xditview (1x)
 and
 .BR \%gxditview (@MAN1EXT@).
+.
 A variant for a 12\|pt document base font is
 .BR \%X100-12 .
 .
@@ -1153,12 +1190,14 @@
 .TP
 .BR \%grolbp (@MAN1EXT@)
 for some Canon printers,
+.
 .TP
 .BR \%grolj4 (@MAN1EXT@)
 for printers compatible to the HP LaserJet\~4 and PCL5,
+.
 .TP
 .BR \%grotty (@MAN1EXT@)
-for text output using various encodings, e.g. on text-oriented
+for text output using various encodings, e.g., on text-oriented
 terminals or line-printers.
 .
 .P
@@ -1176,9 +1215,11 @@
 .TP
 .BR \%grodvi (@MAN1EXT@)
 for the DVI format,
+.
 .TP
 .BR \%grohtml (@MAN1EXT@)
 for HTML format,
+.
 .TP
 .BR grops (@MAN1EXT@)
 for PostScript.
@@ -1204,6 +1245,22 @@
 Create font description files for PostScript device.
 .
 .TP
+.BR \%eqn2graph (@MAN1EXT@)
+Convert an
+.B eqn
+image into a cropped image.
+.
+.TP
+.BR \%gdiffmk (@MAN1EXT@)
+Mark differences between groff, nroff, or troff files.
+.
+.TP
+.BR \%grap2graph (@MAN1EXT@)
+Convert a
+.B grap
+diagram into a cropped bitmap image.
+.
+.TP
 .BR \%groffer (@MAN1EXT@)
 General viewer program for groff files and man pages.
 .
@@ -1216,7 +1273,7 @@
 Create font description files for lj4 device.
 .
 .TP
-.BR \%indxbib (@MAN1EXT@)
+.BR address@hidden@indxbib (@MAN1EXT@)
 Make inverted index for bibliographic databases.
 .
 .TP
@@ -1224,14 +1281,25 @@
 Search bibliographic databases.
 .
 .TP
-.BR \%lookbib (@MAN1EXT@)
+.BR address@hidden@lookbib (@MAN1EXT@)
 Interactively search bibliographic databases.
 .
 .TP
+.BR \%pdfroff (@MAN1EXT@)
+Create PDF documents using
+.BR groff .
+.
+.TP
 .BR \%pfbtops (@MAN1EXT@)
 Translate a PostScript font in .pfb format to ASCII.
 .
 .TP
+.BR \%pic2graph (@MAN1EXT@)
+Convert a
+.B pic
+diagram into a cropped image.
+.
+.TP
 .BR \%tfmtodit (@MAN1EXT@)
 Create font description files for TeX DVI device.
 .
@@ -1239,6 +1307,10 @@
 .BR \%xditview (1x)
 roff viewer distributed with X window.
 .
+.TP
+.BR \%xtotroff (@MAN1EXT@)
+Convert X font metrics into GNU troff font metrics.
+.
 .
 .\" --------------------------------------------------------------------
 .SH ENVIRONMENT
@@ -1249,17 +1321,19 @@
 .
 For example, DOS and Windows use a semicolon instead.
 .
+.
 .TP
 .EnvVar GROFF_BIN_PATH
 This search path, followed by
 .EnvVar $PATH ,
-will be used for commands that are executed by
+is used for commands that are executed by
 .BR groff .
 .
 If it is not set then the directory where the groff binaries were
 installed is prepended to
 .EnvVar PATH .
 .
+.
 .TP
 .EnvVar GROFF_COMMAND_PREFIX
 When there is a need to run different roff implementations at the same
@@ -1292,7 +1366,7 @@
 .I xxx
 then
 .B groff
-as a wrapper program will internally call
+as a wrapper program internally calls
 .IB xxx troff
 instead of
 .BR troff .
@@ -1315,6 +1389,37 @@
 .
 .
 .TP
+.EnvVar GROFF_ENCODING
+The value of this environment value is passed to the
+.B preconv
+preprocessor to select the encoding of input files.
+.
+Setting this option implies
+.BR groff 's
+command line option
+.ShortOpt k
+(this is,
+.B groff
+actually always calls
+.BR preconv ).
+.
+If set without a value,
+.B groff
+calls
+.B preconv
+without arguments.
+.
+An explicit
+.ShortOpt K
+command line option overrides the value of 
+.EnvVar GROFF_ENCODING .
+.
+See
+.BR preconv (@MAN1EXT@)
+for details.
+.
+.
+.TP
 .EnvVar GROFF_FONT_PATH
 A list of directories in which to search for the
 .BI dev name
@@ -1341,11 +1446,11 @@
 .
 .TP
 .EnvVar GROFF_TMPDIR
-The directory in which temporary files will be created.
+The directory in which temporary files are created.
 .
 If this is not set but the environment variable
 .EnvVar TMPDIR
-instead, temporary files will be created in the directory
+instead, temporary files are created in the directory
 .EnvVar $TMPDIR .
 On MS-DOS and Windows\ 32 platforms, the environment variables
 .EnvVar TMP
@@ -1356,7 +1461,7 @@
 and
 .EnvVar TMPDIR .
 .
-Otherwise, temporary files will be created in
+Otherwise, temporary files are created in
 .BR /tmp .
 The
 .BR address@hidden@refer (@MAN1EXT@),
@@ -1422,8 +1527,9 @@
 .
 .TP
 .B troffrc-end
-Final startup file for troff, it is parsed after all macro sets have
-been read.
+Final startup file for troff.
+.
+It is parsed after all macro sets have been read.
 .
 .
 .TP
@@ -1517,7 +1623,7 @@
 .\" --------------------------------------------------------------------
 .
 .P
-On EBCDIC hosts (e.g. OS/390 Unix), output devices
+On EBCDIC hosts (e.g., OS/390 Unix), output devices
 .B ascii
 and
 .B latin1
@@ -1530,7 +1636,7 @@
 .P
 Report bugs to address@hidden
 .
-Include a complete, self-contained example that will allow the bug to
+Include a complete, self-contained example that allows the bug to
 be reproduced, and say which version of groff you are using.
 .
 .
@@ -1621,10 +1727,8 @@
 .
 The
 .IR "groff info file"
-contains all information on the groff system within a single document.
-.
-Beneath the detailed documentation of all aspects, it provides
-examples and background information.
+contains all information on the groff system within a single document,
+providing many examples and background information.
 .
 See
 .BR info (1)
@@ -1658,6 +1762,7 @@
 .BR address@hidden@eqn (@MAN1EXT@),
 .BR address@hidden@grn (@MAN1EXT@),
 .BR address@hidden@pic (@MAN1EXT@),
+.BR \%preconv (@MAN1EXT@),
 .BR address@hidden@refer (@MAN1EXT@),
 .BR address@hidden@soelim (@MAN1EXT@),
 .BR address@hidden@tbl (@MAN1EXT@),
@@ -1677,9 +1782,7 @@
 .BR ditroff (@MAN7EXT@).
 .
 .TP
-The
-.I intermediate output
-language:
+The intermediate output language:
 .BR \%groff_out (@MAN7EXT@).
 .
 .TP
@@ -1711,15 +1814,19 @@
 .BR \%addftinfo (@MAN1EXT@),
 .BR \%afmtodit (@MAN1EXT@),
 .BR \%eqn2graph (@MAN1EXT@),
+.BR \%gdiffmk (@MAN1EXT@),
 .BR \%grap2graph (@MAN1EXT@),
 .BR \%groffer (@MAN1EXT@),
 .BR \%gxditview (@MAN1EXT@),
 .BR \%hpftodit (@MAN1EXT@),
 .BR address@hidden@indxbib (@MAN1EXT@),
+.BR \%lkbib (@MAN1EXT@),
 .BR address@hidden@lookbib (@MAN1EXT@),
+.BR \%pdfroff (@MAN1EXT@),
 .BR \%pfbtops (@MAN1EXT@),
 .BR \%pic2graph (@MAN1EXT@),
-.BR \%tfmtodit (@MAN1EXT@).
+.BR \%tfmtodit (@MAN1EXT@),
+.BR \%xtotroff (@MAN1EXT@).
 .
 .cp \n[groff_C]
 .
Index: groff/src/roff/groff/pipeline.h
diff -u groff/src/roff/groff/pipeline.h:1.4 groff/src/roff/groff/pipeline.h:1.5
--- groff/src/roff/groff/pipeline.h:1.4 Thu May 26 21:02:01 2005
+++ groff/src/roff/groff/pipeline.h     Sat Dec 31 08:26:57 2005
@@ -1,4 +1,4 @@
-/* Copyright (C) 1989, 1990, 1991, 1992, 2000, 2002
+/* Copyright (C) 1989, 1990, 1991, 1992, 2000, 2002, 2005
    Free Software Foundation, Inc.
      Written by James Clark (address@hidden)
 
@@ -25,7 +25,7 @@
 #endif
 
 /* run_pipeline can handle at most this many commands */
-#define MAX_COMMANDS 12
+#define MAX_COMMANDS 13
 
 /* Children exit with this status if execvp fails. */
 #define EXEC_FAILED_EXIT_STATUS 0xff




reply via email to

[Prev in Thread] Current Thread [Next in Thread]