diff options
Diffstat (limited to 'Build/source/utils/texinfo/util/fix-info-dir')
-rwxr-xr-x | Build/source/utils/texinfo/util/fix-info-dir | 317 |
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 |