diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2000-04-09 08:25:27 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2000-04-09 08:25:27 +0000 |
commit | 08d1f4952f67f347db6a288b4a0187f8b0d7bbf7 (patch) | |
tree | 3a5d0117ff1b663915f042e1b1e031a6c931f6a8 | |
parent | 098fe4a0b368c914c7d1f7ce086634958df8796a (diff) |
groff 1.15 plus local changes (insomnia strikes):
o moved *.man to *.$section_in and generate *.$section not *.n for bsd.man.mk
o modified groff Makefiles to not install man pages (we do it ourselves)
o use mkstemp everywhere
o don't install groff versions on mdoc macros, we want our own ones
86 files changed, 2242 insertions, 1321 deletions
diff --git a/gnu/usr.bin/groff/Makefile.bsd-wrapper b/gnu/usr.bin/groff/Makefile.bsd-wrapper index 660a7048e5b..d38338a85ba 100644 --- a/gnu/usr.bin/groff/Makefile.bsd-wrapper +++ b/gnu/usr.bin/groff/Makefile.bsd-wrapper @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile.bsd-wrapper,v 1.15 2000/01/11 16:29:52 millert Exp $ +# $OpenBSD: Makefile.bsd-wrapper,v 1.16 2000/04/09 08:25:09 millert Exp $ # # groff config @@ -12,43 +12,23 @@ COMMON_WORDS= /usr/share/dict/eign GNUCFLAGS= CC="${CC}" CFLAGS="${CFLAGS} ${COPTS}" GNUCXXFLAGS= CXX="${CXX}" CCFLAGS="${CXXFLAGS} ${COPTS}" -CLEANFILES= config.cache config.log pic/pic.cc eqn/eqn.cc \ - refer/label.cc pic/pic.tab.h eqn/eqn.tab.h ${MANALL} - -# All of groff's man pages have a .n extension. Sigh. -MANLOCALBUILD= yes - -MAN_SRC1= addftinfo/addftinfo.n groff/groff.n troff/troff.n \ - tbl/tbl.n pic/pic.n eqn/eqn.n grops/grops.n grotty/grotty.n \ - grodvi/grodvi.n tfmtodit/tfmtodit.n grolj4/grolj4.n \ - hpftodit/hpftodit.n refer/refer.n lookbib/lookbib.n \ - indxbib/indxbib.n lkbib/lkbib.n soelim/soelim.n \ - pfbtops/pfbtops.n psbb/psbb.n \ - afmtodit/afmtodit.n grog/grog.n nroff/nroff.n -MAN_SRC5= man/groff_font.n man/groff_out.n -MAN_SRC7= man/groff_char.n tmac/groff_ms.n tmac/me.n \ - tmac/msafer.n mm/groff_mm.n mm/groff_mmse.n - -MAN_BUILD1= ${MAN_SRC1:S/.n$/.cat1/g} -MAN_BUILD5= ${MAN_SRC5:S/.n$/.cat5/g} -MAN_BUILD7= ${MAN_SRC7:S/.n$/.cat7/g} - -# Used for cleaning, which is why it is independent of NOMAN -MANALL= ${MAN_BUILD1} ${MAN_BUILD5} ${MAN_BUILD7} -.ifndef NOMAN -MAN_BUILD= ${MANALL} -.endif - +CLEANFILES+= config.cache config.log pic/pic.cc eqn/eqn.cc \ + refer/label.cc pic/pic.tab.h eqn/eqn.tab.h -MLINKS= groff_ms.7 ms.7 groff_mm.7 mm.7 eqn.1 neqn.1 +MAN= addftinfo/addftinfo.1 afmtodit/afmtodit.1 eqn/eqn.1 \ + grodvi/grodvi.1 groff/groff.1 grog/grog.1 grohtml/grohtml.1 \ + grolj4/grolj4.1 grops/grops.1 grotty/grotty.1 hpftodit/hpftodit.1 \ + indxbib/indxbib.1 lkbib/lkbib.1 lookbib/lookbib.1 \ + man/groff_char.7 man/groff_font.5 man/groff_out.5 mm/groff_mm.7 \ + mm/groff_mmse.7 nroff/nroff.1 pfbtops/pfbtops.1 pic/pic.1 \ + psbb/psbb.1 refer/refer.1 soelim/soelim.1 tbl/tbl.1 \ + tfmtodit/tfmtodit.1 tmac/groff_man.7 tmac/groff_me.7 tmac/groff_ms.7 \ + tmac/groff_msafer.7 troff/troff.1 -.SUFFIXES: .n .cat1 .cat5 .cat7 +MLINKS= groff_man.7 man.7 groff_me.7 me.7 groff_mm.7 mm.7 groff_ms.7 ms.7 \ + eqn.1 neqn.1 -.n.cat1 .n.cat5 .n.cat7: - @echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}" - @${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || (rm -f ${.TARGET}; false) - -all: config.status gnu_build ${MAN_BUILD} +all: config.status gnu_build .FORCE: .IGNORE @@ -92,14 +72,13 @@ install: maninstall fontdir=${DESTDIR}${FONTDIR} \ indexdir=${DESTDIR}${INDEXDIR} \ common_words_file=${DESTDIR}${COMMON_WORDS} \ - INSTALL_MAN= TMAC_AN= TMAC_ANDOC= MDOCFILES= tmac_an= \ install install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/tmac/tmac.an \ ${DESTDIR}${DATASUBDIR}/tmac/tmac.an.old clean cleandir: - rm -f ${CLEANFILES} -@if [ -e Makefile ]; then ${MAKE} distclean; fi + rm -f ${CLEANFILES} depend: # Nothing here so far... @@ -112,7 +91,7 @@ tags: .ifdef NOMAN maninstall: - # Dummy target for bootstrap... + @echo NOMAN is set .endif .include <bsd.obj.mk> diff --git a/gnu/usr.bin/groff/Makefile.comm b/gnu/usr.bin/groff/Makefile.comm index ddbd1321228..34b828e7462 100644 --- a/gnu/usr.bin/groff/Makefile.comm +++ b/gnu/usr.bin/groff/Makefile.comm @@ -31,7 +31,6 @@ TOP=.. LIBGROFF=$(TOP)/libgroff/libgroff.a LIBBIB=$(TOP)/libbib/libbib.a LIBDRIVER=$(TOP)/libdriver/libdriver.a -LIBM=-lm MLIB= XLIBS= YTABH= @@ -50,18 +49,14 @@ MANPAGES=$(MAN1) $(MAN5) $(MAN7) MANCLEAN=$(MANPAGES) fontsubdir=$(fontdir)/dev$(DEV) -# Target to use for installing unformatted man-pages. Some systems may not -# want them installed. -INSTALL_MAN=install_man +all install install_bin install_data TAGS depend distfiles uninstall_sub: -all install install_bin install_data $(INSTALL_MAN) TAGS depend distfiles uninstall_sub: - -install: install_bin install_data $(INSTALL_MAN) +install: install_bin install_data uninstall: uninstall_sub pure: .PHONY: all clean distclean mostlyclean realclean extraclean depend distfiles -.PHONY: install install_bin install_data $(INSTALL_MAN) +.PHONY: install install_bin install_data .PHONY: uninstall uninstall_sub .PHONY: pure @@ -83,7 +78,7 @@ extraclean: \#* *~ =* core junk grot old temp tmp tem .SUFFIXES: -.SUFFIXES: .o .cc .c .y .man .n +.SUFFIXES: .o .cc .c .y .1_in .1 .5_in .5 .7_in .7 .cc.o: $(COMPILE.cc) $< @@ -108,7 +103,7 @@ extraclean: fi; \ fi -.man.n: +.1_in.1 .5_in.5 .7_in.7: @echo Making $@ from $< @-rm -f $@ @sed -e "s;@FONTDIR@;$(fontdir);g" \ @@ -125,6 +120,7 @@ extraclean: -e "s;@MAN7EXT@;$(man7ext);g" \ -e "s;@TMAC_S_PREFIX@;$(tmac_s_prefix);g" \ -e "s;@TMAC_M_PREFIX@;$(tmac_m_prefix);g" \ + -e "s;@TMAC_AN_PREFIX@;$(tmac_an_prefix);g" \ -e "s;@TMAC_MDIR@;$(tmacdir)/mm;g" \ -e "s;@BROKEN_SPOOLER_FLAGS@;$(BROKEN_SPOOLER_FLAGS);g" \ -e "s;@VERSION@;`cat $(srcdir)/../VERSION`;g" \ @@ -135,11 +131,11 @@ extraclean: .PHONY: install_man install_man: - -test -d $(mandir) || mkdir $(mandir) + -test -d $(manroot) || mkdir $(manroot) -test -d $(man1dir) || mkdir $(man1dir) @-pages="$(MAN1)"; \ for p in $$pages; do \ - prog=`basename $$p .n`; \ + prog=`basename $$p .1`; \ target=$(man1dir)/$(NAMEPREFIX)$$prog.$(man1ext); \ rm -f $$target; \ echo $(INSTALL_DATA) $$p $$target; \ @@ -148,7 +144,7 @@ install_man: -test -d $(man5dir) || mkdir $(man5dir) @-pages="$(MAN5)"; \ for p in $$pages; do \ - target=$(man5dir)/`basename $$p .n`.$(man5ext); \ + target=$(man5dir)/`basename $$p .5`.$(man5ext); \ rm -f $$target; \ echo $(INSTALL_DATA) $$p $$target; \ $(INSTALL_DATA) $$p $$target; \ @@ -156,7 +152,7 @@ install_man: -test -d $(man7dir) || mkdir $(man7dir) @-pages="$(MAN7)"; \ for p in $$pages; do \ - target=$(man7dir)/`basename $$p .n`.$(man7ext); \ + target=$(man7dir)/`basename $$p .5`.$(man7ext); \ rm -f $$target; \ echo $(INSTALL_DATA) $$p $$target; \ $(INSTALL_DATA) $$p $$target; \ @@ -166,19 +162,19 @@ install_man: uninstall_man: @-pages="$(MAN1)"; \ for p in $$pages; do \ - target=$(man1dir)/$(NAMEPREFIX)`basename $$p .n`.$(man1ext); \ + target=$(man1dir)/$(NAMEPREFIX)`basename $$p .1`.$(man1ext); \ echo rm -f $$target; \ rm -f $$target; \ done @-pages="$(MAN5)"; \ for p in $$pages; do \ - target=$(man5dir)/`basename $$p .n`.$(man5ext); \ + target=$(man5dir)/`basename $$p .5`.$(man5ext); \ echo rm -f $$target; \ rm -f $$target; \ done @-pages="$(MAN7)"; \ for p in $$pages; do \ - target=$(man7dir)/`basename $$p .n`.$(man7ext); \ + target=$(man7dir)/`basename $$p .7`.$(man7ext); \ echo rm -f $$target; \ rm -f $$target; \ done diff --git a/gnu/usr.bin/groff/Makefile.in b/gnu/usr.bin/groff/Makefile.in index dda93617c98..dd0ef84a973 100644 --- a/gnu/usr.bin/groff/Makefile.in +++ b/gnu/usr.bin/groff/Makefile.in @@ -64,7 +64,7 @@ DVIPRINT=@DVIPRINT@ g=@g@ # Common prefix for installation directories. -# Used in definitions of exec_prefix, datasubdir, fontpath, mandir. +# Used in definitions of exec_prefix, datasubdir, fontpath, manroot. # This must already exist when you do make install. prefix=@prefix@ @@ -130,20 +130,20 @@ indexname=Ind # otherwise the supplied eign file will be used. common_words_file=$(datasubdir)/eign -# mandir is the root of the man page directory tree. -mandir=@mandir@ +# manroot is the root of the man page directory tree. +manroot=$(prefix)/man # man1ext is the man section for user commands. man1ext=1 -man1dir=$(mandir)/man$(man1ext) +man1dir=$(manroot)/man$(man1ext) # man5ext is the man section for file formats. man5ext=5 -man5dir=$(mandir)/man$(man5ext) +man5dir=$(manroot)/man$(man5ext) # man7ext is the man section for macros. man7ext=7 -man7dir=$(mandir)/man$(man7ext) +man7dir=$(manroot)/man$(man7ext) # DEFINES should include the following: # -DHAVE_MMAP if you have mmap() and <sys/mman.h> @@ -166,8 +166,13 @@ man7dir=$(mandir)/man$(man7ext) # -DUNISTD_H_DECLARES_GETOPT if your C++ <unistd.h> declares getopt() # -DSTDLIB_H_DECLARES_PUTENV if your C++ <stdlib.h> declares putenv() # -DSTDIO_H_DECLARES_POPEN if your C++ <stdio.h> declares popen() +# -DSTDIO_H_DECLARES_PCLOSE if your C++ <stdio.h> declares pclose() +# -DHAVE_SYS_NERR if you have sysnerr in <errno.h> or <stdio.h> +# -DHAVE_SYS_ERRLIST if you have sys_errlist in <errno.h> or +# <stdio.h> +# -DMATH_H_DECLARES_HYPOT if you have hypot() in <math.h> # -DTRADITIONAL_CPP if your C++ compiler uses a traditional -# (Reiser) preprocessor. +# (Reiser) preprocessor # -DLONG_FOR_TIME_T if localtime() takes a long * not a time_t * # -DHAVE_STRUCT_EXCEPTION if <math.h> defines struct exception # -DRETSIGTYPE=int if signal handlers return int not void @@ -187,11 +192,12 @@ CDEFINES=$(DEFINES) CCFLAGS=@CXXFLAGS@ CFLAGS=@CFLAGS@ -LDFLAGS= +LDFLAGS=@LDFLAGS@ YACC=@YACC@ YACCFLAGS=-v LIBS=@LIBS@ +LIBM=@LIBM@ RANLIB=@RANLIB@ INSTALL=@INSTALL@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ @@ -214,15 +220,6 @@ PURIFYCCFLAGS= #PURIFYCCFLAGS=-g++=yes \ # -collector=`dirname \`$(CCC) -print-libgcc-file-name\``/ld -# -# XXX - OpenBSD build mods -# -INSTALL_MAN=install_man -TMAC_AN=tmac.an -TMAC_ANDOC=tmac.andoc -TMAC_S=tmac.s -MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms - # Passing down MAKEOVERRIDES prevents $(MAKE) from containing a second # copy of $(MDEFINES) when making individual directories; this could # cause the argument list to become too long on some systems. @@ -235,7 +232,7 @@ MDEFINES="MAKEOVERRIDES=$(MAKEOVERRIDES)" \ "tmacdir=$(tmacdir)" "tmacpath=$(tmacpath)" \ "indexext=$(indexext)" "indexdir=$(indexdir)" \ "indexname=$(indexname)" "common_words_file=$(common_words_file)" \ - "mandir=$(mandir)" "man1ext=$(man1ext)" "man1dir=$(man1dir)" \ + "manroot=$(manroot)" "man1ext=$(man1ext)" "man1dir=$(man1dir)" \ "man5ext=$(man5ext)" "man5dir=$(man5dir)" \ "man7ext=$(man7ext)" "man7dir=$(man7dir)" \ "tmac_wrap=$(tmac_wrap)" "sys_tmac_prefix=$(sys_tmac_prefix)" \ @@ -243,29 +240,28 @@ MDEFINES="MAKEOVERRIDES=$(MAKEOVERRIDES)" \ "tmac_s_prefix=$(tmac_s_prefix)" "tmac_m_prefix=$(tmac_m_prefix)" \ "CCC=$(CCC)" "CC=$(CC)" "CCDEFINES=$(CCDEFINES)" "CDEFINES=$(CDEFINES)" \ "CCFLAGS=$(CCFLAGS)" "CFLAGS=$(CFLAGS)" "LDFLAGS=$(LDFLAGS)" \ - "YACC=$(YACC)" "YACCFLAGS=$(YACCFLAGS)" \ + "YACC=$(YACC)" "YACCFLAGS=$(YACCFLAGS)" "LIBM=$(LIBM)" \ "LIBS=$(LIBS)" "LIBOBJS=$(LIBOBJS)" "RANLIB=$(RANLIB)" "AR=$(AR)" \ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_DATA=$(INSTALL_DATA)" \ "ETAGS=$(ETAGS)" "ETAGSFLAGS=$(ETAGSFLAGS)" "ETAGSCCFLAG=$(ETAGSCCFLAG)" \ "PERLPATH=$(PERLPATH)" "SH_SCRIPT_SED_CMD=$(SH_SCRIPT_SED_CMD)" \ - "PURIFY=$(PURIFY)" "PURIFYCCFLAGS=$(PURIFYCCFLAGS)" \ - "INSTALL_MAN=$(INSTALL_MAN)" "TMAC_AN=$(TMAC_AN)" "TMAC_ANDOC=$(TMAC_ANDOC)" \ - "TMAC_S=$(TMAC_S)" "MDOCFILES=$(MDOCFILES)" "tmac_m=$(tmac_m_prefix)m" + "PURIFY=$(PURIFY)" "PURIFYCCFLAGS=$(PURIFYCCFLAGS)" SHELL=/bin/sh INCDIRS=include LIBDIRS=libgroff libdriver libbib CCPROGDIRS=groff troff tbl pic eqn grops grotty grodvi tfmtodit \ - grolj4 hpftodit refer lookbib indxbib lkbib soelim addftinfo + grolj4 hpftodit refer lookbib indxbib lkbib soelim addftinfo \ + grohtml CPROGDIRS=pfbtops psbb PROGDIRS=$(CCPROGDIRS) $(CPROGDIRS) DEVDIRS=devps devdvi devascii devlatin1 devX75 devX75-12 devX100 devX100-12 \ - devlj4 + devlj4 devhtml OTHERDIRS=man tmac afmtodit grog nroff mm ALLDIRS=$(INCDIRS) $(LIBDIRS) $(PROGDIRS) $(DEVDIRS) $(OTHERDIRS) EXTRADIRS=devps/generate devdvi/generate xditview doc DISTDIRS=$(ALLDIRS) $(EXTRADIRS) -TARGETS=all install install_bin install_data $(INSTALL_MAN) clean distclean mostlyclean \ +TARGETS=all install install_bin install_data clean distclean mostlyclean \ realclean extraclean distfiles TAGS depend uninstall_sub do=all @@ -280,7 +276,7 @@ $(TARGETS): dot: FORCE @$(MAKE) $(MDEFINES) srcdir=$(srcdir) VPATH=$(srcdir) \ -f $(srcdir)/Makefile.comm -f $(srcdir)/Makefile.sub $(do) - + $(LIBDIRS): FORCE @if test $(srcdir) = .; \ then srcdir=.; \ @@ -359,6 +355,7 @@ dist: rm -f Makefile; \ $(LN_S) $$srcdir/Makefile.init Makefile mv tmp groff-$(version) + rm -f groff-$(version).tar.gz tar cfh - groff-$(version) | gzip -c >groff-$(version).tar.gz rm -fr groff-$(version) @@ -395,7 +392,7 @@ uninstall: uninstall_sub uninstall_dirs .PHONY: uninstall_dirs uninstall_dirs: # Use rmdir here so that the directories are only removed if they're empty - -rmdir $(man1dir) $(man5dir) $(man7dir) $(mandir) \ + -rmdir $(man1dir) $(man5dir) $(man7dir) $(manroot) \ $(tmacdir) $(fontdir) $(bindir) $(datasubdir) $(datadir) diff --git a/gnu/usr.bin/groff/addftinfo/Makefile.sub b/gnu/usr.bin/groff/addftinfo/Makefile.sub index 95a8f5bf585..d48bf62f966 100644 --- a/gnu/usr.bin/groff/addftinfo/Makefile.sub +++ b/gnu/usr.bin/groff/addftinfo/Makefile.sub @@ -1,5 +1,5 @@ PROG=addftinfo -MAN1=addftinfo.n +MAN1=addftinfo.1 XLIBS=$(LIBGROFF) OBJS=addftinfo.o guess.o CCSRCS=addftinfo.cc guess.cc diff --git a/gnu/usr.bin/groff/addftinfo/addftinfo.man b/gnu/usr.bin/groff/addftinfo/addftinfo.1_in index 6741c171f64..6741c171f64 100644 --- a/gnu/usr.bin/groff/addftinfo/addftinfo.man +++ b/gnu/usr.bin/groff/addftinfo/addftinfo.1_in diff --git a/gnu/usr.bin/groff/afmtodit/Makefile.sub b/gnu/usr.bin/groff/afmtodit/Makefile.sub index fb5daac6ce8..cc1b15bae9d 100644 --- a/gnu/usr.bin/groff/afmtodit/Makefile.sub +++ b/gnu/usr.bin/groff/afmtodit/Makefile.sub @@ -1,4 +1,4 @@ -MAN1=afmtodit.n +MAN1=afmtodit.1 CLEANADD=afmtodit all: afmtodit diff --git a/gnu/usr.bin/groff/afmtodit/afmtodit.man b/gnu/usr.bin/groff/afmtodit/afmtodit.1_in index 84fe8f292c0..84fe8f292c0 100644 --- a/gnu/usr.bin/groff/afmtodit/afmtodit.man +++ b/gnu/usr.bin/groff/afmtodit/afmtodit.1_in diff --git a/gnu/usr.bin/groff/configure b/gnu/usr.bin/groff/configure index 2d20ce8ab2a..e6800ae4e81 100644 --- a/gnu/usr.bin/groff/configure +++ b/gnu/usr.bin/groff/configure @@ -1,7 +1,7 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.10 +# Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation @@ -49,6 +49,9 @@ mandir='${prefix}/man' # Initialize some other variables. subdirs= MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 ac_prev= for ac_option @@ -330,7 +333,7 @@ EOF verbose=yes ;; -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.10" + echo "configure generated by autoconf version 2.13" exit 0 ;; -with-* | --with-*) @@ -432,11 +435,14 @@ do done # NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h @@ -497,8 +503,11 @@ ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross +ac_exeext= +ac_objext=o if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then @@ -512,54 +521,19 @@ else fi -if test "x$prefix" = xNONE; then -echo $ac_n "checking for prefix by ""... $ac_c" 1>&6 -# Extract the first word of "grops", so it can be a program name with args. -set dummy grops; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_path_GROPS'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - case "$GROPS" in - /*) - ac_cv_path_GROPS="$GROPS" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_GROPS="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" - ;; -esac -fi -GROPS="$ac_cv_path_GROPS" -if test -n "$GROPS"; then - echo "$ac_t""$GROPS" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - if test -n "$ac_cv_path_GROPS"; then - prefix=`echo $ac_cv_path_GROPS|sed 's%/[^/][^/]*//*[^/][^/]*$%%'` - fi -fi - # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:528: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="gcc" @@ -580,15 +554,17 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:558: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_prog_rejected=no - for ac_dir in $PATH; do + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then @@ -623,10 +599,92 @@ else echo "$ac_t""no" 1>&6 fi + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:609: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:641: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 652 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:683: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:688: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -635,7 +693,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:639: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:697: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -643,48 +701,63 @@ fi fi echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + if test $ac_cv_prog_gcc = yes; then GCC=yes - if test "${CFLAGS+set}" != set; then - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:716: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_gcc_g=yes + ac_cv_prog_cc_g=yes else - ac_cv_prog_gcc_g=no + ac_cv_prog_cc_g=no fi rm -f conftest* fi -echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6 - if test $ac_cv_prog_gcc_g = yes; then - CFLAGS="-g -O" - else - CFLAGS="-O" - fi +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" fi else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi fi -for ac_prog in $CCC c++ g++ gcc CC cxx +for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:752: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CXX="$ac_prog" @@ -706,7 +779,55 @@ done test -n "$CXX" || CXX="gcc" +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:784: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +cat > conftest.$ac_ext << EOF + +#line 795 "configure" +#include "confdefs.h" + +int main(){return(0);} +EOF +if { (eval echo configure:800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cxx_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cxx_cross=no + else + ac_cv_prog_cxx_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cxx_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6 +if test $ac_cv_prog_cxx_works = no; then + { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:826: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 +cross_compiling=$ac_cv_prog_cxx_cross + echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 +echo "configure:831: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -715,7 +836,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:719: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:840: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no @@ -723,60 +844,48 @@ fi fi echo "$ac_t""$ac_cv_prog_gxx" 1>&6 + if test $ac_cv_prog_gxx = yes; then GXX=yes - if test "${CXXFLAGS+set}" != set; then - echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_gxx_g'+set}'`\" = set"; then +else + GXX= +fi + +ac_test_CXXFLAGS="${CXXFLAGS+set}" +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS= +echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 +echo "configure:859: checking whether ${CXX-g++} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo 'void f(){}' > conftest.cc if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then - ac_cv_prog_gxx_g=yes + ac_cv_prog_cxx_g=yes else - ac_cv_prog_gxx_g=no + ac_cv_prog_cxx_g=no fi rm -f conftest* fi -echo "$ac_t""$ac_cv_prog_gxx_g" 1>&6 - if test $ac_cv_prog_gxx_g = yes; then - CXXFLAGS="-g -O" - else - CXXFLAGS="-O" - fi +echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" fi else - GXX= - test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" -fi - -# If we cannot run a trivial program, we must be cross compiling. -echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_cross=yes -else -cat > conftest.$ac_ext <<EOF -#line 765 "configure" -#include "confdefs.h" -main(){return(0);} -EOF -{ (eval echo configure:769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } -if test -s conftest && (./conftest; exit) 2>/dev/null; then - ac_cv_c_cross=no -else - ac_cv_c_cross=yes -fi -fi -rm -fr conftest* + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi fi -echo "$ac_t""$ac_cv_c_cross" 1>&6 -cross_compiling=$ac_cv_c_cross @@ -785,39 +894,45 @@ ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross if test "$cross_compiling" = no; then -echo $ac_n "checking that C++ compiler can compile simple program""... $ac_c" 1>&6 + echo $ac_n "checking that C++ compiler can compile simple program""... $ac_c" 1>&6 +echo "configure:903: checking that C++ compiler can compile simple program" >&5 fi if test "$cross_compiling" = yes; then : else -cat > conftest.$ac_ext <<EOF -#line 798 "configure" + cat > conftest.$ac_ext <<EOF +#line 909 "configure" #include "confdefs.h" #ifdef __cplusplus extern "C" void exit(int); #endif int main() { return 0; } EOF -{ (eval echo configure:805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } -if test -s conftest && (./conftest; exit) 2>/dev/null; then +if { (eval echo configure:916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then echo "$ac_t""yes" 1>&6 else - echo "$ac_t""no" 1>&6 -{ echo "configure: error: a working C++ compiler is required" 1>&2; exit 1; } -fi + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + echo "$ac_t""no" 1>&6;{ echo "configure: error: a working C++ compiler is required" 1>&2; exit 1; } fi rm -fr conftest* +fi + if test "$cross_compiling" = no; then -echo $ac_n "checking that C++ static constructors and destructors are called""... $ac_c" 1>&6 + echo $ac_n "checking that C++ static constructors and destructors are called""... $ac_c" 1>&6 +echo "configure:930: checking that C++ static constructors and destructors are called" >&5 fi if test "$cross_compiling" = yes; then : else -cat > conftest.$ac_ext <<EOF -#line 821 "configure" + cat > conftest.$ac_ext <<EOF +#line 936 "configure" #include "confdefs.h" #ifdef __cplusplus extern "C" void exit(int); @@ -836,57 +951,62 @@ A a; int main() { return 1; } EOF -{ (eval echo configure:840: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } -if test -s conftest && (./conftest; exit) 2>/dev/null; then +if { (eval echo configure:955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then echo "$ac_t""yes" 1>&6 else - echo "$ac_t""no" 1>&6 -{ echo "configure: error: a working C++ compiler is required" 1>&2; exit 1; } -fi + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + echo "$ac_t""no" 1>&6;{ echo "configure: error: a working C++ compiler is required" 1>&2; exit 1; } fi rm -fr conftest* +fi + echo $ac_n "checking that header files support C++""... $ac_c" 1>&6 +echo "configure:968: checking that header files support C++" >&5 cat > conftest.$ac_ext <<EOF -#line 851 "configure" +#line 970 "configure" #include "confdefs.h" #include <stdio.h> -int main() { return 0; } -int t() { +int main() { fopen(0, 0); ; return 0; } EOF -if { (eval echo configure:859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then +if { (eval echo configure:977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* - echo "$ac_t""no" 1>&6 -{ echo "configure: error: header files do not support C++ (if you are using a version of gcc/g++ earlier than 2.5, you should install libg++)" 1>&2; exit 1; } + echo "$ac_t""no" 1>&6;{ echo "configure: error: header files do not support C++ (if you are using a version of gcc/g++ earlier than 2.5, you should install libg++)" 1>&2; exit 1; } fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross -if test -z "$PSPRINT" -then +if test -z "$PSPRINT"; then for ac_prog in lpr do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1001: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LPR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$LPR"; then ac_cv_prog_LPR="$LPR" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_LPR="$ac_prog" @@ -911,14 +1031,16 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1035: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$LP"; then ac_cv_prog_LP="$LP" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_LP="$ac_prog" @@ -938,8 +1060,7 @@ fi test -n "$LP" && break done - if test -n "$LPR" && test -n "$LP" - then + if test -n "$LPR" && test -n "$LP"; then # HP-UX provides an lpr command that emulates lpr using lp, # but it doesn't have lpq; in this case we want to use lp # rather than lpr. @@ -948,14 +1069,16 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1073: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LPQ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$LPQ"; then ac_cv_prog_LPQ="$LPQ" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_LPQ="$ac_prog" @@ -977,23 +1100,21 @@ done test -n "$LPQ" || LPR= fi - if test -n "$LPR" - then + if test -n "$LPR"; then PSPRINT="$LPR" - elif test -n "$LP" - then + elif test -n "$LP"; then PSPRINT="$LP" fi fi echo $ac_n "checking for command to use for printing PostScript files""... $ac_c" 1>&6 +echo "configure:1112: checking for command to use for printing PostScript files" >&5 echo "$ac_t""$PSPRINT" 1>&6 # Figure out DVIPRINT from PSPRINT. echo $ac_n "checking for command to use for printing dvi files""... $ac_c" 1>&6 -if test -n "$PSPRINT" && test -z "$DVIPRINT" -then - if test "X$PSPRINT" = "Xlpr" - then +echo "configure:1116: checking for command to use for printing dvi files" >&5 +if test -n "$PSPRINT" && test -z "$DVIPRINT"; then + if test "X$PSPRINT" = "Xlpr"; then DVIPRINT="lpr -d" else DVIPRINT="$PSPRINT" @@ -1004,6 +1125,7 @@ echo "$ac_t""$DVIPRINT" 1>&6 # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1129: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PERLPATH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1011,9 +1133,13 @@ else /*) ac_cv_path_PERLPATH="$PERLPATH" # Let the user override the test with a path. ;; + ?:/*) + ac_cv_path_PERLPATH="$PERLPATH" # Let the user override the test with a dos path. + ;; *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_path_PERLPATH="$ac_dir/$ac_word" @@ -1037,14 +1163,16 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1167: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_YACC="$ac_prog" @@ -1068,14 +1196,16 @@ test -n "$YACC" || YACC="yacc" # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1200: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_RANLIB="ranlib" @@ -1122,27 +1252,30 @@ ac_install_sh="$ac_dir/install-sh -c" # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1261: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" for ac_dir in $PATH; do # Account for people who put trailing slashes in PATH elements. case "$ac_dir/" in /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. - for ac_prog in ginstall installbsd scoinst install; do + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. - # OSF/1 installbsd also uses dspmsg, but is usable. : else ac_cv_path_install="$ac_dir/$ac_prog -c" @@ -1153,7 +1286,7 @@ else ;; esac done - IFS="$ac_save_ifs" + IFS="$ac_save_IFS" fi if test "${ac_cv_path_install+set}" = set; then @@ -1172,9 +1305,12 @@ echo "$ac_t""$INSTALL" 1>&6 # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 +echo "configure:1314: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1195,6 +1331,7 @@ else fi echo $ac_n "checking for csh hash hack""... $ac_c" 1>&6 +echo "configure:1335: checking for csh hash hack" >&5 cat <<EOF >conftest.sh #!/bin/sh true || exit 0 @@ -1202,16 +1339,15 @@ export PATH || exit 0 exit 1 EOF chmod +x conftest.sh -if echo ./conftest.sh | (csh >/dev/null 2>&1) >/dev/null 2>&1 -then +if echo ./conftest.sh | (csh >/dev/null 2>&1) >/dev/null 2>&1; then echo "$ac_t""yes" 1>&6; SH_SCRIPT_SED_CMD='1s/.*/:/' else echo "$ac_t""no" 1>&6; SH_SCRIPT_SED_CMD='' fi rm -f conftest.sh - echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +echo "configure:1351: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1226,39 +1362,62 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 1230 "configure" +#line 1366 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1236: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:1372: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 1245 "configure" +#line 1383 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:1389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext <<EOF +#line 1400 "configure" +#include "confdefs.h" +#include <assert.h> +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1406: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* CPP=/lib/cpp fi rm -f conftest* fi rm -f conftest* +fi +rm -f conftest* ac_cv_prog_CPP="$CPP" fi CPP="$ac_cv_prog_CPP" @@ -1269,24 +1428,27 @@ echo "$ac_t""$CPP" 1>&6 for ac_hdr in unistd.h dirent.h limits.h sys/dir.h stdlib.h do -ac_safe=`echo "$ac_hdr" | tr './\055' '___'` +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1434: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1279 "configure" +#line 1439 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1284: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:1444: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi @@ -1294,7 +1456,7 @@ rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | tr 'abcdefghijklmnopqrstuvwxyz./\055' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ___'` + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <<EOF #define $ac_tr_hdr 1 EOF @@ -1305,6 +1467,7 @@ fi done echo $ac_n "checking for ISC 3.x or 4.x""... $ac_c" 1>&6 +echo "configure:1471: checking for ISC 3.x or 4.x" >&5 if grep '[34]\.' /usr/options/cb.name >/dev/null 2>&1 then echo "$ac_t""yes" 1>&6 @@ -1316,63 +1479,69 @@ else echo "$ac_t""no" 1>&6 fi echo $ac_n "checking whether -D_POSIX_SOURCE is necessary""... $ac_c" 1>&6 +echo "configure:1483: checking whether -D_POSIX_SOURCE is necessary" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 1328 "configure" +#line 1493 "configure" #include "confdefs.h" #include <stdio.h> extern "C" { void fileno(int); } -int main() { return 0; } -int t() { +int main() { ; return 0; } EOF -if { (eval echo configure:1337: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1501: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define _POSIX_SOURCE 1 EOF else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""no" 1>&6 fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking declaration of getopt in stdlib.h""... $ac_c" 1>&6 +echo "configure:1530: checking declaration of getopt in stdlib.h" >&5 cat > conftest.$ac_ext <<EOF -#line 1364 "configure" +#line 1532 "configure" #include "confdefs.h" #include <stdlib.h> extern "C" { void getopt(int); } -int main() { return 0; } -int t() { +int main() { ; return 0; } EOF -if { (eval echo configure:1373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""no" 1>&6 else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define STDLIB_H_DECLARES_GETOPT 1 @@ -1380,23 +1549,24 @@ EOF fi rm -f conftest* - echo $ac_n "checking declaration of getopt in unistd.h""... $ac_c" 1>&6 +echo "configure:1554: checking declaration of getopt in unistd.h" >&5 cat > conftest.$ac_ext <<EOF -#line 1387 "configure" +#line 1556 "configure" #include "confdefs.h" #include <sys/types.h> #include <unistd.h> extern "C" { void getopt(int); } -int main() { return 0; } -int t() { +int main() { ; return 0; } EOF -if { (eval echo configure:1397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""no" 1>&6 else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define UNISTD_H_DECLARES_GETOPT 1 @@ -1404,72 +1574,77 @@ EOF fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking declaration of putenv""... $ac_c" 1>&6 +echo "configure:1594: checking declaration of putenv" >&5 cat > conftest.$ac_ext <<EOF -#line 1424 "configure" +#line 1596 "configure" #include "confdefs.h" #include <stdlib.h> extern "C" { void putenv(int); } -int main() { return 0; } -int t() { +int main() { ; return 0; } EOF -if { (eval echo configure:1433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""no" 1>&6 else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* - echo "$ac_t""yes" 1>&6 -cat >> confdefs.h <<\EOF + echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define STDLIB_H_DECLARES_PUTENV 1 EOF fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking declaration of popen""... $ac_c" 1>&6 +echo "configure:1633: checking declaration of popen" >&5 cat > conftest.$ac_ext <<EOF -#line 1461 "configure" +#line 1635 "configure" #include "confdefs.h" #include <stdio.h> extern "C" { void popen(int); } -int main() { return 0; } -int t() { +int main() { ; return 0; } EOF -if { (eval echo configure:1470: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""no" 1>&6 else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define STDIO_H_DECLARES_POPEN 1 @@ -1477,35 +1652,38 @@ EOF fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking declaration of pclose""... $ac_c" 1>&6 +echo "configure:1672: checking declaration of pclose" >&5 cat > conftest.$ac_ext <<EOF -#line 1497 "configure" +#line 1674 "configure" #include "confdefs.h" #include <stdio.h> extern "C" { void pclose(int); } -int main() { return 0; } -int t() { +int main() { ; return 0; } EOF -if { (eval echo configure:1506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""no" 1>&6 else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define STDIO_H_DECLARES_PCLOSE 1 @@ -1513,104 +1691,230 @@ EOF fi rm -f conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +echo $ac_n "checking for sys_nerr in <errno.h> or <stdio.h>""... $ac_c" 1>&6 +echo "configure:1711: checking for sys_nerr in <errno.h> or <stdio.h>" >&5 +cat > conftest.$ac_ext <<EOF +#line 1713 "configure" +#include "confdefs.h" +#include <errno.h> +#include <stdio.h> +int main() { +int k; k = sys_nerr; +; return 0; } +EOF +if { (eval echo configure:1721: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF +#define HAVE_SYS_NERR 1 +EOF + +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 +fi +rm -f conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +echo $ac_n "checking for sys_errlist in <errno.h> or <stdio.h>""... $ac_c" 1>&6 +echo "configure:1750: checking for sys_errlist in <errno.h> or <stdio.h>" >&5 +cat > conftest.$ac_ext <<EOF +#line 1752 "configure" +#include "confdefs.h" +#include <errno.h> +#include <stdio.h> +int main() { +int k; k = (int)sys_errlist[0]; +; return 0; } +EOF +if { (eval echo configure:1760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF +#define HAVE_SYS_ERRLIST 1 +EOF + +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 +fi +rm -f conftest* ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +echo $ac_n "checking declaration of hypot""... $ac_c" 1>&6 +echo "configure:1789: checking declaration of hypot" >&5 +cat > conftest.$ac_ext <<EOF +#line 1791 "configure" +#include "confdefs.h" +#include <math.h> +extern "C" { double hypot(double,double); } +int main() { + +; return 0; } +EOF +if { (eval echo configure:1799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""no" 1>&6 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF +#define MATH_H_DECLARES_HYPOT 1 +EOF + +fi +rm -f conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking C++ <osfcn.h>""... $ac_c" 1>&6 +echo "configure:1828: checking C++ <osfcn.h>" >&5 cat > conftest.$ac_ext <<EOF -#line 1533 "configure" +#line 1830 "configure" #include "confdefs.h" #include <osfcn.h> -int main() { return 0; } -int t() { +int main() { read(0, 0, 0); open(0, 0); ; return 0; } EOF -if { (eval echo configure:1541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1837: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define HAVE_CC_OSFCN_H 1 EOF else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""no" 1>&6 fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking C++ <limits.h>""... $ac_c" 1>&6 +echo "configure:1866: checking C++ <limits.h>" >&5 cat > conftest.$ac_ext <<EOF -#line 1568 "configure" +#line 1868 "configure" #include "confdefs.h" #include <limits.h> -int main() { return 0; } -int t() { +int main() { int x = INT_MIN; int y = INT_MAX; int z = UCHAR_MAX; ; return 0; } EOF -if { (eval echo configure:1576: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1875: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define HAVE_CC_LIMITS_H 1 EOF else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""no" 1>&6 fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking for declaration of time_t""... $ac_c" 1>&6 +echo "configure:1904: checking for declaration of time_t" >&5 cat > conftest.$ac_ext <<EOF -#line 1603 "configure" +#line 1906 "configure" #include "confdefs.h" #include <time.h> -int main() { return 0; } -int t() { +int main() { time_t t = time(0); struct tm *p = localtime(&t); ; return 0; } EOF -if { (eval echo configure:1611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""no" 1>&6;cat >> confdefs.h <<\EOF #define LONG_FOR_TIME_T 1 @@ -1618,19 +1922,20 @@ EOF fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +echo "configure:1934: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1634 "configure" +#line 1939 "configure" #include "confdefs.h" #include <sys/types.h> #include <signal.h> @@ -1643,20 +1948,20 @@ extern "C" void (*signal (int, void (*)(int)))(int); void (*signal ()) (); #endif -int main() { return 0; } -int t() { +int main() { int i; ; return 0; } EOF -if { (eval echo configure:1652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1956: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* ac_cv_type_signal=int fi rm -f conftest* - fi echo "$ac_t""$ac_cv_type_signal" 1>&6 @@ -1666,35 +1971,119 @@ EOF echo $ac_n "checking struct exception""... $ac_c" 1>&6 +echo "configure:1975: checking struct exception" >&5 cat > conftest.$ac_ext <<EOF -#line 1671 "configure" +#line 1977 "configure" #include "confdefs.h" #include <math.h> -int main() { return 0; } -int t() { +int main() { struct exception e; ; return 0; } EOF -if { (eval echo configure:1679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define HAVE_STRUCT_EXCEPTION 1 EOF else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""no" 1>&6 fi rm -f conftest* +echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 +echo "configure:1998: checking for sin in -lm" >&5 +ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lm $LIBS" +cat > conftest.$ac_ext <<EOF +#line 2006 "configure" +#include "confdefs.h" +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char sin(); + +int main() { +sin() +; return 0; } +EOF +if { (eval echo configure:2017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" -for ac_func in valloc getpagesize +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBM=-lm +else + echo "$ac_t""no" 1>&6 +fi + + + +for ac_hdr in unistd.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:2043: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 2048 "configure" +#include "confdefs.h" +#include <$ac_hdr> +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <<EOF +#define $ac_tr_hdr 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi +done + +for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2082: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1698 "configure" +#line 2087 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -1704,8 +2093,7 @@ else builtin and then its argument prototype would still apply. */ char $ac_func(); -int main() { return 0; } -int t() { +int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named @@ -1718,16 +2106,18 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:1722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then +if { (eval echo configure:2110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_$ac_func=no" fi rm -f conftest* - fi + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` @@ -1741,94 +2131,170 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_func_mmap'+set}'`\" = set"; then +echo "configure:2135: checking for working mmap" >&5 +if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then - ac_cv_func_mmap=no + ac_cv_func_mmap_fixed_mapped=no else -cat > conftest.$ac_ext <<EOF -#line 1752 "configure" + cat > conftest.$ac_ext <<EOF +#line 2143 "configure" #include "confdefs.h" -/* Thanks to Mike Haertel and Jim Avera for this test. */ +/* Thanks to Mike Haertel and Jim Avera for this test. + Here is a matrix of mmap possibilities: + mmap private not fixed + mmap private fixed at somewhere currently unmapped + mmap private fixed at somewhere already mapped + mmap shared not fixed + mmap shared fixed at somewhere currently unmapped + mmap shared fixed at somewhere already mapped + For private mappings, we should verify that changes cannot be read() + back from the file, nor mmap's back from the file at a different + address. (There have been systems where private was not correctly + implemented like the infamous i386 svr4.0, and systems where the + VM page cache was not coherent with the filesystem buffer cache + like early versions of FreeBSD and possibly contemporary NetBSD.) + For shared mappings, we should conversely verify that changes get + propogated back to all the places they're supposed to be. + + Grep wants private fixed already mapped. + The main things grep needs to know about mmap are: + * does it exist and is it safe to write into the mmap'd area + * how to use it (BSD variants) */ #include <sys/types.h> #include <fcntl.h> #include <sys/mman.h> +/* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE -# include <sys/param.h> -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else -# ifdef NBPG -# define getpagesize() NBPG * CLSIZE -# ifndef CLSIZE -# define CLSIZE 1 -# endif -# else -# ifdef NBPC -# define getpagesize() NBPC -# else -# define getpagesize() PAGESIZE /* SVR4 */ -# endif -# endif +# ifdef HAVE_UNISTD_H +# include <unistd.h> # endif -#endif -#ifndef HAVE_VALLOC -# define valloc malloc -#endif +/* Assume that all systems that can run configure have sys/param.h. */ +# ifndef HAVE_SYS_PARAM_H +# define HAVE_SYS_PARAM_H 1 +# endif + +# ifdef _SC_PAGESIZE +# define getpagesize() sysconf(_SC_PAGESIZE) +# else /* no _SC_PAGESIZE */ +# ifdef HAVE_SYS_PARAM_H +# include <sys/param.h> +# ifdef EXEC_PAGESIZE +# define getpagesize() EXEC_PAGESIZE +# else /* no EXEC_PAGESIZE */ +# ifdef NBPG +# define getpagesize() NBPG * CLSIZE +# ifndef CLSIZE +# define CLSIZE 1 +# endif /* no CLSIZE */ +# else /* no NBPG */ +# ifdef NBPC +# define getpagesize() NBPC +# else /* no NBPC */ +# ifdef PAGESIZE +# define getpagesize() PAGESIZE +# endif /* PAGESIZE */ +# endif /* no NBPC */ +# endif /* no NBPG */ +# endif /* no EXEC_PAGESIZE */ +# else /* no HAVE_SYS_PARAM_H */ +# define getpagesize() 8192 /* punt totally */ +# endif /* no HAVE_SYS_PARAM_H */ +# endif /* no _SC_PAGESIZE */ + +#endif /* no HAVE_GETPAGESIZE */ #ifdef __cplusplus -extern "C" { void *valloc(unsigned), *malloc(unsigned); } +extern "C" { void *malloc(unsigned); } #else -char *valloc(), *malloc(); +char *malloc(); #endif int main() { - char *buf1, *buf2, *buf3; - int i = getpagesize(), j; - int i2 = i * 2; - int fd; - - buf1 = (char *)valloc(i2); - buf2 = (char *)valloc(i); - buf3 = (char *)malloc(i2); - for (j = 0; j < i2; ++j) - *(buf1 + j) = rand(); - fd = open("conftestmmap", O_CREAT | O_RDWR, 0666); - write(fd, buf1, i2); - mmap(buf2, i, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE, fd, 0); - for (j = 0; j < i; ++j) - if (*(buf1 + j) != *(buf2 + j)) - exit(1); - lseek(fd, (long)i, 0); - read(fd, buf2, i); /* read into mapped memory -- file should not change */ - /* (it does in i386 SVR4.0 - Jim Avera, jima@netcom.com) */ - lseek(fd, (long)0, 0); - read(fd, buf3, i2); - for (j = 0; j < i2; ++j) - if (*(buf1 + j) != *(buf3 + j)) - exit(1); - exit(0); + char *data, *data2, *data3; + int i, pagesize; + int fd; + + pagesize = getpagesize(); + + /* + * First, make a file with some known garbage in it. + */ + data = malloc(pagesize); + if (!data) + exit(1); + for (i = 0; i < pagesize; ++i) + *(data + i) = rand(); + umask(0); + fd = creat("conftestmmap", 0600); + if (fd < 0) + exit(1); + if (write(fd, data, pagesize) != pagesize) + exit(1); + close(fd); + + /* + * Next, try to mmap the file at a fixed address which + * already has something else allocated at it. If we can, + * also make sure that we see the same garbage. + */ + fd = open("conftestmmap", O_RDWR); + if (fd < 0) + exit(1); + data2 = malloc(2 * pagesize); + if (!data2) + exit(1); + data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); + if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_FIXED, fd, 0L)) + exit(1); + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data2 + i)) + exit(1); + + /* + * Finally, make sure that changes to the mapped area + * do not percolate back to the file as seen by read(). + * (This is a bug on some variants of i386 svr4.0.) + */ + for (i = 0; i < pagesize; ++i) + *(data2 + i) = *(data2 + i) + 1; + data3 = malloc(pagesize); + if (!data3) + exit(1); + if (read(fd, data3, pagesize) != pagesize) + exit(1); + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data3 + i)) + exit(1); + close(fd); + unlink("conftestmmap"); + exit(0); } EOF -{ (eval echo configure:1821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } -if test -s conftest && (./conftest; exit) 2>/dev/null; then - ac_cv_func_mmap=yes +if { (eval echo configure:2283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + ac_cv_func_mmap_fixed_mapped=yes else - ac_cv_func_mmap=no -fi + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_func_mmap_fixed_mapped=no fi rm -fr conftest* fi -echo "$ac_t""$ac_cv_func_mmap" 1>&6 -if test $ac_cv_func_mmap = yes; then +fi + +echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6 +if test $ac_cv_func_mmap_fixed_mapped = yes; then cat >> confdefs.h <<\EOF #define HAVE_MMAP 1 EOF @@ -1836,15 +2302,16 @@ EOF fi saved_libs="$LIBS" -LIBS="$LIBS -lm" +LIBS="$LIBS -lc $LIBM" for ac_func in fmod strtol getcwd strerror putenv do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2310: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1848 "configure" +#line 2315 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -1854,8 +2321,7 @@ else builtin and then its argument prototype would still apply. */ char $ac_func(); -int main() { return 0; } -int t() { +int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named @@ -1868,35 +2334,42 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:1872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then +if { (eval echo configure:2338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_$ac_func=no" fi rm -f conftest* - fi + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 - : + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <<EOF +#define $ac_tr_func 1 +EOF + else echo "$ac_t""no" 1>&6 -LIBOBJS="$LIBOBJS ${ac_func}.o" +LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}" fi - done + LIBS="$saved_libs" for ac_func in rename mkstemp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2368: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1900 "configure" +#line 2373 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -1906,8 +2379,7 @@ else builtin and then its argument prototype would still apply. */ char $ac_func(); -int main() { return 0; } -int t() { +int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named @@ -1920,16 +2392,18 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:1924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then +if { (eval echo configure:2396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_$ac_func=no" fi rm -f conftest* - fi + if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` @@ -1943,11 +2417,12 @@ fi done echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 +echo "configure:2421: checking for sys_siglist declaration in signal.h or unistd.h" >&5 if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1951 "configure" +#line 2426 "configure" #include "confdefs.h" #include <sys/types.h> #include <signal.h> @@ -1955,20 +2430,20 @@ else #ifdef HAVE_UNISTD_H #include <unistd.h> #endif -int main() { return 0; } -int t() { +int main() { char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:1964: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2438: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* ac_cv_decl_sys_siglist=no fi rm -f conftest* - fi echo "$ac_t""$ac_cv_decl_sys_siglist" 1>&6 @@ -1984,22 +2459,25 @@ ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether ANSI array delete syntax supported""... $ac_c" 1>&6 +echo "configure:2467: checking whether ANSI array delete syntax supported" >&5 cat > conftest.$ac_ext <<EOF -#line 1992 "configure" +#line 2469 "configure" #include "confdefs.h" -int main() { return 0; } -int t() { +int main() { char *p = new char[5]; delete [] p; ; return 0; } EOF -if { (eval echo configure:2000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""no" 1>&6;cat >> confdefs.h <<\EOF #define ARRAY_DELETE_NEEDS_SIZE 1 @@ -2007,56 +2485,59 @@ EOF fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking traditional preprocessor""... $ac_c" 1>&6 +echo "configure:2505: checking traditional preprocessor" >&5 cat > conftest.$ac_ext <<EOF -#line 2027 "configure" +#line 2507 "configure" #include "confdefs.h" #define name2(a,b) a/**/b -int main() { return 0; } -int t() { +int main() { int name2(foo,bar); ; return 0; } EOF -if { (eval echo configure:2035: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define TRADITIONAL_CPP 1 EOF else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""no" 1>&6 fi rm -f conftest* - ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking w_coredump""... $ac_c" 1>&6 +echo "configure:2535: checking w_coredump" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""no" 1>&6 else -cat > conftest.$ac_ext <<EOF -#line 2058 "configure" + cat > conftest.$ac_ext <<EOF +#line 2540 "configure" #include "confdefs.h" - #include <sys/types.h> #include <sys/wait.h> main() @@ -2069,56 +2550,52 @@ main() exit(i != 0200); #endif } - EOF -{ (eval echo configure:2075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } -if test -s conftest && (./conftest; exit) 2>/dev/null; then +if { (eval echo configure:2555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then echo "$ac_t""yes" 1>&6;cat >> confdefs.h <<\EOF #define WCOREFLAG 0200 EOF else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* echo "$ac_t""no" 1>&6 fi -fi rm -fr conftest* +fi + echo $ac_n "checking default value for grops -b option""... $ac_c" 1>&6 +echo "configure:2571: checking default value for grops -b option" >&5 test -n "${BROKEN_SPOOLER_FLAGS}" || BROKEN_SPOOLER_FLAGS=7 echo "$ac_t""$BROKEN_SPOOLER_FLAGS" 1>&6 echo $ac_n "checking default paper size""... $ac_c" 1>&6 -if test -z "$PAGE" -then +echo "configure:2576: checking default paper size" >&5 +if test -z "$PAGE"; then descfile= - if test -r $prefix/share/groff/font/devps/DESC - then + if test -r $prefix/share/groff/font/devps/DESC; then descfile=$prefix/share/groff/font/devps/DESC - elif test -r $prefix/lib/groff/font/devps/DESC - then + elif test -r $prefix/lib/groff/font/devps/DESC; then descfile=$prefix/lib/groff/font/devps/DESC fi if test -n "$descfile" \ - && grep "^paperlength 841890" $descfile >/dev/null 2>&1 - then + && grep "^paperlength 841890" $descfile >/dev/null 2>&1; then PAGE=A4 else PAGE=letter fi fi -if test -z "$PAGE" -then +if test -z "$PAGE"; then dom=`awk '($1 == "dom" || $1 == "search") { print $2; exit}' \ /etc/resolv.conf 2>/dev/null` - - if test -z "$dom" - then + if test -z "$dom"; then dom=`(domainname) 2>/dev/null | tr -d '+'` - if test -z "$dom" - then + if test -z "$dom"; then dom=`(hostname) 2>/dev/null | grep '\.'` fi fi - # If the top-level domain is two letters and it's not `us' or `ca' # then they probably use A4 paper. case "$dom" in @@ -2130,9 +2607,8 @@ test -n "$PAGE" || PAGE=letter echo "$ac_t""$PAGE" 1>&6 echo $ac_n "checking for existing troff installation""... $ac_c" 1>&6 -if test "x`(echo .tm '|n(.g' | tr '|' '\\\\' | troff -z -i 2>&1) 2>/dev/null`" \ - = x0 -then +echo "configure:2611: checking for existing troff installation" >&5 +if test "x`(echo .tm '|n(.g' | tr '|' '\\\\' | troff -z -i 2>&1) 2>/dev/null`" = x0; then echo "$ac_t""yes" 1>&6 g=g else @@ -2141,21 +2617,17 @@ else fi - echo $ac_n "checking for prefix of system macro packages""... $ac_c" 1>&6 +echo "configure:2622: checking for prefix of system macro packages" >&5 sys_tmac_prefix= sys_tmac_file_prefix= -for d in /usr/share/lib/tmac /usr/lib/tmac -do - for t in "" tmac. - do - for m in an s m - do +for d in /usr/share/lib/tmac /usr/lib/tmac; do + for t in "" tmac.; do + for m in an s m; do f=$d/$t$m if test -z "$sys_tmac_prefix" \ && test -f $f \ - && grep '^\.if' $f >/dev/null 2>&1 - then + && grep '^\.if' $f >/dev/null 2>&1; then sys_tmac_prefix=$d/$t sys_tmac_file_prefix=$t fi @@ -2166,42 +2638,37 @@ echo "$ac_t""$sys_tmac_prefix" 1>&6 tmac_wrap= echo $ac_n "checking which system macro packages should be made available""... $ac_c" 1>&6 -if test "x$sys_tmac_file_prefix" = "xtmac." -then - for f in $sys_tmac_prefix* - do +echo "configure:2642: checking which system macro packages should be made available" >&5 +if test "x$sys_tmac_file_prefix" = "xtmac."; then + for f in $sys_tmac_prefix*; do suff=`echo $f | sed -e "s;$sys_tmac_prefix;;"` case "$suff" in - e);; + e) ;; *) - grep "Copyright.*Free Software Foundation" $f >/dev/null \ - || tmac_wrap="$tmac_wrap $suff" - ;; + grep "Copyright.*Free Software Foundation" $f >/dev/null \ + || tmac_wrap="$tmac_wrap $suff" ;; esac done -elif test -n "$sys_tmac_prefix" -then +elif test -n "$sys_tmac_prefix"; then files=`echo $sys_tmac_prefix*` grep "\\.so" $files >conftest.sol - for f in $files - do + for f in $files; do case "$f" in - ${sys_tmac_prefix}e) ;; + ${sys_tmac_prefix}e) ;; *.me) ;; */ms.*) ;; *) - b=`basename $f` - if grep "\\.so.*/$b\$" conftest.sol >/dev/null \ - || grep -l "Copyright.*Free Software Foundation" $f >/dev/null - then - : - else - suff=`echo $f | sed -e "s;$sys_tmac_prefix;;"` - case "$suff" in - tmac.*);; - *) tmac_wrap="$tmac_wrap $suff" ;; - esac - fi + b=`basename $f` + if grep "\\.so.*/$b\$" conftest.sol >/dev/null \ + || grep -l "Copyright.*Free Software Foundation" $f >/dev/null; then + : + else + suff=`echo $f | sed -e "s;$sys_tmac_prefix;;"` + case "$suff" in + tmac.*) ;; + *) tmac_wrap="$tmac_wrap $suff" ;; + esac + fi esac done rm -f conftest.sol @@ -2226,11 +2693,25 @@ cat > confcache <<\EOF # --recheck option to rerun configure. # EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | - sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \ - >> confcache + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache if cmp -s $cache_file confcache; then : else @@ -2297,7 +2778,7 @@ do echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.10" + echo "$CONFIG_STATUS generated by autoconf version 2.13" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; @@ -2317,9 +2798,11 @@ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF $ac_vpsub $extrasub +s%@SHELL@%$SHELL%g s%@CFLAGS@%$CFLAGS%g s%@CPPFLAGS@%$CPPFLAGS%g s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g s%@DEFS@%$DEFS%g s%@LDFLAGS@%$LDFLAGS%g s%@LIBS@%$LIBS%g @@ -2338,7 +2821,6 @@ s%@includedir@%$includedir%g s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g -s%@GROPS@%$GROPS%g s%@CC@%$CC%g s%@CXX@%$CXX%g s%@LPR@%$LPR%g @@ -2350,10 +2832,12 @@ s%@PERLPATH@%$PERLPATH%g s%@YACC@%$YACC%g s%@RANLIB@%$RANLIB%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g s%@INSTALL_DATA@%$INSTALL_DATA%g s%@LN_S@%$LN_S%g s%@SH_SCRIPT_SED_CMD@%$SH_SCRIPT_SED_CMD%g s%@CPP@%$CPP%g +s%@LIBM@%$LIBM%g s%@LIBOBJS@%$LIBOBJS%g s%@BROKEN_SPOOLER_FLAGS@%$BROKEN_SPOOLER_FLAGS%g s%@PAGE@%$PAGE%g @@ -2363,20 +2847,56 @@ s%@tmac_wrap@%$tmac_wrap%g CEOF EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + cat >> $CONFIG_STATUS <<EOF CONFIG_FILES=\${CONFIG_FILES-"Makefile"} EOF cat >> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile]", defaulting infile="outfile.in". + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'` + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; *) ac_file_in="${ac_file}.in" ;; esac - # Adjust relative srcdir, etc. for subdirectories. + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. # Remove last slash and all that follows it. Not all systems have dirname. ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` @@ -2404,6 +2924,7 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then [/$]*) INSTALL="$ac_given_INSTALL" ;; *) INSTALL="$ac_dots$ac_given_INSTALL" ;; esac + echo creating "$ac_file" rm -f "$ac_file" configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." @@ -2412,16 +2933,22 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then # $configure_input" ;; *) ac_comsub= ;; esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` sed -e "$ac_comsub s%@configure_input@%$configure_input%g s%@srcdir@%$srcdir%g s%@top_srcdir@%$top_srcdir%g s%@INSTALL@%$INSTALL%g -" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file fi; done -rm -f conftest.subs +rm -f conftest.s* +EOF +cat >> $CONFIG_STATUS <<EOF +EOF +cat >> $CONFIG_STATUS <<\EOF exit 0 EOF diff --git a/gnu/usr.bin/groff/doc/groff.texinfo b/gnu/usr.bin/groff/doc/groff.texinfo index d3b7367c3f8..0cf1c09d3d9 100644 --- a/gnu/usr.bin/groff/doc/groff.texinfo +++ b/gnu/usr.bin/groff/doc/groff.texinfo @@ -3920,7 +3920,7 @@ request can make a macro have more than one name. This would be called as @example -.vl $Id: groff.texinfo,v 1.1 2000/04/09 07:58:37 millert Exp $ +.vl $Id: groff.texinfo,v 1.2 2000/04/09 08:25:11 millert Exp $ @end example diff --git a/gnu/usr.bin/groff/doc/pic.ms b/gnu/usr.bin/groff/doc/pic.ms index 0a8a20eff0f..c20c346e26b 100644 --- a/gnu/usr.bin/groff/doc/pic.ms +++ b/gnu/usr.bin/groff/doc/pic.ms @@ -10,7 +10,7 @@ .\" This document was written for free use and redistribution by .\" Eric S. Raymond <esr@thyrsus.com> in August 1995. .\" -.\" $Id: pic.ms,v 1.1 1998/01/18 23:13:06 etheisen Exp $ +.\" $Id: pic.ms,v 1.2 2000/04/09 08:25:11 millert Exp $ .\" .\" Set a proper TeX .ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X @@ -299,7 +299,8 @@ possible to set a global style variable \fBscale\fP that changes the unit. Setting \fBscale = 2.54\fP will effectively change the internal unit to centimeters (all other size variable valuess will be scaled correspondingly). -.NH 2 Default Sizes of Objects +.NH 2 +Default Sizes of Objects .PP Here are the default sizes for \fBpic\fP objects: .RS diff --git a/gnu/usr.bin/groff/eqn/Makefile.sub b/gnu/usr.bin/groff/eqn/Makefile.sub index 692bf42e4ef..df50b6e1958 100644 --- a/gnu/usr.bin/groff/eqn/Makefile.sub +++ b/gnu/usr.bin/groff/eqn/Makefile.sub @@ -1,5 +1,5 @@ PROG=eqn -MAN1=eqn.n +MAN1=eqn.1 XLIBS=$(LIBGROFF) OBJS=eqn.o main.o lex.o box.o limit.o list.o over.o text.o script.o \ mark.o other.o delim.o sqrt.o pile.o special.o diff --git a/gnu/usr.bin/groff/eqn/eqn.man b/gnu/usr.bin/groff/eqn/eqn.1_in index 8c67b911e5a..8c67b911e5a 100644 --- a/gnu/usr.bin/groff/eqn/eqn.man +++ b/gnu/usr.bin/groff/eqn/eqn.1_in diff --git a/gnu/usr.bin/groff/grodvi/Makefile.sub b/gnu/usr.bin/groff/grodvi/Makefile.sub index a63905df938..40f46eabf1b 100644 --- a/gnu/usr.bin/groff/grodvi/Makefile.sub +++ b/gnu/usr.bin/groff/grodvi/Makefile.sub @@ -1,5 +1,5 @@ PROG=grodvi -MAN1=grodvi.n +MAN1=grodvi.1 XLIBS=$(LIBDRIVER) $(LIBGROFF) MLIB=$(LIBM) OBJS=dvi.o diff --git a/gnu/usr.bin/groff/grodvi/grodvi.man b/gnu/usr.bin/groff/grodvi/grodvi.1_in index aeb894cd409..aeb894cd409 100644 --- a/gnu/usr.bin/groff/grodvi/grodvi.man +++ b/gnu/usr.bin/groff/grodvi/grodvi.1_in diff --git a/gnu/usr.bin/groff/groff/Makefile.sub b/gnu/usr.bin/groff/groff/Makefile.sub index 0acd882b455..a2cd083a112 100644 --- a/gnu/usr.bin/groff/groff/Makefile.sub +++ b/gnu/usr.bin/groff/groff/Makefile.sub @@ -1,5 +1,5 @@ PROG=groff -MAN1=groff.n +MAN1=groff.1 XLIBS=$(LIBGROFF) MLIB=$(LIBM) OBJS=groff.o pipeline.o diff --git a/gnu/usr.bin/groff/groff/groff.man b/gnu/usr.bin/groff/groff/groff.1_in index 0344f0fdff4..545f0a0c663 100644 --- a/gnu/usr.bin/groff/groff/groff.man +++ b/gnu/usr.bin/groff/groff/groff.1_in @@ -1,5 +1,5 @@ .ig \"-*- nroff -*- -Copyright (C) 1989-1995 Free Software Foundation, Inc. +Copyright (C) 1999 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -33,7 +33,7 @@ groff \- front end for the groff document formatting system .SH SYNOPSIS .B groff [ -.B \-tpeszaivhblCENRSVXZ +.B \-abehilpstvzCENRSUVXZ ] [ .BI \-w name @@ -48,6 +48,9 @@ groff \- front end for the groff document formatting system .BI \-F dir ] [ +.BI \-I dir +] +[ .BI \-T dev ] [ @@ -72,6 +75,9 @@ groff \- front end for the groff document formatting system .BI \-P arg ] [ +.BI \-L arg +] +[ .IR files \|.\|.\|.\| ] .SH DESCRIPTION @@ -87,22 +93,25 @@ Available devices are: For PostScript printers and previewers .TP .B dvi -For TeX dvi format +For TeX dvi format. .TP .B X75 -For a 75 dpi X11 previewer +For a 75 dpi X11 previewer. .TP .B X100 -For a 100dpi X11 previewer +For a 100dpi X11 previewer. .TP .B ascii -For typewriter-like devices +For typewriter-like devices. .TP .B latin1 For typewriter-like devices using the ISO Latin-1 character set. .TP .B lj4 For an HP LaserJet4-compatible (or other PCL5-compatible) printer. +.TP +.B html +To produce HTML output. .LP The postprocessor to be used for a device is specified by the .B postpro @@ -148,6 +157,13 @@ Preprocess with @g@pic. .B \-s Preprocess with @g@soelim. .TP +.BI \-I dir +This option is as described in +.BR @g@soelim (@MAN1EXT@) . +This option implies the +.B \-s +option. +.TP .B \-R Preprocess with @g@refer. No mechanism is provided for passing arguments to @@ -255,6 +271,10 @@ and use the .B \%\-msafer macros with .BR @g@troff . +(enabled by default) +.TP +.B \-U +Unsafe mode. Reverts to the old unsafe behaviour. .TP .B \-a .TQ @@ -303,13 +323,15 @@ This also applies to .BR tbl , .BR pic , .BR eqn , -.B refer +.BR refer , and .BR soelim . It does not apply to .BR grops , .BR grodvi , -.BR grotty +.BR grotty , +.BR grolj4 , +.BR grohtml , and .BR gxditview . .TP @@ -361,12 +383,12 @@ of device .SH AUTHOR James Clark <jjc@jclark.com> .SH BUGS -Report bugs to bug-groff@prep.ai.mit.edu. +Report bugs to bug-groff@gnu.org. Include a complete, self-contained example that will allow the bug to be reproduced, and say which version of groff you are using. .SH COPYRIGHT -Copyright \(co 1989, 1990, 1991, 1992 Free Software Foundation, Inc. +Copyright \(co 1989, 1990, 1991, 1992, 1999 Free Software Foundation, Inc. .LP groff is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -383,8 +405,7 @@ with groff; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. .SH AVAILABILITY The most recent released version of groff is always available for -anonymous ftp from prep.ai.mit.edu (18.71.0.38) in the directory -pub/gnu. +anonymous ftp from ftp.gnu.org in the directory gnu/groff. .SH "SEE ALSO" .BR grog (@MAN1EXT@), .BR @g@troff (@MAN1EXT@), @@ -396,11 +417,13 @@ pub/gnu. .BR grops (@MAN1EXT@), .BR grodvi (@MAN1EXT@), .BR grotty (@MAN1EXT@), +.BR grohtml (@MAN1EXT@), .BR gxditview (@MAN1EXT@), .BR deroff (@MAN1EXT@), .BR groff_font (@MAN5EXT@), .BR groff_out (@MAN5EXT@), +.BR groff_man (@MAN7EXT@), .BR groff_ms (@MAN7EXT@), -.BR me (@MAN7EXT@), +.BR groff_me (@MAN7EXT@), .BR groff_char (@MAN7EXT@), -.BR msafer (@MAN7EXT@) +.BR groff_msafer (@MAN7EXT@) diff --git a/gnu/usr.bin/groff/groff/groff.cc b/gnu/usr.bin/groff/groff/groff.cc index d4bb8033ae3..c5f55e02d6f 100644 --- a/gnu/usr.bin/groff/groff/groff.cc +++ b/gnu/usr.bin/groff/groff/groff.cc @@ -107,13 +107,14 @@ int main(int argc, char **argv) int zflag = 0; int iflag = 0; int Xflag = 0; + int safer_flag = 1; int opt; const char *command_prefix = getenv("GROFF_COMMAND_PREFIX"); if (!command_prefix) command_prefix = PROG_PREFIX; commands[TROFF_INDEX].set_name(command_prefix, "troff"); while ((opt = getopt(argc, argv, - "itpeRsSzavVhblCENXZF:m:T:f:w:W:M:d:r:n:o:P:L:")) + "abCd:eEf:F:hiI:lL:m:M:n:No:pP:r:RsStT:UvVw:W:XzZ")) != EOF) { char buf[3]; buf[0] = '-'; @@ -123,6 +124,10 @@ int main(int argc, char **argv) case 'i': iflag = 1; break; + case 'I': + commands[SOELIM_INDEX].set_name(command_prefix, "soelim"); + commands[SOELIM_INDEX].append_arg(buf, optarg); + break; case 't': commands[TBL_INDEX].set_name(command_prefix, "tbl"); break; @@ -170,8 +175,10 @@ int main(int argc, char **argv) commands[TROFF_INDEX].append_arg(buf); break; case 'S': - commands[PIC_INDEX].append_arg(buf); - commands[TROFF_INDEX].insert_arg("-msafer"); + safer_flag = 1; + break; + case 'U': + safer_flag = 0; break; case 'T': if (strcmp(optarg, "Xps") == 0) { @@ -223,6 +230,12 @@ int main(int argc, char **argv) break; } } + if (safer_flag) { + commands[PIC_INDEX].append_arg("-S"); + commands[TROFF_INDEX].insert_arg("-msafer"); + } else { + commands[TROFF_INDEX].insert_arg("-U"); + } font::set_unknown_desc_command_handler(handle_unknown_desc_command); if (!font::load_desc()) fatal("invalid device `%1'", device); @@ -534,8 +547,8 @@ char **possible_command::get_argv() void synopsis() { fprintf(stderr, -"usage: %s [-abehilpstvzCENRSVXZ] [-Fdir] [-mname] [-Tdev] [-ffam] [-wname]\n" -" [-Wname] [ -Mdir] [-dcs] [-rcn] [-nnum] [-olist] [-Parg] [-Larg]\n" +"usage: %s [-abehilpstvzCENRSUVXZ] [-Fdir] [-mname] [-Tdev] [-ffam] [-wname]\n" +" [-Wname] [-Mdir] [-dcs] [-rcn] [-nnum] [-olist] [-Parg] [-Larg]\n" " [files...]\n", program_name); } @@ -575,7 +588,8 @@ void help() "-Parg\tpass arg to the postprocessor\n" "-Larg\tpass arg to the spooler\n" "-N\tdon't allow newlines within eqn delimiters\n" -"-S\tenable safer mode\n" +"-S\tenable safer mode (the default)\n" +"-U\tenable unsafe mode\n" "\n", stderr); exit(0); diff --git a/gnu/usr.bin/groff/grog/Makefile.sub b/gnu/usr.bin/groff/grog/Makefile.sub index 5b8f089f683..b0a2525e67b 100644 --- a/gnu/usr.bin/groff/grog/Makefile.sub +++ b/gnu/usr.bin/groff/grog/Makefile.sub @@ -1,4 +1,4 @@ -MAN1=grog.n +MAN1=grog.1 CLEANADD=grog all: grog diff --git a/gnu/usr.bin/groff/grog/grog.man b/gnu/usr.bin/groff/grog/grog.1_in index 8e92657309c..8e92657309c 100644 --- a/gnu/usr.bin/groff/grog/grog.man +++ b/gnu/usr.bin/groff/grog/grog.1_in diff --git a/gnu/usr.bin/groff/grohtml/Makefile.sub b/gnu/usr.bin/groff/grohtml/Makefile.sub index 3faa1e30125..d75c98a0a5a 100644 --- a/gnu/usr.bin/groff/grohtml/Makefile.sub +++ b/gnu/usr.bin/groff/grohtml/Makefile.sub @@ -1,5 +1,5 @@ PROG=grohtml -MAN1=grohtml.n +MAN1=grohtml.1 XLIBS=$(LIBDRIVER) $(LIBGROFF) MLIB=$(LIBM) OBJS=html.o diff --git a/gnu/usr.bin/groff/grohtml/grohtml.man b/gnu/usr.bin/groff/grohtml/grohtml.1_in index 63b05edd358..63b05edd358 100644 --- a/gnu/usr.bin/groff/grohtml/grohtml.man +++ b/gnu/usr.bin/groff/grohtml/grohtml.1_in diff --git a/gnu/usr.bin/groff/grolj4/Makefile.sub b/gnu/usr.bin/groff/grolj4/Makefile.sub index 83b57127586..37ccc927bd0 100644 --- a/gnu/usr.bin/groff/grolj4/Makefile.sub +++ b/gnu/usr.bin/groff/grolj4/Makefile.sub @@ -1,5 +1,5 @@ PROG=grolj4 -MAN1=grolj4.n +MAN1=grolj4.1 XLIBS=$(LIBDRIVER) $(LIBGROFF) MLIB=$(LIBM) OBJS=lj4.o diff --git a/gnu/usr.bin/groff/grolj4/grolj4.man b/gnu/usr.bin/groff/grolj4/grolj4.1_in index d4b35617f22..9a7c7fde70e 100644 --- a/gnu/usr.bin/groff/grolj4/grolj4.man +++ b/gnu/usr.bin/groff/grolj4/grolj4.1_in @@ -1,5 +1,5 @@ .ig \"-*- nroff -*- -Copyright (C) 1994, 1995 Free Software Foundation, Inc. +Copyright (C) 1994, 1995, 1999 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -30,6 +30,10 @@ grolj4 \- groff driver for HP Laserjet 4 family [ .B \-lv ] [ +.B \-d +[\c +.IR n ] +] [ .BI \-c n ] [ .BI \-p paper_size @@ -68,6 +72,12 @@ copies of each page. .B \-l Print the document with a landscape orientation. .TP +.BI "\-d [" n ] +Use duplex mode +.IR n : +1\ is long-side binding; 2\ is short-side binding; +default is\ 1. +.TP .BI \-p size Set the paper size to .IR size , diff --git a/gnu/usr.bin/groff/grops/Makefile.sub b/gnu/usr.bin/groff/grops/Makefile.sub index 891472b746e..b452ea6cd25 100644 --- a/gnu/usr.bin/groff/grops/Makefile.sub +++ b/gnu/usr.bin/groff/grops/Makefile.sub @@ -1,5 +1,5 @@ PROG=grops -MAN1=grops.n +MAN1=grops.1 XLIBS=$(LIBDRIVER) $(LIBGROFF) MLIB=$(LIBM) OBJS=ps.o psrm.o diff --git a/gnu/usr.bin/groff/grops/grops.man b/gnu/usr.bin/groff/grops/grops.1_in index 6ac082f3677..6ac082f3677 100644 --- a/gnu/usr.bin/groff/grops/grops.man +++ b/gnu/usr.bin/groff/grops/grops.1_in diff --git a/gnu/usr.bin/groff/grops/ps.cc b/gnu/usr.bin/groff/grops/ps.cc index 6f14a223008..053161a4168 100644 --- a/gnu/usr.bin/groff/grops/ps.cc +++ b/gnu/usr.bin/groff/grops/ps.cc @@ -502,7 +502,7 @@ class ps_printer : public printer { public: ps_printer(); ~ps_printer(); - void set_char(int i, font *f, const environment *env, int w); + void set_char(int i, font *f, const environment *env, int w, const char *name); void draw(int code, int *p, int np, const environment *env); void begin_page(int); void end_page(int); @@ -565,7 +565,7 @@ int ps_printer::set_encoding_index(ps_font *f) return f->encoding_index = next_encoding_index++; } -void ps_printer::set_char(int i, font *f, const environment *env, int w) +void ps_printer::set_char(int i, font *f, const environment *env, int w, const char *name) { if (i == space_char_index || invis_count > 0) return; @@ -1480,7 +1480,7 @@ int main(int argc, char **argv) } case 'c': if (sscanf(optarg, "%d", &ncopies) != 1 || ncopies <= 0) { - error("bad number of copies `%1'", optarg); + error("bad number of copies `%s'", optarg); ncopies = 1; } break; diff --git a/gnu/usr.bin/groff/grotty/Makefile.sub b/gnu/usr.bin/groff/grotty/Makefile.sub index b0002cb88f3..0f9f834bb21 100644 --- a/gnu/usr.bin/groff/grotty/Makefile.sub +++ b/gnu/usr.bin/groff/grotty/Makefile.sub @@ -1,5 +1,5 @@ PROG=grotty -MAN1=grotty.n +MAN1=grotty.1 XLIBS=$(LIBDRIVER) $(LIBGROFF) MLIB=$(LIBM) OBJS=tty.o diff --git a/gnu/usr.bin/groff/grotty/grotty.man b/gnu/usr.bin/groff/grotty/grotty.1_in index d8d6ebdeb0a..d8d6ebdeb0a 100644 --- a/gnu/usr.bin/groff/grotty/grotty.man +++ b/gnu/usr.bin/groff/grotty/grotty.1_in diff --git a/gnu/usr.bin/groff/hpftodit/Makefile.sub b/gnu/usr.bin/groff/hpftodit/Makefile.sub index 16744d9f5f4..ff1c4492f3b 100644 --- a/gnu/usr.bin/groff/hpftodit/Makefile.sub +++ b/gnu/usr.bin/groff/hpftodit/Makefile.sub @@ -1,5 +1,5 @@ PROG=hpftodit -MAN1=hpftodit.n +MAN1=hpftodit.1 XLIBS=$(LIBGROFF) MLIB=$(LIBM) OBJS=hpftodit.o diff --git a/gnu/usr.bin/groff/hpftodit/hpftodit.man b/gnu/usr.bin/groff/hpftodit/hpftodit.1_in index 75af154e219..75af154e219 100644 --- a/gnu/usr.bin/groff/hpftodit/hpftodit.man +++ b/gnu/usr.bin/groff/hpftodit/hpftodit.1_in diff --git a/gnu/usr.bin/groff/indxbib/Makefile.sub b/gnu/usr.bin/groff/indxbib/Makefile.sub index b23b425c566..fbfad859d2f 100644 --- a/gnu/usr.bin/groff/indxbib/Makefile.sub +++ b/gnu/usr.bin/groff/indxbib/Makefile.sub @@ -1,5 +1,5 @@ PROG=indxbib -MAN1=indxbib.n +MAN1=indxbib.1 XLIBS=$(LIBBIB) $(LIBGROFF) MLIB=$(LIBM) OBJS=indxbib.o dirnamemax.o signal.o diff --git a/gnu/usr.bin/groff/indxbib/indxbib.man b/gnu/usr.bin/groff/indxbib/indxbib.1_in index 914cb698048..914cb698048 100644 --- a/gnu/usr.bin/groff/indxbib/indxbib.man +++ b/gnu/usr.bin/groff/indxbib/indxbib.1_in diff --git a/gnu/usr.bin/groff/indxbib/indxbib.cc b/gnu/usr.bin/groff/indxbib/indxbib.cc index 289bec1376b..e55d75a54c6 100644 --- a/gnu/usr.bin/groff/indxbib/indxbib.cc +++ b/gnu/usr.bin/groff/indxbib/indxbib.cc @@ -38,6 +38,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ extern "C" { // Sun's stdlib.h fails to declare this. char *mktemp(char *); + int mkstemp(char *); } #define DEFAULT_HASH_TABLE_SIZE 997 @@ -220,11 +221,15 @@ int main(int argc, char **argv) temp_index_file = strsave(TEMP_INDEX_TEMPLATE); } catch_fatal_signals(); +#ifdef HAVE_MKSTEMP int fd = mkstemp(temp_index_file); - if (fd == -1 || !temp_index_file[0]) +#else /* not HAVE_MKSTEMP */ + if (!mktemp(temp_index_file) || !temp_index_file[0]) fatal("cannot create file name for temporary file"); - if (fchmod(fd, S_IRUSR|S_IRGRP|S_IROTH) < 0) - fatal("cannot change permissions for temporary file"); + int fd = open(temp_index_file, O_CREAT|O_EXCL|O_RDWR, S_IRUSR|S_IWUSR); +#endif /* not HAVE_MKSTEMP */ + if (fd < 0) + fatal("can't create temporary index file: %1", strerror(errno)); indxfp = fdopen(fd, "w"); if (indxfp == 0) fatal("fdopen failed"); diff --git a/gnu/usr.bin/groff/libgroff/tmpfile.cc b/gnu/usr.bin/groff/libgroff/tmpfile.cc index 280d87c5e22..43d75f3b4df 100644 --- a/gnu/usr.bin/groff/libgroff/tmpfile.cc +++ b/gnu/usr.bin/groff/libgroff/tmpfile.cc @@ -69,18 +69,18 @@ FILE *xtmpfile() int fd = mkstemp(templ); if (fd < 0) fatal("cannot create temporary file: %1", strerror(errno)); - errno = 0; - FILE *fp = fdopen(fd, "w+"); - if (!fp) - fatal("fdopen: %1", strerror(errno)); #else /* not HAVE_MKSTEMP */ if (!mktemp(templ) || !templ[0]) fatal("cannot create file name for temporary file"); errno = 0; - FILE *fp = fopen(templ, "w+"); - if (!fp) + int fd = open(templ, O_CREAT|O_EXCL|O_RDWR, S_IRUSR|S_IWUSR); + if (fd < 0) fatal("cannot open `%1': %2", templ, strerror(errno)); #endif /* not HAVE_MKSTEMP */ + errno = 0; + FILE *fp = fdopen(fd, "w+"); + if (!fp) + fatal("fdopen: %1", strerror(errno)); if (unlink(templ) < 0) error("cannot unlink `%1': %2", templ, strerror(errno)); a_delete templ; diff --git a/gnu/usr.bin/groff/lkbib/Makefile.sub b/gnu/usr.bin/groff/lkbib/Makefile.sub index 30035bcf051..bd9a72b4414 100644 --- a/gnu/usr.bin/groff/lkbib/Makefile.sub +++ b/gnu/usr.bin/groff/lkbib/Makefile.sub @@ -1,5 +1,5 @@ PROG=lkbib -MAN1=lkbib.n +MAN1=lkbib.1 XLIBS=$(LIBBIB) $(LIBGROFF) MLIB=$(LIBM) OBJS=lkbib.o diff --git a/gnu/usr.bin/groff/lkbib/lkbib.man b/gnu/usr.bin/groff/lkbib/lkbib.1_in index f16a77ec694..f16a77ec694 100644 --- a/gnu/usr.bin/groff/lkbib/lkbib.man +++ b/gnu/usr.bin/groff/lkbib/lkbib.1_in diff --git a/gnu/usr.bin/groff/lookbib/Makefile.sub b/gnu/usr.bin/groff/lookbib/Makefile.sub index 1183812c561..f899908430e 100644 --- a/gnu/usr.bin/groff/lookbib/Makefile.sub +++ b/gnu/usr.bin/groff/lookbib/Makefile.sub @@ -1,5 +1,5 @@ PROG=lookbib -MAN1=lookbib.n +MAN1=lookbib.1 XLIBS=$(LIBBIB) $(LIBGROFF) MLIB=$(LIBM) OBJS=lookbib.o diff --git a/gnu/usr.bin/groff/lookbib/lookbib.man b/gnu/usr.bin/groff/lookbib/lookbib.1_in index 465990bae47..465990bae47 100644 --- a/gnu/usr.bin/groff/lookbib/lookbib.man +++ b/gnu/usr.bin/groff/lookbib/lookbib.1_in diff --git a/gnu/usr.bin/groff/man/Makefile.sub b/gnu/usr.bin/groff/man/Makefile.sub index 9b871148e85..fb7abbbb984 100644 --- a/gnu/usr.bin/groff/man/Makefile.sub +++ b/gnu/usr.bin/groff/man/Makefile.sub @@ -1,2 +1,2 @@ -MAN5=groff_font.n groff_out.n -MAN7=groff_char.n +MAN5=groff_font.5 groff_out.5 +MAN7=groff_char.7 diff --git a/gnu/usr.bin/groff/man/groff_char.man b/gnu/usr.bin/groff/man/groff_char.7_in index 18085dce7ab..18085dce7ab 100644 --- a/gnu/usr.bin/groff/man/groff_char.man +++ b/gnu/usr.bin/groff/man/groff_char.7_in diff --git a/gnu/usr.bin/groff/man/groff_font.man b/gnu/usr.bin/groff/man/groff_font.5_in index 97b6480274b..97b6480274b 100644 --- a/gnu/usr.bin/groff/man/groff_font.man +++ b/gnu/usr.bin/groff/man/groff_font.5_in diff --git a/gnu/usr.bin/groff/man/groff_out.man b/gnu/usr.bin/groff/man/groff_out.5_in index 9b421aeeac8..203f2d476d8 100644 --- a/gnu/usr.bin/groff/man/groff_out.man +++ b/gnu/usr.bin/groff/man/groff_out.5_in @@ -1,6 +1,6 @@ '\" e .ig \"-*- nroff -*- -Copyright (C) 1989-1995 Free Software Foundation, Inc. +Copyright (C) 1989-1999 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -77,7 +77,7 @@ and Note that single characters can have the eighth bit set, as can the names of fonts and special characters. .LP -The names of characters and fonts an be of arbitrary length; drivers +The names of characters and fonts can be of arbitrary length; drivers should not assume that they will be only two characters long. .LP When a character is to be printed, that character will always be diff --git a/gnu/usr.bin/groff/mm/ChangeLog b/gnu/usr.bin/groff/mm/ChangeLog index 5320294ae44..fb0d4fe1db2 100644 --- a/gnu/usr.bin/groff/mm/ChangeLog +++ b/gnu/usr.bin/groff/mm/ChangeLog @@ -1,3 +1,114 @@ +Mon Mar 15 22:22:42 1999 Jörgen Hägg (jh at axis.com) + + * OK, let's release this as a beta, 1.33 will be better. :-) + * version 1.32 + * fixed .el-error + * Added number variable Hss + * Changed Hps1 and Hps2 to units + * added hd*h1-text to be used in user defined macro TP. + * -U needed for SETR (I really need 'mv', 'echo', 'rm' + and 'test' builtin!) + * Rewritten the reference system, SETR now prints to stderr + if the number register Qrf > 0. Store in the filename + that is the argument to .INITR + The old behaviour is returned if number register Initr > 0. + * Fixed bug with List of XXXX, long lines messed up the result. + * added number register H1dot. + * added string variable H1txt + * added string variable Tcst + * added number register Dsp. + * added alias APPX for user-defined appendix title. + * added string variable Apptxt + * added H1h for use in TP in headers + * added macro EPIC + * added macro PIC (safe replacement for PSPIC) + * fixed Hps-bug, should be 1, not 1v. + * fixed bug with APPSK, variable not set. + +Wed Feb 4 15:46:04 1998 Jörgen Hägg (jh at axis.se) + + * version 1.31 + * .LI will now honor a space mark. + * Another fix for .AU to let it be used without arguments. + * uninitialized eq*label fixed + +Fri Sep 6 07:13:07 1996 Jörgen Hägg (jh at axis.se) + + * version 1.30 + * This is more like a beta-release, bugs might pop up. :-) + * last line in TOC was not correctly terminated (missing .br) + * changed the indentation for displays, it will now + indent to the current indent, not the one at the definition + of the display. + * Equation marks should now work better, indentation also. + * included these bug fixes from Larry Jones: + * The documentation for the argument to .AS was incorrect for MT 4. + * \*(EM should be a double-dash for nroff. + * \nS is in points, not units. + * If \nO isn't set, the default page offset should be .75i for nroff + and .963i for troff. + * .S D should set the point size to \nS, not 10. + * .S was setting the vertical spacing based on the old point size + instead of the new point size. + * Got rid of a spurrious .br that prevented run-in headings from + working. + * Reset the .SP counters in pg@header so that spacing on one page + won't affect spacing on subsequent pages. + * Allow .AU and .AF with no arguments (real mm does, even though it + isn't documented). + * Do .init@reset first thing to initialize the default environment. + * For MT 4, the title should be 4 points larger than the default size, + not 12 point. + * The cover environment needs to be initialized. + * Printing the abstract on the first page needs to be controlled by + the .AS argument. + * Heading eject should be suppressed if the heading immediately + follows the first page stuff (title, author, etc.). + * support for table of contents numbering style (.nr Oc) + * changes the troff empty line height from .25v to .5v + * fixed section page numbering + * fixed a really nasty bug in footnotes that could cause you + to lose the page footer completely if the very first + footnote on the page occurred at just the wrong place + + +Wed May 15 07:39:32 1996 Jörgen Hägg (jh at axis.se) + + * version 1.29 + * Syntax and scaling errror fixed, (thanks to Frazer Williams) + * DF/DE will now do a line-break before printing the display. + * Updated the manual for TB,FG,EX and EC. + * Added support for the ms- (and mgs-)macro .IX + * Added indexmacro IX, INITI, IND and INDP, support for + TXIND, TYIND and TZIND. + * PGFORM will now always really reset to the default + values for unspecified arguments. + * Floating displays tested and repaired, it should + now (finanlly) work exactly as the original (I hope :-). + * Should now set year correctly even after 2000. + * Stupid bug in PGNH fixed. + * Corrected line length for figure caption (FG and friends) + + +Mon Apr 24 07:37:52 1995 Jörgen Hägg (jh at axis.se) + + * version 1.28 + * Added AVL (AV without date) + * Fixed nroff scaling for W and L. + * Added support for register E and roman/bold + for all Subject/Date/From strings. + * Added support for register C (1-4), (for DRAFTs and other types) + * Will protest if not used with groff. + * Change of the internal number registers @ps and @vs, they + are now in units, and is set in the new macros .@ps and .@vs. + @ps and @vs is now corrected to the real point and vertical size. + * Macro EQ has now correct pointsize. + * Figures should now get the right page number in the index. + * User-defined macros can now be defined for list of + figures, tables, equations and exhibits (T{X,Y}{FG,TB,EC,EX}. + * Space may be omitted between prefix and mark in automatic lists (.AL) + See .LI + Tue Jan 10 07:51:37 1995 Jörgen Hägg (jh at axis.se) * version 1.27 diff --git a/gnu/usr.bin/groff/mm/Makefile.sub b/gnu/usr.bin/groff/mm/Makefile.sub index f3e3421659e..264e1a54b03 100644 --- a/gnu/usr.bin/groff/mm/Makefile.sub +++ b/gnu/usr.bin/groff/mm/Makefile.sub @@ -1,11 +1,12 @@ # -# $Id: Makefile.sub,v 1.3 1998/01/19 00:40:11 etheisen Exp $ +# $Id: Makefile.sub,v 1.4 2000/04/09 08:25:18 millert Exp $ # -MAN7=groff_mm.n groff_mmse.n +MAN7=groff_mm.7 groff_mmse.7 FILES=0.MT 5.MT 4.MT ms.cov se_ms.cov # Local configuration files with default values. LOCALE = locale se_locale CLEANADD=temp +tmac_m=m install: install_mm install_mm: install_m @@ -20,10 +21,10 @@ install_mm: install_m install_m: -test -d $(tmacdir) || mkdir $(tmacdir) - -rm -f $(tmacdir)/tmac.$(tmac_m_prefix)m - $(INSTALL_DATA) $(srcdir)/tmac.m $(tmacdir)/tmac.$(tmac_m_prefix)m - @sed -e "s;^.mso tmac.m;.mso $(tmac_m_prefix)m;g" $(srcdir)/tmac.mse \ - > $(tmacdir)/tmac.$(tmac_m_prefix)mse + -rm -f $(tmacdir)/tmac.$(tmac_m) + $(INSTALL_DATA) $(srcdir)/tmac.m $(tmacdir)/tmac.$(tmac_m) + @sed -e "s;^.mso tmac.m;.mso $(tmac_m);g" $(srcdir)/tmac.mse \ + > $(tmacdir)/tmac.$(tmac_m)se @@ -32,6 +33,6 @@ uninstall_sub: -for f in $(LOCALE); do \ test -s $(tmacdir)/mm/$$f || rm -f $(tmacdir)/mm/$$f; \ done - -rm -f $(tmacdir)/tmac.$(tmac_m_prefix)m - -rm -f $(tmacdir)/tmac.$(tmac_m_prefix)mse + -rm -f $(tmacdir)/tmac.$(tmac_m) + -rm -f $(tmacdir)/tmac.$(tmac_m)se -rmdir $(tmacdir)/mm diff --git a/gnu/usr.bin/groff/mm/README b/gnu/usr.bin/groff/mm/README index f08f68d4820..a720f07054f 100644 --- a/gnu/usr.bin/groff/mm/README +++ b/gnu/usr.bin/groff/mm/README @@ -13,7 +13,8 @@ of tmac.m) and the version of groff. Any new ideas or improvements are welcome. Newest version is available with anonymous FTP -at ftp.efd.lth.se [130.235.48.11], as pub/groff/mm<something>.Z +at ftp://ftp.efd.lth.se/pub/groff/mm<something>.gz +or ftp://ftp.axis.se/pub/groff/mm<something>.gz You can install mgm as a separate package without the configure in groff with the following command: diff --git a/gnu/usr.bin/groff/mm/groff_mm.man b/gnu/usr.bin/groff/mm/groff_mm.7_in index c2fa055cf24..cef92f10a31 100644 --- a/gnu/usr.bin/groff/mm/groff_mm.man +++ b/gnu/usr.bin/groff/mm/groff_mm.7_in @@ -1,22 +1,5 @@ -.ig \"-*- nroff -*- -Copyright (C) 1991-1995 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be included in -translations approved by the Free Software Foundation instead of in -the original English. -.. -.\" $Id: groff_mm.man,v 1.3 1998/01/19 00:40:12 etheisen Exp $ +.\" +.\" $Id: groff_mm.7_in,v 1.1 2000/04/09 08:25:18 millert Exp $ .\" .de T2 .ne 2v @@ -35,7 +18,7 @@ the original English. groff_mm \- groff mm macros .SH SYNOPSIS .B groff -.B \-m@TMAC_M_PREFIX@m +.B \-m@TMAC_M@ [ .IR options .\|.\|. ] @@ -55,16 +38,9 @@ the macros OK and PM is not implemented. .B \(bu groff mm does not support cut marks .LP -\fBm@TMAC_M_PREFIX@m\fP is intended to be international. Therefore it is +\fBm@TMAC_M@\fP is intended to be international. Therefore it is possible to write short national macrofiles which change all -english text to the preferred language. Use \fBm@TMAC_M_PREFIX@mse\fP as an example. -.LP -New macros: \fBAPP\fP, \fBAPPSK\fP, \fBB1\fP, \fBB2\fP, \fBBVL\fP, -\fBCOVER\fP, \fBCOVEND\fP, \fBGETHN\fP, \fBGETPN\fP, \fBGETR\fP, -\fBGETST\fP, \fBINITR\fP, \fBMC\fP, \fBMOVE\fP, \fBMULB\fP, -\fBMULN\fP, \fBMULE\fP, \fBPGFORM\fP, \fBPGNH\fP, \fBSETR\fP, -\fBTAB\fP, \fBVERBON\fP, \fBVERBOFF\fP. -.LP +english text to the preferred language. Use \fBm@TMAC_M@se\fP as an example. .\"######################################################################## .LP A file called \fBlocale\fP or \fIlang\fP\fB_locale\fP is read @@ -123,6 +99,12 @@ Set the format with \fBaf\fP: .LP \fBMacros:\fP .TP +.B ")E level text" +Adds \fBtext\fP (heading-text) to the table of contents +with \fBlevel\fP either 0 +or between 1-7. See also \fB.H\fP. This macro is used for customized +table of contents. +.TP .B "1C [1]" Begin one column processing. An \fB1\fP as argument disables the page-break. Use wide footnotes, small footnotes may be overprinted. @@ -166,6 +148,7 @@ variable \fBAph\fP is non-zero. This is the default. The appendix always appear in the 'List of contents' with correct pagenumber. The name \fIAPPENDIX\fP can be changed by setting the string \fBApp\fP to the desired text. +The string \fBApptxt\fP contains the current appendix text. .TP .B "APPSK name pages text" Same as \fB.APP\fP, but the pagenr is incremented with \fIpages\fP. @@ -179,14 +162,14 @@ Argument \fIarg\fP controls where the abstract is printed. .T2 Arg Placement .T2 0 -Abstract will be printed on page 1 and con the cover sheet if +Abstract will be printed on page 1 and on the cover sheet if used in the released-paper style (\fBMT 4\fP), otherwise it will be printed on page 1 without a cover sheet. .T2 1 -Abstract will only be printed on page 1 (\fBMT 4\fP only). +Abstract will only be printed on the cover sheet (\fBMT 4\fP only). .T2 2 -Abstract will be printed only on the cover sheet. The cover sheet -is printed without need for \fBCS\fP. +Abstract will be printed only on the cover sheet (other than \fBMT 4\fP only). +The cover sheet is printed without need for \fBCS\fP. .in Abstract is not printed at all in external letters (\fBMT 5\fP). The \fIindent\fP controls the indentation of both margins, otherwise @@ -200,7 +183,7 @@ Sets the text above the abstract text. Authors title. \fBAT\fP must appear just after each \fBAU\fP. The title will show up after the name in the signature block. .TP -.B "AU name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]]" +.B "AU [name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]]]" Author information, specifies the author of the memo or paper, and will be printed on the cover sheet and on other similar places. \fBAU\fP must appear before \fBTL\fP. The author information @@ -212,6 +195,9 @@ Approval signature, generates an approval line with place for signature and date. The string \fBAPPROVED:\fP can be changed with variable \fBLetapp\fP, and the string \fBDate\fP in \fBLetdate\fP. .TP +.B "AVL [name]" +Letter signature, generates a line with place for signature. +.TP .B "B [bold-text [prev-font-tex [bold...]]]" Begin boldface No limit on the number of arguments. @@ -409,12 +395,19 @@ change the numbering. It is possible to use \fB.af\fP to change the format of the number. If number register \fBOf\fP is 1, then the format of title will use a dash instead of a dot after the number. +.br The string \fBLe\fP controls the title of the List of Equations, default is \fILIST OF EQUATIONS\fP. +The List of Equations will only be printed if number register \fBLe\fP +is 1, default 0. The string \fBLiec\fP contains the word \fIEquation\fP, wich is printed before the number. -If \fIrefname\fP is used, then the equationnumber is saved with +If \fIrefname\fP is used, then the equation number is saved with \&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP. +.br +Special handling of the title will occur if +\fBEC\fP is used inside \fBDS\fP/\fBDE\fP, it will not be +affected by the format of \fBDS\fP. .TP .B "EF [arg]" Even-page footer, printed just above the normal page footer @@ -443,6 +436,14 @@ Argument from \fBEF\fP. Argument from \fBOF\fP. .in .TP +.B "EPIC width height [name]" +\fBEPIC\fP draws a box with the given \fIwidth\fP and \fIheight\fP, it will +also print the text \fIname\fP or a default string if +\fIname\fP is not specified.. +This is used to include external pictures, just give the size +of the picture. +See \fBPIC\fP +.TP .B "EQ [label]" Equation start. \fBEQ\fP/\fBEN\fP are the delimiters for equations written for \fBeqn\fP. @@ -453,14 +454,20 @@ number register \fBEq\fP is 1. Then the label will appear at the left margin. .TP .B "EX [title [override [flag [refname]]]]" -Exhibit title, arguments are the same as for \fBEC\fP +Exhibit title, arguments are the same as for \fBEC\fP. \fBEX\fP uses the number register \fBEx\fP as counter. The string \fBLx\fP controls the title of the List of Exhibits, default is \fILIST OF EXHIBITS\fP. +The List of Exhibits will only be printed if number register \fBLx\fP +is 1, default 1. The string \fBLiex\fP contains the word \fIExhibit\fP, wich is printed before the number. -If \fIrefname\fP is used, then the exhibitnumber is saved with +If \fIrefname\fP is used, then the exhibit number is saved with \&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP. +.br +Special handling of the title will occur if +\fBEX\fP is used inside \fBDS\fP/\fBDE\fP, it will not be +affected by the format of \fBDS\fP. .TP .B "FC [closing]" Prints \fIYours\ very\ truly,\fP as a formal closing of a letter or @@ -493,15 +500,26 @@ justification (ljust). .fi .DT Argument greater than or equal to 11 is considered as arg 0. -Default for m@TMAC_M_PREFIX@mm is 10. +Default for m@TMAC_M@m is 10. .TP .B FE Footnote end. .TP .B "FG [title [override [flag [refname]]]]" -Figure title. -If \fIrefname\fP is used, then the figurenumber is saved with +Figure title, arguments are the same as for \fBEC\fP. +\fBFG\fP uses the number register \fBFg\fP as counter. +The string \fBLf\fP controls the title of the +List of Figures, default is \fILIST OF FIGURES\fP. +The List of Figures will only be printed if number register \fBLf\fP +is 1, default 1. +The string \fBLifg\fP contains the word \fIFigure\fP, wich +is printed before the number. +If \fIrefname\fP is used, then the figure number is saved with \&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP. +.br +Special handling of the title will occur if +\fBFG\fP is used inside \fBDS\fP/\fBDE\fP, it will not be +affected by the format of \fBDS\fP. .TP .B "FS [label]" Footnote start. @@ -752,12 +770,59 @@ See \fBI\fP. .B IE Ends the address-specification after \fPIA\fP. .TP +.B "INITI filename [type]" +Initialize the new index system, sets the filename to collect +index lines in with \fBIND\fP. Argument \fItype\fP selects +teh type of index, page number, header marks or both. +The default is \fIN\fP. +.sp +\fBtype\fP +.in +.5i +.T2 N +Page numbers +.T2 H +Header marks +.T2 B +Both page numbers and header marks, tab separated +.in +.TP +.B "IND arg1 [arg2 [...]]" +\fBIND\fP writes a line in the index file selected by \fBINITI\fP +with all arguments and the page number or header mark separated by tabs. +.in +.5i +\fBExamples\fP +.br +arg1\etpage number +.br +arg1\etarg2\etpage number +.br +arg1\etheader mark +.br +arg1\etpage number\etheader mark +.in +.TP +.B "INDP" +\fBINDP\fP prints the index by running the command specified +by string variable \fBIndcmd\fP, normally \fIsort\ -t\et\fP. +\fBINDP\fP reads the output from the command to form +the index, normally in two columns (can be changed by defining \fBTYIND\fP). +The index is printed with string variable \fBIndex\fP as header, +default is \fBINDEX\fP. One-column processing is +returned after the list. \fBINDP\fP will call the +user-defined macros \fBTXIND\fP, \fBTYIND\fP and \fBTZIND\fP if defined. +\fBTXIND\fP is called before printing \fBINDEX\fP, \fBTYIND\fP +is called instead of printing \fBINDEX\fP. \fBTZIND\fP is called +after the printing and should take care of restoring to normal +operation again. + +.TP .B "INITR filename" Initialize the refencemacros. References will be written to \fIfilename.tmp\fP and \fIfilename.qrf\fP. Requires two passes with groff. The first looks for references and the second includes them. \fBINITR\fP can be used several times, but it is only the first occurrence of \fBINITR\fP that is active. +Option \fB-U\fP might be needed if \fBunsafe\fP-errors occur. See also \fBSETR\fP, \fBGETPN\fP and \fBGETHN\fP. .TP .B "IR [italic-text [roman-text [italic-text [...]]]" @@ -828,7 +893,12 @@ List item precedes every item in a list. Without argument \fBLS\fP will print the mark determined by the current list type. By giving \fBLI\fP one argument, it will use that as the mark instead. Two arguments to \fBLI\fP will make \fImark\fP a prefix to -the current mark. A zero length \fImark\fP will make a hanging +the current mark. +There will be no separating space between the prefix +and the mark if the second argument is \fB2\fP instead of \fB1\fP. +This behaviour can also be achieved by setting number register +\fBLimsp\fP to zero. +A zero length \fImark\fP will make a hanging indent instead. .sp A blank line is normally printed before the list item. This behaviour @@ -1060,6 +1130,9 @@ to reset everything after a \fBMOVE\fP. A line-break is done unless the fourth argument is given. This can be used to avoid the pagenumber on the first page while setting new width and length. +(It seems as if this macro sometimes doesn't work too well. +Use the command line arguments +to change linelength, pagelength and pageoffset instead. Sorry.) .TP .B PGNH No header is printed on the next page. Used to get rid off @@ -1067,9 +1140,16 @@ the header in letters or other special texts This macro must be used before any text to inhibit the pageheader on the first page. .TP +.B PIC [-L] [-C] [-R] [-I n] filename [width [height]] +\fBPIC\fP includes a Postscript file in the document. +The macro depends on \fBmgm_ref\fP and \fBINITR\fP. +\fB-L\fP, \fB-C\fP, \fB-R\fP and \fB-I n\fP adjusts the picture +or indents it. The optionally \fIwidth\fP and \fIheight\fP +can also be given to resize the picture. +.TP .B PE Picture end. -Ends a picture for \fB@g@pic\fP, see the manual for \fB@g@pic\fP. +Ends a picture for \fB@TMAC_M@pic\fP, see the manual for \fB@TMAC_M@pic\fP. .TP .B "PF [arg]" Page footer. @@ -1216,9 +1296,18 @@ to avoid this. reset tabs to every 5n. Normally used to reset any previous tabpositions. .TP .B "TB [title [override [flag [refname]]]]" -Table title. -If \fIrefname\fP is used, then the tablenumber is saved with -\&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP. +Table title, arguments are the same as for \fBEC\fP. +\fBTB\fP uses the number register \fBTb\fP as counter. +The string \fBLt\fP controls the title of the +List of Tables, default is \fILIST OF TABLES\fP. +The List of Tables will only be printed if number register \fBLt\fP +is 1, default 1. +The string \fBLitb\fP contains the word \fITABLE\fP, wich +is printed before the number. +.br +Special handling of the title will occur if +\fBTB\fP is used inside \fBDS\fP/\fBDE\fP, it will not be +affected by the format of \fBDS\fP. .TP .B "TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]]" Table of contents. @@ -1239,9 +1328,13 @@ The rest of the arguments will be printed, centered, before the table of contents. .sp The user-defined macros \fBTX\fP and \fBTY\fP are used if \fBTC\fP is called -with at most four arguments. \fBRX\fP is called before the printing +with at most four arguments. \fBTX\fP is called before the printing of \fICONTENTS\fP, and \fBTY\fP is called instead of printing \fICONTENTS\fP. .sp +Equivalent macros can be defined for list of figures, tables, equations +and excibits by defining \fBTXxx\fP or \fBTYxx\fP, where \fBxx\fP +is \fBFg\fP, \fBTB\fP, \fBEC\fP or \fBEX\fP. +.sp String \fBCi\fP can be set to control the indentations for each heading-level. It must be scaled, like \fB.ds\ Ci\ .25i\ .5i\ .75i\ 1i\ 1i\fP. The indentation is normally controlled by the maxlength of headings @@ -1372,14 +1465,21 @@ Floating displays does not generate line break. .LP .\"######################################################################## .LP -.B "Strings used in m@TMAC_M_PREFIX@m:" +.B "Strings used in m@TMAC_M@:" .TP .B App A string containing the word "APPENDIX". .TP +.B Apptxt +.TP +The current appendix text. .B "EM" Em dash string .TP +.B H1txt +Will be updated by \fB.H\fP and \fB.HU\fP to the current heading text. +Also updated in table of contents & friends. +.TP .B HF Fontlist for headings, normally "2 2 2 2 2 2 2". Nonnumeric fontnames may also be used. @@ -1388,6 +1488,12 @@ Nonnumeric fontnames may also be used. Pointsize list for headings. Normally "0 0 0 0 0 0 0" which is the same as "10 10 10 10 10 10 10". .TP +.B Index +.TP +Contains \fIINDEX\fP. +.B Indcmd +.TP +Contains the index command, \fIsort\ -t\et\fP. .B Lifg String containing \fIFigure\fP. .TP @@ -1480,6 +1586,22 @@ String containing "See chapter \e\e*[Qrfh], page \e\en[Qrfp].". .B Rp Contains "REFERENCES". .TP +.B Tcst +Contains current status of table of contents and list of XXXX. +Empty outside \fB.TC\fP. +Useful in user-defined macros like \fB.TP\fP. +.nf +.ta 1.5i +\fBValue Meaning\fP +co Table of contents +fg List of figures +tb List of tables +ec List of equations +ex List of exhibits +ap Appendix +.fi +.ta +.TP .B Tm Contains \e(tm, trade mark. .TP @@ -1487,7 +1609,7 @@ Contains \e(tm, trade mark. Argument to \fB.nm\fP in \fB.VERBON\fP, default: \fB1\fP. .\"----------------------------------- .LP -.B "Number variables used in m@TMAC_M_PREFIX@m:" +.B "Number variables used in m@TMAC_M@:" .TP .B Aph Print an appendix-page for every new appendix @@ -1508,11 +1630,15 @@ gives information about the progress of formatting, default 0. .B De Eject after floating display is output [0:1], default 0. .TP +.B Dsp +Controls the space output before and after static displays +if defined. Otherwise is the value of Lsp used. +.TP .B Df Floating keep output [0:5], default 5. .TP .B Ds -space before and after display if == 1 [0:1], default 1. +\fBLsp\fP space before and after display if == 1 [0:1], default 1. .TP .B Ej Eject page, default 0. @@ -1526,6 +1652,13 @@ Footnote spacing, default 1. .B "H1-H7" Heading counters .TP +.B H1dot +Append a dot after the level one heading number if > 0. Default is 1. +.TP +.B H1h +.TP +Copy of number register \fBH1\fP, but it is incremented +just before the page break. Useful in user defined header macros. .B Hb Heading break level [0:7], default 2. .TP @@ -1550,15 +1683,19 @@ The real amount of lines is controlled by the variables \fBHps1\fP and .TP .B Hps1 This is the number of lines preceding \fB.H\fP when the heading-level -is greater than \fBHps\fP. Value is in units, normally 0.5v. +is greater than \fBHps\fP. Value is in units, normally 0.5. .TP .B Hps2 This is the number of lines preceding \fB.H\fP when the heading-level -is less than or equal to \fBHps\fP. Value is in units, normally 1v. +is less than or equal to \fBHps\fP. Value is in units, normally 1. .TP .B Hs Heading space level [0:7], default 2. .TP +.B Hss +This is the number of lines that follows \fB.H\fP when the heading-level +is less than or equal to \fBHs\fP. Value is in units, normally 1. +.TP .B Ht Heading numbering type, default 0. 0 -> multiple (1.1.1 ...) @@ -1586,6 +1723,13 @@ Default: Lf=1, Lt=1, Lx=1, Le=0. .B Li List indent, used by .AL, default 6. .TP +.B Limsp +Flag for space between prefix and mark in automatic lists (.AL). +.br +0\ ==\ no space +.br +1\ ==\ space +.TP .B Ls List space, if current listlevel > Ls then no spacing will occur around lists. Default 99. @@ -1714,7 +1858,7 @@ variable \fBlet*lo-\fP\fItype\fP. Jörgen Hägg, Lund, Sweden <jh@axis.se>. .SH FILES .TP -.B @MACRODIR@/tmac.@TMAC_M_PREFIX@m +.B @MACRODIR@/tmac.@TMAC_M@ .TP .B @TMAC_MDIR@/*.cov .TP @@ -1729,4 +1873,4 @@ Jörgen Hägg, Lund, Sweden <jh@axis.se>. .BR @g@eqn (@MAN1EXT@) .br .BR mm (@MAN7EXT@) -.BR m@TMAC_M_PREFIX@mse (@MAN7EXT@) +.BR m@TMAC_M@se (@MAN7EXT@) diff --git a/gnu/usr.bin/groff/mm/groff_mmse.man b/gnu/usr.bin/groff/mm/groff_mmse.7_in index 01eefd958b4..ab5830766fa 100644 --- a/gnu/usr.bin/groff/mm/groff_mmse.man +++ b/gnu/usr.bin/groff/mm/groff_mmse.7_in @@ -1,5 +1,5 @@ -.\" -*- nroff -*- -.\" $Id: groff_mmse.man,v 1.3 1998/01/19 00:40:13 etheisen Exp $ +.\" +.\" $Id: groff_mmse.7_in,v 1.1 2000/04/09 08:25:19 millert Exp $ .\" Skrivet av Jörgen Hägg, Lund, Sverige .\" .TH GROFF_MMSE @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@" @@ -7,7 +7,7 @@ groff_mmse \- svenska mm makro för groff .SH SYNTAX .B groff -.B \-m@TMAC_M_PREFIX@mse +.B \-m@TMAC_M@se [ .IR flaggor .\|.\|. ] @@ -15,7 +15,7 @@ groff_mmse \- svenska mm makro för groff .IR filer .\|.\|. ] .SH BESKRIVNING -\fBm@TMAC_M_PREFIX@mse\fP är en svensk variant av \fBm@TMAC_M_PREFIX@m\fP. Alla texter +\fBm@TMAC_M@se\fP är en svensk variant av \fBm@TMAC_M@\fP. Alla texter är översatta. En A4 sida får text som är 13 cm bred, 3.5 cm indragning samt är 28.5 cm hög. Det finns stöd för brevuppställning enligt svensk standard @@ -68,9 +68,9 @@ parenteser. Om makrot \fB.TP\fP är definierat anropas det efter utskrift av brevhuvudet. Där lägger man lämpligen in postadress och annat som brevfot. .SH "SKRIVET AV" -Jörgen Hägg, Lund, Sweden <jh@axis.se> +Jörgen Hägg, Lund, Sweden <Jorgen.Hagg@axis.se> .SH FILER -.B @MACRODIR@/tmac.@TMAC_M_PREFIX@mse +.B @MACRODIR@/tmac.@TMAC_M@se .B @TMAC_MDIR@/se_*.cov .SH "SE OCKSÅ" .BR groff (@MAN1EXT@), @@ -79,4 +79,4 @@ Jörgen Hägg, Lund, Sweden <jh@axis.se> .BR @g@pic (@MAN1EXT@), .BR @g@eqn (@MAN1EXT@) .br -.BR m@TMAC_M_PREFIX@m (@MAN7EXT@) +.BR m@TMAC_M@ (@MAN7EXT@) diff --git a/gnu/usr.bin/groff/mm/mm/0.MT b/gnu/usr.bin/groff/mm/mm/0.MT index 548c4a8bfca..a8564a0d826 100644 --- a/gnu/usr.bin/groff/mm/mm/0.MT +++ b/gnu/usr.bin/groff/mm/mm/0.MT @@ -1,5 +1,5 @@ .\"------------ -.\" $Id: 0.MT,v 1.3 1998/01/19 00:40:18 etheisen Exp $ +.\" $Id: 0.MT,v 1.4 2000/04/09 08:25:19 millert Exp $ .\" Cover sheet. Memorandum type 0-3 and "string". .\"------------ .if !r Au .nr Au 1 @@ -11,11 +11,11 @@ subject: .sp -1.1 .S .PGFORM -.B +.ft \\*[@sdf_font] .ll 9c .fi .cov*title -.R +.ft .ll .nf .if d cov*title-charge-case \fBCharge Case \\*[cov*title-charge-case]\fP @@ -32,7 +32,7 @@ subject: .S .sp -1 .in 0.8c -.B +.ft \\*[@sdf_font] .nr cov*i 0 1 .while \\n+[cov*i]<=\\n[cov*au] \{\ . cov@print-au1 \\n[cov*i] 1 @@ -45,17 +45,17 @@ subject: . \} . if \\n[cov*i]<\\n[cov*au] .SP 1 .\} -.R +.ft .if r cov*mt-tm-max \{\ . SP 1 . nr cov*i 0 1 -. B +. ft \\*[@sdf_font] TM . in 1.5c . sp -1 . while \\n+[cov*i]<\\n[cov*mt-tm-max] \\*[cov*mt-tm!\\n[cov*i]] . in -. R +. ft .\} .fi .PGFORM @@ -83,7 +83,7 @@ TM .S .sp -1 .in 0.8c -.B "\\*[cov*new-date]" +\f[\\*[@sdf_font]]\\*[cov*new-date]\fP .br .fi .PGFORM diff --git a/gnu/usr.bin/groff/mm/mm/4.MT b/gnu/usr.bin/groff/mm/mm/4.MT index 232f4331843..73f6a534ade 100644 --- a/gnu/usr.bin/groff/mm/mm/4.MT +++ b/gnu/usr.bin/groff/mm/mm/4.MT @@ -1,11 +1,11 @@ .\"------------ -.\" $Id: 4.MT,v 1.3 1998/01/19 00:40:19 etheisen Exp $ +.\" $Id: 4.MT,v 1.4 2000/04/09 08:25:19 millert Exp $ .\" Cover sheet. Memorandum type 4 .\"------------ .de cov@print-title .if !d cov*title .@error title (.TL) not defined! .MOVE 2.4c -.S 12 +.S +4 .ad c .fi .B @@ -41,6 +41,7 @@ .SP 2 .if d cov*abstract \{\ . misc@ev-keep cov*ev +. init@reset . if \\n[cov*abs-ind]>0 \{\ . in +\\n[cov*abs-ind]u . ll -\\n[cov*abs-ind]u @@ -60,9 +61,19 @@ . cov@print-title . cov@print-authors . cov@print-firm -. cov@print-abstract +. if !\n[cov*abs-arg] .cov@print-abstract . SP 3 +. nr hd*cur-bline \n[nl] . ds cov*mt-printed . pg@enable-top-trap . pg@enable-trap .\} +.de CS +.pg@disable-top-trap +.SK +.cov@print-title +.cov@print-authors +.cov@print-firm +.cov@print-abstract +.. + diff --git a/gnu/usr.bin/groff/mm/mm/5.MT b/gnu/usr.bin/groff/mm/mm/5.MT index 157bb74e389..7bc565a5e94 100644 --- a/gnu/usr.bin/groff/mm/mm/5.MT +++ b/gnu/usr.bin/groff/mm/mm/5.MT @@ -1,5 +1,5 @@ .\"------------ -.\" $Id: 5.MT,v 1.3 1998/01/19 00:40:20 etheisen Exp $ +.\" $Id: 5.MT,v 1.4 2000/04/09 08:25:20 millert Exp $ .\" Cover sheet. Memorandum type 5 .\"------------ .nr cov*mt0-ind 1.1c @@ -18,7 +18,7 @@ .\"------------ .de cov@print-date .rj 1 -.B "\\*[cov*new-date]" +\f[\\*[@sdf_font]]\\*[cov*new-date]\fP .br .. .\"------------ diff --git a/gnu/usr.bin/groff/mm/mm/ms.cov b/gnu/usr.bin/groff/mm/mm/ms.cov index dc110011a35..2e0f21baff4 100644 --- a/gnu/usr.bin/groff/mm/mm/ms.cov +++ b/gnu/usr.bin/groff/mm/mm/ms.cov @@ -1,5 +1,5 @@ .\"------------ -.\" $Id: ms.cov,v 1.3 1998/01/19 00:40:20 etheisen Exp $ +.\" $Id: ms.cov,v 1.4 2000/04/09 08:25:20 millert Exp $ .\" Cover sheet. Mostly like ms cover. .\"------------ .de cov@print-title @@ -62,7 +62,7 @@ .\"------------ .de cov@print-date .SP 2 -\\*[cov*new-date] +\f[\\*[@sdf_font]]\\*[cov*new-date]\fP .. .\"----------------- .de COVEND diff --git a/gnu/usr.bin/groff/mm/mm/se_ms.cov b/gnu/usr.bin/groff/mm/mm/se_ms.cov index 11a6b53431d..d472d101117 100644 --- a/gnu/usr.bin/groff/mm/mm/se_ms.cov +++ b/gnu/usr.bin/groff/mm/mm/se_ms.cov @@ -1,3 +1,3 @@ -.\" $Id: se_ms.cov,v 1.3 1998/01/19 00:40:21 etheisen Exp $ +.\" $Id: se_ms.cov,v 1.4 2000/04/09 08:25:20 millert Exp $ .mso mm/ms.cov .nr cur*abstract-ll 11c diff --git a/gnu/usr.bin/groff/mm/tmac.m b/gnu/usr.bin/groff/mm/tmac.m index 4491e24c0df..3cbba6e0610 100644 --- a/gnu/usr.bin/groff/mm/tmac.m +++ b/gnu/usr.bin/groff/mm/tmac.m @@ -3,11 +3,11 @@ .ds RE \\$2 .. .\" -.\" $Id: tmac.m,v 1.4 1998/01/19 00:40:14 etheisen Exp $ -.@revision $Revision: 1.4 $ +.\" $Id: tmac.m,v 1.5 2000/04/09 08:25:19 millert Exp $ +.@revision $Revision: 1.5 $ .ig -Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +Copyright (C) 1991-1998 Free Software Foundation, Inc. mgm is written by Jörgen Hägg <jh@axis.se> mgm is free software; you can redistribute it and/or modify it under @@ -22,13 +22,9 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -Almost complete. The letter format is not included. -Maybe as a separate package. -Should be better as time goes. - -Please send bugreports with examples to jh@axis.se. +Please send bugreports with examples to jh@axis.com. Naming convention stolen from mgs. Local names module*name @@ -36,6 +32,8 @@ Extern names module@name Env.var environ:name Index array!index .. +.if !\n(.g .ab These mm macros require groff. +.if \n(.C .ab The groff mm macros do not work in compatibility mode. .warn .\" ######## init ####### .\" Contents level [0:7], contents saved if heading level <= Cl @@ -52,10 +50,11 @@ Index array!index .nr Ds 1 .\" Eject page .nr Ej 0 -.\" Equation lable adjust 0=left, 1=right +.\" Equation label adjust 0=left, 1=right .nr Eq 0 .\" Em dash string -.ds EM \- +.ie n .ds EM " -- +.el .ds EM \(em .\" Footnote spacing .nr Fs 1 .\" H1-H7 heading counters @@ -113,6 +112,8 @@ Index array!index .\" Format of figure,table,exhibit,equation titles. .\" 0= ". ", 1=" - " .nr Of 0 +.\" Table of contents page numbering style +.nr Oc 0 .\" Page-number, normally same as %. .nr P 0 .\" paragraph indent @@ -129,6 +130,10 @@ Index array!index .\" Display indent .nr Si 5 .\" +.\" Current state of TOC, empty outside TC, inside +.\" it will be set to co,fg,tb,ec,ex or ap. +.ds Tcst +.\" .ds Tm \(tm .\" .\"--------------------------------------------- @@ -137,32 +142,57 @@ Index array!index .\" This is for cover macro .MT .\" .ds @language .\" -.\" Current pointsize and vertical space, always in points. -.ie r S \{\ -. nr @ps \n[S] -. nr @vs \n[S]+2 +.nr @copy_type 0 +.if r C .nr @copy_type \n[C] +.\" >0 if Subject/Date/From should be bold, roman otherwise +.ie n .ds @sdf_font R +.el .ds @sdf_font B +.if \n[@copy_type]=4 \{\ +. ls 2 +. nr Pi 10 +. nr Pt 1 .\} -.el \{\ -. nr @ps 10 -. nr @vs 12 +.\" +.\" +.if r E \{\ +. ie \n[E] .ds @sdf_font B +. el .ds @sdf_font R .\} .\" +.\" Current pointsize and vertical space, always in points. +.if !r S .nr S 10 +.ps \n[S] +.vs \n[S]+2 +.\" +.nr @ps \n[.ps] +.nr @vs \n[.v] +.if \n[D]>1 .tm @ps=\n[@ps], @vs=\n[@vs] +.\" .\" Page length -.ie r L .nr @pl \n[L] -.el .nr @pl \n[.p] +.if r L \{\ +. ie n .pl \n[L]u +. el .pl \n[L]u +.\} +.nr @pl \n[.p] +.\" .\" page width -.ie r W .nr @ll \n[W] -.el .nr @ll 6i +.ie r W \{\ +. ie n .ll \n[W]u +. el .ll \n[W]u +.\} +.el .ll 6i +.nr @ll \n[.l] +.nr @cur-ll \n[@ll] +.lt \n[@ll]u +.\" .\" page offset -.ie r O .nr @po \n[O] -.el .nr @po \n(.o +.ie r O .po \n[O] +.el \{\ +. ie n .po .75i +. el .po .963i +.\} .\" -.\" cheating... -.pl \n[@pl]u -.ll \n[@ll]u -.lt \n[@ll]u -.po \n[@po]u -.nr @cur-ll \n[@ll] +.nr @po \n[.o] .\" .\" non-zero if escape mechanism is turned off. Used by VERBON/OFF .nr @verbose-flag 0 @@ -174,18 +204,40 @@ Index array!index .\" print appendixheader, 0 == don't .nr Aph 1 .\" +.\" Current appendix text +.ds Apptext +.\" Controls the space before and after static displays if defined. +.\" Lsp is used otherwise +.\" .nr Dsp 1v +.\" +.\" Add a dot after level one heading number if >0 +.nr H1dot 1 +.\" .\" header prespace level. If level <= Hps, then two lines will be printed .\" before the header instead of one. .nr Hps 1 .\" .\" These variables controls the number of lines preceding .H. .\" Hps1 is the number of lines when level > Hps -.nr Hps1 0.5v -.if n .nr Hps1 1v +.nr Hps1 0.5 +.if n .nr Hps1 1 +.\" +.\" Hps2 is the number of lines when level <= Hps +.nr Hps2 1 +.if n .nr Hps2 2 +.\" +.\" Hss is the number of lines (Lsp) after the header. +.nr Hss 1 +.\" +.\" H1txt will be updated by .H and .HU, containing the heading text. +.\" Will also be updated in table of contents & friends .\" -.\" Hps2 is the number of lines when level >= Hps -.nr Hps2 1v -.if n .nr Hps2 2v +.ds H1txt +.\" +.\" header text for the index +.ds Index INDEX +.\" command to sort the index +.ds Indcmd sort .\" .\" flag for mkindex .if !r Idxf .nr Idxf 0 @@ -195,6 +247,9 @@ Index array!index .ds Liex Exhibit .ds Liec Equation .ds Licon CONTENTS +.\" Flag for space between mark and prefix 1==space, 0==no space +.\" Can also be controlled by using '.LI mark 2' +.nr Limsp 1 .\" .\" Lsp controls the height of an empty line. Normally 0.5v .\" Normally used for nroff compatibility. @@ -269,6 +324,12 @@ Index array!index .ds Letns!13 Complete Memorandum to .ds Letns!14 CC: .\" +.\" Text printed below the footer. Controlled by @copy_type (C). +.ds Pg_type!0 +.ds Pg_type!1 OFFICIAL FILE COPY +.ds Pg_type!2 DATE FILE COPY +.ds Pg_type!3 D\ R\ A\ F\ T +.ds Pg_type!4 D\ R\ A\ F\ T .\" Max lines in return address .nr Letwam 14 .\"-------------------------- @@ -276,9 +337,20 @@ Index array!index .\" what macros is used. .nr .mgm 1 .\" +.\" Due to security problems with groff I had to rewrite +.\" the reference system. It's not as elegant as before, you +.\" have to run groff with '-z -rRef=1' and put stderr into the filename +.\" for .INITR +.\" +.\" Output references to stderr if non-zero +.ie !r Ref \{\ +. nr Ref 0 +.\} +.el .warn 0 +.\" .\"--------------------------------------------- .\" set local variables. -.ie d @language .mso mm/\\*[@language]_locale +.ie d @language .mso mm/\*[@language]_locale .el .mso mm/locale .\"--------------------------------------------- .if \n[D] .tm Groff mm, version \*[RE]. @@ -291,8 +363,8 @@ Index array!index .el 'nh 'in 0 'ti 0 -'ps \\n[@ps] -'vs \\n[@vs] +.ps \\n[@ps]u +.vs \\n[@vs]u .. .de @warning 'tm WARNING:(\\n[.F]) input line \\n[.c]:\\$* @@ -345,12 +417,12 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .de P .\" skip P if previous heading .ie !((\\n[nl]=\\n[hd*last-pos]):(\\n[nl]=(\\n[hd*last-pos]-.5v))) \{\ -. if \\n[D]>2 .tm Paragraph +. if \\n[D]>2 .tm Paragraph nl=\\n[nl] . par@doit \\$* . if \\n[Np] \\n[H1].\\n+[par*number]\ \ \c .\} .el .if !(\\n[hd*last-hpos]=\\n[.k]) \{\ -. if \\n[D]>2 .tm Paragraph +. if \\n[D]>2 .tm Paragraph nl=\\n[nl] . par@doit \\$* . if \\n[Np] \\n[H1].\\n+[par*number]\ \ \c .\} @@ -360,12 +432,12 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .de nP .\" skip P if previous heading .ie !((\\n[nl]=\\n[hd*last-pos]):(\\n[nl]=(\\n[hd*last-pos]-.5v))) \{\ -. if \\n[D]>2 .tm Paragraph +. if \\n[D]>2 .tm Paragraph nl=\\n[nl] . par@doit \\$* \\n[H2].\\n+[par*number2]\ \ \c .\} .el .if !(\\n[hd*last-hpos]=\\n[.k]) \{\ -. if \\n[D]>2 .tm Paragraph +. if \\n[D]>2 .tm Paragraph nl=\\n[nl] . par@doit \\$* \\n[H2].\\n+[par*number2]\ \ \c .\} @@ -468,14 +540,28 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" Hope this doesn't break anything else :-) .\" Don't break if arg_4 is a '1'. .if ''\\$4' .br -.if !''\\$1' .nr @ll \\$1 -.if !''\\$2' .nr @pl \\$2 -.if !''\\$3' .nr @po \\$3 -.ll \\n[@ll]u -.lt \\n[@ll]u -.po \\n[@po]u -.pl \\n[@pl]u -.nr @cur-ll \\n[@ll] +.ie !''\\$1' \{\ +. ll \\$1 +. nr @ll \n[.l] +. nr @cur-ll \\n[@ll] +. lt \\n[@ll]u +.\} +.el \{\ +. ll \\n[@ll]u +. lt \\n[@ll]u +.\} +.\" +.ie !''\\$2' \{\ +. pl \\$2 +. nr @pl \n[.p] +.\} +.el .pl \\n[@pl]u +.\" +.ie !''\\$3' \{\ +. po \\$3 +. nr @po \n[.o] +.\} +.el .po \\n[@po]u 'in 0 .pg@move-trap .. @@ -529,28 +615,32 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" .\" set point size .if !'\\*[misc*a]'C' \{\ -. ie '\\*[misc*a]'P' .nr @ps \\n[misc*S-ps] +. ie '\\*[misc*a]'P' .ps \\n[misc*S-ps]u . el \{\ -. ie '\\*[misc*a]'D' .nr @ps 10 -. el .nr @ps \\*[misc*a] +. ie '\\*[misc*a]'D' .ps \\n[@ps]u +. el .ps \\*[misc*a] +. if \\n[D]>2 .tm S: .ps \\*[misc*a] . \} .\} .\" .\" set vertical spacing .if !'\\*[misc*b]'C' \{\ -. ie '\\*[misc*b]'P' .nr @vs \\n[misc*S-vs] +. ie '\\*[misc*b]'P' .vs \\n[misc*S-vs]u . el \{\ -. ie '\\*[misc*b]'D' .nr @vs \\n[@ps]+2 -. el .nr @vs \\*[misc*b] +. ie '\\*[misc*b]'D' .vs \\n[.ps]u+2p +. el .vs \\*[misc*b] +. if \\n[D]>2 .tm S: .vs \\*[misc*b] . \} .\} -'ps \\n[@ps] -'vs \\n[@vs] -.if \\n[D]>1 .tm point-size \\n[@ps] (\\n[.s]), vertical spacing \\n[@vs] (\\n[.v]) +.nr @ps \\n[.ps] +.nr @vs \\n[.v] +.\" +.if \\n[D]>1 .tm S(\\$*): ma:\\*[misc*a], mb:\\*[misc*b] => ps:\\n[@ps]u, vs:\\n[@vs]u .nr misc*S-ps \\n[misc*S-ps1] .nr misc*S-vs \\n[misc*S-vs1] .nr misc*S-ps1 \\n[@ps] .nr misc*S-vs1 \\n[@vs] +.pg@move-trap .. .\"------------ .de HC @@ -620,6 +710,140 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .ev .nr @verbose-flag 0 .. +.\" ######## module pict ################# +.nr pict*width 0 +.nr pict*height 0 +.nr pict*mode 0 +.nr pict*ind 0 +.nr pict*id 0 1 +.\" I assume that the number variable pict*id is the same +.\" between two runs. +.de PIC +.br +.nr pict*ind 0 +.nr pict*box 0 +.while \\n[.$]>0 \{\ +. if '-B'\\$1' \{\ +. nr pict*box 1 +. shift +. continue +. \} +. if '-L'\\$1' \{\ +. nr pict*mode 0 +. shift +. continue +. \} +. if '-R'\\$1' \{\ +. nr pict*mode 1 +. shift +. continue +. \} +. if '-I'\\$1' \{\ +. nr pict*ind (m;\\$2) +. nr pict*mode 2 +. shift 2 +. continue +. \} +. if '-C'\\$1' \{\ +. nr pict*mode 3 +. shift +. continue +. \} +. ds pict*f \\$1 +. nr pict*id +1 +. shift +. if \\n[.$]>0 \{\ +. nr pict*width (i;\\$1) +. shift +. \} +. if \\n[.$]>0 \{\ +. nr pict*height (i;\\$1) +. shift +. \} +.\} +.if \\n[Ref]>0 \{\ +. tm .\\\\" PIC id \\n[pict*id] +. tm .\\\\" PIC file \\*[pict*f] +.\} +.if d pict*file!\\n[pict*id] \{\ +. ds pict*f \\*[pict*file!\\n[pict*id]] +. nr pict*llx \\n[pict*llx!\\n[pict*id]] +. nr pict*lly \\n[pict*lly!\\n[pict*id]] +. nr pict*urx \\n[pict*urx!\\n[pict*id]] +. nr pict*ury \\n[pict*ury!\\n[pict*id]] +. \" +. nr pict*w (p;\\n[pict*urx]-\\n[pict*llx]) +. if \\n[pict*w]<0 .nr pict*w 0-\\n[pict*w] +. nr pict*h (p;\\n[pict*ury]-\\n[pict*lly]) +. if \\n[pict*h]<0 .nr pict*h 0-\\n[pict*h] +. if \\n[pict*width]>0 \{\ +. nr pict*rs (u;1000*\\n[pict*width]/\\n[pict*w]) +. nr pict*w (u;\\n[pict*w]*\\n[pict*rs]/1000) +. nr pict*h (u;\\n[pict*h]*\\n[pict*rs]/1000) +. \} +. if \\n[pict*height]>0 \{\ +. nr pict*rs (u;1000*\\n[pict*height]/\\n[pict*h]) +. nr pict*h (u;\\n[pict*h]*\\n[pict*rs]/1000) +. \} +. if '0'\\n[pict*mode]' \{\ +. nr pict*in \\n[.i]u +. \} +. if '1'\\n[pict*mode]' \{\ +. nr pict*in (u;\\n[.l]-\\n[.i]-\\n[pict*w]) +. \} +. if '2'\\n[pict*mode]' \{\ +. nr pict*in \\n[pict*ind]u +. \} +. if '3'\\n[pict*mode]' \{\ +. nr pict*in (u;(\\n[.l]-\\n[.i]-\\n[pict*w])/2) +. \} +. ds pict*h " +. if \\n[pict*h]>0 .ds pict*h \\n[pict*h] +. \" +. ne \\n[pict*h]u +. \" +. \" these lines are copied and modified from tmac.pspic. +. \" Originally written by James Clark +. br +. ie \\n[pict*box]>0 \{\ +\h'\\n[pict*in]u'\ +\Z'\D'p 0 \\n[pict*h]u \\n[pict*w]u 0 0 -\\n[pict*h]u''\ +\v'\\n[pict*h]u'\X'ps: import \\*[pict*f] \ +\\n[pict*llx] \\n[pict*lly] \\n[pict*urx] \\n[pict*ury] \\n[pict*w] \\n[pict*h]' +.\} +. el \{\ +\h'\\n[pict*in]u'\ +\X'ps: invis'\ +\Z'\D'p 0 \\n[pict*h]u \\n[pict*w]u 0 0 -\\n[pict*h]u''\ +\X'ps: endinvis'\ +\v'\\n[pict*h]u'\X'ps: import \\*[pict*f] \ +\\n[pict*llx] \\n[pict*lly] \\n[pict*urx] \\n[pict*ury] \\n[pict*w] \\n[pict*h]' +. \} +. br +. sp \\n[pict*h]u +.\} +.. +.\" external picture +.de EPIC +.if \\n[.$]< 2 .@error "EPIC: Not enough arguments" +.nr pict*w \\$1 +.nr pict*h \\$2 +.ds pict*name "External picture +.if !''$3' .ds pict*name \\$3 +\& +.br +.ne \\n[pict*h]u +.sp \\n[pict*h]u +.nr pict*ind (u;(\\n[.l]-\\n[.i]-\\n[pict*w])/2) +.in +\\n[pict*ind]u +\D'l \\n[pict*w]u 0'\ +\D'l 0 -\\n[pict*h]u'\ +\D'l -\\n[pict*w]u 0'\ +\D'l 0 \\n[pict*h]u'\ +\v'-(u;\\n[pict*h]/2)'\ +\h'(u;(\\n[pict*w]-\w'\\*[pict*name]'/2))'\\*[pict*name] +.in +.. .\" ######## module acc ################# .\"----------- .\" accents. These are copied from mgs, written by James Clark. @@ -683,6 +907,14 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .nr hd*i 1 1 .while \\n+[hd*i]<8 .if \\n[hd*level]<\\n[hd*i] .nr H\\n[hd*i] 0 1 .\" +.\" save last text for use in TP +.if \\n[hd*level]=1 .ds H1txt \\$2\\$3 +.\" +.\" This is a little fix to be able to get correct H1 heading number +.\" in page headers. +.nr H1h \\n[H1] 1 +.if \\n[hd*level]=1 .nr H1h +1 +.\" .\" Check if it's time for new page. Only if text has .\" appeared before. .if \\n[Ej]&(\\n[Ej]>=\\n[hd*level])&(\\n[nl]>\\n[hd*cur-bline]) .pg@next-page @@ -691,8 +923,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .nr H\\n[hd*level] +1 .\" .\" update pagenumber if section-page is used -.if \\n[hd*level]=1 .hd@set-page \\n[%] -.\" +.if (\\n[hd*level]=1)&(\\n[Sectp]>0) .hd@set-page 1 .\" .\" hd*mark is the text written to the left of the header. .ds hd*mark \\n[H1]. @@ -703,15 +934,13 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .while \\n+[hd*i]<8 .if \\n[hd*level]>(\\n[hd*i]-1) .as hd*mark .\\n[H\\n[hd*i]] .if \\n[Ht] .ds hd*mark \\n[H\\n[hd*level]]. .\" -.\" toc-mark is sent to the table of contents -.ds hd*toc-mark \\*[hd*mark] +.\" special case, no dot after level one heading if not H1dot true +.if (\\n[hd*level]=1)&(\\n[H1dot]=0) .ds hd*mark \\n[H1] +.\" .as hd*mark \ \ \" add spaces between mark and heading -.if !\\n[hd*arg1] \{\ -. ds hd*mark\" no mark for unnumbered -. ds hd*toc-mark -.\} +.if !\\n[hd*arg1] .ds hd*mark\" no mark for unnumbered .\" -.if \\n[D]>1 .tm At header \\*[hd*toc-mark] "\\$2" +.if \\n[D]>1 .tm At header \\*[hd*mark] "\\$2" .nr hd*htype 0 \" hd*htype = check break and space . \" 0 = run-in, 1 = break only, 2 = space .if \\n[hd*level]<=\\n[Hb] .nr hd*htype 1 @@ -720,7 +949,6 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .ie (\\n[hd*htype]=0)&(\w@\\$2@) .ds hd*suf-space " \" .el .ds hd*suf-space .nr hd*need 2v \" hd*need = header need space -.if \\n[hd*htype]<2 .nr hd*need +\\n[Lsp]u \" add some extra space .\"---------- user macro HX ------------ .\" User exit macro to override numbering. .\" May change hd*mark (}0), hd*suf-space (}2) and hd*need (;3) @@ -728,8 +956,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .if d HX .HX \\n[hd*level] \\n[hd*arg1] "\\$2\\$3" .\"-------------------------------------- .\" pre-space -.ie \\n[hd*level]<=\\n[Hps] .SP \\n[Hps2]u -.el .SP \\n[Hps1]u +.ie \\n[hd*level]<=\\n[Hps] .SP (u;\\n[Hps2]) +.el .SP (u;\\n[Hps1]) .\" .par@reset-num \\n[hd*level]\" reset numbered paragraph .\" start diversion to measure size of header @@ -738,8 +966,9 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .br .di .rm hd*div -.ne \\n[hd*need]u+\\n[dn]u+.5p \" this is the needed space for a header .if \\n[hd*htype] .na \" no adjust if run-in +.if \\n[hd*htype]<2 .nr hd*need +\\n[Lsp]u \" add some extra space +.ne \\n[hd*need]u+\\n[dn]u+.5p-1v \" this is the needed space for a header .\" .\" size and font calculations .hd@split hd*font \\n[hd*level] HF \\*[HF]\" get font for this level @@ -779,21 +1008,16 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .el \\$2\\$3\\*[hd*suf-space]\&\c .ft 1 .\" restore pointsize and vertical size. -.ps \\n[@ps] -.vs \\n[@vs] +.ps \\n[@ps]u +.vs \\n[@vs]u .\" .\" table of contents -.if (\\n[hd*level]<=\\n[Cl])&\w@\\$2@ \{\ -. ie \\n[Sectp] \{\ -. toc@save \\n[hd*level] "\\*[hd*toc-mark]" "\\$2" \\*[hd*sect-pg] -. \} -. el .toc@save \\n[hd*level] "\\*[hd*toc-mark]" "\\$2" \\n[%] -.\} +.if (\\n[hd*level]<=\\n[Cl])&\w@\\$2@ .toc@entry \\n[hd*level] "\\$2" .\" set adjust to previous value .SA .\" do break or space .if \\n[hd*htype] .br -.if \\n[hd*htype]>1 .SP \\n[Lsp]u +.if \\n[hd*htype]>1 .SP (u;\\n[Lsp]*\\n[Hss]) .if \\n[hd*htype] \{\ . \" indent if Hi=1 and Pt=1 . if (\\n[Hi]=1)&(\\n[Pt]=1) .ti +\\n[Pi]n @@ -827,11 +1051,9 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" set page-nr, called from header .\" .de hd@set-page -.if \\n[.$]>0 .nr hd*h1-page \\$1 -.\" -.ie \\n[Sectp] .nr P \\n[%]-\\n[hd*h1-page]+1 -.el .nr P \\n[%] .\" +.ie \\n[.$]>0 .nr P \\$1 +.el .nr P +1 .\" Set section-page-string .ds hd*sect-pg \\n[H1]-\\n[P] .if \\n[Sectp]>1 .if '\\n[H1]'0' .ds hd*sect-pg " @@ -841,10 +1063,10 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .wh 0 pg@header .em pg@end-of-text .\" -.ds pg*header ''- % -'' +.ds pg*header ''- \\nP -'' .ds pg*footer .if \n[N]=4 .ds pg*header '''' -.if \n[N]=5 \{\ +.if (\n[N]=3):(\n[N]=5) \{\ . ds pg*header '''' . ds pg*footer ''\\*[hd*sect-pg]'' .\} @@ -869,15 +1091,16 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .nr pg*ps \n[@ps] .nr pg*vs \n[@vs] .\"------------------------- -.\" footer traps: set, enable and disable +.\" footer TRAPS: set, enable and disable .de pg@set-new-trap .nr pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v+\\n[pg*extra-footer-size]u) .\" -.if \\n[D]>2 .tm pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v) = \\n[pg*foot-trap] +.if \\n[D]>2 .tm pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v+\\n[pg*extra-footer-size]u) = \\n[pg*foot-trap] .\" .\" last-pos points to the position of the footer and bottom .\" block below foot-notes. .nr pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v) +.if \\n[D]>2 .tm pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v) = \\n[pg*last-pos] .. .de pg@enable-trap .wh \\n[pg*foot-trap]u pg@footer @@ -902,7 +1125,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .. .\" no header on the next page .de PGNH -.nr pg*top-enabled -1 +.nr pg*top-enabled (-1) .. .\" set first trap for pagefooter .pg@enable-top-trap @@ -936,6 +1159,9 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\} .\" assign current page-number to P .hd@set-page +.\" reset spacing +.nr line*lp\\n[.z] 0 +.nr line*ac\\n[.z] 0 .\" .\" suppress pageheader if pagenumber == 1 and N == [124] .if \\n[pg*top-enabled] \{\ @@ -1024,6 +1250,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] . el .tl \\*[pg*even-footer] . ie (\\n[%]=1)&(\\n[N]=1) .tl \\*[pg*header] . el .tl \\*[pg*footer] +. tl ''\\*[Pg_type!\\n[@copy_type]]'' .\} .ev .\" be sure that floating displays and footnotes will be @@ -1044,12 +1271,12 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] 'in 0 'ti 0 .ie \\n[Pgps] \{\ -. ps \\n[@ps] -. vs \\n[@vs] +. ps \\n[@ps]u +. vs \\n[@vs]u .\} .el \{\ -. ps \\n[pg*ps] -. vs \\n[pg*vs] +. ps \\n[pg*ps]u +. vs \\n[pg*vs]u .\} .lt \\n[@ll]u .. @@ -1258,8 +1485,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .ds pg*mul-fam \\n[.fam] .nr pg*mul-font \\n[.f] .ev pg*mul-ev -.ps \\n[@ps] -.vs \\n[@vs] +.ps \\n[@ps]u +.vs \\n[@vs]u .fam \\*[pg*mul-fam] .ft \\n[pg*mul-font] .fi @@ -1328,8 +1555,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .el 'hy 0 .ll \\n[@cur-ll]u .lt \\n[@cur-ll]u -.ps (\\n[@ps]-2) -.vs (\\n[@vs]-1) +.ps (p;\\n[@ps]u-2) +.vs (p;\\n[@vs]u-1) .. .\"----------------- .\" set footnote format @@ -1390,6 +1617,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .. .\"----------------- .\" begin footnote +.\" Change environment, switch to diversion and print the foot-note mark. .de FS .if \\n[ft*busy] .@error "FS: missing FE" .nr ft*busy 1 @@ -1418,6 +1646,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .. .\"----------------- .\" end footnote +.\" End the diversion, back to previous environment, and adjust +.\" the trap to the new foot-note size. .de FE .nr ft*busy 0 .br @@ -1425,6 +1655,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] 'in 0 'nf .if \\n[@pl]u<\\n[dn]u .@error "FE: too big footnote" +.if !d ft*div .nr dn +1v +.if \\n[D]>3 .tm FE: foot-trap=\\n[pg*foot-trap] .d=\\n[.d] dn=\\n[dn] .ie (\\n[pg*foot-trap]u-\\n[.d]u)<\\n[dn]u \{\ . da ft*next-div . ft*tmp-div @@ -1496,14 +1728,13 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .ds@set-format \\$@ .\" .nr df*old-ll \\n[.l] -.nr ds*i \\n[.i] .nr ds*ftmp \\n[.f] .misc@ev-keep df*ev .ft \\n[ds*ftmp] .\" .init@reset .di df*div -'in \\n[ds*i]u +'in 0 .\" .ds@set-new-ev \\n[df*old-ll] .SP \\n[Lsp]u @@ -1533,6 +1764,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\"------------- .\" called by end-of-text .de df@eot-print +.br .if \\n[df*o-fnr]<=\\n[df*fnr] \{\ . if \\n[D]>2 .tm Print remaining displays. .\" still some floats left, make non-empty environment @@ -1557,16 +1789,34 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .if !\\n[ds*float-busy] \{\ . nr ds*float-busy 1 .\" at .DE -. if (\\$1=1)&((\\n[Df]%2)=1) \{\ +. if \\n[D]>3 .tm print-float: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] +. \" Df = 1 or 5 +. if (\\$1=1)&((\\n[Df]=1):(\\n[Df]=5)) \{\ +. if \\n[.t]>\\n[df*height!\\n[df*o-fnr]] \{\ +. \" Print only new displays. +. if \\n[df*o-fnr]=\\n[df*fnr] \{\ +. br +. ds@print-one-float +. \} +. \} +. \} +. \" Df = 3 +. if (\\$1=1)&(\\n[Df]=3) \{\ . if \\n[.t]>\\n[df*height!\\n[df*o-fnr]] \{\ -. \" Df = 1,3 or 5 +. br . ds@print-one-float . \} . \} .\" print all if Df<2 and end of section -. if (\\$1=2)&(\\n[Df]<2) .ds@print-all-floats +. if (\\$1=2)&(\\n[Sectp]>0)&(\\n[Df]<2) \{\ +. br +. ds@print-all-floats +. \} .\" print all if end of document. Where should they go instead? -. if \\$1=3 .ds@print-all-floats +. if \\$1=3 \{\ +. br +. ds@print-all-floats +.\} .\" new page . if (\\$1=4)&(\\n[Df]>1) \{\ . if \\n[Df]=2 .ds@print-one-float @@ -1580,19 +1830,24 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\} .. .\"--------------- +.\" DF out .\" print a floating diversion -.de ds@output-div +.de ds@output-float .nr df*old-ll \\n[.l] +.nr df*old-in \\n[.i] .ev ds*fev -.in 0 .nf .nr df*i \\n[df*o-fnr] .nr df*f \\n[df*format!\\n[df*i]] .\" +.in \\n[df*old-in]u +.if \\n[df*f]=1 'in +\\n[Si]n +.if \\n[df*f]>=2 'in 0 .if \\n[df*f]=2 'ce 9999 -.if \\n[df*f]=3 'in (u;(\\n[df*old-ll]-\\n[df*width!\\n[df*i]])/2) +.if \\n[df*f]=3 'in (u;(\\n[.l]-\\n[df*width!\\n[df*i]])/2) .if \\n[df*f]=4 'rj 9999 -.if \\n[df*f]=5 'in (u;\\n[df*old-ll]-\\n[df*width!\\n[df*i]]) +.if \\n[df*f]=5 'in (u;\\n[.l]-\\n[df*width!\\n[df*i]]) +.\" .\" .df*fdiv!\\n[df*o-fnr] .\" @@ -1609,8 +1864,9 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" print one floating display if there is one. .de ds@print-one-float .if \\n[df*o-fnr]<=\\n[df*fnr] \{\ +. if \\n[D]>3 .tm print-one-float: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] . if \\n[.t]<\\n[df*height!\\n[df*o-fnr]] .pg@next-page -. ds@output-div +. ds@output-float . if \\n[De] .pg@next-page .\} .. @@ -1619,8 +1875,11 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" if De>0 do a page eject between the floats. .de ds@print-all-floats .while \\n[df*o-fnr]<=\\n[df*fnr] \{\ +. if \\n[D]>3 .tm print-all-floats: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] . if \\n[.t]<\\n[df*height!\\n[df*o-fnr]] .pg@next-page -. ds@output-div +. br +\c +. ds@output-float . if \\n[De] .pg@next-page .\} .. @@ -1628,8 +1887,9 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" print as many floats as will fit on the current page .de ds@print-this-page .while \\n[df*o-fnr]<=\\n[df*fnr] \{\ +. if \\n[D]>3 .tm print-this-page: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] . if \\n[.t]<\\n[df*height!\\n[df*o-fnr]] .break -. ds@output-div +. ds@output-float .\} .. .\"--------------------------------------------------- @@ -1668,13 +1928,6 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" .ie \\n[ds*fill] 'fi .el 'nf -.\" -.if \\n[ds*format]=1 \{\ -. ll -\\n[Si]n -. lt -\\n[Si]n -' in +\\n[Si]n -.\} -.if (\\n[ds*format]=3):(\\n[ds*format]=5) 'in 0 .. .\"-------------------------------------------------------- .nr ds*format 0\" dummy value for .En/.EQ @@ -1706,6 +1959,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .ds@set-format \\$@ .\" .nr ds*old-ll \\n[.l] +.nr ds*old-in \\n[.i] .misc@push ds-ll \\n[.l] .misc@push ds-form \\n[ds*format] .nr ds*i \\n[.i] @@ -1714,7 +1968,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .ft \\n[ds*ftmp] .\" .init@reset -'in \\n[ds*i]u +.\" indent in a diversion doesn't seem like a good idea. +'in 0 .di ds*div!\\n[ds*snr] .\" .ds@set-new-ev \\n[ds*old-ll] @@ -1725,30 +1980,41 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .if \\n-[ds*lvl]<0 .@error "DE: no corresponding DS" .br .di +.\" ********** .nr ds*width \\n[dl] .nr ds*height \\n[dn] .misc@pop-nr ds-ll ds*old-ll .misc@pop-nr ds-form ds*format -.if (\\n[ds*format]>=2)&(\\n[ds*width]>\\n[ds*old-ll]) \{\ -. @error "DE: display too wide for current line-length" -.\} .\" -'in 0 +.\" ********** 'nf +.\" calculate needed space +.nr ds*need \\n[ds*height] +.nr ds*i \\n[pg*foot-trap]-\\n[pg*header-size]v-\\n[pg*extra-header-size]v +.if (\\n[ds*height]>\\n[ds*i])&(\\n[.t]<(\\n[ds*i]/2)) .nr ds*need \\n[.t]u+1v +.if (\\n[ds*height]<\\n[ds*i])&(\\n[.t]<(\\n[ds*height])) .nr ds*need \\n[.t]u+1v +.\" Eject page if display will fit one page and +.\" there are less than half of the page left. +.if \\n[ds*need] .ne \\n[ds*need]u +.\" +.\" check if pending equation label +.eq@check \\n[ds*need] +'in \\n[ds*old-in]u +.if \\n[ds*format]=1 'in \\n[ds*old-in]u+\\n[Si]n +.if \\n[ds*format]>=2 'in 0 .if \\n[ds*format]=2 'ce 9999 -.if \\n[ds*format]=3 'in (u;(\\n[ds*old-ll]-\\n[ds*width])/2) +.if \\n[ds*format]=3 'in (u;(\\n[.l]-\\n[ds*width])/2) .if \\n[ds*format]=4 'rj 9999 -.if \\n[ds*format]=5 'in (u;\\n[ds*old-ll]-\\n[ds*width]) +.if \\n[ds*format]=5 'in (u;\\n[.l]-\\n[ds*width]) +.\" ********** .\" .\" Print static display -.\" Eject page if display will fit one page and -.\" there are less than half of the page left. -.nr ds*i \\n[pg*foot-trap]-\\n[pg*header-size]v-\\n[pg*extra-header-size]v -.if (\\n[ds*height]>\\n[ds*i])&(\\n[.t]<(\\n[ds*i]/2)) .ne \\n[.t]u+1v -.if (\\n[ds*height]<\\n[ds*i])&(\\n[.t]<(\\n[ds*height])) .ne \\n[.t]u+1v -.if \\n[Ds] .SP \\n[Lsp]u +.nr ds*i \\n[Lsp] +.if r Dsp .nr ds*i \\n[Dsp] +.\" +.if \\n[Ds] .SP \\n[ds*i]u .ds*div!\\n[ds*snr] -.if \\n[Ds] .SP \\n[Lsp]u +.if \\n[Ds] .SP \\n[ds*i]u .\" .if \\n[ds*format]=2 'ce 0 .if \\n[ds*format]=4 'rj 0 @@ -1816,8 +2082,10 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .if \\n[li*type]=5 .ds li*c-mark <\\n[li*cnt!\\n[li*lvl]]> .if \\n[li*type]=6 .ds li*c-mark {\\n[li*cnt!\\n[li*lvl]]} .if \\n[.$]=1 .ds li*c-mark \\$1 -.if \\n[.$]=2 .ds li*c-mark \\$1\ \\*[li*c-mark] -.if '\\*[li*c-mark]'\ ' .ds li*c-mark +.ie \\n[.$]=2 \{\ +. ie (\\$2=2):(\\n[Limsp]=0) .ds li*c-mark \\$1\\*[li*c-mark] +. el .ds li*c-mark \\$1\ \\*[li*c-mark] +.\} .\" .\" determine where the text begins .nr li*text-begin \\n[li*tind]>?\w@\\*[li*c-mark]\ @ @@ -2016,54 +2284,27 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" ####### module eq ####################################### .\" .nr eq*number 0 1 +.ds eq*label .de EQ -.ds eq*lable "\\$1 -.di eq*div -.misc@ev-keep eq*ev -.in 0 -.nf +.ds eq*label "\\$1 .. -.de EN -.br -.di -.ta -.\" equation with lable. -.if \\n[dl] \{\ -. br -. chop eq*div +.de eq@check +.if !'\\*[eq*label]'' \{\ +. mk +' sp (u;\\$1/2-.45v) . ie (\\n[Eq]%2) \{\ -. \" lable to the left -. if \\n[ds*format]<2 \{\ -. ta (u;(\\n[.l]/7)+\\n[.i]) \\n[.l]u\" L -\\*[eq*lable]\t\\*[eq*div]\t\& -. \} -. if (\\n[ds*format]=2):(\\n[ds*format]=3) \{\ -. ta (u;(\\n[.l]-\\n[.i])/2+\\n[.i])C \\n[.l]u\" C -\\*[eq*lable]\t\\*[eq*div]\t\& -. \} -. if \\n[ds*format]>3 \{\ -. ta \\n[.l]uR\" R -\\*[eq*lable]\t\\*[eq*div] -. \} +. \" label to the left +\h'|0'\\*[eq*label]\c . \} . el \{\ -. \" lable to the right -. if \\n[ds*format]<2 \{\ -. ta \\n[.l]uR\" L -\\*[eq*div]\t\\*[eq*lable] -. \} -. if (\\n[ds*format]=2):(\\n[ds*format]=3) \{\ -. ta (u;(\\n[.l]-\\n[.i])/2+\\n[.i])C \\n[.l]uR\" C -\t\\*[eq*div]\t\\*[eq*lable] -. \} -. if \\n[ds*format]>3 \{\ -. ta (\\n[.l]u-\w@\\*[eq*lable]@u-1m)R \\n[.l]uR\" R -\t\\*[eq*div]\t\\*[eq*lable] -. \} +. \" label to the right +\h'|\\n[.l]u'\\*[eq*label] . \} +. rt .\} -.TAB -.ev +.ds eq*label +.. +.de EN .. .\"########### module toc ################### .\" table of contents @@ -2084,16 +2325,26 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .if \w@\\$3@>0 .nr toc*tlevel \\$3 .if \w@\\$4@>0 .nr toc*tab \\$4 .if \\n[pg*cols-per-page]>1 .1C +.ds H1txt \\*[Licon] +.ds Tcst co .pg@clear-hd +.EF "" +.OF "" .pg@next-page -.pg@clear-ft .\"------------- .if d Ci .toc@read-Ci \\*[Ci] .nf .in 0 -.nr toc*pn 0 1 -.af toc*pn i -.PF "''\\\\\\\\n+[toc*pn]''" +.ie \\n[Oc] .hd@set-page 1 +.el \{\ +. nr toc*pn 1 1 +. af toc*pn i +. aln ;g toc*pn +. PF "''\\\\\\\\n[toc*pn]''" +. am pg@header +. nr toc*pn +1 +\\.. +.\} .nr toc*i 4 1 .while \\n+[toc*i]<10 \{\ . if !'\\$\\n[toc*i]'' \{\ @@ -2111,11 +2362,12 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] . SP 3 .\} .if d toc*list .toc*list +.br .\" print LIST OF XXX -.if d lix*dsfg .lix@print-ds fg "\\*[Lf]" -.if d lix*dstb .lix@print-ds tb "\\*[Lt]" -.if d lix*dsec .lix@print-ds ec "\\*[Le]" -.if d lix*dsex .lix@print-ds ex "\\*[Lx]" +.if d lix*dsfg .lix@print-ds fg FG "\\*[Lf]" \\n[.$] +.if d lix*dstb .lix@print-ds tb TB "\\*[Lt]" \\n[.$] +.if d lix*dsec .lix@print-ds ec EC "\\*[Le]" \\n[.$] +.if d lix*dsex .lix@print-ds ex EX "\\*[Lx]" \\n[.$] .. .\"----------- .\" .toc@read-Ci lev1 lev2 lev3 lev4 ... lev7 @@ -2126,12 +2378,20 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\} .. .\"----------- +.de toc@entry +.ie \\n[Sectp] \{\ +. toc@save \\$1 "\\*[hd*mark]" "\\$2" \\*[hd*sect-pg] +.\} +.el .toc@save \\$1 "\\*[hd*mark]" "\\$2" \\n[%] +.. +.als )E toc@entry +.\"----------- .de toc@save .\" collect maxsize of mark if string Ci don't exist. .if !d Ci \{\ . if !r toc*hl!\\$1 .nr toc*hl!\\$1 0 . if \\n[toc*hl!\\$1]<=\w@\\$2@ \{\ -. nr toc*hl!\\$1 \w@\\$2@u+1m +. nr toc*hl!\\$1 \w@\\$2@u . \} .\} .am toc*list @@ -2143,7 +2403,6 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" level mark text pagenumber .de toc@set .if \\$1<=\\n[toc*slevel] .SP \\n[toc*spacing]u -.ne 2v .na .fi .nr toc*ind 0 @@ -2164,6 +2423,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .nr toc*i \\n[toc*hl!\\$1]-\w@\\$2@ .\" .ll \\n[@ll]u-\w@\\$4@u-2m +.ne 2v .\" ragged right --------------------------------- .ie \\$1>\\n[toc*tlevel] \{\ \\$2 @@ -2225,26 +2485,26 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .ie !\\n[Of] .ds lix*ds-form .\ \ \" .el .ds lix*ds-form "\ \(em\ \" .nr lix*in \\n[.i] -.ds lix*lable \\*[Li\\$1]\ \\*[lix*numb]\\*[lix*ds-form] +.ds lix*label \\*[Li\\$1]\ \\*[lix*numb]\\*[lix*ds-form] .if !'\\$5'' \{\ -. if !0\\$6 .ds lix*lable \\*[Li\\$1]\ \\$5\\*[lix*numb]\\*[lix*ds-form] -. if 0\\$6=1 .ds lix*lable \\*[Li\\$1]\ \\*[lix*numb]\\$5\\*[lix*ds-form] -. if 0\\$6=2 .ds lix*lable \\*[Li\\$1]\ \\$5\\*[lix*ds-form] +. if !0\\$6 .ds lix*label \\*[Li\\$1]\ \\$5\\*[lix*numb]\\*[lix*ds-form] +. if 0\\$6=1 .ds lix*label \\*[Li\\$1]\ \\*[lix*numb]\\$5\\*[lix*ds-form] +. if 0\\$6=2 .ds lix*label \\*[Li\\$1]\ \\$5\\*[lix*ds-form] .\} -.ie \\n[Sectp] .ds lix*pgnr \\*[hd*sect-pg] -.el .ds lix*pgnr \\n[%] .\" print line if not between DS/DE -.ie \\n[ds*lvl]<1 .lix@print-text "\\*[lix*lable]" "\\*[lix*text]" -.el .lix@embedded-text "\\*[lix*lable]" "\\*[lix*text]" +.ie \\n[ds*lvl]<1&\\n[df*float]=0 \{\ +. lix@print-text "\\*[lix*label]" "\\*[lix*text]" \\$1 \\$2 \\$7 +.\} +.el \{\ +. lix@embedded-text "\\*[lix*label]" "\\*[lix*text]" \\$1 \\$2 \\$7 +.\} .\" -.\" save line for LIST OF XXX -.if !r lix*wth\\$1 .nr lix*wth\\$1 0 -.if \w@\\*[lix*lable]@>\\n[lix*wth\\$1] .nr lix*wth\\$1 \w@\\*[lix*lable]@ -.if \\n[\\$2] .lix@ds-save \\$1 \\*[lix*pgnr] "\\$4" "\\*[lix*lable]" -.if !'\\$7'' .SETR \\$7 \\*[lix*numb] .. .\"----------- +.\" label text type stringvar refname .de lix@print-text +.ie \\n[Sectp] .ds lix*pgnr \\*[hd*sect-pg] +.el .ds lix*pgnr \\n[%] .SP \\n[Lsp]u .misc@ev-keep lix .init@reset @@ -2257,31 +2517,58 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] \fB\\$1\fP\\$2 .br .ev +.\" save line for LIST OF XXX, wth is the width of the label +.if !r lix*wth\\$3 .nr lix*wth\\$3 0 +.\" find the maximum width +.if \w@\\*[lix*label]@>\\n[lix*wth\\$3] .nr lix*wth\\$3 \w@\\*[lix*label]@ +.if \\n[\\$4] .lix@ds-save \\$3 \\*[lix*pgnr] "\\*[lix*text]" "\\*[lix*label]" +.\" save reference to the figure +.if !'\\$5'' .SETR \\$5 \\*[lix*numb] .. .\" hide printout until diversion is evaluated .de lix@embedded-text -\!.SP \\n[Lsp]u +\!.ie \\\\n[Sectp] .ds lix*pgnr \\\\*[hd*sect-pg] +\!.el .ds lix*pgnr \\\\n[%] +\!.SP \\\\n[Lsp]u \!.misc@ev-keep lix +\!.ll \\n[.l]u \!.init@reset -\!.br -\!.ie (\w@\\$1\\$2@)>(\\n[.l]-\\n[.i]) \{\ +\!.fi +\!.ie (\w@\\$1\\$2@)>(\\\\n[.l]-\\\\n[.i]) \{\ . in +\w@\\$1@u \!. ti 0 +\!\fB\\$1\fP\\$2 \!.\} -\!.el .ce 1 +\!.el \{\ +. ce 1 \!\fB\\$1\fP\\$2 +\!.\} \!.br \!.ev +.\" save line for LIST OF XXX, wth is the width of the label +\!.if !r lix*wth\\$3 .nr lix*wth\\$3 0 +.\" find the maximum width +\!.if \w@\\*[lix*label]@>\\\\n[lix*wth\\$3] .nr lix*wth\\$3 \w@\\*[lix*label]@ +\!.if \\\\n[\\$4] .lix@ds-save \\$3 \\\\*[lix*pgnr] "\\*[lix*text]" "\\*[lix*label]" +.\" save reference to the figure +\!.if !'\\$5'' .SETR \\$5 \\*[lix*numb] .. .\"------------ .\" print complete list of XXXX .de lix@print-ds .\" arg: fg,tb,ec,ex text +.ds H1txt \\$3 +.ds Tcst \\$1 .if !\\n[Cp] .pg@next-page .\" print LIST OF XXXX -.ce -\\$2 -.SP 3 +.\" execute user-defined macros +.if \\$4<=4 .if d TX\\$2 .TX\\$2 +.ie d TY\\$2 .if \\$4<=4 .TY\\$2 +.el \{\ +. ce +\\$3 +. SP 3 +.\} .in \\n[lix*wth\\$1]u .fi .lix*ds\\$1 @@ -2299,9 +2586,16 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" lix@dsln type pagenumber text headernr .de lix@dsln .nr lix*i \\n[lix*wth\\$1]-\w@\\$4@ -.ne 2v -.nr lix*sep \\n[.l]-\\n[lix*i]-\w'\\$4\\$3\\$2'-1m-1n-\\n[.i] -\h'\\n[lix*i]u'\\$4\\$3\h'1n'\l'\\n[lix*sep]u.'\h'1m'\\$2 +.ne 4v +.ll \\n[@ll]u-\w@\\$4@u-\w@\\$2@u-2m +.ti -\\n[lix*wth\\$1]u +\\$4 +.sp -1 +\\$3\h'1m' +.sp -1 +.ll +.nr lix*sep (u;\\n[.l]-\\n[.n]-\\n[.i]-\w@\\$2@)-1m +\h'|\\n[.n]u'\l'\\n[lix*sep]u.'\h'1m'\\$2 .SP \\n[toc*spacing]u .. .\"########################### module fnt ############################ @@ -2366,8 +2660,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" jump to new environment. .ev box*ev .di box*div -.ps \\n[@ps] -.vs \\n[@vs] +.ps \\n[@ps]u +.vs \\n[@vs]u .in 1n .ll (u;\\n[box*wid]-1n) .hy \\n[.hy] @@ -2490,6 +2784,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .nr app*nr 0 1 .af app*nr A .nr app*dnr 0 1 +.nr app*flag 0 .\"------------ .\" .APP name text .\" name == "" -> autonumber @@ -2497,6 +2792,9 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\" .if \\n[.$]<2 .@error "APP: too few arguments" .app@set-ind "\\$1" .\" +.ds Tcst ap +.ds Apptxt \\$2 +.\" .ie \\n[Aph] .app@header \\*[app*ind] "\\$2" .el .bp .app@index "\\*[app*ind]" "\\$2" @@ -2508,6 +2806,9 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .if \\n[.$]<2 .@error "APPSK: too few arguments" .app@set-ind "\\$1" .\" +.ds Tcst ap +.ds Apptxt \\$3 +.\" .ie \\n[Aph] .app@header \\*[app*ind] "\\$3" .el .bp .app@index "\\*[app*ind]" "\\$3" @@ -2517,12 +2818,15 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .de app@set-ind .ie \w@\\$1@ .ds app*ind \\$1 .el \{\ -. if !\\n[app*dnr] \{\ +. if !\\n[app*flag] \{\ . nr H1 0 1 . af H1 A +. af H1h A +. nr app*flag 1 . \} . ds app*ind \\n+[app*nr] . nr H1 \\n+[app*dnr] +. nr H1h \\n[app*dnr] .\} .\" clear lower counters .nr app*i 1 1 @@ -2544,6 +2848,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] \fB\s+2\\$2\s0\fP .SP (u;\\n[Lsp]*4) .. +.als APPX app@header .\"########################### module cov ############################ .\" title stored in diversion cov*title .\" abstract stored in diversion cov*abstract @@ -2577,9 +2882,9 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .de AU .cov@title-end .pg@disable-top-trap -.if \\n[.$]<1 .@error "AU: no arguments" .nr cov*au +1 .nr cov*i 0 1 +.ds cov*au!\\n[cov*au]!1 .while \\n[.$]>=\\n+[cov*i] \{\ . ds cov*au!\\n[cov*au]!\\n[cov*i] "\\$[\\n[cov*i]] .\} @@ -2603,7 +2908,6 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\"------------------- .de AF .cov@title-end -.if \\n[.$]<1 .@error "AF: no arguments" .ds cov*firm \\$1 .. .de AST @@ -2619,9 +2923,9 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .. .de AE .. -.\" I am planning to use mgm some time :-) -.ie \\n[yr]<50 .ds cov*new-date \\*[MO\\n[mo]] \\n[dy], 20\\n[yr] -.el .ds cov*new-date \\*[MO\\n[mo]] \\n[dy], 19\\n[yr] +.\" I am planning to use mgm for some time :-) +.nr cov*year 1900+\n[yr] +.ds cov*new-date \*[MO\n[mo]] \n[dy], \n[cov*year] .als DT cov*new-date .de ND .ds cov*new-date \\$1 @@ -2670,30 +2974,20 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .\"########################### module qrf ############################ .\" forward and backward reference thru special files. .\" +.\" check if stderr-method is wanted +.\" This was needed when I discovered that groff was considered unsafe +.\" and groff -U didn't work. It's a workaround like the original +.\" index method, but not in my view elegant enough. +.\" .\" init reference system .de INITR -.if \\n[.$]<1 .@error "INITR:filename missing" -.\" ignore if INITR has already been used -.if !r qrf*pass \{\ -.\" -. ds qrf*file \\$1 -. sy test -f \\*[qrf*file].tmp -. ie \\n[systat] \{\ -. \" PASS 1 -. if \\n[D]=1 .tm PASS 1 -. if \\n[D]>1 .tm INITR: file \\*[qrf*file].tmp, PASS 1 -. nr qrf*pass 1 -. open qrf*stream \\*[qrf*file].tmp -. write qrf*stream .\\\\" references for \\*[qrf*file] -. close qrf*stream -. \} -. el \{\ -. nr qrf*pass 2 -. if \\n[D]=1 .tm PASS 2 -. if \\n[D]>1 .tm INITR: file \\*[qrf*file].tmp, PASS 2 -. sy mv \\*[qrf*file].tmp \\*[qrf*file].qrf -' so \\*[qrf*file].qrf -. \} +.ds qrf*file \\$1 +.nr qrf*pass 2 +.if \\n[D]>1 .tm INITR: source \\*[qrf*file] +.if \\n[Ref] \{\ +. tm .\\\\" Filename: \\$1 +.\} +'so \\*[qrf*file] .\} .. .\"--------------- @@ -2703,20 +2997,16 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .ie !r qrf*pass .tm "SETR: No .INITR in this file" .el \{\ . ds qrf*name qrf*ref-\\$1 -.\" probably pass two if already defined -. if \\n[qrf*pass]<2 \{\ -. if \\n[D]>2 .tm SETR: ref \\*[qrf*name]=\\*[hd*toc-mark],\\n[%] -. \" heading-number -. ds \\*[qrf*name]-hn \\*[hd*toc-mark] -. \" page-number -. ds \\*[qrf*name]-pn \\n[%] -. \" -. \" append to file -. opena qrf*stream \\*[qrf*file].tmp -. write qrf*stream .ds \\*[qrf*name]-hn \\*[hd*toc-mark] -. write qrf*stream .ds \\*[qrf*name]-pn \\n[%] -. if !'\\$2'' .write qrf*stream .ds \\*[qrf*name]-xx \\$2 -. close qrf*stream +. if \\n[D]>2 .tm SETR: ref \\*[qrf*name]=\\*[hd*mark],\\n[%] +. \" heading-number +. ds \\*[qrf*name]-hn \\*[hd*mark] +. \" page-number +. ds \\*[qrf*name]-pn \\n[%] +. \" +. if \\n[Ref] \{\ +. tm .ds \\*[qrf*name]-hn \\*[hd*mark] +. tm .ds \\*[qrf*name]-pn \\n[%] +. if !'\\$2'' .tm .ds \\*[qrf*name]-xx \\$2 . \} .\} .. @@ -2727,15 +3017,11 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .if \\n[.$]<1 .@error "GETST:reference name missing" .if !r qrf*pass .tm "GETST: No .INITR in this file" .ds qrf*name qrf*ref-\\$1 -.ie \\n[qrf*pass]=2 \{\ -. ie !d \\*[qrf*name]-xx .tm "GETHN:\\$1 not defined" -. el \{\ +. if d \\*[qrf*name]-xx \{\ . ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-xx] . el \\*[\\*[qrf*name]-xx]\c . \} .\} -.\" The answer... -.el <->42<->\c .. .\"--------------- .\" get header-number, output X.X.X. in pass 1 @@ -2744,14 +3030,10 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .if \\n[.$]<1 .@error "GETHN:reference name missing" .if !r qrf*pass .tm "GETHN: No .INITR in this file" .ds qrf*name qrf*ref-\\$1 -.ie \\n[qrf*pass]=2 \{\ -. ie !d \\*[qrf*name]-hn .tm "GETHN:\\$1 not defined" -. el \{\ -. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-hn] -. el \\*[\\*[qrf*name]-hn]\c -. \} +.if d \\*[qrf*name]-hn \{\ +. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-hn] +. el \\*[\\*[qrf*name]-hn]\c .\} -.el X.X.X.\c .. .\"--------------- .\" get page-number, output 9999 in pass 1 @@ -2760,14 +3042,10 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .if \\n[.$]<1 .@error "GETPN:reference name missing" .if !r qrf*pass .tm "GETPN: No .INITR in this file" .ds qrf*name qrf*ref-\\$1 -.ie \\n[qrf*pass]=2 \{\ -. ie !d \\*[qrf*name]-pn .tm "GETPN:\\$1 not defined" -. el \{\ -. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-pn] -. el \\*[\\*[qrf*name]-pn]\c -. \} +.if d \\*[qrf*name]-pn +. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-pn] +. el \\*[\\*[qrf*name]-pn]\c .\} -.el 9999\c .. .\"---------- .de GETR @@ -2776,11 +3054,64 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] . tm "GETR: No .INITR in this file" .\} .el \{\ -. if \\n[qrf*pass]=2 \{\ -. GETHN \\$1 Qrfh -. GETPN \\$1 Qrfp +. GETHN \\$1 Qrfh +. GETPN \\$1 Qrfp \\*[Qrf] -. \} +.\} +.. +.\"########################### module ind ############################ +.\" Support for mgs-style indexing, borrowed from mgs. +.de IX +.tm \\$1\t\\$2\t\\$3\t\\$4 ... \\n[%] +.. +.\"-------------------- +.\" Another type of index system +.\" INITI filename [type] +.de INITI +.if \\n[.$]<1 .@error "INITI:filename missing" +.\" ignore if INITI has already been used +.if r ind*pass .@error "INITI:already initialyzed" +.nr ind*pass 1 +.ds ind*file \\$1.ind +.ie \\n[.$]<2 .ds ind*type N +.el .ds ind*type \\$2 +.. +.\"--------------- +.de IND +.if !r ind*pass .@error "IND: No .INITI in this file" +.if '\\*[ind*type]'N' .ds ind*ref \\n[%] +.if '\\*[ind*type]'H' .ds ind*ref \\*[hd*mark] +.if '\\*[ind*type]'B' .ds ind*ref \\*[hd*mark]\t\\n[%] +.\" +.if \\n[.$] .ds ind*line \\$1 +.while \\n[.$]>0 \{\ +. shift +. as ind*line \t\\$1 +.\} +.as ind*line \\*[ind*ref] +.tm \\*[ind*line] +.. +.\" print index +.de INDP +.\" sort the index +.if !\\n[Cp] .pg@next-page +.\" print INDEX +.\" execute user-defined macros +.if d TXIND .TXIND +.ie d TYIND .TYIND +.el \{\ +. SK +. ce +\\*[Index] +. SP 3 +. 2C +. nf +.\} +.pso \\*[Indcmd] \\*[ind*file] +.ie d TZIND .TZIND +.el \{\ +. fi +. 1C .\} .. .\"########################### module let ############################ @@ -2857,7 +3188,18 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .sp 2 .ie n ______________________________ ______________ .el \D'l 25m 0'\h'4m'\D'l 12m 0' -\Z'\\$1'\h'29m'\\*[Letdate] +\Z'\\$1'\h'29m'\f[\\*[@sdf_font]]\\*[Letdate]\fP +.fi +.. +.\"------------------------ +.\" Letter signature +.de AVL +.ne 6v +.nf +.sp 3 +.ie n ______________________________ +.el \D'l 25m 0' +\Z'\\$1' .fi .. .\"------------------------ @@ -3007,7 +3349,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] . el \{\ . sp . if '\\*[let*type]'SB' .ti +5m -\\*[LetSJ] \\*[let*lo-SJ] +\\*[LetSJ] \f[\\*[@sdf_font]]\\*[let*lo-SJ]\fP . \} .\} .. @@ -3084,3 +3426,6 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] .ds let*lo-\\$1 \\$2 .if \n[D]>1 .tm Letter option \\$1 \\$2 .. +.\"-------------------- +.\" Start with a clean slate +.init@reset diff --git a/gnu/usr.bin/groff/mm/tmac.mse b/gnu/usr.bin/groff/mm/tmac.mse index 522600ea7df..323299c2061 100644 --- a/gnu/usr.bin/groff/mm/tmac.mse +++ b/gnu/usr.bin/groff/mm/tmac.mse @@ -1,10 +1,11 @@ -.\" $Id: tmac.mse,v 1.4 1998/01/19 00:40:16 etheisen Exp $ +.\" $Id: tmac.mse,v 1.5 2000/04/09 08:25:19 millert Exp $ .\" .\" swedish version of mm .\" See tmac.m for version-information. -.mso tmac.m .ds @language se +.mso tmac.m .\" +.ds App Bilaga .ds Lf Figurer .ds Lt Tabeller .ds Lx Uppställningar @@ -44,7 +45,7 @@ .ds Letns!4 Atts. .ds Letns!5 Enc. .ds Letns!6 Encs. -.ds Letns!7 Under separate cover +.ds Letns!7 Annat försättsblad .ds Letns!8 Brev till .ds Letns!9 Dokument till .ds Letns!10 Kopia (med atts.) till @@ -65,8 +66,8 @@ .ds MO10 oktober .ds MO11 november .ds MO12 december -.ie \\n[yr]<50 .ds cov*new-date \\n[dy] \\*[MO\\n[mo]] 20\\n[yr] -.el .ds cov*new-date \\n[dy] \\*[MO\\n[mo]] 19\\n[yr] +.nr cov*year 1900+\n[yr] +.ds cov*new-date \n[dy] \*[MO\n[mo]] \n[cov*year] .nr pg*footer-size 4\" 1v+footer+even/odd footer+1v .\"------------------------------------------------ .\" Dokumentnamn diff --git a/gnu/usr.bin/groff/nroff/Makefile.sub b/gnu/usr.bin/groff/nroff/Makefile.sub index 096c046c81c..29abee542f5 100644 --- a/gnu/usr.bin/groff/nroff/Makefile.sub +++ b/gnu/usr.bin/groff/nroff/Makefile.sub @@ -1,4 +1,4 @@ -MAN1=nroff.n +MAN1=nroff.1 NAMEPREFIX=$(g) CLEANADD=nroff diff --git a/gnu/usr.bin/groff/nroff/nroff.man b/gnu/usr.bin/groff/nroff/nroff.1_in index 38ae083b895..4087ebe53a5 100644 --- a/gnu/usr.bin/groff/nroff/nroff.man +++ b/gnu/usr.bin/groff/nroff/nroff.1_in @@ -1,5 +1,5 @@ .ig \"-*- nroff -*- -Copyright (C) 1989-1995 Free Software Foundation, Inc. +Copyright (C) 1989-1999 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -81,6 +81,13 @@ silently ignores options of .B \-q or .BR \-s . +Options +.B \-S +(safer) and +.B \-U +(unsafe) are passed to groff. +.B \-S +is passed by default. .SH "SEE ALSO" .BR groff (@MAN1EXT@), .BR @g@troff (@MAN1EXT@), diff --git a/gnu/usr.bin/groff/nroff/nroff.sh b/gnu/usr.bin/groff/nroff/nroff.sh index 080f04bde82..ee4e332c910 100644 --- a/gnu/usr.bin/groff/nroff/nroff.sh +++ b/gnu/usr.bin/groff/nroff/nroff.sh @@ -10,6 +10,7 @@ else T=-Tascii fi opts= +safer=-S for i do @@ -24,7 +25,7 @@ do echo "$prog: option $1 requires an argument" >&2 exit 1 ;; - -i|-S|-[mrno]*) + -i|-[mrno]*) opts="$opts $1"; ;; @@ -34,6 +35,14 @@ do -T*) # ignore other devices ;; + -S) + # safer behaviour + safer=-S + ;; + -U) + # unsafe behaviour + safer=-U + ;; -u*) # Solaris 2.2 `man' uses -u0; ignore it, # since `less' and `more' can use the emboldening info. @@ -58,4 +67,4 @@ done # This shell script is intended for use with man, so warnings are # probably not wanted. Also load nroff-style character definitions. -exec groff -S -Wall -mtty-char $T $opts ${1+"$@"} +exec groff $safer -Wall -mtty-char $T $opts ${1+"$@"} diff --git a/gnu/usr.bin/groff/pfbtops/Makefile.sub b/gnu/usr.bin/groff/pfbtops/Makefile.sub index a06748e775c..206f4ee0bb7 100644 --- a/gnu/usr.bin/groff/pfbtops/Makefile.sub +++ b/gnu/usr.bin/groff/pfbtops/Makefile.sub @@ -1,5 +1,6 @@ PROG=pfbtops -MAN1=pfbtops.n +MAN1=pfbtops.1 OBJS=pfbtops.o CSRCS=pfbtops.c XLIBS=$(LIBGROFF) +MLIB=$(LIBM) diff --git a/gnu/usr.bin/groff/pfbtops/pfbtops.man b/gnu/usr.bin/groff/pfbtops/pfbtops.1_in index cfef3e0a103..cfef3e0a103 100644 --- a/gnu/usr.bin/groff/pfbtops/pfbtops.man +++ b/gnu/usr.bin/groff/pfbtops/pfbtops.1_in diff --git a/gnu/usr.bin/groff/pic/Makefile.sub b/gnu/usr.bin/groff/pic/Makefile.sub index 06d19750dff..b36033cf449 100644 --- a/gnu/usr.bin/groff/pic/Makefile.sub +++ b/gnu/usr.bin/groff/pic/Makefile.sub @@ -1,5 +1,5 @@ PROG=pic -MAN1=pic.n +MAN1=pic.1 XLIBS=$(LIBGROFF) MLIB=$(LIBM) OBJS=pic.o lex.o main.o object.o common.o troff.o tex.o # fig.o diff --git a/gnu/usr.bin/groff/pic/pic.man b/gnu/usr.bin/groff/pic/pic.1_in index 5e2d142f331..70ab94631bb 100644 --- a/gnu/usr.bin/groff/pic/pic.man +++ b/gnu/usr.bin/groff/pic/pic.1_in @@ -1,5 +1,5 @@ .ig \"-*- nroff -*- -Copyright (C) 1989-1995 Free Software Foundation, Inc. +Copyright (C) 1989-1999 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -35,7 +35,7 @@ the original English. .SH SYNOPSIS .B @g@pic [ -.B \-nvC +.B \-nvCSU ] [ .I filename @@ -45,7 +45,7 @@ the original English. .B @g@pic .B \-t [ -.B \-cvzC +.B \-cvzCSU ] [ .I filename @@ -104,6 +104,11 @@ Safer mode; do not execute .B sh commands. This can be useful when operating on untrustworthy input. +(enabled by default) +.TP +.B \-U +Unsafe mode; revert the default option +.BR \-S . .TP .B \-n Don't use the groff extensions to the troff drawing commands. @@ -734,10 +739,11 @@ macros. .br Tpic: Pic for \*(tx .br -AT&T Bell Laboratories, Computing Science Technical Report No.\ 116, -PIC \(em A Graphics Language for Typesetting. -(This can be obtained by sending a mail message to netlib@research.att.com -with a body of `send\ 116\ from\ research/cstr'.) +Brian W. Kernighan, +PIC \(em A Graphics Language for Typesetting (User Manual). +AT&T Bell Laboratories, Computing Science Technical Report No.\ 116 +<URL:http://cm.bell-labs.com/cm/cs/cstr/116.ps.gz> +(revised May, 1991). .SH BUGS .LP Input characters that are illegal for diff --git a/gnu/usr.bin/groff/psbb/Makefile.sub b/gnu/usr.bin/groff/psbb/Makefile.sub index 106721a678e..7e2b262b335 100644 --- a/gnu/usr.bin/groff/psbb/Makefile.sub +++ b/gnu/usr.bin/groff/psbb/Makefile.sub @@ -1,5 +1,5 @@ PROG=psbb -MAN1=psbb.n +MAN1=psbb.1 OBJS=psbb.o CSRCS=psbb.c XLIBS= diff --git a/gnu/usr.bin/groff/psbb/psbb.man b/gnu/usr.bin/groff/psbb/psbb.1_in index 4c6ac8c16d2..4c6ac8c16d2 100644 --- a/gnu/usr.bin/groff/psbb/psbb.man +++ b/gnu/usr.bin/groff/psbb/psbb.1_in diff --git a/gnu/usr.bin/groff/refer/Makefile.sub b/gnu/usr.bin/groff/refer/Makefile.sub index 28734624586..d8e4d58cfd3 100644 --- a/gnu/usr.bin/groff/refer/Makefile.sub +++ b/gnu/usr.bin/groff/refer/Makefile.sub @@ -1,5 +1,5 @@ PROG=refer -MAN1=refer.n +MAN1=refer.1 XLIBS=$(LIBBIB) $(LIBGROFF) MLIB=$(LIBM) OBJS=command.o label.o ref.o refer.o token.o diff --git a/gnu/usr.bin/groff/refer/refer.man b/gnu/usr.bin/groff/refer/refer.1_in index 6b09c973a93..6b09c973a93 100644 --- a/gnu/usr.bin/groff/refer/refer.man +++ b/gnu/usr.bin/groff/refer/refer.1_in diff --git a/gnu/usr.bin/groff/soelim/Makefile.sub b/gnu/usr.bin/groff/soelim/Makefile.sub index 7c873a6a9c2..c6696375ac3 100644 --- a/gnu/usr.bin/groff/soelim/Makefile.sub +++ b/gnu/usr.bin/groff/soelim/Makefile.sub @@ -1,5 +1,5 @@ PROG=soelim -MAN1=soelim.n +MAN1=soelim.1 XLIBS=$(LIBGROFF) OBJS=soelim.o CCSRCS=soelim.cc diff --git a/gnu/usr.bin/groff/soelim/soelim.man b/gnu/usr.bin/groff/soelim/soelim.1_in index d5139ad1833..7026f3ee381 100644 --- a/gnu/usr.bin/groff/soelim/soelim.man +++ b/gnu/usr.bin/groff/soelim/soelim.1_in @@ -1,5 +1,5 @@ .ig \"-*- nroff -*- -Copyright (C) 1989-1995 Free Software Foundation, Inc. +Copyright (C) 1989-1999 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -25,6 +25,9 @@ the original English. .B \-Cv ] [ +.BI \-I dir +] +[ .IR files \|.\|.\|.\| ] .SH DESCRIPTION @@ -53,6 +56,16 @@ Recognize .B .so even when followed by a character other than space or newline. .TP +.BI \-I dir +This option may be used to specify a directory to search for +files (both those on the command line and those named in +.B \&.so +lines). +The current directory is always searched first. +This option may be specified more than once, +the directories will be searched in the order specified. +No directory search is performed for files specified using an absolute path. +.TP .B \-v Print the version number. .SH "SEE ALSO" diff --git a/gnu/usr.bin/groff/tbl/Makefile.sub b/gnu/usr.bin/groff/tbl/Makefile.sub index 8ab4a74785e..209ebb75208 100644 --- a/gnu/usr.bin/groff/tbl/Makefile.sub +++ b/gnu/usr.bin/groff/tbl/Makefile.sub @@ -1,5 +1,5 @@ PROG=tbl -MAN1=tbl.n +MAN1=tbl.1 XLIBS=$(LIBGROFF) OBJS=main.o table.o CCSRCS=main.cc table.cc diff --git a/gnu/usr.bin/groff/tbl/tbl.man b/gnu/usr.bin/groff/tbl/tbl.1_in index 6016ddf35f8..6016ddf35f8 100644 --- a/gnu/usr.bin/groff/tbl/tbl.man +++ b/gnu/usr.bin/groff/tbl/tbl.1_in diff --git a/gnu/usr.bin/groff/tfmtodit/Makefile.sub b/gnu/usr.bin/groff/tfmtodit/Makefile.sub index aa430e2daf8..618283a99f9 100644 --- a/gnu/usr.bin/groff/tfmtodit/Makefile.sub +++ b/gnu/usr.bin/groff/tfmtodit/Makefile.sub @@ -1,5 +1,5 @@ PROG=tfmtodit -MAN1=tfmtodit.n +MAN1=tfmtodit.1 XLIBS=$(LIBGROFF) MLIB=$(LIBM) OBJS=tfmtodit.o diff --git a/gnu/usr.bin/groff/tfmtodit/tfmtodit.man b/gnu/usr.bin/groff/tfmtodit/tfmtodit.1_in index f17c4414ada..f17c4414ada 100644 --- a/gnu/usr.bin/groff/tfmtodit/tfmtodit.man +++ b/gnu/usr.bin/groff/tfmtodit/tfmtodit.1_in diff --git a/gnu/usr.bin/groff/tmac/Makefile.sub b/gnu/usr.bin/groff/tmac/Makefile.sub index 8ce46437682..0528ad76fc9 100644 --- a/gnu/usr.bin/groff/tmac/Makefile.sub +++ b/gnu/usr.bin/groff/tmac/Makefile.sub @@ -1,16 +1,14 @@ -MAN7=groff_ms.n me.n msafer.n +MAN7=groff_ms.7 groff_man.7 groff_me.7 groff_msafer.7 -NORMALFILES=$(TMAC_ANDOC) tmac.pic tmac.ps tmac.psnew tmac.psold tmac.pspic \ +NORMALFILES=tmac.pic tmac.ps tmac.psnew tmac.psold tmac.pspic \ tmac.psatk tmac.dvi tmac.tty tmac.tty-char tmac.X tmac.Xps tmac.latin1 \ - tmac.lj4 eqnrc troffrc tmac.safer -SPECIALFILES=$(TMAC_AN) tmac.s -STRIPFILES=tmac.e tmac.doc tmac.doc.old -# MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms + tmac.lj4 eqnrc troffrc tmac.safer tmac.html tmac.arkup +SPECIALFILES=tmac.s +STRIPFILES=tmac.e mdocdir=$(tmacdir)/mdoc CLEANADD=stamp-strip stamp-wrap tmac.e-s tmac.doc-s tmac.doc.old-s \ - doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s *-wrap + doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s *-wrap tmac_s_prefix= -tmac_an_prefix= tmac_wrap= sys_tmac_prefix= @@ -19,7 +17,7 @@ all: stamp-strip stamp-wrap install_data: $(NORMALFILES) $(SPECIALFILES) stamp-wrap stamp-strip man.local -test -d $(tmacdir) || mkdir $(tmacdir) if test -n "$(tmac_wrap)"; then \ - for m in $(tmac_wrap); do \ + for m in ""$(tmac_wrap); do \ $(INSTALL_DATA) $$m-wrap $(tmacdir)/tmac.$$m; \ done; \ fi @@ -27,23 +25,12 @@ install_data: $(NORMALFILES) $(SPECIALFILES) stamp-wrap stamp-strip man.local rm -f $(tmacdir)/$$f; \ $(INSTALL_DATA) $(srcdir)/$$f $(tmacdir)/$$f; \ done - if test -n "$(TMAC_S)"; then \ - rm -f $(tmacdir)/tmac.$(tmac_s_prefix)s ; \ - $(INSTALL_DATA) $(srcdir)/tmac.s $(tmacdir)/tmac.$(tmac_s_prefix)s ; \ - fi - if test -n "$(TMAC_AN)"; then \ - rm -f $(tmacdir)/tmac.$(tmac_an_prefix)an ; \ - $(INSTALL_DATA) $(srcdir)/tmac.an $(tmacdir)/tmac.$(tmac_an_prefix)an ; \ - fi + -rm -f $(tmacdir)/tmac.$(tmac_s_prefix)s + $(INSTALL_DATA) $(srcdir)/tmac.s $(tmacdir)/tmac.$(tmac_s_prefix)s for f in $(STRIPFILES); do \ rm -f $(tmacdir)/$$f; \ $(INSTALL_DATA) $$f-s $(tmacdir)/$$f; \ done - -test -d $(mdocdir) || mkdir $(mdocdir) - for f in $(MDOCFILES); do \ - rm -f $(mdocdir)/$$f; \ - $(INSTALL_DATA) $$f-s $(mdocdir)/$$f; \ - done -test -f $(tmacdir)/man.local || \ $(INSTALL_DATA) $(srcdir)/man.local $(tmacdir)/man.local -rm -f temp @@ -57,7 +44,7 @@ stamp-strip: $(STRIPFILES) $(MDOCFILES) stamp-wrap: if test -n "$(tmac_wrap)"; then \ - for m in $(tmac_wrap); do \ + for m in ""$(tmac_wrap); do \ rm -f $$m-wrap; \ echo .cp 1 >$$m-wrap; \ echo .so $(sys_tmac_prefix)$$m >>$$m-wrap; \ @@ -67,11 +54,12 @@ stamp-wrap: uninstall_sub: -if test -n "$(tmac_wrap)"; then \ - for m in $(tmac_wrap); do rm -f $(tmacdir)/tmac.$$m; done; \ + for m in ""$(tmac_wrap); do \ + rm -f $(tmacdir)/tmac.$$m; \ + done; \ fi -for f in $(NORMALFILES) $(STRIPFILES); do rm -f $(tmacdir)/$$f; done -rm -f $(tmacdir)/tmac.$(tmac_s_prefix)s - -rm -f $(tmacdir)/tmac.$(tmac_an_prefix)an -if cmp -s $(tmacdir)/man.local $(srcdir)/man.local; then \ rm -f $(tmacdir)/man.local; \ fi diff --git a/gnu/usr.bin/groff/tmac/doc-common b/gnu/usr.bin/groff/tmac/doc-common index eb5e87570e3..1be195979fa 100644 --- a/gnu/usr.bin/groff/tmac/doc-common +++ b/gnu/usr.bin/groff/tmac/doc-common @@ -118,6 +118,7 @@ .nr Xc 3 .nr Xo 1 .nr Xr 10n +.nr Yr \n(yr+1900 .ds sV \& \& .ds hV \&\ \& .ds iV \& \& @@ -157,9 +158,9 @@ . ds cH \\$2 .\" . if "\\$3"" \{\ . if \\$2>=1 .if \\$2<=8 \{\ -. ds vT UNIX Reference Manual -. if \\$2>1 .if \\$2<6 .ds vT UNIX Programmer's Manual -. if "\\$2"8" .ds vT UNIX System Manager's Manual +. ds vT System Reference Manual +. if \\$2>1 .if \\$2<6 .ds vT System Programmer's Manual +. if "\\$2"8" .ds vT System Manager's Manual . nr sN \\$2 . \} . if "\\$2"unass" .ds vT DRAFT @@ -168,17 +169,17 @@ .\" . \} .\} .if !"\\$3"" \{\ -. if "\\$3"USD" .ds vT UNIX User's Supplementary Documents -. if "\\$3"PS1" .ds vT UNIX Programmers's Supplementary Documents -. if "\\$3"AMD" .ds vT UNIX Ancestral Manual Documents -. if "\\$3"SMM" .ds vT UNIX System Manager's Manual -. if "\\$3"URM" .ds vT UNIX Reference Manual -. if "\\$3"PRM" .ds vT UNIX Programmers's Manual -. if "\\$3"IND" .ds vT UNIX Manual Master Index -.\" . if "\\$3"CON" .ds vT UNIX Contributed Software Manual -.\" . if "\\$3"IMP" .ds vT UNIX Implementation Notes -.\" . if "\\$3"HOW" .ds vT UNIX How Pocket Manual -. if "\\$3"LOCAL" .ds vT UNIX Local Manual +. if "\\$3"USD" .ds vT User's Supplementary Documents +. if "\\$3"PS1" .ds vT Programmers's Supplementary Documents +. if "\\$3"AMD" .ds vT Ancestral Manual Documents +. if "\\$3"SMM" .ds vT System Manager's Manual +. if "\\$3"URM" .ds vT Reference Manual +. if "\\$3"PRM" .ds vT Programmers's Manual +. if "\\$3"IND" .ds vT Manual Master Index +.\" . if "\\$3"CON" .ds vT Contributed Software Manual +.\" . if "\\$3"IMP" .ds vT Implementation Notes +.\" . if "\\$3"HOW" .ds vT How Pocket Manual +. if "\\$3"LOCAL" .ds vT Local Manual . if "\\$3"tahoe" .as vT \ (Tahoe Architecture) . if "\\$3"vax" .as vT \ (VAX Architecture) . if "\\$3"hp300" .as vT \ (HP300 Architecture) @@ -245,8 +246,7 @@ . if "\\n(mo"10" .ds dD October . if "\\n(mo"11" .ds dD November . if "\\n(mo"12" .ds dD December -. nr *year \\n(yr+1900 -. as dD \&\ \\n(dy, \\n([*year] +. as dD \&\ \\n(dy, \\n(Yr . \} .\} .el \{\ diff --git a/gnu/usr.bin/groff/tmac/groff_man.man b/gnu/usr.bin/groff/tmac/groff_man.7_in index 57eb9ec4555..57eb9ec4555 100644 --- a/gnu/usr.bin/groff/tmac/groff_man.man +++ b/gnu/usr.bin/groff/tmac/groff_man.7_in diff --git a/gnu/usr.bin/groff/tmac/groff_mdoc.man b/gnu/usr.bin/groff/tmac/groff_mdoc.7_in index 2112eba4eba..2112eba4eba 100644 --- a/gnu/usr.bin/groff/tmac/groff_mdoc.man +++ b/gnu/usr.bin/groff/tmac/groff_mdoc.7_in diff --git a/gnu/usr.bin/groff/tmac/groff_mdoc.samples.man b/gnu/usr.bin/groff/tmac/groff_mdoc.samples.7_in index cdbbc21c4f6..cdbbc21c4f6 100644 --- a/gnu/usr.bin/groff/tmac/groff_mdoc.samples.man +++ b/gnu/usr.bin/groff/tmac/groff_mdoc.samples.7_in diff --git a/gnu/usr.bin/groff/tmac/groff_me.man b/gnu/usr.bin/groff/tmac/groff_me.7_in index 49196212391..49196212391 100644 --- a/gnu/usr.bin/groff/tmac/groff_me.man +++ b/gnu/usr.bin/groff/tmac/groff_me.7_in diff --git a/gnu/usr.bin/groff/tmac/groff_ms.man b/gnu/usr.bin/groff/tmac/groff_ms.7_in index 0e1f64c741f..0e1f64c741f 100644 --- a/gnu/usr.bin/groff/tmac/groff_ms.man +++ b/gnu/usr.bin/groff/tmac/groff_ms.7_in diff --git a/gnu/usr.bin/groff/tmac/groff_msafer.man b/gnu/usr.bin/groff/tmac/groff_msafer.7_in index 0e0de775b63..0e0de775b63 100644 --- a/gnu/usr.bin/groff/tmac/groff_msafer.man +++ b/gnu/usr.bin/groff/tmac/groff_msafer.7_in diff --git a/gnu/usr.bin/groff/tmac/me.man b/gnu/usr.bin/groff/tmac/me.man deleted file mode 100644 index 49196212391..00000000000 --- a/gnu/usr.bin/groff/tmac/me.man +++ /dev/null @@ -1,274 +0,0 @@ -.\" Copyright (c) 1980 The Regents of the University of California. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms are permitted -.\" provided that the above copyright notice and this paragraph are -.\" duplicated in all such forms and that any documentation, -.\" advertising materials, and other materials related to such -.\" distribution and use acknowledge that the software was developed -.\" by the University of California, Berkeley. The name of the -.\" University may not be used to endorse or promote products derived -.\" from this software without specific prior written permission. -.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -.\" -.\" @(#)me.7 6.4 (Berkeley) 4/13/90 -.\" -.\" Modified for groff by jjc@jclark.com -.hc % -.TH GROFF_ME @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@" -.UC 3 -.SH NAME -groff_me \- troff macros for formatting papers -.SH SYNOPSIS -.B "groff \-me" -[ options ] -file ... -.br -.B "troff \-me" -[ options ] -file ... -.SH DESCRIPTION -This manual page describes the GNU version of the \-me macros, -which is part of the groff document formatting system. -This version can be used with both GNU troff and Unix troff. -This package of -.I troff -macro definitions provides a canned formatting -facility for tech%nical papers in various formats. -.PP -The macro requests are defined below. -Many -.I troff -requests are unsafe in conjunction with -this package, however, these requests may be used with -impunity after the first .pp: -.nf -.IP -.ta \w'.sz +n 'u -\&.bp begin new page -\&.br break output line here -\&.sp n insert n spacing lines -\&.ls n (line spacing) n=1 single, n=2 double space -\&.na no alignment of right margin -\&.ce n center next n lines -\&.ul n underline next n lines -.fi -.PP -Output of the -.I pic, -.I eqn, -.I refer, -and -.I tbl -preprocessors -is acceptable as input. -.SH FILES -@MACRODIR@/tmac.e -.SH "SEE ALSO" -.BR groff (@MAN1EXT@), -.BR @g@troff (@MAN1EXT@) -.br -\-me Reference Manual, Eric P. Allman -.br -Writing Papers with Groff Using \-me -.tr &. -.SH REQUESTS -This list is incomplete; -see -.I "The \-me Reference Manual" -for interesting details. -.PP -.ta \w'.eh \'x\'y\'z\' 'u +\w'Initial 'u +\w'Cause 'u -.br -.di x - \ka -.br -.di -.in \nau -.ti 0 -Request Initial Cause Explanation -.ti 0 - Value Break -.br -.in \nau -.ti 0 -\&.(c - yes Begin centered block -.ti 0 -\&.(d - no Begin delayed text -.ti 0 -\&.(f - no Begin footnote -.ti 0 -\&.(l - yes Begin list -.ti 0 -\&.(q - yes Begin major quote -.ti 0 -\&.(x \fIx\fR - no Begin indexed item in index -.I x -.ti 0 -\&.(z - no Begin floating keep -.ti 0 -\&.)c - yes End centered block -.ti 0 -\&.)d - yes End delayed text -.ti 0 -\&.)f - yes End footnote -.ti 0 -\&.)l - yes End list -.ti 0 -\&.)q - yes End major quote -.ti 0 -\&.)x - yes End index item -.ti 0 -\&.)z - yes End floating keep -.ti 0 -\&.++ \fIm H\fR - no Define paper section. -.I m -defines the part of the paper, and can be -.B C -(chapter), -.B A -(appendix), -.B P -(preliminary, e.g., abstract, table of contents, etc.), -.B B -(bibliography), -.B RC -(chapters renumbered from page one each chapter), -or -.B RA -(appendix renumbered from page one). -.ti 0 -\&.+c \fIT\fR - yes Begin chapter (or appendix, etc., as -set by .++). -.I T -is the chapter title. -.ti 0 -\&.1c 1 yes One column format on a new page. -.ti 0 -\&.2c 1 yes Two column format. -.ti 0 -\&.EN - yes Space after equation -produced by -.I eqn -or -.IR neqn . -.ti 0 -\&.EQ \fIx y\fR - yes Precede equation; break out and -add space. -Equation number is -.IR y . -The optional argument \fIx\fR -may be -.I I -to indent equation (default), -.I L -to left-adjust the equation, or -.I C -to center the equation. -.ti 0 -\&.GE - yes End \fIgremlin\fP picture. -.ti 0 -\&.GS - yes Begin \fIgremlin\fP picture. -.ti 0 -\&.PE - yes End \fIpic\fP picture. -.ti 0 -\&.PS - yes Begin \fIpic\fP picture. -.ti 0 -\&.TE - yes End table. -.ti 0 -\&.TH - yes End heading section of table. -.ti 0 -\&.TS \fIx\fR - yes Begin table; if \fIx\fR is -.I H -table has repeated heading. -.ti 0 -\&.b \fIx\fR no no Print -.I x -in boldface; if no argument switch to boldface. -.ti 0 -\&.ba \fI+n\fR 0 yes Augments the base indent by -.I n. -This indent is used to set the indent on regular text -(like paragraphs). -.ti 0 -\&.bc no yes Begin new column -.ti 0 -\&.bi \fIx\fR no no Print -.I x -in bold italics (nofill only) -.ti 0 -\&.bu - yes Begin bulleted paragraph -.ti 0 -\&.bx \fIx\fR no no Print \fIx\fR in a box (nofill only). -.ti 0 -\&.ef \fI\'x\'y\'z\'\fR \'\'\'\' no Set even footer to x y z -.ti 0 -\&.eh \fI\'x\'y\'z\'\fR \'\'\'\' no Set even header to x y z -.ti 0 -\&.fo \fI\'x\'y\'z\'\fR \'\'\'\' no Set footer to x y z -.ti 0 -\&.hx - no Suppress headers and footers on next page. -.ti 0 -\&.he \fI\'x\'y\'z\'\fR \'\'\'\' no Set header to x y z -.ti 0 -\&.hl - yes Draw a horizontal line -.ti 0 -\&.i \fIx\fR no no Italicize -.I x; -if -.I x -missing, italic text follows. -.ti 0 -\&.ip \fIx y\fR no yes Start indented paragraph, -with hanging tag -.IR x . -Indentation is -.I y -ens (default 5). -.ti 0 -\&.lp yes yes Start left-blocked paragraph. -.ti 0 -\&.np 1 yes Start numbered paragraph. -.ti 0 -\&.of \fI\'x\'y\'z\'\fR \'\'\'\' no Set odd footer to x y z -.ti 0 -\&.oh \fI\'x\'y\'z\'\fR \'\'\'\' no Set odd header to x y z -.ti 0 -\&.pd - yes Print delayed text. -.ti 0 -\&.pp no yes Begin paragraph. -First line indented. -.ti 0 -\&.r yes no Roman text follows. -.ti 0 -\&.re - no Reset tabs to default values. -.ti 0 -\&.sh \fIn x\fR - yes Section head follows, -font automatically bold. -.I n -is level of section, -.I x -is title of section. -.ti 0 -\&.sk no no Leave the next page blank. -Only one page is remembered ahead. -.ti 0 -\&.sm \fIx\fR - no Set -.I x -in a smaller pointsize. -.ti 0 -\&.sz \fI+n\fR 10p no Augment the point size by -.I n -points. -.ti 0 -\&.tp no yes Begin title page. -.ti 0 -\&.u \fIx\fR - no Underline argument (even in \fItroff\fR). -(Nofill only). -.ti 0 -\&.uh - yes Like .sh but unnumbered. -.ti 0 -\&.xp \fIx\fR - no Print index -.I x. diff --git a/gnu/usr.bin/groff/tmac/msafer.man b/gnu/usr.bin/groff/tmac/msafer.man deleted file mode 100644 index 05712855652..00000000000 --- a/gnu/usr.bin/groff/tmac/msafer.man +++ /dev/null @@ -1,56 +0,0 @@ -.ig \"-*- nroff -*- -Copyright (C) 1989-1995 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be included in -translations approved by the Free Software Foundation instead of in -the original English. -.. -.TH MSAFER @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@" -.SH NAME -msafer \- groff -msafer macros -.SH SYNOPSIS -.B groff -.B \-msafer -[ -.IR options .\|.\|. -] -[ -.IR files .\|.\|. -] -.SH DESCRIPTION -The -msafer macros remove the -.BR open , -.BR opena , -.BR pso , -.B sy -and -.B pi -requests. -These macros should be used when processing input from -an untrustworthy source. -For maximum safety, -they should be the first -m option on the command-line. -Normally they are invoked using the -.B \-S -option of groff, which will also pass -.B @g@pic -the -.B \-S -flag. -.SH FILES -.B @MACRODIR@/tmac.safer -.SH "SEE ALSO" -.BR groff (@MAN1EXT@), -.BR @g@troff (@MAN1EXT@), -.BR @g@pic (@MAN1EXT@) diff --git a/gnu/usr.bin/groff/tmac/tmac.e b/gnu/usr.bin/groff/tmac/tmac.e index a472560979c..3a4eb86a999 100644 --- a/gnu/usr.bin/groff/tmac/tmac.e +++ b/gnu/usr.bin/groff/tmac/tmac.e @@ -1519,8 +1519,10 @@ in \\f2\\*([B\\f1, \c .if \n(dw=5 .ds dw Thursday .if \n(dw=6 .ds dw Friday .if \n(dw=7 .ds dw Saturday -.nr *year \n(yr+1900 -.ds td \*(mo \n(dy, \n[*year] +.nr y2 \n(yr%100 +.af y2 00 +.nr y4 \n(yr+1900 +.ds td \*(mo \n(dy, \n(y4 .\" *** PARAMETRIC INITIALIZATIONS *** .rr x .nr $v \n(.v00+\n(.sp-1/\n(.sp \" vs as percentage of ps for .sz request diff --git a/gnu/usr.bin/groff/troff/Makefile.sub b/gnu/usr.bin/groff/troff/Makefile.sub index dc67031fee2..28b5dd18eb2 100644 --- a/gnu/usr.bin/groff/troff/Makefile.sub +++ b/gnu/usr.bin/groff/troff/Makefile.sub @@ -1,5 +1,5 @@ PROG=troff -MAN1=troff.n +MAN1=troff.1 XLIBS=$(LIBGROFF) MLIB=$(LIBM) OBJS=env.o node.o input.o div.o symbol.o dictionary.o reg.o \ diff --git a/gnu/usr.bin/groff/troff/troff.man b/gnu/usr.bin/groff/troff/troff.1_in index c355b86b8d9..c3249672129 100644 --- a/gnu/usr.bin/groff/troff/troff.man +++ b/gnu/usr.bin/groff/troff/troff.1_in @@ -1,5 +1,5 @@ .ig \"-*- nroff -*- -Copyright (C) 1989-1995 Free Software Foundation, Inc. +Copyright (C) 1989-1999 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -47,7 +47,7 @@ the original English. .ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]" .el .RB "[\ " "\\$1" "\ ]" .. -.OP \-abivzCER +.OP \-abivzCERU .OP \-w name .OP \-W name .OP \-d cs @@ -80,7 +80,9 @@ approximation of the typeset output. .B \-b Print a backtrace with each warning or error message. This backtrace should help track down the cause of the error. The line numbers given -in the backtrace may not always correct: troff's idea of line numbers +in the backtrace may not always be correct: +.B troff 's +idea of line numbers gets confused by .B as or @@ -140,6 +142,14 @@ as the default font family. Read in the file .BI tmac. name\fR. Normally this will be searched for in @MACRODIR@. +By default is used the +.I safer +macro (reverted using -U ). +.TP +.B \-U +Unsafe option, avoids default use of +.I safer +macro. .TP .B \-R Don't load @@ -2046,6 +2056,7 @@ of device .BR grops (@MAN1EXT@), .BR grodvi (@MAN1EXT@), .BR grotty (@MAN1EXT@), +.BR grohtml (@MAN1EXT@), .BR deroff (@MAN1EXT@), .BR groff_font (@MAN5EXT@), .BR groff_out (@MAN5EXT@), diff --git a/gnu/usr.bin/groff/xditview/Dvi.c b/gnu/usr.bin/groff/xditview/Dvi.c index 312f686e677..4391bc3c37f 100644 --- a/gnu/usr.bin/groff/xditview/Dvi.c +++ b/gnu/usr.bin/groff/xditview/Dvi.c @@ -20,6 +20,12 @@ static char Xrcsid[] = "$XConsortium: Dvi.c,v 1.9 89/12/10 16:12:25 rws Exp $"; #include <X11/Xmu/Converters.h> #include <stdio.h> #include <ctype.h> +#include <unistd.h> +#ifndef HAVE_MKSTEMP +#include <fcntl.h> +#include <sys/types.h> +#include <sys/stat.h> +#endif #include "DviP.h" /**************************************************************** @@ -186,7 +192,14 @@ static void Initialize(request, new) dw->dvi.native = 0; } -#include <X11/bitmaps/gray> +#include "gray1.bm" +#include "gray2.bm" +#include "gray3.bm" +#include "gray4.bm" +#include "gray5.bm" +#include "gray6.bm" +#include "gray7.bm" +#include "gray8.bm" static void Realize (w, valueMask, attrs) @@ -211,16 +224,37 @@ Realize (w, valueMask, attrs) GCForeground|GCCapStyle|GCJoinStyle |GCLineWidth, &values); - dw->dvi.gray = XCreateBitmapFromData(XtDisplay (w), XtWindow (w), - gray_bits, - gray_width, gray_height); + dw->dvi.gray[0] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w), + gray1_bits, + gray1_width, gray1_height); + dw->dvi.gray[1] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w), + gray2_bits, + gray2_width, gray2_height); + dw->dvi.gray[2] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w), + gray3_bits, + gray3_width, gray3_height); + dw->dvi.gray[3] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w), + gray4_bits, + gray4_width, gray4_height); + dw->dvi.gray[4] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w), + gray5_bits, + gray5_width, gray5_height); + dw->dvi.gray[5] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w), + gray6_bits, + gray6_width, gray6_height); + dw->dvi.gray[6] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w), + gray7_bits, + gray7_width, gray7_height); + dw->dvi.gray[7] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w), + gray8_bits, + gray8_width, gray8_height); values.background = dw->dvi.background; - values.stipple = dw->dvi.gray; + values.stipple = dw->dvi.gray[5]; dw->dvi.fill_GC = XCreateGC (XtDisplay (w), XtWindow (w), GCForeground|GCBackground|GCStipple, &values); - dw->dvi.fill_type = DVI_FILL_BLACK; + dw->dvi.fill_type = 9; if (dw->dvi.file) OpenFile (dw); @@ -235,7 +269,14 @@ Destroy(w) XFreeGC (XtDisplay (w), dw->dvi.normal_GC); XFreeGC (XtDisplay (w), dw->dvi.fill_GC); - XFreePixmap (XtDisplay (w), dw->dvi.gray); + XFreePixmap (XtDisplay (w), dw->dvi.gray[0]); + XFreePixmap (XtDisplay (w), dw->dvi.gray[1]); + XFreePixmap (XtDisplay (w), dw->dvi.gray[2]); + XFreePixmap (XtDisplay (w), dw->dvi.gray[3]); + XFreePixmap (XtDisplay (w), dw->dvi.gray[4]); + XFreePixmap (XtDisplay (w), dw->dvi.gray[5]); + XFreePixmap (XtDisplay (w), dw->dvi.gray[6]); + XFreePixmap (XtDisplay (w), dw->dvi.gray[7]); DestroyFontMap (dw->dvi.font_map); DestroyFileMap (dw->dvi.file_map); device_destroy (dw->dvi.device); @@ -345,13 +386,18 @@ static void OpenFile (dw) DviWidget dw; { char tmpName[sizeof ("/tmp/dviXXXXXX")]; - int fd; + int fd; dw->dvi.tmpFile = 0; if (!dw->dvi.seek) { strcpy (tmpName, "/tmp/dviXXXXXX"); +#ifdef HAVE_MKSTEMP fd = mkstemp (tmpName); - dw->dvi.tmpFile = fdopen (fd, "w+"); +#else /* not HAVE_MKSTEMP */ + mktemp (tmpName); + fd = open (tmpName, O_CREAT|O_EXCL|O_RDWR, S_IRUSR|S_IWUSR); +#endif /* not HAVE_MKSTEMP */ + dw->dvi.tmpFile = fdopen (tmpName, "w+"); unlink (tmpName); } dw->dvi.requested_page = 1; diff --git a/gnu/usr.bin/groff/xditview/Imakefile b/gnu/usr.bin/groff/xditview/Imakefile index 4cb2ea9500a..12a2ef5ef08 100644 --- a/gnu/usr.bin/groff/xditview/Imakefile +++ b/gnu/usr.bin/groff/xditview/Imakefile @@ -1,5 +1,4 @@ -GROFF_LIBDIR = /usr/share -GROFF_FONTDIR = $(GROFF_LIBDIR)/groff_font +GROFF_FONTDIR = /usr/share/groff_font GROFF_FONTPATH = .:$(GROFF_FONTDIR):/usr/local/lib/font:/usr/lib/font DPIS = 75 100 @@ -14,7 +13,7 @@ SRCS2 = xtotroff.c XFontName.c DviChar.c OBJS2 = xtotroff.o XFontName.o DviChar.o INCLUDES = -I$(TOOLKITSRC) -I$(TOP) MATHLIB = -lm -DEFINES = $(SIGNAL_DEFINES) -DFONTPATH=\"$(GROFF_FONTPATH)\" # -DX_NOT_STDC_ENV +DEFINES = -DHAVE_MKSTEMP $(SIGNAL_DEFINES) -DFONTPATH=\"$(GROFF_FONTPATH)\" # -DX_NOT_STDC_ENV ComplexProgramTarget_1(gxditview,$(LOCAL_LIBRARIES),$(MATHLIB)) NormalProgramTarget(xtotroff,$(OBJS2),$(DEPXLIB),$(XLIB), /**/) @@ -46,7 +45,10 @@ fonts: xtotroff DESC FontMap $$dir/xtotroff -g -r $$dpi -s 12 $$dir/FontMap); \ done +GXditview-ad.h: GXditview.ad + /bin/sh ad2c GXditview.ad >GXditview-ad.h + extraclean: clean - -rm -f junk tmp grot old + -rm -f junk tmp grot old Makefile FORCE: |