From: Glenn Morris Date: Thu, 12 Dec 2013 03:37:38 +0000 (-0800) Subject: Add support for auto-generating info/dir X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~461 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f9405d87cdbb4e2072b6c53ee9c5c01ca14d41de;p=emacs.git Add support for auto-generating info/dir * admin/update_autogen: Add option to generate info/dir. (Usage): Add -I. (info_flag): New variable. (-I): New option. (doc): Maybe check its status. (info_dir): New function. * admin/dir_top: New file. * doc/emacs/emacs.texi: * doc/lispintro/emacs-lisp-intro.texi: * doc/lispref/elisp.texi: * doc/misc/autotype.texi, doc/misc/cc-mode.texi, doc/misc/ediff.texi: * doc/misc/ert.texi, doc/misc/htmlfontify.texi, doc/misc/ido.texi: * doc/misc/octave-mode.texi, doc/misc/org.texi, doc/misc/srecode.texi: * doc/misc/todo-mode.texi, doc/misc/tramp.texi: Sync direntry with info/dir version. --- diff --git a/admin/ChangeLog b/admin/ChangeLog index 22824995dfc..b617df9be99 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,13 @@ +2013-12-12 Glenn Morris + + * update_autogen: Add option to generate info/dir. + (Usage): Add -I. + (info_flag): New variable. + (-I): New option. + (doc): Maybe check its status. + (info_dir): New function. + * dir_top: New file. + 2013-12-11 Paul Eggert Remove the option of using libcrypto. diff --git a/admin/dir_top b/admin/dir_top new file mode 100644 index 00000000000..321a39dc35e --- /dev/null +++ b/admin/dir_top @@ -0,0 +1,20 @@ +This is the file .../info/dir, which contains the +topmost node of the Info hierarchy, called (dir)Top. +The first time you invoke Info you start off looking at this node. + +File: dir, Node: Top This is the top of the INFO tree + +The Info Directory +****************** + + The Info Directory is the top-level menu of major Info topics. + Type "d" in Info to return to the Info Directory. Type "q" to exit Info. + Type "?" for a list of Info commands, or "h" to visit an Info tutorial. + Type "m" to choose a menu item--for instance, + "mEmacs" visits the Emacs manual. + In Emacs Info, you can click mouse button 2 on a menu item + or cross reference to follow it to its target. + Each menu line that starts with a * is a topic you can select with "m". + Every third topic has a red * to help pick the right number to type. + +* Menu: diff --git a/admin/update_autogen b/admin/update_autogen index 316c9330b62..d7deaaf46be 100755 --- a/admin/update_autogen +++ b/admin/update_autogen @@ -51,7 +51,7 @@ cd ../ usage () { cat 1>&2 < /dev/null" EXIT -while getopts ":hcfqA:CL" option ; do +while getopts ":hcfqA:CIL" option ; do case $option in (h) usage ;; @@ -119,6 +121,8 @@ while getopts ":hcfqA:CL" option ; do (C) clean=1 ;; + (I) info_flag=1 ;; + (L) lboot_flag=1 ;; (\?) die "Bad option -$OPTARG" ;; @@ -138,7 +142,8 @@ OPTIND=1 echo "Running bzr status..." -bzr status -S ${autogendir:+$sources} ${ldefs_flag:+lisp} >| $tempfile || \ +bzr status -S ${autogendir:+$sources} ${ldefs_flag:+lisp} \ + ${info_flag:+doc} >| $tempfile || \ die "bzr status error for input files" ## The lisp portion could be more permissive, eg only care about .el files. @@ -207,6 +212,70 @@ commit () } # function commit +## FIXME use standard tools for this, generate info/dir at build time +## if needed, stop keeping in the repo. +info_dir () +{ + local basefile=admin/dir_top outfile=info/dir + + echo "Regenerating info/dir..." + + ## Header contains non-printing characters, so this is more + ## reliable than using echo. + rm -f $outfile + cp $basefile $outfile + + local topic file dircat dirent + + ## FIXME inefficient looping. + for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \ + "Emacs editing modes" "Emacs network features" "Emacs misc features" \ + "Emacs lisp libraries"; do + + cat - <> $outfile + +$topic +EOF + ## Bit faster than doc/*/*.texi. + for file in doc/emacs/emacs.texi doc/lispintro/*.texi \ + doc/lispref/elisp.texi doc/misc/*.texi; do + + ## FIXME do not ignore w32 if OS is w32. + case $file in + *-xtra.texi|*efaq-w32.texi) continue ;; + esac + + dircat=`sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file` + + ## TODO warn about unknown topics. + [ "$dircat" = "$topic" ] || continue + + sed -n -e 's/@value{emacsname}/Emacs/' \ + -e 's/@acronym{\([A-Z]*\)}/\1/' \ + -e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \ + $file >> $outfile + + done + done + + bzr status -S $outfile >| $tempfile || \ + die "bzr status error for generated $outfile" + + local modified + + while read stat file; do + + [ "$stat" != "M" ] && \ + die "Unexpected status ($stat) for generated $file" + + modified="$modified $file" + + done < $tempfile + + commit "generated" $modified || die "bzr commit error" +} # function info_dir + + [ "$autogendir" ] && { oldpwd=$PWD @@ -239,6 +308,9 @@ commit () } # $autogendir +[ "$info_flag" ] && info_dir + + [ "$ldefs_flag" ] || exit 0 diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 5da37003152..fa43c3ef53e 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2013-12-12 Glenn Morris + + * emacs.texi: Sync direntry with info/dir version. + 2013-12-08 Juanma Barranquero * msdog.texi (Windows Keyboard): Fix typo. diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 8d502645b3a..9eb7db9ee82 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -48,7 +48,7 @@ developing GNU and promoting software freedom.'' @dircategory Emacs @direntry -* Emacs: (emacs). The extensible self-documenting text editor. +* Emacs: (emacs). The extensible self-documenting text editor. @end direntry @c in general, keep the following line commented out, unless doing a diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index f9cdeda17b6..b8c2c93bbb6 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog @@ -1,3 +1,7 @@ +2013-12-12 Glenn Morris + + * emacs-lisp-intro.texi: Sync direntry with info/dir version. + 2013-12-02 Paul Eggert * emacs-lisp-intro.texi (Counting Words): Don't use ':' in xref diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index d05cf3ec866..0111c58ad82 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -98,8 +98,7 @@ @dircategory GNU Emacs Lisp @direntry -* Emacs Lisp Intro: (eintr). - A simple introduction to Emacs Lisp programming. +* Emacs Lisp Intro: (eintr). A simple introduction to Emacs Lisp programming. @end direntry @copying diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index d2173793d00..c224e523a84 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2013-12-12 Glenn Morris + + * elisp.texi: Sync direntry with info/dir version. + 2013-12-08 Juanma Barranquero * display.texi (Progress, Face Remapping): diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index 230da1867dd..0e09b1eed2d 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -119,7 +119,7 @@ developing GNU and promoting software freedom.'' @dircategory GNU Emacs Lisp @direntry -* Elisp: (elisp). The Emacs Lisp Reference Manual. +* Elisp: (elisp). The Emacs Lisp Reference Manual. @end direntry @titlepage diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 3a8fe5b540d..d067631f032 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,10 @@ +2013-12-12 Glenn Morris + + * autotype.texi, cc-mode.texi, ediff.texi, ert.texi: + * htmlfontify.texi, ido.texi, octave-mode.texi, org.texi: + * srecode.texi, todo-mode.texi, tramp.texi: + Sync direntry with info/dir version. + 2013-12-11 Rüdiger Sonderfeld * Makefile.in: Add octave-mode.texi. diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi index 137ed6b43e8..92cd5cdeccd 100644 --- a/doc/misc/autotype.texi +++ b/doc/misc/autotype.texi @@ -28,8 +28,8 @@ modify this GNU manual.'' @dircategory Emacs misc features @direntry -* Autotype: (autotype). Convenient features for text that you - enter frequently in Emacs. +* Autotype: (autotype). Convenient features for text that you enter + frequently in Emacs. @end direntry @titlepage diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index c62d7026541..7d1baf7bf0c 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -176,7 +176,7 @@ modify this GNU manual.'' @dircategory Emacs editing modes @direntry * CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, - Java, Pike, AWK, and CORBA IDL code. + Java, Pike, AWK, and CORBA IDL code. @end direntry @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi index 378eee08c51..bb315fc41ef 100644 --- a/doc/misc/ediff.texi +++ b/doc/misc/ediff.texi @@ -42,7 +42,8 @@ modify this GNU manual.'' @dircategory Emacs misc features @direntry -* Ediff: (ediff). A visual interface for comparing and merging programs. +* Ediff: (ediff). A visual interface for comparing and + merging programs. @end direntry @titlepage diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi index ac87b98eae9..926a02fd1de 100644 --- a/doc/misc/ert.texi +++ b/doc/misc/ert.texi @@ -6,7 +6,7 @@ @dircategory Emacs misc features @direntry -* ERT: (ert). Emacs Lisp regression testing tool. +* ERT: (ert). Emacs Lisp regression testing tool. @end direntry @copying diff --git a/doc/misc/htmlfontify.texi b/doc/misc/htmlfontify.texi index 4bb6a9d6900..9f3b99a1027 100644 --- a/doc/misc/htmlfontify.texi +++ b/doc/misc/htmlfontify.texi @@ -26,7 +26,7 @@ modify this GNU manual.'' @dircategory Emacs misc features @direntry -* Htmlfontify: (htmlfontify). Convert source code to html. +* Htmlfontify: (htmlfontify). Convert source code to html. @end direntry @titlepage diff --git a/doc/misc/ido.texi b/doc/misc/ido.texi index 64885179259..747a9d57d3f 100644 --- a/doc/misc/ido.texi +++ b/doc/misc/ido.texi @@ -21,9 +21,9 @@ modify this GNU manual.'' @end quotation @end copying -@dircategory Emacs lisp libraries +@dircategory Emacs misc features @direntry -* Ido: (ido). Interactively do things with buffers and files. +* Ido: (ido). Interactively do things with buffers and files. @end direntry @finalout diff --git a/doc/misc/octave-mode.texi b/doc/misc/octave-mode.texi index 2efe9f9d1c4..50bb4f11f2a 100644 --- a/doc/misc/octave-mode.texi +++ b/doc/misc/octave-mode.texi @@ -22,7 +22,7 @@ modify this GNU manual.'' @dircategory Emacs editing modes @direntry -* Octave mode: (octave-mode). Emacs mode for editing GNU Octave files. +* Octave mode: (octave-mode). Emacs mode for editing GNU Octave files. @end direntry @finalout diff --git a/doc/misc/org.texi b/doc/misc/org.texi index 015b519df6c..a90f3d4d536 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -279,7 +279,7 @@ modify this GNU manual.'' @dircategory Emacs editing modes @direntry -* Org Mode: (org). Outline-based notes management and organizer +* Org Mode: (org). Outline-based notes management and organizer. @end direntry @titlepage diff --git a/doc/misc/srecode.texi b/doc/misc/srecode.texi index 2a3cfdf0993..d6cf4d53edc 100644 --- a/doc/misc/srecode.texi +++ b/doc/misc/srecode.texi @@ -32,7 +32,7 @@ modify this GNU manual.'' @dircategory Emacs misc features @direntry -* SRecode: (srecode). Template code generator. +* SRecode: (srecode). Semantic template code generator. @end direntry @titlepage diff --git a/doc/misc/todo-mode.texi b/doc/misc/todo-mode.texi index a622298ba12..4920a9ccc81 100644 --- a/doc/misc/todo-mode.texi +++ b/doc/misc/todo-mode.texi @@ -25,7 +25,7 @@ modify this GNU manual.'' @dircategory Emacs misc features @direntry -* Todo Mode: (todo-mode). Make and maintain todo lists. +* Todo Mode: (todo-mode). Make and maintain todo lists. @end direntry @titlepage diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 2c02891d60f..6168d11b527 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -84,7 +84,7 @@ copy and modify this GNU manual.'' @dircategory @value{emacsname} network features @direntry * TRAMP: (tramp). Transparent Remote Access, Multiple Protocol - @value{emacsname} remote file access via rsh and rcp. + @value{emacsname} remote file access via rsh and rcp. @end direntry @titlepage