⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 texi2dvi

📁 这个是LINUX下的GDB调度工具的源码
💻
📖 第 1 页 / 共 2 页
字号:
  fi  # Get the name of the current directory.  We want the full path  # because in clean mode we are in tmp, in which case a relative  # path has no meaning.  filename_dir=`echo $command_line_filename | sed 's!/[^/]*$!!;s!^$!.!'`  filename_dir=`cd "$filename_dir" >/dev/null && pwd`  # Strip directory part but leave extension.  filename_ext=`basename "$command_line_filename"`  # Strip extension.  filename_noext=`echo "$filename_ext" | sed 's/\.[^.]*$//'`  ext=`echo "$filename_ext" | sed 's/^.*\.//'`  # _src.  Use same basename since we want to generate aux files with  # the same basename as the manual.  If --expand, then output the  # macro-expanded file to here, else copy the original file.  tmpdir_src=$tmpdir/src  filename_src=$tmpdir_src/$filename_noext.$ext  # _xtr.  The file with the user's extra commands.  tmpdir_xtr=$tmpdir/xtr  filename_xtr=$tmpdir_xtr/$filename_noext.$ext  # _bak.  Copies of the previous xref files (another round is run if  # they differ from the new one).  tmpdir_bak=$tmpdir/bak  # Make all those directories and give up if we can't succeed.  mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1  # Source file might include additional sources.  Put `.' and  # directory where source file(s) reside in TEXINPUTS before anything  # else.  `.' goes first to ensure that any old .aux, .cps,  # etc. files in ${directory} don't get used in preference to fresher  # files in `.'.  Include orig_pwd in case we are in clean mode, where  # we've cd'd to a temp directory.  common=".$path_sep$orig_pwd$path_sep$filename_dir$path_sep$txincludes$path_sep"   TEXINPUTS="$common$TEXINPUTS_orig"  INDEXSTYLE="$common$INDEXSTYLE_orig"  # If the user explicitly specified the language, use that.  # Otherwise, if the first line is \input texinfo, assume it's texinfo.  # Otherwise, guess from the file extension.  if test -n "$set_language"; then    language=$set_language  elif sed 1q "$command_line_filename" | fgrep 'input texinfo' >/dev/null; then    language=texinfo  else    language=  fi  # Get the type of the file (latex or texinfo) from the given language  # we just guessed, or from the file extension if not set yet.  case ${language:-$filename_ext} in    [lL]a[tT]e[xX] | *.ltx | *.tex)      # Assume a LaTeX file.  LaTeX needs bibtex and uses latex for      # compilation.  No makeinfo.      bibtex=${BIBTEX:-bibtex}      makeinfo= # no point in running makeinfo on latex source.      texindex=${MAKEINDEX:-makeindex}      if test $oformat = dvi; then        tex=${LATEX:-latex}      else        tex=${PDFLATEX:-pdflatex}      fi      ;;    *)      # Assume a Texinfo file.  Texinfo files need makeinfo, texindex and tex.      bibtex=      texindex=${TEXINDEX:-texindex}      if test $oformat = dvi; then        tex=${TEX:-tex}      else        tex=${PDFTEX:-pdftex}      fi      # Unless required by the user, makeinfo expansion is wanted only      # if texinfo.tex is too old.      if test "$expand" = t; then        makeinfo=${MAKEINFO:-makeinfo}      else        # Check if texinfo.tex performs macro expansion by looking for        # its version.  The version is a date of the form YEAR-MO-DA.        # We don't need to use [0-9] to match the digits since anyway        # the comparison with $txiprereq, a number, will fail with non        # digits.        txiversion_tex=txiversion.tex        echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex        # Run in the tmpdir to avoid leaving files.        eval `cd $tmpdir >/dev/null \                    && $tex $txiversion_tex 2>/dev/null \| sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'`        $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..."        if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then          makeinfo=        else          makeinfo=${MAKEINFO:-makeinfo}        fi        # As long as we had to run TeX, offer the user this convenience        if test "$txiformat" = Texinfo; then          escape=@        fi      fi      ;;  esac  # Expand macro commands in the original source file using Makeinfo.  # Always use `end' footnote style, since the `separate' style  #   generates different output (arguably this is a bug in -E).  # Discard main info output, the user asked to run TeX, not makeinfo.  if test -n "$makeinfo"; then    $verbose "Macro-expanding $command_line_filename to $filename_src ..."    sed -f $comment_iftex_sed "$command_line_filename" \      | $makeinfo --footnote-style=end -I "$filename_dir" $miincludes \        -o /dev/null --macro-expand=- \      | sed -f $uncomment_iftex_sed >"$filename_src"    filename_input=$filename_src  fi  # If makeinfo failed (or was not even run), use the original file as input.  if test $? -ne 0 \     || test ! -r "$filename_src"; then    $verbose "Reverting to $command_line_filename ..."    filename_input=$filename_dir/$filename_ext  fi  # Used most commonly for @finalout, @smallbook, etc.  if test -n "$textra"; then    $verbose "Inserting extra commands: $textra"    sed '/^@setfilename/a\'"$textra" "$filename_input" >$filename_xtr    filename_input=$filename_xtr  fi  # If clean mode was specified, then move to the temporary directory.  if test "$clean" = t; then    $verbose "cd $tmpdir_src"    cd "$tmpdir_src" || exit 1  fi  while :; do # will break out of loop below    orig_xref_files=`$get_xref_files "$filename_noext"`    # Save copies of originals for later comparison.    if test -n "$orig_xref_files"; then      $verbose "Backing up xref files: `echo $orig_xref_files | sed 's|\./||g'`"      cp $orig_xref_files $tmpdir_bak    fi    # Run bibtex on current file.    # - If its input (AUX) exists.    # - If AUX contains both `\bibdata' and `\bibstyle'.    # - If some citations are missing (LOG contains `Citation').    #   or the LOG complains of a missing .bbl    #    # We run bibtex first, because I can see reasons for the indexes    # to change after bibtex is run, but I see no reason for the    # converse.    #    # Don't try to be too smart.  Running bibtex only if the bbl file    # exists and is older than the LaTeX file is wrong, since the    # document might include files that have changed.  Because there    # can be several AUX (if there are \include's), but a single LOG,    # looking for missing citations in LOG is easier, though we take    # the risk to match false messages.    if test -n "$bibtex" \       && test -r "$filename_noext.aux" \       && test -r "$filename_noext.log" \       && (grep '^\\bibdata[{]'  "$filename_noext.aux" \           && grep '^\\bibstyle[{]' "$filename_noext.aux" \           && (grep 'Warning:.*Citation.*undefined' "$filename_noext.log" \               || grep 'No file .*\.bbl\.' "$filename_noext.log")) \          >/dev/null 2>&1; \    then      $verbose "Running $bibtex $filename_noext ..."      if $bibtex "$filename_noext" >&5; then :; else        echo "$0: $bibtex exited with bad status, quitting." >&2        exit 1      fi    fi    # What we'll run texindex on -- exclude non-index files.    # Since we know index files are last, it is correct to remove everything    # before .aux and .?o?.    index_files=`echo "$orig_xref_files" \                 | sed "s!.*\.aux!!g;                        s!./$filename_noext\..o.!!g;                        s/^[ ]*//;s/[ ]*$//"`    # Run texindex (or makeindex) on current index files.  If they    # already exist, and after running TeX a first time the index    # files don't change, then there's no reason to run TeX again.    # But we won't know that if the index files are out of date or    # nonexistent.    if test -n "$texindex" && test -n "$index_files"; then      $verbose "Running $texindex $index_files ..."      if $texindex $index_files 2>&5 1>&2; then :; else         echo "$0: $texindex exited with bad status, quitting." >&2         exit 1      fi    fi    # Finally, run TeX.    # Prevent $ESCAPE from being interpreted by the shell if it happens    # to be `/'.    $batch tex_args="\\${escape}nonstopmode\ \\${escape}input"    $verbose "Running $cmd ..."    cmd="$tex $tex_args $filename_input"    if $cmd >&5; then :; else      echo "$0: $tex exited with bad status, quitting." >&2      echo "$0: see $filename_noext.log for errors." >&2      test "$clean" = t \        && cp "$filename_noext.log" "$orig_pwd"      exit 1    fi    # Decide if looping again is needed.    finished=t    # LaTeX (and the package changebar) report in the LOG file if it    # should be rerun.  This is needed for files included from    # subdirs, since texi2dvi does not try to compare xref files in    # subdirs.  Performing xref files test is still good since LaTeX    # does not report changes in xref files.    if fgrep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then      finished=    fi    # Check if xref files changed.    new_xref_files=`$get_xref_files "$filename_noext"`    $verbose "Original xref files = `echo $orig_xref_files | sed 's|\./||g'`"    $verbose "New xref files      = `echo $new_xref_files | sed 's|\./||g'`"    # If old and new lists don't at least have the same file list,    # then one file or another has definitely changed.    test "x$orig_xref_files" != "x$new_xref_files" && finished=    # File list is the same.  We must compare each file until we find    # a difference.    if test -n "$finished"; then      for this_file in $new_xref_files; do        $verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..."        # cmp -s returns nonzero exit status if files differ.        if cmp -s "$this_file" "$tmpdir_bak/$this_file"; then :; else          # We only need to keep comparing until we find one that          # differs, because we'll have to run texindex & tex again no          # matter how many more there might be.          finished=          $verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..."          test "$debug" = t && diff -c "$tmpdir_bak/$this_file" "$this_file"          break        fi      done    fi    # If finished, exit the loop, else rerun the loop.    test -n "$finished" && break  done  # If we were in clean mode, compilation was in a tmp directory.  # Copy the DVI (or PDF) file into the directory where the compilation  # has been done.  (The temp dir is about to get removed anyway.)  # We also return to the original directory so that  # - the next file is processed in correct conditions  # - the temporary file can be removed  if test -n "$clean"; then    $verbose "Copying $oformat file from `pwd` to $orig_pwd"    cp -p "./$filename_noext.$oformat" "$orig_pwd"    cd / # in case $orig_pwd is on a different drive (for DOS)    cd $orig_pwd || exit 1  fi  # Remove temporary files.  if test "x$debug" = "x"; then    $verbose "Removing $tmpdir_src $tmpdir_xtr $tmpdir_bak ..."    cd /    rm -rf $tmpdir_src $tmpdir_xtr $tmpdir_bak  fidone$verbose "$0 done."exit 0 # exit successfully, not however we ended the loop.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -