summaryrefslogtreecommitdiff
path: root/Build/source/utils/texinfo/util/fix-info-dir
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/texinfo/util/fix-info-dir')
-rwxr-xr-xBuild/source/utils/texinfo/util/fix-info-dir317
1 files changed, 0 insertions, 317 deletions
diff --git a/Build/source/utils/texinfo/util/fix-info-dir b/Build/source/utils/texinfo/util/fix-info-dir
deleted file mode 100755
index b1144ed6a4e..00000000000
--- a/Build/source/utils/texinfo/util/fix-info-dir
+++ /dev/null
@@ -1,317 +0,0 @@
-#!/bin/sh
-#fix-info-dir (GNU texinfo)
-VERSION=1.1
-#Copyright (C) 1998, 2003 Free Software Foundation, Inc.
-#fix-info-dir comes with NO WARRANTY, to the extent permitted by law.
-#You may redistribute copies of fix-info-dir
-#under the terms of the GNU General Public License.
-#For more information about these matters, see the files named COPYING."
-#fix-info-dir was derived from update-info and gen-dir-node
-# The skeleton file contains info topic names in the
-# order they should appear in the output. There are three special
-# lines that alter the behavior: a line consisting of just "--" causes
-# the next line to be echoed verbatim to the output. A line
-# containing just "%%" causes all the remaining filenames (wildcards
-# allowed) in the rest of the file to be ignored. A line containing
-# just "!!" exits the script when reached (unless preceded by a line
-# containing just "--").
-#Author: Richard L. Hawes, rhawes@dmapub.dma.org.
-
-# ###SECTION 1### Constants
-set -h 2>/dev/null
-# ENVIRONMENT
-if test -z "$TMPDIR"; then
- TMPDIR="/usr/tmp"
-fi
-if test -z "$LINENO"; then
- LINENO="0"
-fi
-
-MENU_BEGIN='^\*\([ ]\)\{1,\}Menu:'
-MENU_ITEM='^\* ([^ ]).*:([ ])+\('
-MENU_FILTER1='s/^\*\([ ]\)\{1,\}/* /'
-MENU_FILTER2='s/\([ ]\)\{1,\}$//g'
-
-TMP_FILE1="${TMPDIR}/fx${$}.info"
-TMP_FILE2="${TMPDIR}/fy${$}.info"
-TMP_FILE_LIST="$TMP_FILE1 $TMP_FILE2"
-
-TRY_HELP_MSG="Try --help for more information"
-
-# ###SECTION 100### main program
-#variables set by options
-CREATE_NODE=""
-DEBUG=":"
-MODE=""
-#
-Total="0"
-Changed=""
-
-while test "$*"; do
- case "$1" in
- -c|--create) CREATE_NODE="y";;
- --debug) set -eux; DEBUG="set>&2";;
- -d|--delete) MODE="Detect_Invalid";;
- +d);;
- --version)
-cat<<VersionEOF
-fix-info-dir (GNU Texinfo) $VERSION
-Copyright (C) 1998 Free Software Foundation, Inc.
-fix-info-dir comes with NO WARRANTY, to the extent permitted by law.
-You may redistribute copies of fix-info-dir
-under the terms of the GNU General Public License.
-For more information about these matters, see the files named COPYING.
-Author: Richard L. Hawes
-VersionEOF
- exit;;
-
- --help)
-cat<<HelpEndOfFile
-Usage: fix-info-dir [OPTION]... [INFO_DIR/[DIR_FILE]] [SKELETON]
-
-It detects and inserts missing menu items into the info dir file.
-The info dir must be the current directory.
-
-Options:
--c, --create create a new info node
--d, --delete delete invalid menu items (ignore missing menu items)
- --debug print debug information to standard error path
- --help print this help message and exit
- --version print current version and exit
-Backup of the info node has a '.old' suffix added. This is a shell script.
-Environment Variables: TMPDIR
-Email bug reports to bug-texinfo@gnu.org.
-HelpEndOfFile
- exit;;
-
- [-+]*) echo "$0:$LINENO: \"$1\" is not a valid option">&2
- echo "$TRY_HELP_MSG">&2
- exit 2;;
- *) break;;
- esac
- shift
-done
-
-ORIGINAL_DIR=`pwd`
-
-if test "$#" -gt "0"; then
- INFO_DIR="$1"
- shift
-else
- INFO_DIR=$DEFAULT_INFO_DIR
-fi
-
-if test ! -d "${INFO_DIR}"; then
- DIR_FILE=`basename ${INFO_DIR}`;
- INFO_DIR=`dirname ${INFO_DIR}`;
-else
- DIR_FILE="dir"
-fi
-
-cd "$INFO_DIR"||exit
-
-
-if test "$CREATE_NODE"; then
- if test "$#" -gt "0"; then
- if test `expr $1 : /` = '1'; then
- SKELETON="$1"
- else
- SKELETON="$ORIGINAL_DIR/$1"
- fi
- if test ! -r "$SKELETON" && test -f "$SKELETON"; then
- echo "$0:$LINENO: $SKELETON is not readable">&2
- exit 2
- fi
- shift
- else
- SKELETON=/dev/null
-
- fi
-else
- if test ! -f "$DIR_FILE"; then
- echo "$0:$LINENO: $DIR_FILE is irregular or nonexistant">&2
- exit 2
- elif test ! -r "$DIR_FILE"; then
- echo "$0:$LINENO: $DIR_FILE is not readable">&2
- exit 2
- elif test ! -w "$DIR_FILE"; then
- echo "$0:$LINENO: $DIR_FILE is not writeable">&2
- exit 2
- fi
-fi
-
-if test "$#" -gt "0"; then
- echo "$0:$LINENO: Too many parameters">&2
- echo "$TRY_HELP_MSG">&2
- exit 2
-fi
-
-if test -f "$DIR_FILE"; then
- cp "$DIR_FILE" "$DIR_FILE.old"
- echo "Backed up $DIR_FILE to $DIR_FILE.old."
-fi
-
-if test "$CREATE_NODE"; then
- if test "$MODE"; then
- echo "$0:$LINENO: ERROR: Illogical option combination: -d -c">&2
- echo "$TRY_HELP_MSG">&2
- exit 2
- fi
- echo "Creating new Info Node: `pwd`/$DIR_FILE"
- Changed="y"
-
-{
-
- ### output the dir header
- echo "-*- Text -*-"
- echo "This file was generated automatically by $0."
- echo "This version was generated on `date`"
- echo "by `whoami`@`hostname` for `pwd`"
-
- cat<<DIR_FILE_END_OF_FILE
-This is the file .../info/$DIR_FILE, which contains the topmost node of the
-Info hierarchy. The first time you invoke Info you start off
-looking at that node, which is ($DIR_FILE)Top.
-
-
-File: $DIR_FILE Node: Top This is the top of the INFO tree
-
- This (the Directory node) gives a menu of major topics.
- Typing "q" exits, "?" lists all Info commands, "d" returns here,
- "h" gives a primer for first-timers,
- "mEmacs<Return>" visits the Emacs topic, etc.
-
- In Emacs, you can click mouse button 2 on a menu item or cross reference
- to select it.
-
-* Menu: The list of major topics begins on the next line.
-
-DIR_FILE_END_OF_FILE
-
-### go through the list of files in the skeleton. If an info file
-### exists, grab the ENTRY information from it. If an entry exists
-### use it, otherwise create a minimal $DIR_FILE entry.
-
- # Read one line from the file. This is so that we can echo lines with
- # whitespace and quoted characters in them.
- while read fileline; do
- # flag fancy features
- if test ! -z "$echoline"; then # echo line
- echo "$fileline"
- echoline=""
- continue
- elif test "${fileline}" = "--"; then
- # echo the next line
- echoline="1"
- continue
- elif test "${fileline}" = "%%"; then
- # skip remaining files listed in skeleton file
- skip="1"
- continue
- elif test "${fileline}" = "!!"; then
- # quit now
- break
- fi
-
- # handle files if they exist
- for file in $fileline""; do
- fname=
- if test -z "$file"; then
- break
- fi
- # Find the file to operate upon.
- if test -r "$file"; then
- fname="$file"
- elif test -r "${file}.info"; then
- fname="${file}.info"
- elif test -r "${file}.gz"; then
- fname="${file}.gz"
- elif test -r "${file}.info.gz"; then
- fname="${file}.info.gz"
- else
- echo "$0:$LINENO: can't find info file for ${file}?">&2
- continue
- fi
-
- # if we found something and aren't skipping, do the entry
- if test "$skip"; then
- continue
- fi
-
- infoname=`echo $file|sed -e 's/.info$//'`
- entry=`zcat -f $fname|\
- sed -e '1,/START-INFO-DIR-ENTRY/d'\
- -e '/END-INFO-DIR-ENTRY/,$d'`
- if [ ! -z "${entry}" ]; then
- echo "${entry}"
- else
- echo "* ${infoname}: (${infoname})."
- fi
- Total=`expr "$Total" + "1"`
- done
- done
-}>$DIR_FILE<$SKELETON
-fi
-
-trap ' eval "$DEBUG"; rm -f $TMP_FILE_LIST; exit ' 0
-trap ' rm -f $TMP_FILE_LIST
- exit ' 1
-trap ' rm -f $TMP_FILE_LIST
- echo "$0:$LINENO: received INT signal.">&2
- exit ' 2
-trap ' rm -f $TMP_FILE_LIST
- echo "$0:$LINENO: received QUIT signal.">&2
- exit ' 3
-
-sed -e "1,/$MENU_BEGIN/d" -e "$MENU_FILTER1" -e "$MENU_FILTER2"<$DIR_FILE\
-|sed -n -e '/\* /{
-s/).*$//g
-s/\.gz$//
-s/\.info$//
-s/^.*(//p
-}'|sort -u>$TMP_FILE1
-ls -F|sed -e '/\/$/d' -e '/[-.][0-9]/d'\
- -e "/^$DIR_FILE\$/d" -e "/^$DIR_FILE.old\$/d"\
- -e 's/[*@]$//' -e 's/\.gz$//' -e 's/\.info$//'|sort>$TMP_FILE2
-
-if test -z "$MODE"; then
- #Detect Missing
- DONE_MSG="total menu item(s) were inserted into `pwd`/$DIR_FILE"
- for Info_Name in `comm -13 $TMP_FILE1 $TMP_FILE2`; do
- if test -r "$Info_Name"; then
- Info_File="$Info_Name"
- elif test -r "${Info_Name}.info"; then
- Info_File="${Info_Name}.info"
- elif test -r "${Info_Name}.gz"; then
- Info_File="${Info_Name}.gz"
- elif test -r "${Info_Name}.info.gz"; then
- Info_File="${Info_Name}.info.gz"
- else
- echo "$0:$LINENO: can't find info file for ${Info_Name}?">&2
- continue
- fi
- Changed="y"
- if install-info $Info_File $DIR_FILE; then
- Total=`expr "$Total" + "1"`
- fi
- done
-else
- # Detect Invalid
- DONE_MSG="total invalid menu item(s) were removed from `pwd`/$DIR_FILE"
- for Info_Name in `comm -23 $TMP_FILE1 $TMP_FILE2`; do
- Changed="y"
- if install-info --remove $Info_Name $DIR_FILE; then
- Total=`expr "$Total" + "1"`
- fi
- done
-fi
-
-# print summary
-if test "$Changed"; then
- echo "$Total $DONE_MSG"
-else
- echo "Nothing to do"
-fi
-rm -f $TMP_FILE_LIST
-eval "$DEBUG"
-exit 0