Commit f9405d87 authored by Glenn Morris's avatar Glenn Morris

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.
parent d5ccb7be
2013-12-12 Glenn Morris <rgm@gnu.org>
* 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 <eggert@cs.ucla.edu> 2013-12-11 Paul Eggert <eggert@cs.ucla.edu>
Remove the option of using libcrypto. Remove the option of using libcrypto.
......
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<Return>" 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:
...@@ -51,7 +51,7 @@ cd ../ ...@@ -51,7 +51,7 @@ cd ../
usage () usage ()
{ {
cat 1>&2 <<EOF cat 1>&2 <<EOF
Usage: ${PN} [-f] [-c] [-q] [-A dir] [-L] [-C] [-- make-flags] Usage: ${PN} [-f] [-c] [-q] [-A dir] [-I] [-L] [-C] [-- make-flags]
Update some auto-generated files in the Emacs tree. Update some auto-generated files in the Emacs tree.
By default, only does the versioned loaddefs-like files in lisp/. By default, only does the versioned loaddefs-like files in lisp/.
This requires a build. Passes any non-option args to make (eg -- -j2). This requires a build. Passes any non-option args to make (eg -- -j2).
...@@ -61,6 +61,7 @@ Options: ...@@ -61,6 +61,7 @@ Options:
commit them (caution). commit them (caution).
-q: be quiet; only give error messages, not status messages. -q: be quiet; only give error messages, not status messages.
-A: only update autotools files, copying into specified dir. -A: only update autotools files, copying into specified dir.
-I: also update info/dir.
-L: also update ldefs-boot.el. -L: also update ldefs-boot.el.
-C: start from a clean state. Slower, but more correct. -C: start from a clean state. Slower, but more correct.
EOF EOF
...@@ -77,6 +78,7 @@ clean= ...@@ -77,6 +78,7 @@ clean=
autogendir= # was "autogen" autogendir= # was "autogen"
ldefs_flag=1 ldefs_flag=1
lboot_flag= lboot_flag=
info_flag=
## Parameters. ## Parameters.
ldefs_in=lisp/loaddefs.el ldefs_in=lisp/loaddefs.el
...@@ -103,7 +105,7 @@ tempfile=/tmp/$PN.$$ ...@@ -103,7 +105,7 @@ tempfile=/tmp/$PN.$$
trap "rm -f $tempfile 2> /dev/null" EXIT trap "rm -f $tempfile 2> /dev/null" EXIT
while getopts ":hcfqA:CL" option ; do while getopts ":hcfqA:CIL" option ; do
case $option in case $option in
(h) usage ;; (h) usage ;;
...@@ -119,6 +121,8 @@ while getopts ":hcfqA:CL" option ; do ...@@ -119,6 +121,8 @@ while getopts ":hcfqA:CL" option ; do
(C) clean=1 ;; (C) clean=1 ;;
(I) info_flag=1 ;;
(L) lboot_flag=1 ;; (L) lboot_flag=1 ;;
(\?) die "Bad option -$OPTARG" ;; (\?) die "Bad option -$OPTARG" ;;
...@@ -138,7 +142,8 @@ OPTIND=1 ...@@ -138,7 +142,8 @@ OPTIND=1
echo "Running bzr status..." 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" die "bzr status error for input files"
## The lisp portion could be more permissive, eg only care about .el files. ## The lisp portion could be more permissive, eg only care about .el files.
...@@ -207,6 +212,70 @@ commit () ...@@ -207,6 +212,70 @@ commit ()
} # function 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 - <<EOF >> $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" ] && { [ "$autogendir" ] && {
oldpwd=$PWD oldpwd=$PWD
...@@ -239,6 +308,9 @@ commit () ...@@ -239,6 +308,9 @@ commit ()
} # $autogendir } # $autogendir
[ "$info_flag" ] && info_dir
[ "$ldefs_flag" ] || exit 0 [ "$ldefs_flag" ] || exit 0
......
2013-12-12 Glenn Morris <rgm@gnu.org>
* emacs.texi: Sync direntry with info/dir version.
2013-12-08 Juanma Barranquero <lekktu@gmail.com> 2013-12-08 Juanma Barranquero <lekktu@gmail.com>
* msdog.texi (Windows Keyboard): Fix typo. * msdog.texi (Windows Keyboard): Fix typo.
......
...@@ -48,7 +48,7 @@ developing GNU and promoting software freedom.'' ...@@ -48,7 +48,7 @@ developing GNU and promoting software freedom.''
@dircategory Emacs @dircategory Emacs
@direntry @direntry
* Emacs: (emacs). The extensible self-documenting text editor. * Emacs: (emacs). The extensible self-documenting text editor.
@end direntry @end direntry
@c in general, keep the following line commented out, unless doing a @c in general, keep the following line commented out, unless doing a
......
2013-12-12 Glenn Morris <rgm@gnu.org>
* emacs-lisp-intro.texi: Sync direntry with info/dir version.
2013-12-02 Paul Eggert <eggert@cs.ucla.edu> 2013-12-02 Paul Eggert <eggert@cs.ucla.edu>
* emacs-lisp-intro.texi (Counting Words): Don't use ':' in xref * emacs-lisp-intro.texi (Counting Words): Don't use ':' in xref
......
...@@ -98,8 +98,7 @@ ...@@ -98,8 +98,7 @@
@dircategory GNU Emacs Lisp @dircategory GNU Emacs Lisp
@direntry @direntry
* Emacs Lisp Intro: (eintr). * Emacs Lisp Intro: (eintr). A simple introduction to Emacs Lisp programming.
A simple introduction to Emacs Lisp programming.
@end direntry @end direntry
@copying @copying
......
2013-12-12 Glenn Morris <rgm@gnu.org>
* elisp.texi: Sync direntry with info/dir version.
2013-12-08 Juanma Barranquero <lekktu@gmail.com> 2013-12-08 Juanma Barranquero <lekktu@gmail.com>
* display.texi (Progress, Face Remapping): * display.texi (Progress, Face Remapping):
......
...@@ -119,7 +119,7 @@ developing GNU and promoting software freedom.'' ...@@ -119,7 +119,7 @@ developing GNU and promoting software freedom.''
@dircategory GNU Emacs Lisp @dircategory GNU Emacs Lisp
@direntry @direntry
* Elisp: (elisp). The Emacs Lisp Reference Manual. * Elisp: (elisp). The Emacs Lisp Reference Manual.
@end direntry @end direntry
@titlepage @titlepage
......
2013-12-12 Glenn Morris <rgm@gnu.org>
* 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 <ruediger@c-plusplus.de> 2013-12-11 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* Makefile.in: Add octave-mode.texi. * Makefile.in: Add octave-mode.texi.
......
...@@ -28,8 +28,8 @@ modify this GNU manual.'' ...@@ -28,8 +28,8 @@ modify this GNU manual.''
@dircategory Emacs misc features @dircategory Emacs misc features
@direntry @direntry
* Autotype: (autotype). Convenient features for text that you * Autotype: (autotype). Convenient features for text that you enter
enter frequently in Emacs. frequently in Emacs.
@end direntry @end direntry
@titlepage @titlepage
......
...@@ -176,7 +176,7 @@ modify this GNU manual.'' ...@@ -176,7 +176,7 @@ modify this GNU manual.''
@dircategory Emacs editing modes @dircategory Emacs editing modes
@direntry @direntry
* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, * 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 @end direntry
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
......
...@@ -42,7 +42,8 @@ modify this GNU manual.'' ...@@ -42,7 +42,8 @@ modify this GNU manual.''
@dircategory Emacs misc features @dircategory Emacs misc features
@direntry @direntry
* Ediff: (ediff). A visual interface for comparing and merging programs. * Ediff: (ediff). A visual interface for comparing and
merging programs.
@end direntry @end direntry
@titlepage @titlepage
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
@dircategory Emacs misc features @dircategory Emacs misc features
@direntry @direntry
* ERT: (ert). Emacs Lisp regression testing tool. * ERT: (ert). Emacs Lisp regression testing tool.
@end direntry @end direntry
@copying @copying
......
...@@ -26,7 +26,7 @@ modify this GNU manual.'' ...@@ -26,7 +26,7 @@ modify this GNU manual.''
@dircategory Emacs misc features @dircategory Emacs misc features
@direntry @direntry
* Htmlfontify: (htmlfontify). Convert source code to html. * Htmlfontify: (htmlfontify). Convert source code to html.
@end direntry @end direntry
@titlepage @titlepage
......
...@@ -21,9 +21,9 @@ modify this GNU manual.'' ...@@ -21,9 +21,9 @@ modify this GNU manual.''
@end quotation @end quotation
@end copying @end copying
@dircategory Emacs lisp libraries @dircategory Emacs misc features
@direntry @direntry
* Ido: (ido). Interactively do things with buffers and files. * Ido: (ido). Interactively do things with buffers and files.
@end direntry @end direntry
@finalout @finalout
......
...@@ -22,7 +22,7 @@ modify this GNU manual.'' ...@@ -22,7 +22,7 @@ modify this GNU manual.''
@dircategory Emacs editing modes @dircategory Emacs editing modes
@direntry @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 @end direntry
@finalout @finalout
......
...@@ -279,7 +279,7 @@ modify this GNU manual.'' ...@@ -279,7 +279,7 @@ modify this GNU manual.''
@dircategory Emacs editing modes @dircategory Emacs editing modes
@direntry @direntry
* Org Mode: (org). Outline-based notes management and organizer * Org Mode: (org). Outline-based notes management and organizer.
@end direntry @end direntry
@titlepage @titlepage
......
...@@ -32,7 +32,7 @@ modify this GNU manual.'' ...@@ -32,7 +32,7 @@ modify this GNU manual.''
@dircategory Emacs misc features @dircategory Emacs misc features
@direntry @direntry
* SRecode: (srecode). Template code generator. * SRecode: (srecode). Semantic template code generator.
@end direntry @end direntry
@titlepage @titlepage
......
...@@ -25,7 +25,7 @@ modify this GNU manual.'' ...@@ -25,7 +25,7 @@ modify this GNU manual.''
@dircategory Emacs misc features @dircategory Emacs misc features
@direntry @direntry
* Todo Mode: (todo-mode). Make and maintain todo lists. * Todo Mode: (todo-mode). Make and maintain todo lists.
@end direntry @end direntry
@titlepage @titlepage
......
...@@ -84,7 +84,7 @@ copy and modify this GNU manual.'' ...@@ -84,7 +84,7 @@ copy and modify this GNU manual.''
@dircategory @value{emacsname} network features @dircategory @value{emacsname} network features
@direntry @direntry
* TRAMP: (tramp). Transparent Remote Access, Multiple Protocol * 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 @end direntry
@titlepage @titlepage
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment