diff options
author | 1996-07-30 17:34:15 +0000 | |
---|---|---|
committer | 1996-07-30 17:34:15 +0000 | |
commit | 7ab9cc48d3e62030e80557c3318a4c03be90a1ad (patch) | |
tree | 8e819b1713f3821814f514e8a4680f250e8b14ad | |
parent | bzzt, need finet for outgoing as well (diff) | |
download | wireguard-openbsd-7ab9cc48d3e62030e80557c3318a4c03be90a1ad.tar.xz wireguard-openbsd-7ab9cc48d3e62030e80557c3318a4c03be90a1ad.zip |
import of texinfo 3.7
-rw-r--r-- | gnu/usr.bin/texinfo/ChangeLog | 27 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/INSTALL | 5 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/configure | 277 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/configure.in | 5 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/emacs/Makefile.in | 26 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/emacs/info.el | 196 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/emacs/informat.el | 19 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/emacs/makeinfo.el | 11 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/emacs/texinfmt.el | 18 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/emacs/texinfo.el | 45 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/emacs/texnfo-upd.el | 14 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/info/info.c | 17 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/info/man.c | 6 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/info/session.c | 11 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/install.sh | 2 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/makeinfo/Makefile.in | 4 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/makeinfo/makeinfo.c | 73 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/texinfo.tex | 49 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/texinfo.texi | 31 | ||||
-rw-r--r-- | gnu/usr.bin/texinfo/util/mkinstalldirs | 4 |
20 files changed, 609 insertions, 231 deletions
diff --git a/gnu/usr.bin/texinfo/ChangeLog b/gnu/usr.bin/texinfo/ChangeLog index 2fc9f03c67e..48e217611db 100644 --- a/gnu/usr.bin/texinfo/ChangeLog +++ b/gnu/usr.bin/texinfo/ChangeLog @@ -1,3 +1,30 @@ +Sat Dec 23 11:48:43 1995 Brian J. Fox <bfox@wizard.datawave.net> + + * info/man.c: (clean_manpage) Remove ^L's from page. + + * makeinfo/makeinfo.c (get_brace_args): Change some memcpy's to + memmoves. + + * info/info.c (main): Prefer caseless matches over partial + matches. + + * Makefile.in (All Subdir Targets): Change suggested by Debian + people which allows errors in recursive makes to kill the + top-level make. + + * makeinfo/Makefile.in (makeinfo.dvi): New target. + + * info/info.c (main): Print version of containing texinfo package. + + * makeinfo/makeinfo.c (flush_output): Don't strip high-bit from + sentence_enders. + Print the version number of the containing texinfo package. + + * info/man.c (locate_manpage_xref): Count the 0th entry. + + * makeinfo/makeinfo.c (cm_menu): If a menu is seen before a node + has been defined, warn, and create the node `Top'. + Wed Jun 21 03:19:39 1995 Brian Fox <bfox@albert.gnu.ai.mit.edu> * makeinfo/makeinfo.c (cm_infoinclude): Clean up after printing diff --git a/gnu/usr.bin/texinfo/INSTALL b/gnu/usr.bin/texinfo/INSTALL index 95d84c820fb..a2c8722ccaf 100644 --- a/gnu/usr.bin/texinfo/INSTALL +++ b/gnu/usr.bin/texinfo/INSTALL @@ -95,6 +95,11 @@ give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. diff --git a/gnu/usr.bin/texinfo/configure b/gnu/usr.bin/texinfo/configure index 669224104e8..7007fe4c74e 100644 --- a/gnu/usr.bin/texinfo/configure +++ b/gnu/usr.bin/texinfo/configure @@ -1,7 +1,7 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.4 +# Generated automatically using autoconf version 2.7 # Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation @@ -33,9 +33,22 @@ target=NONE verbose= x_includes=NONE x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' # Initialize some other variables. subdirs= +MFLAGS= MAKEFLAGS= ac_prev= for ac_option @@ -57,9 +70,14 @@ do case "$ac_option" in - -build | --build | --buil | --bui | --bu | --b) + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*) + -build=* | --build=* | --buil=* | --bui=* | --bu=*) build="$ac_optarg" ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ @@ -69,6 +87,12 @@ do | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file="$ac_optarg" ;; + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + -disable-* | --disable-*) ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` # Reject names that are not valid shell variable names. @@ -119,12 +143,29 @@ Configuration: Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] - --exec-prefix=PREFIX install architecture-dependent files in PREFIX + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] --srcdir=DIR find the sources in DIR [configure dir or ..] --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF Host type: --build=BUILD configure for building on BUILD [BUILD=HOST] --host=HOST configure for HOST [guessed] @@ -136,8 +177,10 @@ Features and packages: --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR ---enable and --with options recognized:$ac_help EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi exit 0 ;; -host | --host | --hos | --ho) @@ -145,6 +188,44 @@ EOF -host=* | --host=* | --hos=* | --ho=*) host="$ac_optarg" ;; + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; @@ -157,6 +238,15 @@ EOF | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) @@ -197,6 +287,23 @@ EOF | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) @@ -207,6 +314,13 @@ EOF -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir="$ac_optarg" ;; + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) @@ -216,7 +330,7 @@ EOF verbose=yes ;; -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.4" + echo "configure generated by autoconf version 2.7" exit 0 ;; -with-* | --with-*) @@ -262,7 +376,7 @@ EOF -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } ;; - *) + *) if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then echo "configure: warning: $ac_option: invalid host type" 1>&2 fi @@ -381,9 +495,12 @@ fi 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 2>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5' +ac_cpp='echo $CPP $CPPFLAGS 1>&5; +$CPP $CPPFLAGS' +ac_compile='echo ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5; +${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5' +ac_link='echo ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5; +${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5' if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. @@ -443,6 +560,7 @@ else ac_cv_prog_gcc=no fi fi + echo "$ac_t""$ac_cv_prog_gcc" 1>&6 if test $ac_cv_prog_gcc = yes; then GCC=yes @@ -460,7 +578,8 @@ fi rm -f conftest* fi - echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6 + +echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6 if test $ac_cv_prog_gcc_g = yes; then CFLAGS="-g -O" else @@ -487,7 +606,7 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 491 "configure" +#line 610 "configure" #include "confdefs.h" #include <assert.h> Syntax Error @@ -501,7 +620,7 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 505 "configure" +#line 624 "configure" #include "confdefs.h" #include <assert.h> Syntax Error @@ -527,13 +646,13 @@ fi echo "$ac_t""$CPP" 1>&6 if test $ac_cv_prog_gcc = yes; then - echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 + echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext <<EOF -#line 537 "configure" +#line 656 "configure" #include "confdefs.h" #include <sgtty.h> Autoconf TIOCGETP @@ -551,7 +670,7 @@ rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext <<EOF -#line 555 "configure" +#line 674 "configure" #include "confdefs.h" #include <termio.h> Autoconf TCGETA @@ -565,7 +684,8 @@ rm -f conftest* fi fi - echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6 + +echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6 if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi @@ -629,10 +749,17 @@ else esac done IFS="$ac_save_ifs" - # As a last resort, use the slow shell script. - test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh" + fi - INSTALL="$ac_cv_path_install" + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi fi echo "$ac_t""$INSTALL" 1>&6 @@ -697,7 +824,7 @@ 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 701 "configure" +#line 828 "configure" #include "confdefs.h" #include <minix/config.h> EOF @@ -739,13 +866,14 @@ fi # Needed on sysV68 for sigblock, sigsetmask. echo $ac_n "checking for -lbsd""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_lib_bsd'+set}'`\" = set"; then +ac_lib_var=`echo bsd | tr '.-/+' '___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="-lbsd $LIBS" cat > conftest.$ac_ext <<EOF -#line 749 "configure" +#line 877 "configure" #include "confdefs.h" int main() { return 0; } @@ -755,18 +883,18 @@ sigblock() EOF if eval $ac_link; then rm -rf conftest* - eval "ac_cv_lib_bsd=yes" + eval "ac_cv_lib_$ac_lib_var=yes" else rm -rf conftest* - eval "ac_cv_lib_bsd=no" + eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi -if eval "test \"`echo '$ac_cv_lib_'bsd`\" = yes"; then +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo bsd | tr '[a-z]' '[A-Z]'` + ac_tr_lib=HAVE_LIB`echo bsd | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h <<EOF #define $ac_tr_lib 1 EOF @@ -781,13 +909,14 @@ fi TERMLIBS= for termlib in curses termcap terminfo termlib ; do echo $ac_n "checking for -l${termlib}""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_lib_${termlib}'+set}'`\" = set"; then +ac_lib_var=`echo ${termlib} | tr '.-/+' '___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="-l${termlib} $LIBS" cat > conftest.$ac_ext <<EOF -#line 791 "configure" +#line 920 "configure" #include "confdefs.h" int main() { return 0; } @@ -797,16 +926,16 @@ tputs() EOF if eval $ac_link; then rm -rf conftest* - eval "ac_cv_lib_${termlib}=yes" + eval "ac_cv_lib_$ac_lib_var=yes" else rm -rf conftest* - eval "ac_cv_lib_${termlib}=no" + eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* LIBS="$ac_save_LIBS" fi -if eval "test \"`echo '$ac_cv_lib_'${termlib}`\" = yes"; then +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 TERMLIBS="${TERMLIBS} -l${termlib}"; break else @@ -825,7 +954,7 @@ else ac_cv_c_cross=yes else cat > conftest.$ac_ext <<EOF -#line 829 "configure" +#line 958 "configure" #include "confdefs.h" main(){return(0);} EOF @@ -838,15 +967,16 @@ fi fi rm -fr conftest* fi -cross_compiling=$ac_cv_c_cross + echo "$ac_t""$ac_cv_c_cross" 1>&6 +cross_compiling=$ac_cv_c_cross echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 850 "configure" +#line 980 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -868,7 +998,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 872 "configure" +#line 1002 "configure" #include "confdefs.h" #include <string.h> EOF @@ -886,7 +1016,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 890 "configure" +#line 1020 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -904,10 +1034,10 @@ fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then - ac_cv_header_stdc=no + : else cat > conftest.$ac_ext <<EOF -#line 911 "configure" +#line 1041 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -928,6 +1058,7 @@ fi rm -fr conftest* fi fi + echo "$ac_t""$ac_cv_header_stdc" 1>&6 if test $ac_cv_header_stdc = yes; then cat >> confdefs.h <<\EOF @@ -945,7 +1076,7 @@ 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 949 "configure" +#line 1080 "configure" #include "confdefs.h" #include <$ac_hdr> EOF @@ -963,7 +1094,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 '[a-z]./\055' '[A-Z]___'` + ac_tr_hdr=HAVE_`echo $ac_hdr | tr 'abcdefghijklmnopqrstuvwxyz./\055' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ___'` cat >> confdefs.h <<EOF #define $ac_tr_hdr 1 EOF @@ -979,7 +1110,7 @@ if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 983 "configure" +#line 1114 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS @@ -1010,7 +1141,7 @@ if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1014 "configure" +#line 1145 "configure" #include "confdefs.h" int main() { return 0; } @@ -1023,7 +1154,7 @@ char const *const *ccp; char **p; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; -static struct point const zero; +static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ @@ -1070,6 +1201,7 @@ fi rm -f conftest* fi + echo "$ac_t""$ac_cv_c_const" 1>&6 if test $ac_cv_c_const = no; then cat >> confdefs.h <<\EOF @@ -1083,7 +1215,7 @@ if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1087 "configure" +#line 1219 "configure" #include "confdefs.h" #include <sys/types.h> #include <time.h> @@ -1102,6 +1234,7 @@ fi rm -f conftest* fi + echo "$ac_t""$ac_cv_struct_tm" 1>&6 if test $ac_cv_struct_tm = sys/time.h; then cat >> confdefs.h <<\EOF @@ -1118,7 +1251,7 @@ if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1122 "configure" +#line 1255 "configure" #include "confdefs.h" #include <alloca.h> int main() { return 0; } @@ -1136,6 +1269,7 @@ fi rm -f conftest* fi + echo "$ac_t""$ac_cv_header_alloca_h" 1>&6 if test $ac_cv_header_alloca_h = yes; then cat >> confdefs.h <<\EOF @@ -1149,7 +1283,7 @@ if eval "test \"`echo '$''{'ac_cv_func_alloca'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1153 "configure" +#line 1287 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -1183,6 +1317,7 @@ fi rm -f conftest* fi + echo "$ac_t""$ac_cv_func_alloca" 1>&6 if test $ac_cv_func_alloca = yes; then cat >> confdefs.h <<\EOF @@ -1207,7 +1342,7 @@ if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1211 "configure" +#line 1346 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -1227,6 +1362,7 @@ fi rm -f conftest* fi + echo "$ac_t""$ac_cv_os_cray" 1>&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do @@ -1235,13 +1371,13 @@ 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 1239 "configure" +#line 1375 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ #include <assert.h> /* Override any gcc2 internal prototype to avoid an error. */ -char $ac_func(); +char $ac_func(); int main() { return 0; } int t() { @@ -1289,7 +1425,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 1293 "configure" +#line 1429 "configure" #include "confdefs.h" find_stack_direction () { @@ -1317,6 +1453,7 @@ fi fi rm -fr conftest* fi + echo "$ac_t""$ac_cv_c_stack_direction" 1>&6 cat >> confdefs.h <<EOF #define STACK_DIRECTION $ac_cv_c_stack_direction @@ -1332,7 +1469,7 @@ else { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <<EOF -#line 1336 "configure" +#line 1473 "configure" #include "confdefs.h" #include <stdio.h> /* If setvbuf has the reversed format, exit 0. */ @@ -1356,6 +1493,7 @@ fi rm -fr conftest* rm -f core core.* *.core fi + echo "$ac_t""$ac_cv_func_setvbuf_reversed" 1>&6 if test $ac_cv_func_setvbuf_reversed = yes; then cat >> confdefs.h <<\EOF @@ -1364,21 +1502,22 @@ EOF fi -for ac_func in setvbuf getcwd memset bzero bcopy memcpy strchr strcasecmp \ - strdup vfprintf vsprintf strerror sigprocmask sigsetmask +for ac_func in setvbuf getcwd bzero bcopy memset memcpy memmove strchr \ + strcasecmp strdup vfprintf vsprintf strerror sigprocmask \ + sigsetmask do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 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 1376 "configure" +#line 1515 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ #include <assert.h> /* Override any gcc2 internal prototype to avoid an error. */ -char $ac_func(); +char $ac_func(); int main() { return 0; } int t() { @@ -1406,7 +1545,7 @@ 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 '[a-z]' '[A-Z]'` + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h <<EOF #define $ac_tr_func 1 EOF @@ -1505,7 +1644,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.4" + echo "$CONFIG_STATUS generated by autoconf version 2.7" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; @@ -1517,10 +1656,12 @@ ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" trap 'rm -fr `echo "Makefile libtxi/Makefile makeinfo/Makefile info/Makefile util/Makefile emacs/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF -# Protect against being on the right side of a sed subst in config.status. -sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; - s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF $ac_vpsub $extrasub s%@CFLAGS@%$CFLAGS%g @@ -1532,6 +1673,18 @@ s%@LIBS@%$LIBS%g s%@exec_prefix@%$exec_prefix%g s%@prefix@%$prefix%g s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g s%@CC@%$CC%g s%@CPP@%$CPP%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g diff --git a/gnu/usr.bin/texinfo/configure.in b/gnu/usr.bin/texinfo/configure.in index 1a5f1581a0a..b7060963017 100644 --- a/gnu/usr.bin/texinfo/configure.in +++ b/gnu/usr.bin/texinfo/configure.in @@ -33,7 +33,8 @@ AC_STRUCT_TM dnl Checks for library functions. AC_FUNC_ALLOCA AC_FUNC_SETVBUF_REVERSED -AC_CHECK_FUNCS(setvbuf getcwd memset bzero bcopy memcpy strchr strcasecmp \ - strdup vfprintf vsprintf strerror sigprocmask sigsetmask) +AC_CHECK_FUNCS(setvbuf getcwd bzero bcopy memset memcpy memmove strchr \ + strcasecmp strdup vfprintf vsprintf strerror sigprocmask \ + sigsetmask) AC_OUTPUT(Makefile libtxi/Makefile makeinfo/Makefile info/Makefile util/Makefile emacs/Makefile) diff --git a/gnu/usr.bin/texinfo/emacs/Makefile.in b/gnu/usr.bin/texinfo/emacs/Makefile.in index 045b8bc0698..f936e0d3e65 100644 --- a/gnu/usr.bin/texinfo/emacs/Makefile.in +++ b/gnu/usr.bin/texinfo/emacs/Makefile.in @@ -55,6 +55,14 @@ ELISP_OBJS = info.elc makeinfo.elc texinfo.elc texnfo-upd.elc \ all: $(ELISP_OBJS) sub-all: all +# Nobody likes any of these install targets. Fine. Install it +# manually, then. +install: + @echo Please install the lisp files manually. + +uninstall: + @echo Nothing to be done for uninstall. + # install: $(ELISP_OBJS) # @(echo "(print (car load-path))" >/tmp/elc.$$$$; \ # lispdir=`emacs -batch -q -l /tmp/elc.$$$$ -nw | grep site-lisp`; \ @@ -67,15 +75,15 @@ sub-all: all # echo "To install the elisp files, please copy *.elc to the"; \ # echo "emacs site-lisp directory."; \ # fi) - -install: $(ELISP_OBJS) - for file in $(ELISP_OBJS); do \ - $(INSTALL_DATA) $$file $(lispdir); \ - done - -uninstall: $(ELISP_OBJS) - cd $(lispdir) && rm -f $(ELISP_OBJS) - +# +# install: $(ELISP_OBJS) +# for file in $(ELISP_OBJS); do \ +# $(INSTALL_DATA) $$file $(lispdir); \ +# done +# +# uninstall: $(ELISP_OBJS) +# cd $(lispdir) && rm -f $(ELISP_OBJS) +# informat.elc: info.elc makeinfo.elc: texinfo.elc texinfmt.elc: texinfo.elc diff --git a/gnu/usr.bin/texinfo/emacs/info.el b/gnu/usr.bin/texinfo/emacs/info.el index 46c53a86ed8..ed4f7ff11d3 100644 --- a/gnu/usr.bin/texinfo/emacs/info.el +++ b/gnu/usr.bin/texinfo/emacs/info.el @@ -42,11 +42,6 @@ because that gives you a printed manual as well.") "Non-nil allows Info to execute Lisp code associated with nodes. The Lisp code is executed when the node is selected.") -(defvar Info-default-directory-list nil - "List of default directories to search for Info documentation files. -This value is used as the default for `Info-directory-list'. It is set -in paths.el.") - (defvar Info-fontify t "*Non-nil enables highlighting and fonts in Info nodes.") @@ -59,8 +54,10 @@ in paths.el.") ;; which might get this info.el from the Texinfo distribution. (path-separator (if (boundp 'path-separator) path-separator (if (eq system-type 'ms-dos) ";" ":"))) + (source (expand-file-name "info/" source-directory)) (sibling (if installation-directory - (expand-file-name "info/" installation-directory)))) + (expand-file-name "info/" installation-directory))) + alternative) (if path (let ((list nil) idx) @@ -70,9 +67,11 @@ in paths.el.") path (substring path (min (1+ idx) (length path))))) (nreverse list)) - (if (or (null sibling) - (member sibling Info-default-directory-list) - (not (file-exists-p sibling)) + (if (and sibling (file-exists-p sibling)) + (setq alternative sibling) + (setq alternative source)) + (if (or (member alternative Info-default-directory-list) + (not (file-exists-p alternative)) ;; On DOS/NT, we use movable executables always, ;; and we must always find the Info dir at run time. (if (or (eq system-type 'ms-dos) (eq system-type 'windows-nt)) @@ -83,7 +82,8 @@ in paths.el.") (expand-file-name "lib-src/" installation-directory))))) Info-default-directory-list - (reverse (cons sibling (cdr (reverse Info-default-directory-list))))))) + (reverse (cons alternative + (cdr (reverse Info-default-directory-list))))))) "List of directories to search for Info documentation files. nil means not yet initialized. In this case, Info uses the environment variable INFOPATH to initialize it, or `Info-default-directory-list' @@ -101,7 +101,9 @@ when you run a version of Emacs without installing it.") These directories are not searched for merging the `dir' file.") (defvar Info-current-file nil - "Info file that Info is now looking at, or nil.") + "Info file that Info is now looking at, or nil. +This is the name that was specified in Info, not the actual file name. +It doesn't contain directory names or file name extensions added by Info.") (defvar Info-current-subfile nil "Info subfile that is actually in the *info* buffer now, @@ -123,28 +125,58 @@ Marker points nowhere if file has no tag table.") (defvar Info-standalone nil "Non-nil if Emacs was started solely as an Info browser.") -(defvar Info-suffix-list '( (".info.Z" . "uncompress") - (".info.Y" . "unyabba") - (".info.gz" . "gunzip") - (".info.z" . "gunzip") - (".info" . nil) - (".Z" . "uncompress") - (".Y" . "unyabba") - (".gz" . "gunzip") - (".z" . "gunzip") - ("" . nil)) +(defvar Info-suffix-list + (if (eq system-type 'ms-dos) + '( (".gz" . "gunzip") + (".z" . "gunzip") + (".inf" . nil) + ("" . nil)) + '( (".info.Z" . "uncompress") + (".info.Y" . "unyabba") + (".info.gz" . "gunzip") + (".info.z" . "gunzip") + (".info" . nil) + (".Z" . "uncompress") + (".Y" . "unyabba") + (".gz" . "gunzip") + (".z" . "gunzip") + ("" . nil))) "List of file name suffixes and associated decoding commands. Each entry should be (SUFFIX . STRING); the file is given to the command as standard input. If STRING is nil, no decoding is done. Because the SUFFIXes are tried in order, the empty string should be last in the list.") +;; Concatenate SUFFIX onto FILENAME. SUFFIX should start with a dot. +;; First, on ms-dos, delete some of the extension in FILENAME +;; to make room. +(defun info-insert-file-contents-1 (filename suffix) + (if (not (eq system-type 'ms-dos)) + (concat filename suffix) + (let* ((sans-exts (file-name-sans-extension filename)) + ;; How long is the extension in FILENAME (not counting the dot). + (ext-len (max 0 (- (length filename) (length sans-exts) 1))) + ext-left) + ;; SUFFIX starts with a dot. If FILENAME already has one, + ;; get rid of the one in SUFFIX. + (or (and (<= ext-len 0) + (not (eq (aref filename (1- (length filename))) ?.))) + (setq suffix (substring suffix 1))) + ;; How many chars of that extension should we keep? + (setq ext-left (min ext-len (max 0 (- 3 (length suffix))))) + ;; Get rid of the rest of the extension, and add SUFFIX. + (concat (substring filename 0 (- (length filename) + (- ext-len ext-left))) + suffix)))) + (defun info-insert-file-contents (filename &optional visit) "Insert the contents of an info file in the current buffer. Do the right thing if the file has been compressed or zipped." (let ((tail Info-suffix-list) fullname decoder) (if (file-exists-p filename) + ;; FILENAME exists--see if that name contains a suffix. + ;; If so, set DECODE accordingly. (progn (while (and tail (not (string-match @@ -153,13 +185,17 @@ Do the right thing if the file has been compressed or zipped." (setq tail (cdr tail))) (setq fullname filename decoder (cdr (car tail)))) + ;; Try adding suffixes to FILENAME and see if we can find something. (while (and tail - (not (file-exists-p (concat filename (car (car tail)))))) + (not (file-exists-p (info-insert-file-contents-1 + filename (car (car tail)))))) (setq tail (cdr tail))) - (setq fullname (concat filename (car (car tail))) + ;; If we found a file with a suffix, set DECODER according to the suffix + ;; and set FULLNAME to the file's actual name. + (setq fullname (info-insert-file-contents-1 filename (car (car tail))) decoder (cdr (car tail))) (or tail - (error "Can't find %s or any compressed version of it!" filename))) + (error "Can't find %s or any compressed version of it" filename))) ;; check for conflict with jka-compr (if (and (featurep 'jka-compr) (jka-compr-installed-p) @@ -170,7 +206,7 @@ Do the right thing if the file has been compressed or zipped." (let ((buffer-read-only nil) (default-directory (or (file-name-directory fullname) default-directory))) - (shell-command-on-region (point-min) (point-max) decoder t))))) + (call-process-region (point-min) (point-max) decoder t t))))) ;;;###autoload (add-hook 'same-window-buffer-names "*info*") @@ -240,10 +276,12 @@ In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself." (let ((suffix-list Info-suffix-list)) (while (and suffix-list (not found)) (cond ((file-exists-p - (concat temp (car (car suffix-list)))) + (info-insert-file-contents-1 + temp (car (car suffix-list)))) (setq found temp)) ((file-exists-p - (concat temp-downcase (car (car suffix-list)))) + (info-insert-file-contents-1 + temp-downcase (car (car suffix-list)))) (setq found temp-downcase))) (setq suffix-list (cdr suffix-list)))) (setq dirs (cdr dirs))))) @@ -307,8 +345,7 @@ In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself." (match-end 0)))) (set-marker Info-tag-table-marker pos)))) (setq Info-current-file - (if (eq filename t) "dir" - (file-name-sans-versions buffer-file-name))))) + (if (eq filename t) "dir" filename)))) ;; Use string-equal, not equal, to ignore text props. (if (string-equal nodename "*") (progn (setq Info-current-node nodename) @@ -551,10 +588,10 @@ In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself." ;; Get nodename spelled as it is in the node. (re-search-forward "Node:[ \t]*") (setq Info-current-node - (buffer-substring (point) - (progn - (skip-chars-forward "^,\t\n") - (point)))) + (buffer-substring-no-properties (point) + (progn + (skip-chars-forward "^,\t\n") + (point)))) (Info-set-mode-line) ;; Find the end of it, and narrow. (beginning-of-line) @@ -600,12 +637,32 @@ In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself." (if trim (setq filename (substring filename 0 trim)))) (let ((trim (string-match "\\s *\\'" nodename))) (if trim (setq nodename (substring nodename 0 trim)))) + (if transient-mark-mode (deactivate-mark)) (Info-find-node (if (equal filename "") nil filename) (if (equal nodename "") "Top" nodename)))) +;; This function is used as the "completion table" while reading a node name. +;; It does completion using the alist in completion-table +;; unless STRING starts with an open-paren. +(defun Info-read-node-name-1 (string predicate code) + (let ((no-completion (and (> (length string) 0) (eq (aref string 0) ?\()))) + (cond ((eq code nil) + (if no-completion + string + (try-completion string completion-table predicate))) + ((eq code t) + (if no-completion + nil + (all-completions string completion-table predicate))) + ((eq code 'lambda) + (if no-completion + t + (assoc string completion-table)))))) + (defun Info-read-node-name (prompt &optional default) (let* ((completion-ignore-case t) - (nodename (completing-read prompt (Info-build-node-completions)))) + (completion-table (Info-build-node-completions)) + (nodename (completing-read prompt 'Info-read-node-name-1))) (if (equal nodename "") (or default (Info-read-node-name prompt)) @@ -657,6 +714,7 @@ In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself." (defun Info-search (regexp) "Search for REGEXP, starting from point, and select node it's found in." (interactive "sSearch (regexp): ") + (if transient-mark-mode (deactivate-mark)) (if (equal regexp "") (setq regexp Info-last-search) (setq Info-last-search regexp)) @@ -740,7 +798,7 @@ In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself." ;; saying which chas may appear in the node name. (defun Info-following-node-name (&optional allowedchars) (skip-chars-forward " \t") - (buffer-substring + (buffer-substring-no-properties (point) (progn (while (looking-at (concat "[" (or allowedchars "^,\t\n") "]")) @@ -864,7 +922,7 @@ NAME may be an abbreviation of the reference name." (forward-char 1) (setq str (if (looking-at ":") - (buffer-substring beg (1- (point))) + (buffer-substring-no-properties beg (1- (point))) (skip-chars-forward " \t\n") (Info-following-node-name (if multi-line "^.,\t" "^.,\t\n")))) (while (setq i (string-match "\n" str i)) @@ -890,6 +948,7 @@ NAME may be an abbreviation of the reference name." (save-excursion (set-buffer Info-complete-menu-buffer) (goto-char (point-min)) + (search-forward "\n* Menu:") (while (re-search-forward pattern nil t) (setq completions (cons (cons (format "%s" (buffer-substring @@ -906,6 +965,7 @@ NAME may be an abbreviation of the reference name." (save-excursion (set-buffer Info-complete-menu-buffer) (goto-char (point-min)) + (search-forward "\n* Menu:") (while (re-search-forward pattern nil t) (setq completions (cons (cons (format "%s" (buffer-substring @@ -918,6 +978,7 @@ NAME may be an abbreviation of the reference name." (save-excursion (set-buffer Info-complete-menu-buffer) (goto-char (point-min)) + (search-forward "\n* Menu:") (re-search-forward (concat "\n\\* " (regexp-quote string) ":") @@ -1590,16 +1651,48 @@ Allowed only if variable `Info-enable-edit' is non-nil." (buffer-modified-p) (message "Tags may have changed. Use Info-tagify if necessary"))) +(defvar Info-file-list-for-emacs + '("ediff" "forms" "gnus" "info" ("mh" . "mh-e") "sc") + "List of Info files that describe Emacs commands. +An element can be a file name, or a list of the form (PREFIX . FILE) +where PREFIX is a name prefix and FILE is the file to look in. +If the element is just a file name, the file name also serves as the prefix.") + (defun Info-find-emacs-command-nodes (command) - "Return a list of locations documenting COMMAND in the Emacs Info manual. + "Return a list of locations documenting COMMAND. +The `info-file' property of COMMAND says which Info manual to search. +If COMMAND has no property, the variable `Info-file-list-for-emacs' +defines heuristics for which Info manual to try. The locations are of the format used in Info-history, i.e. \(FILENAME NODENAME BUFFERPOS\)." - (require 'info) (let ((where '()) (cmd-desc (concat "^\\* " (regexp-quote (symbol-name command)) - ":\\s *\\(.*\\)\\.$"))) + ":\\s *\\(.*\\)\\.$")) + (info-file "emacs")) ;default + ;; Determine which info file this command is documented in. + (if (get command 'info-file) + (setq info-file (get command 'info-file)) + ;; If it doesn't say explicitly, test its name against + ;; various prefixes that we know. + (let ((file-list Info-file-list-for-emacs)) + (while file-list + (let* ((elt (car file-list)) + (name (if (consp elt) + (car elt) + elt)) + (file (if (consp elt) (cdr elt) elt)) + (regexp (concat "\\`" (regexp-quote name) + "\\(\\'\\|-\\)"))) + (if (string-match regexp (symbol-name command)) + (setq info-file file file-list nil)) + (setq file-list (cdr file-list)))))) (save-excursion - (Info-find-node "emacs" "Command Index") + (condition-case nil + (Info-find-node info-file "Command Index") + ;; Some manuals may not have a separate Command Index node, + ;; so try just Index instead. + (error + (Info-find-node info-file "Index"))) ;; Take the index node off the Info history. (setq Info-history (cdr Info-history)) (goto-char (point-max)) @@ -1615,7 +1708,9 @@ The locations are of the format used in Info-history, i.e. ;;;###autoload (defun Info-goto-emacs-command-node (command) "Go to the Info node in the Emacs manual for command COMMAND. -The command is found by looking up in Emacs manual's Command Index." +The command is found by looking up in Emacs manual's Command Index +or in another manual found via COMMAND's `info-file' property or +the variable `Info-file-list-for-emacs'." (interactive "CFind documentation for command: ") (or (commandp command) (signal 'wrong-type-argument (list 'commandp command))) @@ -1645,7 +1740,9 @@ The command is found by looking up in Emacs manual's Command Index." (defun Info-goto-emacs-key-command-node (key) "Go to the Info node in the Emacs manual the command bound to KEY, a string. Interactively, if the binding is execute-extended-command, a command is read. -The command is found by looking up in Emacs manual's Command Index." +The command is found by looking up in Emacs manual's Command Index +or in another manual found via COMMAND's `info-file' property or +the variable `Info-file-list-for-emacs'." (interactive "kFind documentation for key:") (let ((command (key-binding key))) (cond ((null command) @@ -1657,6 +1754,13 @@ The command is found by looking up in Emacs manual's Command Index." (t (Info-goto-emacs-command-node command))))) +(defvar Info-title-face-alist + '((?* bold underline) + (?= bold-italic underline) + (?- italic underline)) + "*Alist of face or list of faces to use for pseudo-underlined titles. +The alist key is the character the title is underlined with (?*, ?= or ?-).") + (defun Info-fontify-node () (save-excursion (let ((buffer-read-only nil)) @@ -1672,6 +1776,14 @@ The command is found by looking up in Emacs manual's Command Index." (put-text-property (match-beginning 1) (match-end 1) 'mouse-face 'highlight)))) (goto-char (point-min)) + (while (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*+\\|=+\\|-+\\)$" + nil t) + (put-text-property (match-beginning 1) (match-end 1) + 'face + (cdr (assq (preceding-char) Info-title-face-alist))) + (put-text-property (match-end 1) (match-end 2) + 'invisible t)) + (goto-char (point-min)) (while (re-search-forward "\\*Note[ \n\t]+\\([^:]*\\):" nil t) (if (= (char-after (1- (match-beginning 0))) ?\") ; hack nil diff --git a/gnu/usr.bin/texinfo/emacs/informat.el b/gnu/usr.bin/texinfo/emacs/informat.el index 2d923a1570d..7d7d73725bf 100644 --- a/gnu/usr.bin/texinfo/emacs/informat.el +++ b/gnu/usr.bin/texinfo/emacs/informat.el @@ -55,7 +55,7 @@ (forward-line 2) (if (re-search-backward regexp beg t) (setq list - (cons (list (buffer-substring + (cons (list (buffer-substring-no-properties (match-beginning 1) (match-end 1)) beg) @@ -175,7 +175,7 @@ Check that every node pointer points to an existing node." (forward-line 1) (if (re-search-backward regexp beg t) (let ((name (downcase - (buffer-substring + (buffer-substring-no-properties (match-beginning 1) (progn (goto-char (match-end 1)) @@ -208,7 +208,7 @@ Check that every node pointer points to an existing node." (search-forward "\n\^_" nil 'move) (narrow-to-region beg (point)) (setq thisnode (downcase - (buffer-substring + (buffer-substring-no-properties (match-beginning 1) (progn (goto-char (match-end 1)) @@ -302,7 +302,7 @@ Check that every node pointer points to an existing node." (if (= (following-char) ?\() nil (setq name - (buffer-substring + (buffer-substring-no-properties (point) (progn (skip-chars-forward "^,\t\n") @@ -338,7 +338,7 @@ Check that every node pointer points to an existing node." (setq tem (cdr tem))) (goto-char (1+ start)) (while (looking-at ".*Node: \\(.*\\)\177\\([0-9]+\\)$") - (setq tem (downcase (buffer-substring + (setq tem (downcase (buffer-substring-no-properties (match-beginning 1) (match-end 1)))) (setq tem (assoc tem allnodes)) @@ -348,8 +348,10 @@ Check that every node pointer points to an existing node." (setq tem (- (car (cdr (cdr tem))) (read (current-buffer)))) (if (> tem 0) tem (- tem))))) - (throw 'losing 'y))) - (forward-line 1)) + (throw 'losing 'y)) + (forward-line 1))) + (if (looking-at "\^_\n") + (forward-line 1)) (or (looking-at "End tag table\n") (throw 'losing 'z)) nil)))) @@ -412,7 +414,8 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\"" (message ">> PROBLEMS IN INFO FILE %s" file) (save-excursion (set-buffer loss-name) - (princ (buffer-substring (point-min) (point-max)))) + (princ (buffer-substring-no-properties + (point-min) (point-max)))) (message "----------------------------------------------------------------------") (setq error 1 lose t))) (if (and (buffer-modified-p) diff --git a/gnu/usr.bin/texinfo/emacs/makeinfo.el b/gnu/usr.bin/texinfo/emacs/makeinfo.el index 61269de9e2c..dbc5996d93f 100644 --- a/gnu/usr.bin/texinfo/emacs/makeinfo.el +++ b/gnu/usr.bin/texinfo/emacs/makeinfo.el @@ -1,10 +1,11 @@ -;;;; makeinfo.el -- run makeinfo conveniently. -;;; Copyright (C) 1991, 1993 Free Software Foundation, Inc. +;;; makeinfo.el --- run makeinfo conveniently -;;; Author: Robert J. Chassell -;;; Maintainer: FSF +;; Copyright (C) 1991, 1993 Free Software Foundation, Inc. -;;; This file is part of GNU Emacs. +;; Author: Robert J. Chassell +;; Maintainer: FSF + +;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by diff --git a/gnu/usr.bin/texinfo/emacs/texinfmt.el b/gnu/usr.bin/texinfo/emacs/texinfmt.el index d24e3d7c683..497c4d784bc 100644 --- a/gnu/usr.bin/texinfo/emacs/texinfmt.el +++ b/gnu/usr.bin/texinfo/emacs/texinfmt.el @@ -1,10 +1,11 @@ -;;;; texinfmt.el -;;; Copyright (C) 1985, 1986, 1988, 1990, 1991, -;;; 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +;;; texinfmt.el --- format Texinfo files into Info files. + +;; Copyright (C) 1985, 1986, 1988, +;; 1990, 1991, 1992, 1993 Free Software Foundation, Inc. ;; Maintainer: Robert J. Chassell <bug-texinfo@prep.ai.mit.edu> -;;; This file is part of GNU Emacs. +;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -24,7 +25,7 @@ ;;; Emacs lisp functions to convert Texinfo files to Info files. -(defvar texinfmt-version "2.34 of 7 June 1995") +(defvar texinfmt-version "2.32 of 19 November 1993") ;;; Variable definitions @@ -1916,11 +1917,9 @@ Default is to leave paragraph indentation as is." ;; are used to underline it. This could occur if the line following ;; the underlining is not an index entry and has text within it. (let* ((previous-paragraph-separate paragraph-separate) - (paragraph-separate - (concat paragraph-separate "\\|[-=.]+\\|\\*\\*+")) + (paragraph-separate (concat paragraph-separate "\\|[-=*.]+")) (previous-paragraph-start paragraph-start) - (paragraph-start - (concat paragraph-start "\\|[-=.]+\\|\\*\\*+"))) + (paragraph-start (concat paragraph-start "\\|[-=*.]+"))) (unwind-protect (fill-paragraph nil) (setq paragraph-separate previous-paragraph-separate) @@ -2987,7 +2986,6 @@ The command `@value{foo}' expands to the value." (put 'settitle 'texinfo-format 'texinfo-discard-line-with-args) (put 'setx 'texinfo-format 'texinfo-discard-line-with-args) (put 'shortcontents 'texinfo-format 'texinfo-discard-line-with-args) -(put 'shorttitlepage 'texinfo-format 'texinfo-discard-line-with-args) (put 'smallbook 'texinfo-format 'texinfo-discard-line) (put 'summarycontents 'texinfo-format 'texinfo-discard-line-with-args) diff --git a/gnu/usr.bin/texinfo/emacs/texinfo.el b/gnu/usr.bin/texinfo/emacs/texinfo.el index 2ed5a3291d1..53ed2a76364 100644 --- a/gnu/usr.bin/texinfo/emacs/texinfo.el +++ b/gnu/usr.bin/texinfo/emacs/texinfo.el @@ -1,11 +1,12 @@ -;;;; texinfo.el--major mode for editing Texinfo files. +;;; texinfo.el --- major mode for editing Texinfo files + ;; Copyright (C) 1985, '88, '89, ;; '90, '91, '92, '93 Free Software Foundation, Inc. -;;; Author: Robert J. Chassell -;;; Maintainer: FSF +;; Author: Robert J. Chassell +;; Maintainer: FSF -;;; This file is part of GNU Emacs. +;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -196,18 +197,30 @@ chapter." (modify-syntax-entry ?} "){" texinfo-mode-syntax-table) (modify-syntax-entry ?\' "w" texinfo-mode-syntax-table)) +;; Written by Wolfgang Bangerth <zcg51122@rpool1.rus.uni-stuttgart.de> +;; To overide this example, set either `imenu-generic-expression' +;; or `imenu-create-index-function'. +(defvar texinfo-imenu-generic-expression + '((nil "^@node[ \t]+\\([^,\n]*\\)" 1) + ("Chapters" "^@chapter[ \t]+\\(.*\\)$" 1)) + + "Imenu generic expression for TexInfo mode. See `imenu-generic-expression'.") + (defvar texinfo-font-lock-keywords (list - '("^\\(@c\\|@comment\\)[ \t].*" . font-lock-comment-face) ;comments + ;; All but the first 2 had an OVERRIDE of t. + ;; It didn't seem to be any better, and it's slower--simon. + '("^\\(@c\\|@comment\\)\\>.*" . font-lock-comment-face) ;comments + ;; Robert J. Chassell <bob@gnu.ai.mit.edu> says remove this line. + ;'("\\$\\([^$]*\\)\\$" 1 font-lock-string-face t) "@\\(@\\|[^}\t \n{]+\\)" ;commands - '("^\\(*.*\\)[\t ]*$" 1 font-lock-function-name-face t) ;menu items - '("@\\(emph\\|strong\\|b\\|i\\){\\([^}]+\\)" 2 font-lock-comment-face t) - '("@\\(file\\|kbd\\|key\\){\\([^}]+\\)" 2 font-lock-string-face t) - '("@\\(samp\\|code\\|var\\){\\([^}]+\\)" 2 font-lock-function-name-face t) - '("@\\(xref\\|pxref\\){\\([^}]+\\)" 2 font-lock-keyword-face t) - '("@end *\\([a-zA-Z0-9]+\\)[ \t]*$" 1 font-lock-function-name-face t) - '("@item \\(.*\\)$" 1 font-lock-function-name-face t) - '("\\$\\([^$]*\\)\\$" 1 font-lock-string-face t) + '("^\\(*.*\\)[\t ]*$" 1 font-lock-function-name-face t) ;menu items + '("@\\(emph\\|strong\\|b\\|i\\){\\([^}]+\\)" 2 font-lock-comment-face) + '("@\\(file\\|kbd\\|key\\){\\([^}]+\\)" 2 font-lock-string-face) + '("@\\(samp\\|code\\|var\\|math\\){\\([^}]+\\)" + 2 font-lock-variable-name-face) + '("@\\(cite\\|xref\\|pxref\\){\\([^}]+\\)" 2 font-lock-reference-face) + '("@\\(end\\|item\\) *\\(.+\\)" 2 font-lock-function-name-face keep) ) "Additional expressions to highlight in TeXinfo mode.") @@ -384,8 +397,10 @@ value of texinfo-mode-hook." (setq comment-start-skip "@c +") (make-local-variable 'words-include-escapes) (setq words-include-escapes t) + (make-local-variable 'imenu-generic-expression) + (setq imenu-generic-expression texinfo-imenu-generic-expression) (make-local-variable 'font-lock-defaults) - (setq font-lock-defaults '(texinfo-font-lock-keywords)) + (setq font-lock-defaults '(texinfo-font-lock-keywords t)) (make-local-variable 'tex-start-of-header) (setq tex-start-of-header "%**start") (make-local-variable 'tex-end-of-header) @@ -396,7 +411,7 @@ value of texinfo-mode-hook." ;;; Insert string commands (defconst texinfo-environment-regexp - "^@\\(f?table\\|enumerate\\|itemize\ + "^[ \t]*@\\(f?table\\|enumerate\\|itemize\ \\|ifhtml\\|ifinfo\\|iftex\\|ifset\\|ifclear\ \\|example\\|quotation\\|lisp\\|smallexample\\|smalllisp\\|display\\|format\ \\|flushleft\\|flushright\\|ignore\\|group\\|tex\\|html\\|cartouche\\|menu\ diff --git a/gnu/usr.bin/texinfo/emacs/texnfo-upd.el b/gnu/usr.bin/texinfo/emacs/texnfo-upd.el index f84cdd51496..48da6614960 100644 --- a/gnu/usr.bin/texinfo/emacs/texnfo-upd.el +++ b/gnu/usr.bin/texinfo/emacs/texnfo-upd.el @@ -1,5 +1,6 @@ -;;; Texinfo mode utilities for updating nodes and menus in Texinfo files. -;;; Copyright 1989, 1990, 1991, 1992 Free Software Foundation +;;; texnfo-upd.el --- utilities for updating nodes and menus in Texinfo files + +;; Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. ;; Author: Robert J. Chassell ;; Maintainer: bug-texinfo@prep.ai.mit.edu @@ -1001,10 +1002,11 @@ error if the node is not the top node and a section is not found." t) "top") ((re-search-forward texinfo-section-types-regexp nil t) - (buffer-substring (progn (beginning-of-line) ; copy its name - (1+ (point))) - (progn (forward-word 1) - (point)))) + (buffer-substring-no-properties + (progn (beginning-of-line) ; copy its name + (1+ (point))) + (progn (forward-word 1) + (point)))) (t (error "texinfo-specific-section-type: Chapter or section not found.")))))) diff --git a/gnu/usr.bin/texinfo/info/info.c b/gnu/usr.bin/texinfo/info/info.c index f00d71bb187..0a1d6bce4d8 100644 --- a/gnu/usr.bin/texinfo/info/info.c +++ b/gnu/usr.bin/texinfo/info/info.c @@ -31,7 +31,7 @@ /* The version numbers of this version of Info. */ int info_major_version = 2; int info_minor_version = 14; -int info_patch_level = 0; +int info_patch_level = 1; /* Non-zero means search all indices for APROPOS_SEARCH_STRING. */ static int apropos_p = 0; @@ -198,7 +198,7 @@ main (argc, argv) /* If the user specified --version, then show the version and exit. */ if (print_version_p) { - printf ("GNU Info, Version %s.\n", version_string ()); + printf ("GNU Info, Version %s, from texinfo-3.7.\n", version_string ()); exit (0); } @@ -331,10 +331,19 @@ main (argc, argv) if (!entry) { register int i; + int best_guess = -1; for (i = 0; entry = menu[i]; i++) - if (strncasecmp (entry->label, arg, strlen (arg)) == 0) - break; + { + if (strcasecmp (entry->label, arg) == 0) + break; + else + if (strncasecmp (entry->label, arg, strlen (arg)) == 0) + best_guess = i; + } + + if (!entry && best_guess != -1) + entry = menu[best_guess]; } /* If we failed to find the reference, start Info with the current diff --git a/gnu/usr.bin/texinfo/info/man.c b/gnu/usr.bin/texinfo/info/man.c index 4b4dca9b203..b899ec1d273 100644 --- a/gnu/usr.bin/texinfo/info/man.c +++ b/gnu/usr.bin/texinfo/info/man.c @@ -261,7 +261,7 @@ get_manpage_contents (pagename) if (child == -1) return ((char *)NULL); - + if (child != 0) { /* In the parent, close the writing end of the pipe, and read from @@ -317,7 +317,7 @@ clean_manpage (manpage) newline_count--; } - if (manpage[i] == '\b') + if (manpage[i] == '\b' || manpage[i] == '\f') j -= 2; } @@ -583,7 +583,7 @@ locate_manpage_xref (node, start, dir) } else { - for (i = count - 1; i > 0; i--) + for (i = count - 1; i > -1; i--) { entry = refs[i]; diff --git a/gnu/usr.bin/texinfo/info/session.c b/gnu/usr.bin/texinfo/info/session.c index 50befb8388b..f26fb006da0 100644 --- a/gnu/usr.bin/texinfo/info/session.c +++ b/gnu/usr.bin/texinfo/info/session.c @@ -1900,22 +1900,19 @@ info_menu_or_ref_item (window, count, key, builder, ask_p) { SEARCH_BINDING binding; - binding.start = 0; - binding.buffer = window->line_starts[point_line]; + binding.buffer = window->node->contents; + binding.start = window->line_starts[point_line] - binding.buffer; if (window->line_starts[point_line + 1]) binding.end = window->line_starts[point_line + 1] - binding.buffer; else - binding.end = - (window->node->contents + window->node->nodelen) - binding.buffer; + binding.end = window->node->nodelen; binding.flags = 0; if (builder == info_menu_of_node) { if (point_line) { - binding.buffer--; - binding.end++; - + binding.start--; refs = info_menu_items (&binding); } } diff --git a/gnu/usr.bin/texinfo/install.sh b/gnu/usr.bin/texinfo/install.sh index 89fc9b098b8..58719246f04 100644 --- a/gnu/usr.bin/texinfo/install.sh +++ b/gnu/usr.bin/texinfo/install.sh @@ -29,7 +29,7 @@ stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" -tranformbasename="" +transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" diff --git a/gnu/usr.bin/texinfo/makeinfo/Makefile.in b/gnu/usr.bin/texinfo/makeinfo/Makefile.in index dd691215b41..03f8359247f 100644 --- a/gnu/usr.bin/texinfo/makeinfo/Makefile.in +++ b/gnu/usr.bin/texinfo/makeinfo/Makefile.in @@ -81,6 +81,10 @@ makeinfo.info: ./makeinfo makeinfo.texi macro.texi # makeinfo.texi: ./makeinfo makeinfo.mki # ./makeinfo -E makeinfo.texi -I$(srcdir) makeinfo.mki +makeinfo.dvi: ./makeinfo makeinfo.texi macro.texi + ./makeinfo -E makeinfo.txi -I$(srcdir) makeinfo.texi + $(srcdir)/../util/texi2dvi makeinfo.txi + install: all for f in $(PROGS); do $(INSTALL_PROGRAM) $$f $(bindir)/$(binprefix)$$f; done -d=$(srcdir); test -f ./makeinfo.info && d=.; $(INSTALL_DATA) $$d/makeinfo.info $(infodir)/makeinfo.info diff --git a/gnu/usr.bin/texinfo/makeinfo/makeinfo.c b/gnu/usr.bin/texinfo/makeinfo/makeinfo.c index b3a0d5ff32c..78014935357 100644 --- a/gnu/usr.bin/texinfo/makeinfo/makeinfo.c +++ b/gnu/usr.bin/texinfo/makeinfo/makeinfo.c @@ -19,11 +19,11 @@ Among other things, the copyright notice and this notice must be preserved on all copies. */ -/* This is Makeinfo version 1.63. If you change the version number of +/* This is Makeinfo version 1.64. If you change the version number of Makeinfo, please change it here and at the lines reading: int major_version = 1; - int minor_version = 63; + int minor_version = 64; in the code below. @@ -135,6 +135,10 @@ int array_len (); void free_array (); static void isolate_nodename (); +#if !defined (HAVE_MEMMOVE) +# define memmove(dst, src, len) bcopy (src, dst, len) +#endif + /* Non-zero means that we are currently hacking the insides of an insertion which would use a fixed width font. */ static int in_fixed_width_font = 0; @@ -871,7 +875,7 @@ static COMMAND CommandTable[] = { {(char *) NULL, (COMMAND_FUNCTION *) NULL}, NO_BRACE_ARGS}; int major_version = 1; -int minor_version = 63; +int minor_version = 64; struct option long_options[] = { @@ -1070,7 +1074,7 @@ main (argc, argv) void print_version_info () { - printf ("This is GNU Makeinfo version %d.%d.\n", + printf ("This is GNU Makeinfo version %d.%d, from texinfo-3.7.\n", major_version, minor_version); } @@ -1281,7 +1285,7 @@ find_and_load (filename) /* Set the globals to the new file. */ input_text = result; size_of_input_text = count; - input_filename = strdup (fullpath); + input_filename = fullpath; node_filename = strdup (fullpath); input_text_offset = 0; line_number = 1; @@ -1764,6 +1768,10 @@ read_token () if (self_delimiting (character)) { input_text_offset++; + + if (character == '\n') + line_number++; + result = strdup (" "); *result = character; return (result); @@ -2979,10 +2987,7 @@ flush_output () for (i = 0; i < output_paragraph_offset; i++) { - if (output_paragraph[i] == (unsigned char)(' ' | 0x80) || - output_paragraph[i] == (unsigned char)('\t' | 0x80) || - output_paragraph[i] == (unsigned char)('\n' | 0x80) || - sentence_ender (UNMETA (output_paragraph[i]))) + if (output_paragraph[i] == (unsigned char)(' ' | 0x80)) output_paragraph[i] &= 0x7f; } @@ -3803,8 +3808,7 @@ discard_insertions () { if (insertion_stack->insertion == ifinfo || insertion_stack->insertion == ifset || - insertion_stack->insertion == ifclear || - insertion_stack->insertion == cartouche) + insertion_stack->insertion == ifclear) break; else { @@ -5612,10 +5616,15 @@ isolate_nodename (nodename) void cm_menu () { + if (current_node == (char *)NULL) + { + warning ("%cmenu seen before a node has been defined", COMMAND_PREFIX); + warning ("Creating `TOP' node."); + execute_string ("@node Top"); + } begin_insertion (menu); } - /* **************************************************************** */ /* */ /* Cross Reference Hacking */ @@ -5667,6 +5676,12 @@ cm_xref (arg) node_name = arg2; execute_string ("%s: (%s)%s", node_name, arg4, arg1); + /* Free all of the arguments found. */ + if (arg1) free (arg1); + if (arg2) free (arg2); + if (arg3) free (arg3); + if (arg4) free (arg4); + if (arg5) free (arg5); return; } else @@ -7146,7 +7161,7 @@ cm_center () start = output_paragraph_offset; inhibit_output_flushing (); get_rest_of_line ((char **)&line); - execute_string ((char *)line); + execute_string ("%s", (char *)line); free (line); uninhibit_output_flushing (); @@ -7814,6 +7829,7 @@ make_index_entries_unique (array, count) { register int i, j; INDEX_ELT **copy; + int counter = 1; copy = (INDEX_ELT **)xmalloc ((1 + count) * sizeof (INDEX_ELT *)); @@ -7836,7 +7852,7 @@ make_index_entries_unique (array, count) the copy, fixing the NEXT pointers. */ for (i = 0; copy[i] != (INDEX_ELT *)NULL; i++) { - int counter = 1; + copy[i]->next = copy[i + 1]; /* Fix entry names which are the same. They point to different nodes, @@ -8438,7 +8454,7 @@ delete_macro (name) for (i = 0; macro_list && (def = macro_list[i]); i++) if (strcmp (def->name, name) == 0) { - memcpy (macro_list + i, macro_list + i + 1, + memmove (macro_list + i, macro_list + i + 1, ((macro_list_len + 1) - i) * sizeof (MACRO_DEF *)); break; } @@ -8478,8 +8494,9 @@ get_macro_args (def) char **arglist; get_rest_of_line (&word); - input_text_offset--; - canon_white (word); + if (input_text[input_text_offset - 1] == '\n') + input_text_offset--; + /* canon_white (word); */ arglist = (char **)xmalloc (2 * sizeof (char *)); arglist[0] = word; arglist[1] = (char *)NULL; @@ -8621,7 +8638,7 @@ execute_macro (def) me_execute_string (execution_string); } else - execute_string (execution_string); + execute_string ("%s", execution_string); free (execution_string); } @@ -8713,7 +8730,11 @@ cm_macro () while ((character = curchar ()) && character != ',' && character != '}') - input_text_offset++; + { + input_text_offset++; + if (character == '\n') + line_number++; + } /* Add the word to our list of words. */ if ((arglist_index + 2) >= arglist_size) @@ -8778,7 +8799,7 @@ cm_macro () (strncmp (line + 1, "quote-arg", 9) == 0) && (line[10] == '\0' || whitespace (line[10]))) { - for (i = 16; whitespace (line[i]); i++); + for (i = 10; whitespace (line[i]); i++); strcpy (line, line + i); if (arglist && arglist[0] && !arglist[1]) @@ -9000,10 +9021,10 @@ append_to_expansion_output (offset) if (!itext) itext = remember_itext (input_text, 0); - if (offset > itext_info[i]->offset) + if (offset > itext->offset) { write_region_to_macro_output - (input_text, itext_info[i]->offset, offset); + (input_text, itext->offset, offset); remember_itext (input_text, offset); } } @@ -9123,7 +9144,8 @@ get_brace_args (quote_single) for (i = 0; word[i]; i++) if (word[i] == '\\') - memcpy (word + i, word + i + 1, strlen (word + i + 1)); + memmove (word + i, word + i + 1, + 1 + strlen (word + i + 1)); } if (arglist_index + 2 >= arglist_size) @@ -9146,7 +9168,10 @@ get_brace_args (quote_single) input_text_offset++; } else - input_text_offset++; + { + input_text_offset++; + if (character == '\n') line_number++; + } } return (arglist); } diff --git a/gnu/usr.bin/texinfo/texinfo.tex b/gnu/usr.bin/texinfo/texinfo.tex index a33131538ea..c928b92abf5 100644 --- a/gnu/usr.bin/texinfo/texinfo.tex +++ b/gnu/usr.bin/texinfo/texinfo.tex @@ -34,7 +34,7 @@ % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} -\deftexinfoversion$Revision: 1.1.1.1 $ +\deftexinfoversion$Revision: 1.1.1.2 $ \message{Loading texinfo package [Version \texinfoversion]:} % If in a .fmt file, print the version number @@ -66,7 +66,10 @@ % since \penalty is valid in vertical mode, we'd end up putting the % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 - \gdef\tie{\leavevmode\penalty\@M\ } + % Avoid using \@M directly, because that causes trouble + % if the definition is written into an index file. + \global\let\tiepenalty = \@M + \gdef\tie{\leavevmode\penalty\tiepenalty\ } } \let\~ = \tie % And make it available as @~. @@ -1104,11 +1107,10 @@ where each line of input produces a line of output.} \def\restorehyphenation{\hyphenchar\font = `- } \def\t#1{% - {\tt \nohyphenation \rawbackslash \frenchspacing #1}% + {\tt \rawbackslash \frenchspacing #1}% \null } -\let\ttfont = \t -%\def\samp #1{`{\tt \rawbackslash \frenchspacing #1}'\null} +\let\ttfont=\t \def\samp #1{`\tclose{#1}'\null} \def\key #1{{\tt \nohyphenation \uppercase{#1}}\null} \def\ctrl #1{{\tt \rawbackslash \hat}#1} @@ -1157,6 +1159,7 @@ where each line of input produces a line of output.} % ever called. -- mycroft \global\def\indexbreaks{\catcode`\-=\active \let-\realdash \catcode`\_=\active \let_\realunder} } + \def\realdash{-} \def\realunder{_} \def\codedash{-\discretionary{}{}{}} @@ -1544,7 +1547,7 @@ July\or August\or September\or October\or November\or December\fi \def\tablez #1#2#3#4#5#6{% \aboveenvbreak % \begingroup % -\def\Edescription{\Etable}% Neccessary kludge. +\def\Edescription{\Etable}% Necessary kludge. \let\itemindex=#1% \ifnum 0#3>0 \advance \leftskip by #3\mil \fi % \ifnum 0#4>0 \tableindent=#4\mil \fi % @@ -1988,8 +1991,15 @@ July\or August\or September\or October\or November\or December\fi \def\kbd##1{\realbackslash kbd {##1}}% \def\dfn##1{\realbackslash dfn {##1}}% \def\emph##1{\realbackslash emph {##1}}% +\unsepspaces } +% If an index command is used in an @example environment, any spaces +% therein should become regular spaces in the raw index file, not the +% expansion of \tie (\\leavevmode \penalty \@M \ ). +{\obeyspaces + \gdef\unsepspaces{\obeyspaces\let =\space}} + % \indexnofonts no-ops all font-change commands. % This is used when outputting the strings to sort the index by. \def\indexdummyfont#1{#1} @@ -2240,7 +2250,7 @@ July\or August\or September\or October\or November\or December\fi % % Insert the text of the index entry. TeX will do line-breaking on it. #1% - % The following is kluged to not output a line of dots in the index if + % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. \def\tempa{{\rm }}% @@ -2578,7 +2588,7 @@ July\or August\or September\or October\or November\or December\fi \penalty 10000 % }} -\outer\def\appenixsection{\parsearg\appendixsecyyy} +\outer\def\appendixsection{\parsearg\appendixsecyyy} \outer\def\appendixsec{\parsearg\appendixsecyyy} \def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz \def\appendixsectionzzz #1{\seccheck{appendixsection}% @@ -3010,9 +3020,10 @@ July\or August\or September\or October\or November\or December\fi % can't do that in the \entry macro, since index entries might consist % of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) % +% \turnoffactive is for the sake of @" used for umlauts. \def\tocentry#1#2{\begingroup \hyphenpenalty = 10000 - \entry{#1}{#2}% + \entry{\turnoffactive #1}{\turnoffactive #2}% \endgroup} % Space between chapter (or whatever) number and the title. @@ -3836,7 +3847,10 @@ July\or August\or September\or October\or November\or December\fi \setbox0=\hbox{\printednodename}% \ifdim \wd0 = 0pt % No printed node name was explicitly given. - \ifx\SETxref-automatic-section-title\relax % + \ifx\SETxref-automatic-section-title\thisisundefined + % Use the node name inside the square brackets. + \def\printednodename{\ignorespaces #1}% + \else % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. \ifdim \wd1>0pt% @@ -3845,16 +3859,12 @@ July\or August\or September\or October\or November\or December\fi \else \ifhavexrefs % We know the real title if we have the xref values. - \def\printednodename{\refx{#1-title}}% + \def\printednodename{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. \def\printednodename{\ignorespaces #1}% \fi% \fi - \def\printednodename{#1-title}% - \else - % Use the node name inside the square brackets. - \def\printednodename{\ignorespaces #1}% \fi \fi % @@ -4312,14 +4322,7 @@ July\or August\or September\or October\or November\or December\fi \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. -\def\_{\lvvmode \kern.06em \vbox{\hrule width.3em height.1ex}} - -% \lvvmode is equivalent in function to \leavevmode. -% Using \leavevmode runs into trouble when written out to -% an index file due to the expansion of \leavevmode into ``\unhbox -% \voidb@x'' ---which looks to TeX like ``\unhbox \voidb\x'' due to our -% magic tricks with @. -\def\lvvmode{\vbox to 0pt{}} +\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}} \catcode`\|=\active \def|{{\tt \char '174}} diff --git a/gnu/usr.bin/texinfo/texinfo.texi b/gnu/usr.bin/texinfo/texinfo.texi index 0ab8b858acb..eaf26f4fbd5 100644 --- a/gnu/usr.bin/texinfo/texinfo.texi +++ b/gnu/usr.bin/texinfo/texinfo.texi @@ -516,6 +516,11 @@ The Definition Commands * Abstract Objects:: Commands for object-oriented programming. * Data Types:: The definition command for data types. +Footnotes + +* Footnote Commands:: How to write a footnote in Texinfo. +* Footnote Styles:: Controlling how footnotes appear in Info. + Conditionally Visible Text * Conditional Commands:: How to specify text for Info or @TeX{}. @@ -1404,23 +1409,17 @@ and reported mistakes and obscurities; our special thanks go to @w{Melissa Weisshaus} for her frequent and often tedious reviews of nearly similar editions. Our mistakes are our own. -@c ignore until mailing lists set up -@ignore Please send suggestions and corrections to: @example @group @r{Internet address:} bug-texinfo@@prep.ai.mit.edu - -@r{UUCP path:} - mit-eddie!prep.ai.mit.edu!bug-texinfo @end group @end example @noindent Please include the manual's edition number in your messages. -@end ignore @node Texinfo Mode, Beginning a File, Overview, Top @comment node-name, next, previous, up @@ -10448,6 +10447,14 @@ understand the primary text. For a thorough discussion of footnotes, see @cite{The Chicago Manual of Style}, which is published by the University of Chicago Press.}@refill +@menu +* Footnote Commands:: How to write a footnote in Texinfo. +* Footnote Styles:: Controlling how footnotes appear in Info. +@end menu + +@node Footnote Commands +@section Footnote Commands + In Texinfo, footnotes are created with the @code{@@footnote} command. This command is followed immediately by a left brace, then by the text of the footnote, and then by a terminating right brace. The template @@ -10468,13 +10475,21 @@ source, it looks like this:@refill footnote.@}; in the Texinfo source@dots{} @end example +@strong{Warning:} Don't use footnotes in the argument of the +@code{@@item} command for a @code{@@table} table. This doesn't work; +because of limitations of @TeX{}, there is no way to fix it. To avoid +the problem, move the footnote into the body text of the table. + In a printed manual or book, the reference mark for a footnote is a -small, superscripted number; the text of the footnote is written at -the bottom of the page, below a horizontal line.@refill +small, superscripted number; the text of the footnote appears at the +bottom of the page, below a horizontal line.@refill In Info, the reference mark for a footnote is a pair of parentheses with the footnote number between them, like this: @samp{(1)}.@refill +@node Footnote Styles +@section Footnote Styles + Info has two footnote styles, which determine where the text of the footnote is located:@refill diff --git a/gnu/usr.bin/texinfo/util/mkinstalldirs b/gnu/usr.bin/texinfo/util/mkinstalldirs index 0801ec2c966..cd1fe0a7947 100644 --- a/gnu/usr.bin/texinfo/util/mkinstalldirs +++ b/gnu/usr.bin/texinfo/util/mkinstalldirs @@ -2,12 +2,12 @@ # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman <friedman@prep.ai.mit.edu> # Created: 1993-05-16 -# Last modified: 1994-03-25 # Public domain errstatus=0 -for file in ${1+"$@"} ; do +for file +do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift |