Mercurial > emacs
view install-sh @ 51743:f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
* textmodes/bibtex.el (bibtex-sort-entry-class): new entry
catch-all.
(bibtex-sort-ignore-string-entries): default value t.
(bibtex-entry-kill-ring-max): Reintroduced as it was removed
erroneously in previous version.
(bibtex-string-files): Docstring reflects new parsing scheme.
(bibtex-autokey-transcriptions): Merge some rewrite entries, fix
docstring, add # as one of the chars to crush
(bibtex-autokey-prefix-string, bibtex-autokey-names)
(bibtex-autokey-names-stretch, bibtex-autokey-additional-names)
(bibtex-autokey-name-change-strings)
(bibtex-autokey-name-case-convert, bibtex-autokey-name-length)
(bibtex-autokey-name-separator, bibtex-autokey-year-length)
(bibtex-autokey-use-crossref, bibtex-autokey-titlewords)
(bibtex-autokey-title-terminators)
(bibtex-autokey-titlewords-stretch)
(bibtex-autokey-titleword-ignore)
(bibtex-autokey-titleword-case-convert)
(bibtex-autokey-titleword-abbrevs)
(bibtex-autokey-titleword-abbrevs)
(bibtex-autokey-titleword-change-strings)
(bibtex-autokey-titleword-length)
(bibtex-autokey-titleword-separator)
(bibtex-autokey-name-year-separator)
(bibtex-autokey-year-title-separator)
(bibtex-autokey-before-presentation-function)
(bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix
docstring.
(bibtex-strings, bibtex-reference-keys): Use
lazy-completion-table and make-variable-buffer-local.
(bibtex-sort-entry-class-alist): Use downcase, account for
catch-all.
(bibtex-braced-string-syntax-table)
(bibtex-quoted-string-syntax-table): New variables.
(bibtex-parse-nested-braces): Remove.
(bibtex-parse-field-string): Use syntax table and forward-sexp.
(bibtex-parse-association): Simplify.
(bibtex-parse-field-name): Obey bibtex-autoadd-commas.
(bibtex-parse-field-text): Simplify.
(bibtex-search-forward-field, bibtex-search-backward-field):
argument BOUND can take value t.
(bibtex-start-of-field, bibtex-start-of-name-in-field)
(bibtex-end-of-name-in-field, bibtex-end-of-field)
(bibtex-start-of-text-in-field, bibtex-end-of-text-in-field)
(bibtex-start-of-text-in-string, bibtex-end-of-text-in-string)
(bibtex-end-of-string, bibtex-type-in-head): Use defsubst.
(bibtex-skip-to-valid-entry): Return buffer position of beginning
and ending of entry. Update for changes of bibtex-search-entry.
Simplify.
(bibtex-map-entries): FUN is called with three arguments.
(bibtex-search-entry): Return a cons pair with buffer positions of
beginning and end of entry.
(bibtex-enclosing-field): Simplify.
(bibtex-format-entry): Use booktitle to set a missing title.
(bibtex-autokey-get-names): Fiddle with regexps.
(bibtex-generate-autokey): Use identity.
(bibtex-parse-keys): Use simplified parsing algorithm if
bibtex-parse-keys-fast is non-nil. Simplify. Change order of
arguments. Return alist of keys.
(bibtex-parse-strings): Simplify. Return alist of strings.
(bibtex-complete-string-cleanup): Fix docstring.
(bibtex-read-key): New function.
(bibtex-mode): Fix docstring. Do not parse for keys and
strings when the mode is entered. Set fill-paragraph-function to
bibtex-fill-field. Setup font-lock-mark-block-function the way
font-lock intended.
(bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types.
(bibtex-parse-entry, bibtex-autofill-entry): New functions.
(bibtex-print-help-message, bibtex-remove-OPT-or-ALT)
(bibtex-Preamble): Avoid hard coded constants.
(bibtex-make-field): Fix docstring. Simplify.
(bibtex-beginning-of-entry): Always return new position of point.
(bibtex-end-of-entry): Rearrange cond clauses.
(bibtex-count-entries, bibtex-validate, bibtex-reformat): Update
for changes of bibtex-map-entries.
(bibtex-ispell-abstract): Do not move point.
(bibtex-entry-index): Use downcase. Simplify.
(bibtex-lessp): Handle catch-all.
(bibtex-find-crossref): Turned into a command.
(bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp.
(bibtex-clean-entry): Use bibtex-read-key. Handle string and
preamble entries.
(bibtex-fill-field-bounds): New function.
(bibtex-fill-field): New command. Bound to
fill-paragraph-function.
(bibtex-fill-entry): Use bibtex-fill-field-bounds
(bibtex-String): Use bibtex-strings. Always obey
bibtex-sort-ignore-string-entries.
author | Kai Großjohann <kgrossjo@eu.uu.net> |
---|---|
date | Sat, 05 Jul 2003 12:41:24 +0000 |
parents | 23a1cea22d13 |
children |
line wrap: on
line source
#! /bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0