binutils-gdb/readline/tilde.c
nobody 94228bd3ca This commit was manufactured by cvs2svn to create branch 'FSF'.
Sprout from master 1991-11-19 05:16:47 UTC Stu Grossman <grossman@cygnus> 'Initial revision'
Cherrypick from master 1998-12-21 20:06:33 UTC Elena Zannoni <ezannoni@kwikemart.cygnus.com> 'Initial revision':
    readline/INSTALL
    readline/bind.c
    readline/config.h.in
    readline/doc/Makefile.in
    readline/examples/histexamp.c
    readline/isearch.c
    readline/parens.c
    readline/search.c
    readline/shell.c
    readline/support/install.sh
    readline/support/mkdirs
    readline/tilde.c
    readline/tilde.h
    readline/xmalloc.c
Cherrypick from master 1991-05-21 19:55:06 UTC K. Richard Pixley <rich@cygnus> 'Initial revision':
    readline/Makefile.in
    readline/configure
    readline/readline.c
Cherrypick from master 1994-01-16 03:39:57 UTC Per Bothner <per@bothner.com> '	Merge in changes from bash-1.13.  The most obvious one is':
    readline/complete.c
    readline/display.c
    readline/rldefs.h
Delete:
    .Sanitize
    DOC.Sanitize
    DOC.configure
    INSTALL
    Makefile.in
    README.configure
    SUPPORTED
    bfd/.Sanitize
    bfd/COPYING
    bfd/ChangeLog
    bfd/Makefile
    bfd/Makefile.in
    bfd/TODO
    bfd/VERSION
    bfd/aout-encap.c
    bfd/aout.c
    bfd/aout32.c
    bfd/aout64.c
    bfd/aoutf1.h
    bfd/aoutx.c
    bfd/aoutx.h
    bfd/archive.c
    bfd/archures.c
    bfd/archures.h
    bfd/awkscan
    bfd/awkscan-ip
    bfd/awkscan-p
    bfd/bfd-in.h
    bfd/bfd.c
    bfd/bfd.doc
    bfd/bfd.doc.ps
    bfd/bfd.texinfo
    bfd/blins-p
    bfd/bout.c
    bfd/cache.c
    bfd/coff-a29k.c
    bfd/coff-code.h
    bfd/coff-i386.c
    bfd/coff-i960.c
    bfd/coff-m68k.c
    bfd/coff-m88k.c
    bfd/coff-mips.c
    bfd/coff-rs6000.c
    bfd/coffcode.h
    bfd/coffish.h
    bfd/coffswap.c
    bfd/config.sub
    bfd/configure
    bfd/configure.in
    bfd/core.c
    bfd/cplus-dem.c
    bfd/cpu-a29k.c
    bfd/cpu-h8300.c
    bfd/cpu-i386.c
    bfd/cpu-i960.c
    bfd/cpu-m88k.c
    bfd/cpu-rs6000.c
    bfd/cpu-vax.c
    bfd/ctor.c
    bfd/demo64.c
    bfd/doc/.Sanitize
    bfd/doc/Makefile
    bfd/doc/Makefile.in
    bfd/doc/awkscan
    bfd/doc/awkscan-ip
    bfd/doc/awkscan-p
    bfd/doc/bfd.info
    bfd/doc/bfd.texinfo
    bfd/doc/bfdinfo
    bfd/doc/blins-p
    bfd/doc/configure.in
    bfd/doc/exfil1-p
    bfd/doc/exfil3-p
    bfd/doc/exfilter
    bfd/doc/exfilter-p
    bfd/doc/exfiltst
    bfd/doc/exmerge
    bfd/doc/intobfd
    bfd/doc/mergecom-p
    bfd/doc/movecom-p
    bfd/doc/scanit
    bfd/doc/scanph
    bfd/doc/sedscript
    bfd/doc/sedscript-p
    bfd/doc/startcom-p
    bfd/doc/tolibbfd
    bfd/doc/tolibcoff
    bfd/doc/unPROTO
    bfd/elf.c
    bfd/exfilter
    bfd/exmerge
    bfd/filemode.c
    bfd/format.c
    bfd/host-aout.c
    bfd/hosts/.Sanitize
    bfd/hosts/amix.h
    bfd/hosts/decstation.h
    bfd/hosts/delta88.h
    bfd/hosts/dgux.h
    bfd/hosts/dose.h
    bfd/hosts/h-m68kv.h
    bfd/hosts/harris.h
    bfd/hosts/hp9000.h
    bfd/hosts/i386mach.h
    bfd/hosts/i386v.h
    bfd/hosts/irix3.h
    bfd/hosts/rs6000.h
    bfd/hosts/rtbsd.h
    bfd/hosts/sparc-ll.h
    bfd/hosts/sparc.h
    bfd/hosts/sun3.h
    bfd/hosts/tahoe.h
    bfd/hosts/ultra3.h
    bfd/hosts/vaxbsd.h
    bfd/hosts/vaxult.h
    bfd/howto.c
    bfd/i386aout.c
    bfd/ieee.c
    bfd/init.c
    bfd/intobfd
    bfd/libaout.h
    bfd/libbfd-in.h
    bfd/libbfd.c
    bfd/libbfd.h
    bfd/libcoff.h
    bfd/libieee.h
    bfd/liboasys.h
    bfd/mergecom-p
    bfd/misc.c
    bfd/misc.h
    bfd/movecom-p
    bfd/newsos3.c
    bfd/oasys.c
    bfd/obstack.c
    bfd/obstack.h
    bfd/opncls.c
    bfd/reloc.c
    bfd/scanit
    bfd/scanph
    bfd/section.c
    bfd/sedscript
    bfd/sedscript-p
    bfd/srec.c
    bfd/startcom-p
    bfd/sunos.c
    bfd/syms.c
    bfd/targets.c
    bfd/tolibbfd
    bfd/tolibcoff
    bfd/trad-core.c
    bfd/trad-core.h
    bfd/unPROTO
    binutils/.Sanitize
    binutils/ChangeLog
    binutils/Makefile.in
    binutils/README
    binutils/TODO
    binutils/alloca.c
    binutils/am29k-pinsn.c
    binutils/ar.1
    binutils/ar.c
    binutils/binutils.texi
    binutils/binutils.texinfo
    binutils/bucomm.c
    binutils/config.sub
    binutils/configure
    binutils/configure.in
    binutils/copy.c
    binutils/cplus-dem.c
    binutils/filemode.c
    binutils/gmalloc.c
    binutils/i960-pinsn.c
    binutils/is-ranlib.c
    binutils/is-strip.c
    binutils/m68k-pinsn.c
    binutils/maybe-ranlib.c
    binutils/maybe-strip.c
    binutils/nm.1
    binutils/nm.c
    binutils/not-ranlib.c
    binutils/not-strip.c
    binutils/objdump.1
    binutils/objdump.c
    binutils/ostrip.c
    binutils/ranlib.1
    binutils/ranlib.sh
    binutils/size.1
    binutils/size.c
    binutils/sparc-pinsn.c
    binutils/strip.1
    binutils/strip.c
    binutils/version.c
    config.sub
    config/.Sanitize
    config/mh-delta88
    config/mh-dgux
    config/mh-sco
    config/mh-svr4
    config/mh-sysv
    config/mt-a29k
    config/mt-ebmon29k
    configure
    configure.in
    gas/.Sanitize
    gas/.gdbinit
    gas/COPYING
    gas/ChangeLog
    gas/GNUmakefile-host
    gas/Makefile-intel
    gas/Makefile.generic
    gas/Makefile.in
    gas/Makefile.loic
    gas/Makefile.old
    gas/NOTES
    gas/NOTES.config
    gas/README
    gas/README-vms-dbg
    gas/README.coff
    gas/README.rich
    gas/VERSION
    gas/a.out.gnu.h
    gas/app.c
    gas/as.c
    gas/as.h
    gas/atof-generic.c
    gas/bignum-copy.c
    gas/bignum.h
    gas/cond.c
    gas/config.sub
    gas/config/.Sanitize
    gas/config/a.out.h
    gas/config/atof-ieee.c
    gas/config/atof-vax.c
    gas/config/coff.gnu.h
    gas/config/cplus-dem.c
    gas/config/ebmon29k.mt
    gas/config/h8300.mt
    gas/config/h8300hds.mt
    gas/config/ho-a29k.h
    gas/config/ho-ansi.h
    gas/config/ho-cygnus.h
    gas/config/ho-decstation.h
    gas/config/ho-generic.h
    gas/config/ho-hpux.h
    gas/config/ho-i386.h
    gas/config/ho-rs6000.h
    gas/config/ho-sun3.h
    gas/config/ho-sun386.h
    gas/config/ho-sun4.h
    gas/config/ho-sunos.h
    gas/config/ho-sysv.h
    gas/config/ho-vax.h
    gas/config/m68k.mt
    gas/config/mh-a29k
    gas/config/mh-cygnus
    gas/config/mh-i386
    gas/config/mips.mt
    gas/config/obj-aout.c
    gas/config/obj-aout.h
    gas/config/obj-bfd-sunos.c
    gas/config/obj-bfd-sunos.h
    gas/config/obj-bout.c
    gas/config/obj-bout.h
    gas/config/obj-coff.c
    gas/config/obj-coff.h
    gas/config/obj-generic.c
    gas/config/obj-generic.h
    gas/config/obj-ieee.c
    gas/config/obj-ieee.h
    gas/config/ranlib.h
    gas/config/rs6000.mt
    gas/config/signame.h
    gas/config/stab.h
    gas/config/tc-a29k.c
    gas/config/tc-a29k.h
    gas/config/tc-generic.c
    gas/config/tc-generic.h
    gas/config/tc-h8300.c
    gas/config/tc-i386.c
    gas/config/tc-i386.h
    gas/config/tc-i860.c
    gas/config/tc-i860.h
    gas/config/tc-i960.c
    gas/config/tc-i960.h
    gas/config/tc-m68851.h
    gas/config/tc-m68k.c
    gas/config/tc-m68k.h
    gas/config/tc-ns32k.c
    gas/config/tc-ns32k.h
    gas/config/tc-rs6000.c
    gas/config/tc-rs6000.h
    gas/config/tc-sparc.c
    gas/config/tc-sparc.h
    gas/config/tc-vax.c
    gas/config/tc-vax.h
    gas/config/te-dpx2.h
    gas/config/te-generic.h
    gas/config/te-ic960.h
    gas/config/te-motor.h
    gas/config/te-sco386.h
    gas/config/te-sparc.h
    gas/config/te-sun3.h
    gas/config/te-sysv32.h
    gas/config/te-unisoft.h
    gas/config/tmake-sun3
    gas/config/vax-inst.h
    gas/config/vms/.Sanitize
    gas/config/vms/objrecdef.h
    gas/config/vms/vms-dbg.c
    gas/config/vms/vms.c
    gas/configure
    gas/configure.in
    gas/configure.was
    gas/debug.c
    gas/doc/Makefile
    gas/doc/a29k-coff.m4
    gas/doc/a29k.m4
    gas/doc/all.m4
    gas/doc/as.texinfo
    gas/doc/gen.m4
    gas/doc/i80386.m4
    gas/doc/i960.m4
    gas/doc/m680x0.m4
    gas/doc/none.m4
    gas/doc/pretex.m4
    gas/doc/sparc.m4
    gas/doc/vax.m4
    gas/doc/vintage.m4
    gas/expr.c
    gas/expr.h
    gas/flonum-const.c
    gas/flonum-copy.c
    gas/flonum-mult.c
    gas/flonum.h
    gas/frags.c
    gas/frags.h
    gas/hash.c
    gas/hash.h
    gas/hex-value.c
    gas/input-file.c
    gas/input-file.h
    gas/input-scrub.c
    gas/link.cmd
    gas/make-gas.com
    gas/messages.c
    gas/obj.h
    gas/objdump.c
    gas/obsolete/gdb-blocks.c
    gas/obsolete/gdb-file.c
    gas/obsolete/gdb-lines.c
    gas/obsolete/gdb-symbols.c
    gas/obsolete/gdb.c
    gas/output-file.c
    gas/output-file.h
    gas/read.c
    gas/read.h
    gas/strstr.c
    gas/struc-symbol.h
    gas/subsegs.c
    gas/subsegs.h
    gas/symbols.c
    gas/symbols.h
    gas/tc.h
    gas/testscripts/doboth
    gas/testscripts/doobjcmp
    gas/testscripts/dostriptest
    gas/testscripts/dotest
    gas/testscripts/dounsortreloc
    gas/testscripts/dounsortsymbols
    gas/ver960.c
    gas/version.c
    gas/write.c
    gas/write.h
    gas/xmalloc.c
    gas/xrealloc.c
    gdb/.Sanitize
    gdb/.gdbinit
    gdb/Attic/Makefile.in
    gdb/COPYING
    gdb/ChangeLog
    gdb/ChangeLog-3.x
    gdb/Convex.notes
    gdb/Makefile
    gdb/Makefile.dist
    gdb/Makefile.in
    gdb/Makefile.sdir
    gdb/Makefile.srcdir
    gdb/Projects
    gdb/README
    gdb/TODO
    gdb/WHATS.NEW
    gdb/alldeps.mak
    gdb/alloca.c
    gdb/altos-xdep.c
    gdb/am29k-opcode.h
    gdb/am29k-pinsn.c
    gdb/am29k-tdep.c
    gdb/ansidecl.h
    gdb/arm-convert.s
    gdb/arm-opcode.h
    gdb/arm-pinsn.c
    gdb/arm-tdep.c
    gdb/arm-xdep.c
    gdb/blockframe.c
    gdb/breakpoint.c
    gdb/breakpoint.h
    gdb/buildsym.c
    gdb/buildsym.h
    gdb/c-exp.y
    gdb/coffread.c
    gdb/command.c
    gdb/command.h
    gdb/config.gdb
    gdb/config.status
    gdb/config.sub
    gdb/config/.Sanitize
    gdb/config/3b1.mh
    gdb/config/3b1.mt
    gdb/config/a29k-kern.mt
    gdb/config/a29k.mt
    gdb/config/altos.mh
    gdb/config/altos.mt
    gdb/config/altosgas.mh
    gdb/config/altosgas.mt
    gdb/config/am29k
    gdb/config/amix.mh
    gdb/config/amix.mt
    gdb/config/arm.mh
    gdb/config/arm.mt
    gdb/config/bigmips.mh
    gdb/config/bigmips.mt
    gdb/config/convex.mh
    gdb/config/convex.mt
    gdb/config/decstation.mh
    gdb/config/decstation.mt
    gdb/config/delta88.mh
    gdb/config/delta88.mt
    gdb/config/hp300bsd.mh
    gdb/config/hp300bsd.mt
    gdb/config/hp300hpux.mh
    gdb/config/hp300hpux.mt
    gdb/config/i386aout.mt
    gdb/config/i386mach.mh
    gdb/config/i386sco.mh
    gdb/config/i386sco.mt
    gdb/config/i386v-g.mh
    gdb/config/i386v-g.mt
    gdb/config/i386v.mh
    gdb/config/i386v.mt
    gdb/config/i386v32-g.mh
    gdb/config/i386v32-g.mt
    gdb/config/i386v32.mh
    gdb/config/i386v32.mt
    gdb/config/i960.mt
    gdb/config/irix3.mh
    gdb/config/irix3.mt
    gdb/config/isi.mh
    gdb/config/isi.mt
    gdb/config/littlemips.mh
    gdb/config/littlemips.mt
    gdb/config/m88k.mh
    gdb/config/m88k.mt
    gdb/config/merlin.mh
    gdb/config/merlin.mt
    gdb/config/mh-vax
    gdb/config/news.mh
    gdb/config/news.mt
    gdb/config/news1000.mh
    gdb/config/news1000.mt
    gdb/config/nindy960.mt
    gdb/config/none.mh
    gdb/config/none.mt
    gdb/config/np1.mh
    gdb/config/np1.mt
    gdb/config/pn.mh
    gdb/config/pn.mt
    gdb/config/pyramid.mh
    gdb/config/pyramid.mt
    gdb/config/rs6000.mh
    gdb/config/rs6000.mt
    gdb/config/rtbsd.mh
    gdb/config/sun2os3.mh
    gdb/config/sun2os3.mt
    gdb/config/sun2os4.mh
    gdb/config/sun2os4.mt
    gdb/config/sun3.mh
    gdb/config/sun3.mt
    gdb/config/sun386.mh
    gdb/config/sun386.mt
    gdb/config/sun3os3.mh
    gdb/config/sun3os3.mt
    gdb/config/sun3os4.mh
    gdb/config/sun3os4.mt
    gdb/config/sun4.mh
    gdb/config/sun4.mt
    gdb/config/sun4os3.mh
    gdb/config/sun4os3.mt
    gdb/config/sun4os4.mh
    gdb/config/sun4os4.mt
    gdb/config/symmetry.mh
    gdb/config/symmetry.mt
    gdb/config/tahoe.mh
    gdb/config/tahoe.mt
    gdb/config/ultra3.mh
    gdb/config/ultra3.mt
    gdb/config/umax.mh
    gdb/config/umax.mt
    gdb/config/vax.mt
    gdb/config/vxworks68.mt
    gdb/config/vxworks960.mt
    gdb/configure
    gdb/configure.in
    gdb/convex-opcode.h
    gdb/convex-pinsn.c
    gdb/convex-tdep.c
    gdb/convex-xdep.c
    gdb/convx-opcode.h
    gdb/copying.awk
    gdb/copying.c
    gdb/core.c
    gdb/coredep.c
    gdb/cplus-dem.c
    gdb/createtags
    gdb/dbxread.c
    gdb/defs.h
    gdb/depend
    gdb/doc/.Sanitize
    gdb/doc/Makefile
    gdb/doc/Makefile.in
    gdb/doc/all.m4
    gdb/doc/amd29k.m4
    gdb/doc/configure.in
    gdb/doc/gdb.alter-m4
    gdb/doc/gdb.bugs-m4
    gdb/doc/gdb.canned-m4
    gdb/doc/gdb.cmds-m4
    gdb/doc/gdb.ctl-m4
    gdb/doc/gdb.data-m4
    gdb/doc/gdb.emacs-m4
    gdb/doc/gdb.files-m4
    gdb/doc/gdb.gpl-m4
    gdb/doc/gdb.install-m4
    gdb/doc/gdb.invoc-m4
    gdb/doc/gdb.rdln-m4
    gdb/doc/gdb.rename-m4
    gdb/doc/gdb.run-m4
    gdb/doc/gdb.sample-m4
    gdb/doc/gdb.src-m4
    gdb/doc/gdb.stack-m4
    gdb/doc/gdb.stop-m4
    gdb/doc/gdb.symb-m4
    gdb/doc/gdb.texinfo
    gdb/doc/gdb.tgts-m4
    gdb/doc/gdb.top-m4
    gdb/doc/gdbint.texinfo
    gdb/doc/gdbinv-m.m4
    gdb/doc/gdbinv-m.m4.in
    gdb/doc/gdbinv-s.m4
    gdb/doc/gdbinv-s.m4.in
    gdb/doc/gen.m4
    gdb/doc/i80386.m4
    gdb/doc/i960.m4
    gdb/doc/interim-gdb.texinfo
    gdb/doc/interim-gdbinv-m.m4
    gdb/doc/interim-gdbinv-s.m4
    gdb/doc/m680x0.m4
    gdb/doc/none.m4
    gdb/doc/pretex.m4
    gdb/doc/rc-cm.tex
    gdb/doc/rc-ps.tex
    gdb/doc/rc-pslong.tex
    gdb/doc/rdl-apps.texi
    gdb/doc/refcard.tex
    gdb/doc/sparc.m4
    gdb/doc/threecol.tex
    gdb/doc/vax.m4
    gdb/dwarfread.c
    gdb/elfread.c
    gdb/environ.c
    gdb/environ.h
    gdb/eval.c
    gdb/exec.c
    gdb/expprint.c
    gdb/expread.tab.c
    gdb/expread.y
    gdb/expression.h
    gdb/findvar.c
    gdb/frame.h
    gdb/gdb-int.texinfo
    gdb/gdbcmd.h
    gdb/gdbcore.h
    gdb/getpagesize.h
    gdb/gmalloc.c
    gdb/gmalloc.h
    gdb/gould-pinsn.c
    gdb/gould-xdep.c
    gdb/hp300hpux-xdep.c
    gdb/hp300ux-xdep.c
    gdb/i386-pinsn.c
    gdb/i386-tdep.c
    gdb/i386-xdep.c
    gdb/i387-tdep.c
    gdb/i960-pinsn.c
    gdb/i960-tdep.c
    gdb/ieee-float.c
    gdb/ieee-float.h
    gdb/infcmd.c
    gdb/inferior.h
    gdb/inflow.c
    gdb/infptrace.c
    gdb/infrun.c
    gdb/infrun.hacked.c
    gdb/inftarg.c
    gdb/kdb-start.c
    gdb/language.c
    gdb/language.h
    gdb/m2-exp.y
    gdb/m68k-opcode.h
    gdb/m68k-pinsn.c
    gdb/m68k-stub.c
    gdb/m68k-tdep.c
    gdb/m88k-opcode.h
    gdb/m88k-pinsn.c
    gdb/m88k-tdep.c
    gdb/m88k-xdep.c
    gdb/mach386-xdep.c
    gdb/main.c
    gdb/mcheck.c
    gdb/mem-break.c
    gdb/minimon.h
    gdb/mips-opcode.h
    gdb/mips-pinsn.c
    gdb/mips-tdep.c
    gdb/mips-xdep.c
    gdb/mipsread.c
    gdb/mtrace.awk
    gdb/mtrace.c
    gdb/munch
    gdb/news-xdep.c
    gdb/nindy-tdep.c
    gdb/np1-opcode.h
    gdb/ns32k-opcode.h
    gdb/ns32k-pinsn.c
    gdb/obstack.c
    gdb/obstack.h
    gdb/param-no-tm.h
    gdb/param.h
    gdb/parse.c
    gdb/parser-defs.h
    gdb/pn-opcode.h
    gdb/printcmd.c
    gdb/procfs.c
    gdb/putenv.c
    gdb/pyr-opcode.h
    gdb/pyr-pinsn.c
    gdb/pyr-tdep.c
    gdb/pyr-xdep.c
    gdb/regex.c
    gdb/regex.h
    gdb/rem-m68k.shar
    gdb/rem-multi.shar
    gdb/remote-adapt.c
    gdb/remote-eb.c
    gdb/remote-mm.c
    gdb/remote-multi.shar
    gdb/remote-nindy.c
    gdb/remote-sa.m68k.shar
    gdb/remote-sa.sparc.c
    gdb/remote-vx.68.c
    gdb/remote-vx.c
    gdb/remote.c
    gdb/rs6000-pinsn.c
    gdb/rs6000-tdep.c
    gdb/rs6000-xdep.c
    gdb/rs6k-opcode.def
    gdb/rs6k-opcode.h
    gdb/saber.suppress
    gdb/signals.h
    gdb/signame.c
    gdb/signame.h
    gdb/solib.c
    gdb/source.c
    gdb/sparc-opcode.h
    gdb/sparc-pinsn.c
    gdb/sparc-tdep.c
    gdb/sparc-xdep.c
    gdb/stab.def
    gdb/stack.c
    gdb/standalone.c
    gdb/stddef.h
    gdb/stdlib.h
    gdb/stuff.c
    gdb/sun3-xdep.c
    gdb/sun386-xdep.c
    gdb/symfile.c
    gdb/symfile.h
    gdb/symm-tdep.c
    gdb/symm-xdep.c
    gdb/symmetry-tdep.c
    gdb/symmetry-xdep.c
    gdb/symmisc.c
    gdb/symtab.c
    gdb/symtab.h
    gdb/tahoe-opcode.h
    gdb/tahoe-pinsn.c
    gdb/target.c
    gdb/target.h
    gdb/tdesc.c
    gdb/tdesc.h
    gdb/terminal.h
    gdb/tm-29k.h
    gdb/tm-3b1.h
    gdb/tm-68k.h
    gdb/tm-altos.h
    gdb/tm-altosgas.h
    gdb/tm-amix.h
    gdb/tm-arm.h
    gdb/tm-bigmips.h
    gdb/tm-convex.h
    gdb/tm-delta88.h
    gdb/tm-hp300bsd.h
    gdb/tm-hp300hpux.h
    gdb/tm-i386v-g.h
    gdb/tm-i386v.h
    gdb/tm-i960.h
    gdb/tm-irix3.h
    gdb/tm-isi.h
    gdb/tm-m88k.h
    gdb/tm-merlin.h
    gdb/tm-mips.h
    gdb/tm-news.h
    gdb/tm-nindy960.h
    gdb/tm-np1.h
    gdb/tm-pn.h
    gdb/tm-pyr.h
    gdb/tm-rs6000.h
    gdb/tm-sparc.h
    gdb/tm-sun2.h
    gdb/tm-sun2os4.h
    gdb/tm-sun3.h
    gdb/tm-sun386.h
    gdb/tm-sun3os4.h
    gdb/tm-sun4os4.h
    gdb/tm-sunos.h
    gdb/tm-svr4.h
    gdb/tm-symmetry.h
    gdb/tm-tahoe.h
    gdb/tm-ultra3.h
    gdb/tm-umax.h
    gdb/tm-vax.h
    gdb/tm-vx68.h
    gdb/tm-vx960.h
    gdb/tm-vxworks68.h
    gdb/tm-vxworks960.h
    gdb/ultra3-xdep.c
    gdb/umax-xdep.c
    gdb/utils.c
    gdb/valarith.c
    gdb/valops.c
    gdb/valprint.c
    gdb/value.h
    gdb/values.c
    gdb/vax-opcode.h
    gdb/vax-pinsn.c
    gdb/vx-share/.Sanitize
    gdb/vx-share/dbgRpcLib.h
    gdb/vx-share/ptrace.h
    gdb/vx-share/reg.h
    gdb/vx-share/vxTypes.h
    gdb/vx-share/vxWorks.h
    gdb/vx-share/wait.h
    gdb/vx-share/xdr_ld.c
    gdb/vx-share/xdr_ld.h
    gdb/vx-share/xdr_ptrace.c
    gdb/vx-share/xdr_ptrace.h
    gdb/vx-share/xdr_rdb.c
    gdb/vx-share/xdr_rdb.h
    gdb/vx-share/xdr_regs.c
    gdb/vx-share/xdr_regs.h
    gdb/xcoffexec.c
    gdb/xcoffread.c
    gdb/xm-3b1.h
    gdb/xm-altos.h
    gdb/xm-amix.h
    gdb/xm-arm.h
    gdb/xm-bigmips.h
    gdb/xm-convex.h
    gdb/xm-delta88.h
    gdb/xm-hp300bsd.h
    gdb/xm-hp300hpux.h
    gdb/xm-i386mach.h
    gdb/xm-i386sco.h
    gdb/xm-i386v.h
    gdb/xm-i386v32.h
    gdb/xm-irix3.h
    gdb/xm-isi.h
    gdb/xm-m68k.h
    gdb/xm-m88k.h
    gdb/xm-merlin.h
    gdb/xm-mips.h
    gdb/xm-news.h
    gdb/xm-news1000.h
    gdb/xm-np1.h
    gdb/xm-pn.h
    gdb/xm-pyr.h
    gdb/xm-rs6000.h
    gdb/xm-rtbsd.h
    gdb/xm-sparc.h
    gdb/xm-sun2.h
    gdb/xm-sun3.h
    gdb/xm-sun386.h
    gdb/xm-sun3os4.h
    gdb/xm-sun4os4.h
    gdb/xm-svr4.h
    gdb/xm-symmetry.h
    gdb/xm-tahoe.h
    gdb/xm-ultra3.h
    gdb/xm-umax.h
    gdb/xm-vax.h
    gprof/Makefile
    gprof/Makefile.in
    gprof/arcs.c
    gprof/config/mt-i386
    gprof/config/mt-sparc
    gprof/config/tmake-i386
    gprof/config/tmake-sparc
    gprof/configure
    gprof/configure.in
    gprof/dfn.c
    gprof/gmon.h
    gprof/gprof.1
    gprof/gprof.c
    gprof/gprof.callg
    gprof/gprof.flat
    gprof/gprof.h
    gprof/hertz.c
    gprof/i386.c
    gprof/i386.h
    gprof/lookup.c
    gprof/pathnames.h
    gprof/printgprof.c
    gprof/printlist.c
    gprof/sparc.c
    gprof/sparc.h
    gprof/t.c
    gprof/tahoe.c
    gprof/tahoe.h
    gprof/vax.c
    gprof/vax.h
    include/.Sanitize
    include/COPYING
    include/ChangeLog
    include/a.out.encap.h
    include/a.out.host.h
    include/a.out.hp.h
    include/a.out.sun4.h
    include/a.out.vax.h
    include/a29k-opcode.h
    include/aout64.h
    include/ar.h
    include/arm-opcode.h
    include/bcs88kcoff.h
    include/bfd.h
    include/bout.h
    include/coff-a29k.h
    include/coff-i386.h
    include/coff-i960.h
    include/coff-m68k.h
    include/coff-m88k.h
    include/coff-mips.h
    include/coff-rs6000.h
    include/convx-opcode.h
    include/dwarf.h
    include/elf-common.h
    include/elf-external.h
    include/elf-internal.h
    include/gdbm.h
    include/getopt.h
    include/h8300-opcode.h
    include/i386-opcode.h
    include/i860-opcode.h
    include/i960-opcode.h
    include/ieee.h
    include/internalcoff.h
    include/m68k-opcode.h
    include/m88k-opcode.h
    include/mips-opcode.h
    include/np1-opcode.h
    include/ns32k-opcode.h
    include/oasys.h
    include/obstack.h
    include/pn-opcode.h
    include/pyr-opcode.h
    include/ranlib.h
    include/reloc.h
    include/sparc-opcode.h
    include/stab.def
    include/stab.gnu.h
    include/sysdep.h
    include/tahoe-opcode.h
    include/vax-opcode.h
    include/wait.h
    install.texinfo
    ld/.Sanitize
    ld/ChangeLog
    ld/Makefile
    ld/Makefile.in
    ld/README
    ld/config.h
    ld/config.sub
    ld/config/.Sanitize
    ld/config/coff-a29k.mt
    ld/config/decstation.mh
    ld/config/delta88.mh
    ld/config/dgux.mh
    ld/config/ebmon29k.mt
    ld/config/h-i386v
    ld/config/h-m68kv
    ld/config/hmake-dec3100
    ld/config/hmake-dgux
    ld/config/hmake-rtbsd
    ld/config/hmake-sun3
    ld/config/hmake-sun4
    ld/config/hmake-sun4-64
    ld/config/i386-aout.mt
    ld/config/i386v.mt
    ld/config/m68k.mt
    ld/config/m68kv.mt
    ld/config/m88k-bcs.mt
    ld/config/news.mh
    ld/config/news.mt
    ld/config/rtbsd.mh
    ld/config/sparc-ll.mh
    ld/config/sparc.mh
    ld/config/sun3.mh
    ld/config/sun4.mt
    ld/config/tmake-coff-a29k
    ld/config/tmake-m88k-bcs
    ld/config/tmake-sun4
    ld/configure
    ld/configure.in
    ld/ebmon29k.sc
    ld/gld.1
    ld/h8300hds.c
    ld/h8300hds.sc
    ld/i386aout.c
    ld/i386aout.sc
    ld/ld-emul.c
    ld/ld-gld-Ur.script
    ld/ld-gld-r.script
    ld/ld-gld.c
    ld/ld-gld.script
    ld/ld-gld68k-Ur.script
    ld/ld-gld68k-r.script
    ld/ld-gld68k.c
    ld/ld-gld68k.script
    ld/ld-gld960.c
    ld/ld-gld960.script
    ld/ld-gldm88kbcs-Ur.script
    ld/ld-gldm88kbcs-r.script
    ld/ld-gldm88kbcs.c
    ld/ld-gldm88kbcs.script
    ld/ld-lnk960-r.script
    ld/ld-lnk960.c
    ld/ld-lnk960.script
    ld/ld-vanilla.c
    ld/ld.h
    ld/ld.tex
    ld/ld.texinfo
    ld/ldemul.c
    ld/ldexp.c
    ld/ldexp.h
    ld/ldfile.c
    ld/ldfile.h
    ld/ldgld.c
    ld/ldgld.sc
    ld/ldgld.script
    ld/ldgld68k.c
    ld/ldgld68k.sc
    ld/ldgld68k.script
    ld/ldgld68kUr.sc
    ld/ldgld68kUr.script
    ld/ldgld68kr.sc
    ld/ldgld68kr.script
    ld/ldgld960.c
    ld/ldgld960.sc
    ld/ldgld960.script
    ld/ldgldUr.sc
    ld/ldgldUr.script
    ld/ldglda29k.c
    ld/ldglda29k.sc
    ld/ldglda29k.script
    ld/ldglda29kUr.sc
    ld/ldglda29kUr.script
    ld/ldglda29kr.sc
    ld/ldglda29kr.script
    ld/ldgldi386v.c
    ld/ldgldi386v.sc
    ld/ldgldi386vUr.sc
    ld/ldgldi386vr.sc
    ld/ldgldm68kv.c
    ld/ldgldm68kv.sc
    ld/ldgldm68kvUr.sc
    ld/ldgldm68kvr.sc
    ld/ldgldm88kbcs.c
    ld/ldgldm88kbcs.sc
    ld/ldgldm88kbcs.script
    ld/ldgldm88kbcsUr.sc
    ld/ldgldm88kbcsUr.script
    ld/ldgldm88kbcsr.sc
    ld/ldgldm88kbcsr.script
    ld/ldgldr.sc
    ld/ldgldr.script
    ld/ldgram.y
    ld/ldindr.c
    ld/ldindr.h
    ld/ldlang.c
    ld/ldlang.h
    ld/ldlex.h
    ld/ldlex.l
    ld/ldlnk960.c
    ld/ldlnk960.sc
    ld/ldlnk960.script
    ld/ldlnk960r.sc
    ld/ldlnk960r.script
    ld/ldm88k.c
    ld/ldm88k.sc
    ld/ldm88kUr.sc
    ld/ldm88kr.sc
    ld/ldmain.c
    ld/ldmain.h
    ld/ldmisc.c
    ld/ldmisc.h
    ld/ldsym.c
    ld/ldsym.h
    ld/ldtemplate
    ld/ldvanilla.c
    ld/ldver.c
    ld/ldver.h
    ld/ldwarn.c
    ld/ldwarn.h
    ld/ldwrite.c
    ld/ldwrite.h
    ld/mkscript.c
    ld/news.sc
    readline/.Sanitize
    readline/ChangeLog
    readline/config.sub
    readline/configure.in
    readline/doc/Makefile
    readline/doc/texindex.c
    readline/examples/Makefile
    readline/history.texi
    readline/history.texinfo
    readline/inc-hist.texi
    readline/inc-history.texinfo
    readline/inc-read.texi
    readline/inc-readline.texinfo
    readline/readline.texi
    readline/readline.texinfo
    readline/sysdep-aix.h
    readline/sysdep-norm.h
1998-12-21 20:06:34 +00:00

397 lines
9.6 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */
/* Copyright (C) 1988,1989 Free Software Foundation, Inc.
This file is part of GNU Readline, a library for reading lines
of text with interactive input and history editing.
Readline is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 1, or (at your option) any
later version.
Readline is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with Readline; see the file COPYING. If not, write to the Free
Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#if defined (__GNUC__)
# undef alloca
# define alloca __builtin_alloca
#else /* !__GNUC__ */
# if defined (_AIX)
#pragma alloca
# else /* !_AIX */
# if defined (HAVE_ALLOCA_H)
# include <alloca.h>
# endif /* HAVE_ALLOCA_H */
# endif /* !AIX */
#endif /* !__GNUC__ */
#if defined (HAVE_STRING_H)
# include <string.h>
#else /* !HAVE_STRING_H */
# include <strings.h>
#endif /* !HAVE_STRING_H */
#if defined (HAVE_STDLIB_H)
# include <stdlib.h>
#else
# include "ansi_stdlib.h"
#endif /* HAVE_STDLIB_H */
#include <tilde/tilde.h>
#include <pwd.h>
#if !defined (sgi) && !defined (isc386)
extern struct passwd *getpwnam (), *getpwuid ();
#endif /* !sgi */
#if !defined (savestring)
extern char *xmalloc ();
# ifndef strcpy
extern char *strcpy ();
# endif
#define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
#endif /* !savestring */
#if !defined (NULL)
# if defined (__STDC__)
# define NULL ((void *) 0)
# else
# define NULL 0x0
# endif /* !__STDC__ */
#endif /* !NULL */
#if defined (TEST) || defined (STATIC_MALLOC)
static char *xmalloc (), *xrealloc ();
#else
extern char *xmalloc (), *xrealloc ();
#endif /* TEST || STATIC_MALLOC */
/* The default value of tilde_additional_prefixes. This is set to
whitespace preceding a tilde so that simple programs which do not
perform any word separation get desired behaviour. */
static char *default_prefixes[] =
{ " ~", "\t~", (char *)NULL };
/* The default value of tilde_additional_suffixes. This is set to
whitespace or newline so that simple programs which do not
perform any word separation get desired behaviour. */
static char *default_suffixes[] =
{ " ", "\n", (char *)NULL };
/* If non-null, this contains the address of a function to call if the
standard meaning for expanding a tilde fails. The function is called
with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
which is the expansion, or a NULL pointer if there is no expansion. */
Function *tilde_expansion_failure_hook = (Function *)NULL;
/* When non-null, this is a NULL terminated array of strings which
are duplicates for a tilde prefix. Bash uses this to expand
`=~' and `:~'. */
char **tilde_additional_prefixes = default_prefixes;
/* When non-null, this is a NULL terminated array of strings which match
the end of a username, instead of just "/". Bash sets this to
`:' and `=~'. */
char **tilde_additional_suffixes = default_suffixes;
/* Find the start of a tilde expansion in STRING, and return the index of
the tilde which starts the expansion. Place the length of the text
which identified this tilde starter in LEN, excluding the tilde itself. */
static int
tilde_find_prefix (string, len)
char *string;
int *len;
{
register int i, j, string_len;
register char **prefixes = tilde_additional_prefixes;
string_len = strlen (string);
*len = 0;
if (!*string || *string == '~')
return (0);
if (prefixes)
{
for (i = 0; i < string_len; i++)
{
for (j = 0; prefixes[j]; j++)
{
if (strncmp (string + i, prefixes[j], strlen (prefixes[j])) == 0)
{
*len = strlen (prefixes[j]) - 1;
return (i + *len);
}
}
}
}
return (string_len);
}
/* Find the end of a tilde expansion in STRING, and return the index of
the character which ends the tilde definition. */
static int
tilde_find_suffix (string)
char *string;
{
register int i, j, string_len;
register char **suffixes = tilde_additional_suffixes;
string_len = strlen (string);
for (i = 0; i < string_len; i++)
{
if (string[i] == '/' || !string[i])
break;
for (j = 0; suffixes && suffixes[j]; j++)
{
if (strncmp (string + i, suffixes[j], strlen (suffixes[j])) == 0)
return (i);
}
}
return (i);
}
/* Return a new string which is the result of tilde expanding STRING. */
char *
tilde_expand (string)
char *string;
{
char *result, *tilde_expand_word ();
int result_size, result_index;
result_size = result_index = 0;
result = (char *)NULL;
/* Scan through STRING expanding tildes as we come to them. */
while (1)
{
register int start, end;
char *tilde_word, *expansion;
int len;
/* Make START point to the tilde which starts the expansion. */
start = tilde_find_prefix (string, &len);
/* Copy the skipped text into the result. */
if ((result_index + start + 1) > result_size)
result = (char *)xrealloc (result, 1 + (result_size += (start + 20)));
strncpy (result + result_index, string, start);
result_index += start;
/* Advance STRING to the starting tilde. */
string += start;
/* Make END be the index of one after the last character of the
username. */
end = tilde_find_suffix (string);
/* If both START and END are zero, we are all done. */
if (!start && !end)
break;
/* Expand the entire tilde word, and copy it into RESULT. */
tilde_word = (char *)xmalloc (1 + end);
strncpy (tilde_word, string, end);
tilde_word[end] = '\0';
string += end;
expansion = tilde_expand_word (tilde_word);
free (tilde_word);
len = strlen (expansion);
if ((result_index + len + 1) > result_size)
result = (char *)xrealloc (result, 1 + (result_size += (len + 20)));
strcpy (result + result_index, expansion);
result_index += len;
free (expansion);
}
result[result_index] = '\0';
return (result);
}
/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
tilde. If there is no expansion, call tilde_expansion_failure_hook. */
char *
tilde_expand_word (filename)
char *filename;
{
char *dirname;
dirname = filename ? savestring (filename) : (char *)NULL;
if (dirname && *dirname == '~')
{
char *temp_name;
if (!dirname[1] || dirname[1] == '/')
{
/* Prepend $HOME to the rest of the string. */
char *temp_home = (char *)getenv ("HOME");
/* If there is no HOME variable, look up the directory in
the password database. */
if (!temp_home)
{
struct passwd *entry;
entry = getpwuid (getuid ());
if (entry)
temp_home = entry->pw_dir;
}
temp_name = (char *)alloca (1 + strlen (&dirname[1])
+ (temp_home ? strlen (temp_home) : 0));
temp_name[0] = '\0';
if (temp_home)
strcpy (temp_name, temp_home);
strcat (temp_name, &dirname[1]);
free (dirname);
dirname = savestring (temp_name);
}
else
{
struct passwd *user_entry;
char *username = (char *)alloca (257);
int i, c;
for (i = 1; c = dirname[i]; i++)
{
if (c == '/')
break;
else
username[i - 1] = c;
}
username[i - 1] = '\0';
if (!(user_entry = getpwnam (username)))
{
/* If the calling program has a special syntax for
expanding tildes, and we couldn't find a standard
expansion, then let them try. */
if (tilde_expansion_failure_hook)
{
char *expansion;
expansion =
(char *)(*tilde_expansion_failure_hook) (username);
if (expansion)
{
temp_name = (char *)alloca (1 + strlen (expansion)
+ strlen (&dirname[i]));
strcpy (temp_name, expansion);
strcat (temp_name, &dirname[i]);
free (expansion);
goto return_name;
}
}
/* We shouldn't report errors. */
}
else
{
temp_name = (char *)alloca (1 + strlen (user_entry->pw_dir)
+ strlen (&dirname[i]));
strcpy (temp_name, user_entry->pw_dir);
strcat (temp_name, &dirname[i]);
return_name:
free (dirname);
dirname = savestring (temp_name);
}
endpwent ();
}
}
return (dirname);
}
#if defined (TEST)
#undef NULL
#include <stdio.h>
main (argc, argv)
int argc;
char **argv;
{
char *result, line[512];
int done = 0;
while (!done)
{
printf ("~expand: ");
fflush (stdout);
if (!gets (line))
strcpy (line, "done");
if ((strcmp (line, "done") == 0) ||
(strcmp (line, "quit") == 0) ||
(strcmp (line, "exit") == 0))
{
done = 1;
break;
}
result = tilde_expand (line);
printf (" --> %s\n", result);
free (result);
}
exit (0);
}
static void memory_error_and_abort ();
static char *
xmalloc (bytes)
int bytes;
{
char *temp = (char *)malloc (bytes);
if (!temp)
memory_error_and_abort ();
return (temp);
}
static char *
xrealloc (pointer, bytes)
char *pointer;
int bytes;
{
char *temp;
if (!pointer)
temp = (char *)malloc (bytes);
else
temp = (char *)realloc (pointer, bytes);
if (!temp)
memory_error_and_abort ();
return (temp);
}
static void
memory_error_and_abort ()
{
fprintf (stderr, "readline: Out of virtual memory!\n");
abort ();
}
/*
* Local variables:
* compile-command: "gcc -g -DTEST -o tilde tilde.c"
* end:
*/
#endif /* TEST */