pax_global_header00006660000000000000000000000064146377667460014544gustar00rootroot0000000000000052 comment=064e25593713d24349deec5dfa761e72413e3660 tcsh-6.24.13/000077500000000000000000000000001463776674600126625ustar00rootroot00000000000000tcsh-6.24.13/.github/000077500000000000000000000000001463776674600142225ustar00rootroot00000000000000tcsh-6.24.13/.github/workflows/000077500000000000000000000000001463776674600162575ustar00rootroot00000000000000tcsh-6.24.13/.github/workflows/codeql.yml000066400000000000000000000016251463776674600202550ustar00rootroot00000000000000name: "CodeQL" on: push: branches: [ "master" ] pull_request: branches: [ "master" ] schedule: - cron: "43 7 * * 1" jobs: analyze: name: Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: [ cpp, python ] steps: - name: Checkout uses: actions/checkout@v3 - name: Initialize CodeQL uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} queries: +security-and-quality - name: Autobuild uses: github/codeql-action/autobuild@v2 if: ${{ matrix.language == 'cpp' || matrix.language == 'python' }} - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 with: category: "/language:${{ matrix.language }}" tcsh-6.24.13/BUGS000066400000000000000000000425621463776674600133560ustar00rootroot00000000000000============ Bugs in TCSH ============ -IAN! idallen@ncf.ca April 2002 -------------------------------------------------------------------------------- | *FIXED* | From: idallen | Subject: Can't redirect output of "source" | % echo "date" >file | % source file >output | Thu Sep 3 17:47:19 EDT 1987 -------------------------------------------------------------------------------- From: idallen Subject: nice is not cumulative % nice date % nice nice date Both have a nice of 4; nice does not accumulate. From: idallen Subject: no warning on integer overflow % @ x=99999999999999999999999 % echo $x -159383553 From: idallen Subject: goto seeks backwards in terminal input % goto x goto? ignored goto? ignored goto? ignored goto? x: % goto x The terminal is now hung - you have to break out. From: idallen Subject: nice applied to too many commands % nice +20 simple `long` The CSH shell applies the nice to both commands "simple" and "long". From: idallen Subject: redirection always happens in single-line "if" if ( 0 ) echo hi > date The file date is created empty. From: idallen Subject: Expanding variable with newline generates syntax error % set x="abc\ def" % echo "$x" Unmatched ". From: idallen Subject: Expanding variable with newline generates extra word % set x="abc\ def" % echo $x abc def % set y=( $x ) ; echo $#y 3 From: idallen Subject: Modifier ":e" doesn't work on history CSH is missing an entry in a case statement for it. From: idallen Subject: Shell messages appear on stdout; get redirected If a program in a shell script exits with a signal that the shell reports (e.g. Terminated), the report appears on standard output and if the output of the shell script is redirected the report gets sent there and you never find out. From: Steve Hayman Subject: No error message given for failure to NICE % nice -10 date Fri May 30 12:11:12 EDT 1986 CSH never checks the error returns from nice(). From: Ray Butterworth Subject: CSH history reading takes '#' as a comment % echo a b # c d a b # c d % exit % login % history ... 99 echo a b '#' indicates a comment when reading from a shell script file, and of course CSH thinks it is reading from a file when it reads the history back in. From: idallen Subject: csh: No current job, even if only one job % somecommand ^Z Suspended % bg [1] somecommand & % fg fg: No current job. The C shell always turns off the current job indicator for a job that is put in the background with "bg" -- even if it is the only job. From: idallen (Ian! D. Allen) Subject: Redirection ignored inside if ( { cmd >xxx } ) .... % if ( { date >out } ) echo hi Sun Apr 14 13:24:31 EDT 2002 hi The shell does not set up its file descriptors for the forked command. The redirection is completely ignored. >From idallen Subject: Error in CSH script causes script exit If a script has an error in a built-in command (e.g. redirection file not found), the script exits instead of continuing. From: idallen (Ian! D. Allen) Subject: Variables $$, $# don't accept :-modifiers echo $$:q $#:q 12345:q 0:q From: idallen (Ian! D. Allen) Subject: Variable $* (a synonym for argv) doesn't accept subscripts. % set argv=( a b c d ) % echo $argv[2] b % echo $*[2] echo: No match. >From idallen Subject: Using WHICH from CSH The WHICH command tells the wrong thing if you've created a new file and haven't done a REHASH. WHICH thinks you get the new file, but the CSH will give you the old one. From: idallen (Ian! D. Allen) Subject: Redirected input to built-in functions misbehaves badly % date | echo hi hi % % jobs [1] + Running date | Note the duplicate prompt and spurious job entry. % % date | echo hi hi % % date | echo hi hi % % jobs [1] + Running date | [2] - Running date | [3] Running date | % fg date | % fg date | fg: No such job (badjob). % fg [tcsh shell hangs here in an infinite loop] Just a general mess of mishandled processes. From: idallen (Ian! D. Allen) Subject: stopped pipes generate spurious job ID % date | sleep 99 ^Z Suspended [1] 123 456 >From idallen(idallen ) Subject: NICE and NOHUP have no effect as last component of sub-shells. % nice +10 ps -laxtd0 UID PID PPID CP PRI NI RSS WCHAN STAT TT TIME COMMAND 47 3559 1 0 15 0 33 ff000 S d0 0:16 -csh (csh) 47 7606 3559125 76 10 23 R N d0 0:01 ps -laxtd0 % (nice +10 ps -laxtd0) UID PID PPID CP PRI NI RSS WCHAN STAT TT TIME COMMAND 47 3559 1 3 15 0 33 ff000 S d0 0:16 -csh (csh) 47 7605 3559 92 48 0 23 R d0 0:01 ps -laxtd0 % (nice ps lx) ... Shows no nice. % (nice ps lx;date) ... Works. % (nohup sleep 999)& ... Doesn't ignore SIGHUP. % (nohup sleep 999;date)& ... Works. % echo `nice ps lx >/dev/tty` ... Shows no nice. % echo `nice ps lx >/dev/tty;date` ... Works. % echo `nohup sleep 999` ... Doesn't ignore SIGHUP. % echo `nohup sleep 999;date` ... Works. >From idallen Subject: you can nest back-quotes, but the syntax is ridiculous % echo "`echo "\"'`echo "\"'\''`echo "\`"pwd"\`"`'\''\""`'\""`" From: idallen (Ian! D. Allen) Subject: GLOB not applied to names in setenv or unsetenv % setenv `echo abc` def It doesn't set abc, it sets the nasty variable: `echo abc` % unsetenv `echo abc def ghi` Doesn't unset abc or def or ghi >From idallen Thu Mar 15 09:48:35 1984 Subject: Stopping jobs in list of command names throws away the rest. % a ; b ; c CSH documents that if you stop B, C will immediately start. It doesn't. The rest of the list gets thrown away. From: idallen (Ian! D. Allen) Subject: Stopping jobs in source'd file aborts the rest of the file. With the file TEST containing: mail echo Hi There you never see this and typing % source TEST and then using ^Z to stop MAIL, the rest of the TEST file is abandoned. This is especially annoying in one's .login or .cshrc. >From idallen Subject: CSH doesn't handle EXIT when it sees it. % date; exit 99 ; date ; date Wed Mar 14 19:21:51 EST 1984 Wed Mar 14 19:21:52 EST 1984 Wed Mar 14 19:21:53 EST 1984 The shell doesn't flush pending input when the EXIT is seen. The shell then exits with status 0 instead of status 99. >From idallen Subject: CSH mishandles suspend in subshells. % ( date; suspend; date ) Sun Mar 4 01:28:28 EST 1984 Suspended % fg ( date; suspend; date ) Suspended (tty input) ...and you can never get it started again. >From idallenSun Mar 18 01:28:16 Subject: ECHO mis-handles interrupts and errors in back-quotes % echo `sleep 999` [1] 24244 % jobs [1] Interrupt ` ... ` Note the inability of CSH to tell you the command name used inside the back-quotes. >From idallen Subject: CSH botches $#X where X is environment var % echo $#path 4 % echo $#PATH /usr/ucb:/bin:/usr/bin:/usr/public >From idallen Wed Apr 18, 1984 Subject: Inconsistent handling of variables The manual says that "set x=word" assigns a single word to x. To assign multiple words, one is supposed to use "set x=(words)". But, CSH allows "set x=`date`", which sets x to the many words resulting from `date`, and $x[1] prints "Mon". One observes that if x and y are single-word variables, the statements: % set x=word2 % set y[1]=word2 are identical; both replace the contents of the variable with word2. But, you can't assign a word to y[1] if y doesn't exist, even though you can (of course) assign a word to plain "y" if y doesn't exist. >From idallen(Ian! D. Allen) Subject: extra next level when nested single-line IF line ends in THEN Any IF line that ends in THEN is taken as another nesting level, and requires a corresponding ENDIF: if ( 0 ) then if ( 0 ) echo This line ends with then endif echo You do not see this. endif # This shouldn't be needed; but it is. echo Now you do. >From idallen Subject: EXEC doesn't close the file descriptors /* This program will demonstrate that CSH leaves internal * file descriptors open across an EXEC built-in command. * * % exec ./a.out */ main() { int i; for( i=0; i < 20; i++ ){ printf("%d = %d\n", i, isatty(i) ); } } The output shows: > exec ./a.out 0 = 1 1 = 1 2 = 1 3 = 1 4 = 1 5 = 1 6 = 0 7 = 0 8 = 0 9 = 0 ... From: idallen Subject: can't test success of CD, CHDIR, etc. cd nosuchdir || echo CD failed cd nosuchdir && echo CD failed cd nosuchdir ; echo CD failed None of the above work in CSH. >From idallen Mon Dec 16 21:40:32 1985 Subject: GLOB loses memory on directories echo /*/*/* If you interrupt the above GLOB, CSH loses memory. From: idallen Subject: C Shells don't parse when looking for labels. The shells just look at the first word on each line. You can cause the shell to branch in to the middle of a HERE document: #!/bin/csh -f onintr quit sleep 999 cat << EOF quit: echo Amazing how this prints. exit 88 # this exit is taken when break is hit EOF quit: echo You never get here. >From arwhite Thu Aug 26 13:53:58 1982 Subject: CSH/Bourne shell inconsistent newlines "`command`" deletes newlines from the command in the cshell, not in the Bourne shell. >From idallen (Ian! D. Allen) Subject: aliases aren't seen after redirection % date >x % >x date % alias foo date % foo >x % >x foo foo: Command not found. >From idallen (Ian! D. Allen) Subject: $< misbehaves in pipes % date | /bin/echo aaa $< bbb abcdef aaa a bbb % bcdef bcdef: Command not found. >From chris@pixutl.UUCP (chris) Fri Oct 5 14:01:13 1984 Subject: bug in CSH (history) There are a couple of bugs in the 'history' command of /bin/csh (and offspring, such as newcsh): 1) The maximum number of arguments to the history command is set to 2. % history -h -r 2 # fails >From idallen Subject: C Shell expression operators explained Some odd CSH context-sensitive features. There is ambiguity on how !~ != and !( should be interpreted: 1 - % ~idallen/study # a valid command line 2 - % !~ # doesn't work 3 - % echo " !~ " # no history 4 - % if ( abc !~ def ) echo hi 1 - % =xxx # a valid command line 2 - % != # doesn't work 3 - % echo " != " # no history 4 - % if ( 1 != 2 ) echo hi 1 - % ( date ) # a valid command line 2 - % !( # doesn't work 3 - % echo " !( " # no history 4 - % if ( !( 1 + 1 ) ) echo hi The C Shell parser isn't clever enough to distinguish any of cases 2, 3, or 4, so it always behaves as if the character pair was part of an expression, not a history substitution. -------------------------------------------------------------------------------- | *NOT A BUG* | >From idallenThu Jun 27 08:20:08 1985 | Subject: Re: Using > vs. | on shell built-in commands. | | CSH cannot put the output of the JOBS command into a pipe. In fact, | the output is going into the pipe, but the output is empty. You | couldn't know this, but these shells implement piped built-in commands | by forking the shell to create an independent process for which the | main shell can wait. But the internal process table is cleaned | out after a fork(), since a forked shell is just like a subshell | and must have its own clean process table in which to enter its own | running jobs. So by the time the JOBS command executes, it's in a | child shell that has no jobs running. Hence, the output is empty. | "echo `jobs`" and "( jobs )" are both empty, for the same reason. -------------------------------------------------------------------------------- From: jjg@security.UUCP (Jeff Glass) Subject: csh and I/O redirection put these four lines in a file, say cshtest : #! /bin/csh -f cat << END | ( sh & ) echo hi there END ( the intent is to send some commands to sh to be executed in the background, without csh printing the job number of the sh. ) now, from csh, enter the command source cshtest and note that you see the message "hi there". now enter the commands chmod +x cshtest ./cshtest and you get no output. removing either the parentheses or the ampersand causes the message to appear, but not quietly in the background. I don't understand why it works when source'd but not when exec'd, either. -------------------------------------------------------------------------------- | *FIXED* | From: matt@prism.UUCP | Subject: Pointless csh puzzle | | Here's a pointless little csh puzzle: In the c-shell, it is | possible to set and environment variable whose name consist of | more than one word, in the obvious way: | | % setenv "FOO BAR" quux | | The printenv builtin will show it residing happily in the | environment. Now for the puzzle: can anyone find a way to GET | TO the value of this variable, using only csh builtins? In | other words, is there an such that | | % echo | | will print "quux" on the screen, where is formed | only from csh commands? -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- | *FIXED* | >From tim@ISM780B.UUCP Wed Nov 20 18:00:00 1985 | Subject: Re: C-shell puzzles | | Here's another good C shell quirk: | | $ echo foo | foo | $ repeat 3 echo foo | foo | foo | foo | $ repeat 3 repeat 3 echo foo | foo | foo | foo | foo | foo | $ repeat $N repeat $M echo foo # $N and $M are integers | [ $N + $M - 1 foo's ] | $ repeat $N1 repeat $N2 ... repeat $Nk echo foo | [ $N1 + $N2 + ... + $Nk - k + 1 foo's ] | $ -------------------------------------------------------------------------------- >From pur-ee!uiucdcsb!liberte Mon Dec 30 23:20:31 EST 1985 Subject: Csh null strings There are at least two different-sized null strings in csh. But sometimes they are equal anyway. % set x = "" % set y = "`echo`" % echo $#x $#y 1 0 % set x = % set y = `echo` % echo $#x $#y 1 0 % set x = ("") % set y = ("`echo`") % echo $#x $#y 1 0 % set x = () % set y = (`echo`) % echo $#x $#y 0 0 % if (() == "`echo`") echo huh % if (() == ("`echo`")) echo huh huh % if ("" == ("`echo`")) echo huh % if ("" == "`echo`") echo "huh?" huh? >On Jul 18, 8:15am, mark@peek.org (Mark Peek) wrote: >-- Subject: Updated tcsh-6.12.0 release date? > >| Hi Christos, >| I know I've been (part of) the cause of slipping the release date out >| for tcsh-6.12.0. :-) Do you have an updated date for releasing it? >| I'm trying to determine whether it will fit in the time frame for >| shipment with the next FreeBSD 5.0-DP release. > >I hope to release it sometime next week. There are only minor changes in it. >Is that convenient, or would you like me to push it more? I sent a note to the FreeBSD release engineers and they're inclined to hold off on including the new version in the release which they're branching later today. If DP2 slips out a bit they might consider including it. I'd say go ahead with your current schedule and I'll import it whenever it is available. I definitely will be including it into the next -stable FreeBSD 4.7 release. BTW, one of the release engineers pointed out a bug with using jobcmd. If you use the example in the book to update an xterm and then run something like grep bar `cat file.list` It screws up the xterm title bar containing "Faulty alias 'jobcmd' removed" plus the list of files from the cat command. The good news is that I was able to reproduce this at home last night. The bad news is that it is working fine right now here at work. Oh wait, let me log in remotely and look at the alias I was using...got it! The command fails if you use: alias jobcmd 'echo -n "^[]2;\!#^G"' but works fine if you use: (note the switch of ' and " quotes) alias jobcmd "echo -n '^[]2;\!#^G'" Note: I used the above by vi'ing a file and sourcing it from the shell. If you can confirm, I think this just needs to be updated in the man page. >Thanks for all the help BTW... No problem. I like fixing bugs and contributing code...especially for a great piece of software like tcsh that I use *all* the time. Thank you for keeping it going! Mark tcsh-6.24.13/BUILDING000066400000000000000000000217521463776674600140110ustar00rootroot00000000000000Tcsh is an enhanced but completely compatible version of the Berkeley C-Shell, with the addition of a command line editor, command and file name completion, listing, etc., and a bunch of small additions to the shell itself. Tcsh has been ported to most unix variants, and can be tinkered to work in unix systems that it has not ported yet. See the Ported file for a more complete list of ported systems and in the config directory for a configuration file that matches your system. Tcsh also runs under VMS/POSIX and OS/2+emx; the OS/2 port is not complete yet. Feel free to use it. These changes to csh may only be included in a commercial product if the inclusion or exclusion does not change the purchase price, level of support, etc. Please respect the individual authors by giving credit where credit is due (in other words, don't claim that you wrote portions that you haven't, and don't delete the names of the authors from the source code or documentation). To install tcsh: 1) Try running "./configure". If that doesn't work, goto step 2. Run "./configure --help" to see possible options. After running configure, goto step 5. You'll want to have development libraries installed: a) On Debian, try the following: apt-get install \ build-essential \ libncurses-dev \ ; b) On Fedora, try the following: dnf group install \ "C Development Tools and Libraries" \ "Development Libraries" \ "Development Tools" \ ; 2) If you have imake running on your machine, you may try building with it. Note that imake is not supported for all the platforms yet, so this might not work on your machine. If that is the case please let us know, and goto step 3. If you can send a patch that fixes the problem we would appreciate it. a) Modify configurable parameters in imake.config to your liking. b) xmkmf; make depend Goto step 5. 3) Otherwise copy Makefile.std to Makefile. Look at the Makefile and make sure that you are using the right compilation flags. 4) Copy the appropriate for your machine and OS config file from the config subdirectory into config.h. Consult the file "Ported" for settings known to work on various machines. If you are trying to compile tcsh on a machine for which there is no config file yet, you will need to create a config file using as a template one of the supplied ones. If you get tcsh working on a new machine, I'd appreciate a copy of the config file plus additional information about the architecture/OS. If you are creating a new config file, look very hard at BSDJOBS and BSDTIMES if you are running a non-BSD machine. For vanila SysV, these would all be #undef-ed, but others may vary (such as A/UX or HPUX). On a pyramid, compile in the UCB universe even if you are running under the ATT universe usually; it will work anyway, and you get job control for free. 5) Look at config_f.h, and enable or disable any features you want. It is configured the way I like it, but you may disagree. 6) Look at host.defs to make sure that you have the right defines to set the environment variables "HOSTTYPE", "MACHTYPE", "OSTYPE" and "VENDOR" correctly. If you need to make changes, PLEASE SEND THEM BACK TO ME. 7) You may want to adjust the DESTBIN and DESTMAN entries in Makefile. These are the directories that tcsh, and the tcsh.1 man entry will be placed in when you do a "make install" and "make install.man" respectively. If you decide to install tcsh somewhere other than in /usr/local/bin/tcsh, you should #define _PATH_TCSHELL "/your/installation/directory/tcsh" in pathnames.h. 8) make 9) Read the documentation while you are waiting. The file tcsh.man is in standard [nt]roff -mdoc format. 10) Test tcsh by typing ./tcsh to see that it has compiled correctly. The history command should give a time stamp on every entry. Typing normal characters should echo each exactly once. Control-A should put the cursor at the beginning of the input line, but after the prompt. Typing characters after that should insert them into the line. If you have job control make sure that stopping and restarting jobs works. Make sure you can ^C in the middle of the input line. Also make sure that pipelines work correctly and there are no races. Try 'echo | cat | cat | cat | cat | more' a couple of times. If you have job control, try this command in the background and bring it in the foreground when it stops for tty output. Also make sure that the ioctl() modes are preserved. Get into vi, enter and exit input mode and suspend it, background it and foreground it again. After all that, lastly make sure that the tty process group manipulation is happening correctly. Try ftp to some host. If your passwd appears on the screen, you have lost /dev/tty. Otherwise everything is fine. 11) Once satisfied that tcsh is working correctly, complete the installation by typing "make install" to install the binary, and "make install.man" to install the documentation. Don't forget to look at complete.tcsh for useful completions, dot.login for a sample ~/.login file, and dot.tcshrc for a sample ~/.tcshrc file... 12) Enjoy. *************************************************************************** On sysv versions < 3.0 (not hpux) Doug Gwyn's public domain directory manipulation library has to be installed. This library is available for anonymous ftp from prep.ai.mit.edu:/pub/gnu/dirent.tar.Z If the network is not installed, then there is a gethostname() routine is tc.os.c *************************************************************************** On BSDreno, in ttyname() closedir() is called twice and so the same pointer gets free'd twice. tcsh's malloc is picky and it prints an error message to that effect. If you don't like the message: 1. Apply the following patch: *** /usr/src/lib/libc/gen/ttyname.c.orig Fri Jun 1 17:17:15 1990 --- /usr/src/lib/libc/gen/ttyname.c Tue Oct 29 16:33:12 1991 *************** *** 51,57 **** if (stat(buf, &sb2) < 0 || sb1.st_dev != sb2.st_dev || sb1.st_ino != sb2.st_ino) continue; - closedir(dp); rval = buf; break; } --- 51,56 ---- Or: Comment the error printing out in tc.alloc.c Or: Compile -DSYSMALLOC *************************************************************************** From: Scott Krotz Tcsh has been ported to minix by Scott Krotz (krotz@honey.rtsg.mot.com). Unfortunately the minix sed is broken, so you'll have to find a way to make tc.const.h, sh.err.h, ed.defns.h which are automatically generated. The easiest way to create them is to make a copy from unix, copying minix to config.h, and then 'make sh.err.h tc.const.h ed.defns.h' The OS/dependent files are in mi.termios.h, mi.wait.h, mi.varargs.h You will get some warnings, but dont worry about them, just ignore them. After tcsh has compiled and the gcc binary is converted to a minix binary, remember to chmem it to give it more memory - it will need it! How much you need depends on how many aliases you have, etc.. Add at least 50000 to it. One last thing. You might have to make some links for include files so that they are in the directories that tcsh is expecting while compiling. I forget if I had to do this or not, but it should be fairly easy to sort out. If it cant find any include files this is probably the reason. If you have any problems, please tell me. I can be contacted through e-mail at: krotz@honey.rtsg.mot.com I also read comp.os.minix on a regular basis, so a note there will get my attention also. Have fun! ps. The termios functions are provided by Magnus Doell and Bruce Evans. Thanks, guys! From: Bob Byrnes This is for minix 1.5 (straight out of the box from P-H) plus the i386 patches from Bruce Evans. I cross-compiled on a Sun using gcc 2.1 with a target of i386-bsd (using the minix include files instead of the bsd versions), and then linked the resulting object files with similarly compiled crtso.o and libc.a on vax (little endian) using a hacked version of ld which I put together to generate minix executables instead of bsd a.out format. What a kludge ... I compiled with -O2 -Wall ... So far I haven't noticed any problems with the optimizer. In case anyone is contemplating compiling tcsh with bcc (Bruce Evan's i386 compiler that comes with the minix386 upgrade package), don't bother. It is some serious bugs that kill tcsh when compiled for 16-bit characters. I can provide more details of bugs that I noticed for brave souls who want to try, but it would be hard (and why bother if you can get gcc?). I can make the binary available to anyone who wants it (for example people who can't get access to a cross-compiling environment, and who don't yet have gcc running under minix). *************************************************************************** If your compiler cannot handle long symbol names, add #include "snames.h" to your config.h file -- Christos Zoulas christos@zoulas.com tcsh-6.24.13/Copyright000066400000000000000000000030721463776674600145570ustar00rootroot00000000000000/*- * Copyright (c) 1980, 1991 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ tcsh-6.24.13/FAQ000066400000000000000000000227721463776674600132260ustar00rootroot00000000000000 * Home * FAQ * Y2K __________________________________________________________________ FAQ For the people who do not read the manual! Why is the meta key broken in tcsh-5.20 and up? On some machines the tty is not set up to pass 8 bit characters by default. Tcsh 5.19 used to try to determine if pass8 should be set by looking at the terminal's meta key. Unfortunately there is no good way of determining if the terminal can really pass 8 characters or not. Consider if you are logged in through a modem line with 7 bits and parity and your terminal has a meta key. Then tcsh 5.19 would set wrongly set pass8. If you did like the previous behavior you can add in /etc/csh.login, or in .login: if ( $?tcsh && $?prompt ) then if ( "`echotc meta`" == "yes" ) then stty pass8 endif endif If you don't have pass8, maybe one of these would work: stty -parity -evenp -oddp cs8 -istrip (rs6000) stty -parenb -istrip cs8 Finally, tcsh will bind all printable meta characters to the self insert command. If you don't want that to happen (i.e. use the printable meta characters for commands) setenv NOREBIND. I ran dbxtool & and shelltool & from tcsh, and they end up in cbreak and no echo mode? These programs are broken. Background jobs should not try to look at the tty. What happens is that dbxtool looks in stderr to inherit the tty setups, but tcsh sets up the tty in cbreak and -echo modes, so that it can do line editing. This cannot be fixed because tcsh cannot give away the tty. Pick one of the following as a workaround: dbxtool < /dev/null >& /dev/null & /usr/etc/setsid dbxtool & If that does not work, for dbxtool at least you can add sh stty sane in your .dbxinit file. I tried to compile tcsh and it cannot find ? Your system does not support NLS. Undefine NLS in config_f.h and it should work fine. Where can I get csh sources? Csh sources are now available with the 4.4BSD networking distributions. You don't need csh sources to compile tcsh-6.0x. I just made tcsh my login shell, and I cannot ftp any more? Newer versions of the ftp daemon check for the validity of the user's shell before they allow logins. The list of valid login shells is either hardcoded or it is usually in a file called /etc/shells. If it is hard-coded, then you are out of luck and your best bet is to get a newer version of ftpd. Otherwise add tcsh to the list of shells. (For AIX this file is called /etc/security/login.cfg.) Remember that the full path is required. If there is no /etc/shells, and you are creating one, remember to add /bin/csh, /bin/sh, and any other valid shells for your system, so that other people can ftp too. I am using SunView or OpenWindows and editing is screwed up. In particular my arrow keys and backspace don't work right. What am I doing wrong? Well, cmdtool tries to do its own command line editing and the effect you get is one of using an editor inside an editor. Both try to interpret the arrow key sequences and cmdtool wins since it gets them first. The solutions are in my order of preference: * Don't use suntools * Use shelltool instead of cmdtool. * Unset edit in tcsh. On a SPARCstation running Solaris 2.x and OpenWindows 3.1, inside a cmdtool, the short-cut key sequence to clear log (i.e. Meta-e or Diamond-e) doesn't work: it just echos ‘e’; or Unset edit in tcsh. On a SPARCstation running Solaris 2.x and OpenWindows 3.1, maketool (within SPARCworks) doesn't work: it just does a `cd’ to the working directory then stops. Unset edit in tcsh. Using shelltool instead of cmdtool does not fix this. I rlogin to another machine, and then no matter what I tell stty I cannot get it to pass 8 bit characters? Maybe you need to use rlogin -8 to tell rlogin to pass 8 bit characters. Where do I get the public domain directory library? Anonymous ftp to ftp://prep.ai.mit.edu/pub/gnu/dirent.tar.Z I compiled tcsh using gcc, and when I start up it says: tcsh: Warning no access to tty (Invalid Argument). Thus no job control in this shell Your file is not ansi compliant. You have one of 3 choices: * Run fixincludes from the gcc distribution. * Add -traditional to the gcc flags. * Compile with cc. I compiled tcsh with the SunOS unbundled compiler and now things get echoed twice. It is a bug in the unbundled optimizer. Lower the optimization level. How can I use the arrow keys with hpterm? Hp terminals use the arrow keys internally. You can tell hpterm not to do that, by sending it the termcap sequence smkx. Since this has to be done all the time, the easiest thing is to put it as an alias for precmd, or inside the prompt: if ($term == "hp") then set prompt="%{`echotc smkx`%}$prompt" endif Note that by doing that you cannot use pgup and pgdn to scroll… Also if you are using termcap, replace smkx with ks. On POSIX machines ^C and ^Z do not work when tcsh is a login shell? Make sure that the interrupt character is set to ^C and suspend is set to ^Z; stty -a will show you the current stty settings; stty intr ^C susp ^Z will set them to ^C and ^Z respectively. I am trying to compile tcsh and I am getting compile errors that look like: sh.c:???: `STR???' undeclared, outside of functions [gcc] "sh.c", line ???: STR??? undefined [cc] You interrupted make, while it was making the automatically generated headers. Type make clean; make On the cray, sometimes the CR/LF mapping gets screwed up. You are probably logged in to the cray via telnet. Cray's telnetd implements line mode selection the telnet client you are using does not implement telnet line mode. This cause the Cray's telnetd to try to use KLUDGELINEMODE. You can turn off telnet line mode from the cray side by doing a stty -extproc, or you can get the Cray AIC to build a telnetd without KLUDGELINEMODE, or you can compile a new telnet client (from the BSD net2 tape), or at least on the suns use: mode character. On AU/X, I made tcsh my startup shell, but the mac desktop is not starting up (no X11 or Finder), and I only get console emulation. Add the pathname to tcsh in /etc/shells and everything should work fine. On machines that use YP (NIS) tilde expansion might end up in /dev/null If this happens complain to your vendor, to get a new version of NIS. You can fix that in tcsh by defining YPBUGS in config.h Script on SGI 4.0.5 does not give us a tty, so we cannot have job control. Their csh does not have job control either. Try: % script % cat > /dev/tty I start tcsh and it takes a couple of minutes to get the prompt. You have defined REMOTEHOST and your DNS is not responding. Either undefine REMOTEHOST and recompile or fix your DNS. If you need help generating your .cshrc file, check out: * https://github.com/tcsh-org/tcsh/blob/master/dot.tcshrc * https://github.com/tcsh-org/tcsh/blob/master/dot.login On POSIX systems the kernel will send hup signals to all the processes in the foreground process group if ‘stty hupcl’ is set. For example ./tcsh echo $$ 591 ./tcsh kill -6 591 Will kill everything, since hup will be sent to all tcsh processes. To avoid that you can set stty -hupcl, but it is not recommended. When I rsh the meta key stops working on the remote machine. Try using rsh -8; this option is undocumented on some systems, but it works. If that does not work, get and use ssh/sshd. You'll be better off from a security point of view anyway. Tcsh compiled under hp/ux-10.x does not pass resource limits correctly when ran on hp/ux-11.x systems. This is a problem with lack of ABI compatibility between the two systems. The only solution is to recompile. Refreshing in command line editing can appear broken on some OS's This is because the termcap/terminfo description lies about the ability of the terminal to use tabs. At least on Compaq/DEC Alpha OSF/1 3.x and 4.x systems, stty -tabs will cause problems. Where can I learn the merits of tcsh vs. bash vs. csh vs. sh etc? You can read the manual page section titled [NEW FEATURES] listing features that tcsh adds to csh. You can read Tom Christiansen's Csh Programming Considered Harmful, a document advocating that csh (and by extension, tcsh) should not be used for writing shell scripts. XXX: Need to find something about bash, but bash is sh-compatible and has many of the same interactive features of tcsh (command completion does not appear to be as flexible, though). Curtains up: introducing the Z shell has a pretty good rundown on zsh. Aside from the arguments about csh being evil, tcsh appears to compare well with zsh. Zsh is sh and ksh compatible, with many of the interactive features of tcsh. Why does FreeBSD's tcsh do history browsing differently than I expect? On FreeBSD, by default, the up arrow is set to history-search-backward, rather than the default up-history. As a result, if you type (part of) a word and press up arrow, you'll see previous commands that match the prefix. Pretty useful, actually, although it takes some getting used to. You can use bindkey to see your settings, and to rebind up & down differently if desired. __________________________________________________________________ Page content last updated on 2019-12-31 tcsh-6.24.13/Fixes000066400000000000000000003104621463776674600136710ustar00rootroot00000000000000 37. V6.24.13 - 2024-06-12 36. Fix !^:h and !^:t failing when no / found (Kimmo Suominen) 35. Add cross-build support for gethost (josefs10) 34. Add support for $?< (Matheus Garcia) 33. V6.24.12 - 2024-04-05 32. Fix history merge and add a test for it (Werner Fink, Kimmo Suominen) 31. V6.24.11 - 2024-03-14 30. Make nice priority incremental even with setpriority(2) to match how it worked with nice(3) (Kimmo Suominen) 29. V6.24.10 - 2023-04-14 28. Restore skipping of the "$edit" and "Comments" tests when not running on a terminal (Kimmo Suominen) 27. V6.24.09 - 2023-04-13 26. ls-F: unsetenv LS*COLOR reapplies other LS*COLOR (Luke Mewburn) 25. Don't crash if LSCOLORS contains > 11 pairs (Luke Mewburn) 24. V6.24.08 - 2023-04-10 23. Support LS_COLORS su,sg,tw,ow,st,mh variables. (Luke Mewburn) 22. Fixes for LS_COLORS ln=target: ls-F directory; reset on unsetenv; intermittent parse bug; only support lower-case "target". (Luke Mewburn) 21. Fix LSCOLORS bold/bright color support, add to manual (Luke Mewburn) 20. Implement CLICOLOR_FORCE (Luke Mewburn) 19. On startup, use LS_COLORS in preference to LSCOLORS (Luke Mewburn) 18. Improve color ls-F documentation (Luke Mewburn) 17. V6.24.07 - 2022-12-21 16. V6.24.06 - 2022-12-12 15. V6.24.05 - 2022-12-04 14. Build and release process improvements (Luke Mewburn, Kimmo Suominen) 13. V6.24.04 - 2022-12-03 12. Fix a test to match output from old bash versions (Corinna Vinschen) 11. V6.24.03 - 2022-12-03 10. Fix set/@ test when diff is from busybox (Luke Mewburn) 9. Handle \c in echo properly instead of printing garbage past the end of the string. 8. Add a configure check for a working sbrk() (Luke Mewburn) 7. V6.24.02 - 2022-11-24 6. Complete mdoc-based manual page (Luke Mewburn) 5. Fix rechist() check for NULL filename (broke when arg was renamed). > cd > rm .history > unset savehist > history -S /tmp/s > exit A ~/.history has been written when it should not have been. 4. Make OpenBSD use SHORT_STRINGS and fix non-SHORT_STRINGS compilation. 3. V6.24.01 - 2022-05-12 2. Fix quoting of ! characters in history recall (Kimmo Suominen) 1. Fix return status of which (Jamie Landeg-Jones) 12. V6.24.00 - 2022-02-02 11. Update config.guess and config.sub so arm64 is recognized 10. V6.23.02 - 2022-01-03 9. Make the \U escape up to 8 hex digits. 8. V6.23.01 - 2021-12-09 7. add \cc and \Uhhh, and document escape sequences 6. add $'string with escapes' ("dollar-single-quotes") (Kimmo Suominen) 5. don't glob the filetest builtin arguments twice 4. remove the duplicate echo escape parsing code and use parseescape 3. add \x{hh} \xhh \uhhh (H.Merijn Brand) 2. fix and document ln=target 1. Merge in patches from pkgsrc: - Modernize the installation targets so that they use INSTALL_DATA, INSTALL_PROGRAM, and MKDIR_P. - Enable SYSMALLOC and SHORT_STRINGS on NetBSD. - Enable NO_FIX_MALLOC and SHORT_STRINGS on OpenBSD. 23. V6.23.00 - 2021-11-11 22. Guard against running off the beginning of the array (Simon Burge) 21. Add jobs -Z to setproctitle(3) like zsh(1) 20. Prevent infinite recursion with tcsh -fc 'set -r status;:' (Gabriel Ravier) 19. Fix postcmd trashing history when invoking domod (Jan Macku) 18. Fix off-by-one in RefCursor (H.Merijn Brand) 17. add ln=target in LS_COLORS (ajrosen) 16. prefer mallinfo2 instead of mallinfo (H.Merijn Brand) 15. V6.22.04 - 2021-04-26 14. Don't crash with 'bindkey "^0" clear-screen' (Karl Jeacle) 13. Fix $x:q:h and $x:q:t return the whole string for strings not containing / 12. V6.22.03 - 2020-11-18 11. Fix $x:q:h and $x:q:t to not crash (alzwded) with strings containing / 10. Block SIGHUP while writing history/directory stack (Brett Frankenberger) 9. Fixed reversed test that broke history merging (Brett Frankenberger) 8. Prevent recursive entry for writing history (Brett Frankenberger) 7. alxwded@github, keep track of the :g and :a modifiers per modifier they affect. 6. alzwded@github, fix infinite loop with :gas variable modifier 5. PR/88: Add a Q: modifier that preserves empty arguments leaving :q alone. 4. V6.22.02 - 2019-12-04 3. Fix version in configure.ac 2. V6.22.01 - 2019-12-01 1. undo PR/88: Preserve empty arguments in :q, since it breaks $ set x="" $ alias test "echo "\""$x:q"\"" is working." $ alias test echo " 6. V6.22.00 - 2019-11-28 5. PR/113: Sobomax: avoid infinite loops for -c commands when stdout is not a tty. 4. Avoid infinite loops during history loads when merging, print a better error for errors during history load. 3. PR/88: Preserve empty arguments in :q 2. PR/94: Small apple issues (SAVESIGVEC, HOSTTYPE) 1. PR/81: Fix range matching issue where we were comparing with the range character instead of the start of range. [l-z]* would match foo 12. V6.21.00 - 2019-05-08 11. Abort history loading on words and lines too long https://bugzilla.redhat.com/show_bug.cgi?id=1598502 10. PR/37: Introduce GetCmdChar() to avoid open coding array access. 9. make closem() not close sockets so as not to affect nss_ldap. tcsh never creates sockets so that's ok (Miloslav Trmac) 8. PR/597: Make rmstar work with aliased rm 7. convert match() from recursive to backtracking. 6. Handle 8 bit characters in bindkey (Werner Fink) 5. Look for tgetent in libtinfo as well (Werner Fink) 4. Don't play pointer tricks that are undefined in modern c (Brooks Davis) 3. Fix out of bounds read (Brooks Davis) 2. Fix type of read in prompt confirmation (eg. rmstar) (David Kaspar) 1. PR/471: Delay arginp parsing 20. V6.20.00 - 2016-11-24 19. Don't resize the screen if it did not change size. 18. V6.19.01 - 2016-10-25 17. restore file description when cleaning up after eval: repeat 99 time 16. PR/572: Fix $SHLVL issue when exec'ing subshells. 15. PR/403: Fix backquote expansion for multi-byte character sets. 14. Fix drawing issu with multi-line prompt (Kensuke Iwahashi/David Kaspar) 13. always send prusage to stdout. 12. PR/526: Fix double \\ printing from previous fix in history expansion. 11. Android updates from Corinna Vinschen 10. PR/526: Quote backslashes properly so they can be preserved in `` expansions 9. Fix memory leak for paraml 8. Add notempty and ask values for the noclobber setting (Martin Tournoij) 7. more correct $wordchars for vimode (Luke Mewburn) 6. expose VImode in $vimode (Luke Mewburn) 5. display what the compiled in editor is in bindkey -d (Luke Mewburn) 4. run-fg-editor improvements and documentation (Luke Mewburn) 3. Fix parsing of 'if (cond)then' (Fridolin Pokorny) 2. PR/437: Fix handling of invalid unicode characters. 1. PR/451: Fix error messages containing %c to be always '%c' 41. V6.19.00 - 2015-05-21 40. V6.18.05 - 2015-05-10 39. fix reseting when interrupted inside an eval "eval sleep 10^C" (paulo.cesar.pereira.de.andrade) 38. rename handle_intr -> handle_interrupt as originally intended. 37. fix input tests that need stdin on a tty 36. V6.18.04 - 2015-05-04 35. revert fix echo "\1", it is incorrect. 34. revert fix to PR/437, breaks short strings. 33. V6.18.03 - 2015-05-03 32. PR/437: Nakajima Akira: Fix segmentation fault reading input files 31. PR/291: Print job status messages to stderr. 30. Fridolin Pokorny NUL in `` does not mean EOF. 29. Pavel Raiskup fix hang with: while (1) ( date & ; wait ) end 28. Add cdtohome special variable (Martin Tournoij) 27. Fix root prompt char for windows (Corinna Vinschen) 26. For "next" completion matches only consider exact matches of the previous word (Jamie Landeg-Jones) 25. Fix echo "\1" for echo_style=both where the first character was not processed properly (Gary Duzan) 24. V6.18.02 - 2014-06-18 23. fix ls-F /non printing exit value twice. 22. rename configure.in to configure.ac, add aclocal.m4 to CVS 21. set foo="aabaabaa"; echo $foo:as/a// should produce bb 20. Add locked merge history support (Marcin Konarski) 19. Support more resource limits from various BSD's 18. Cache history count to speed up thing 17. PR/240: minix support 16. revert fix for 15. Causes extra quoting, for example (foo is a program that prints its arguments): $ ./foo 'abc' * '\a\b\c' 15. fix globbing for ``, stripping backslashes. Example: cat << _EOF > huh echo 'hello\;world' _EOF echo `./huh 0` echo `./huh $?` 14. fix for `` that causes hang. Example: cat << _EOF > huh #!/bin/sh echo "[$@]" echo "I am running" echo "I am running ($$)" >> huh.out _EOF cat << _EOF > huh.tcsh #!/bin/tcsh -f ./huh \ `#comment blah blah blah` \ parameter a \ `#comment blah blah blah` \ parameter b \ `#comment blah blah blah` \ parameter c echo ok _EOF 13. remove AsciiOnly fix now that the real issue has been fixed (Roman Kollar) 12. define utmp file for aix (Laurence Darby) 11. fix if history in loops 10. make ls-F print to stderr and set the exit code 9. make rmstar interruptible on linux 8. Get rid of pret_t and make the printf functions return the number of characters printed as the system ones do. 7. Parse a FreeBSD compat $LSCOLORS. What to do when both LSCOLORS and LS_COLORS are set. I am not documenting this until we decide. 6. V6.18.01 - 2012-02-14 5. fix interruptible wait again 4. ignore bogus compiler overflow message 3. cleanup ifdefs in utmp code, and provide default array entries 2. Ignore #machine entries in host.defs 1. Detect missing ) in gethost.c (Corinna Vinschen) 104. V6.18.00 - 2012-01-14 103. remove unused variables. 102. Make gethost use definitions for x __x__ and __x automatically. 101. More utmp fixes 100. V6.17.10 - 2012-01-05 99. Add more FreeBSD/NetBSD machines 98. Add portability wrapper for gencat 97. Fix warning for write in SYSMALLOC systems. 96. V6.17.09 - 2012-01-02 95. revert gencat handling to pre-cygwin fixes (without the env settings) 94. remove stray endutent() 93. V6.17.08 - 2011-12-30 92. Remove - from gencat 91. Provide support for malloc_usable_size() so that linux works again without SYSMALLOC 90. Add support for FreeBSD's utmpx. 89. V6.17.07 - 2011-12-27 88. Fix debian bug #645238: tcsh segfaults when prompt includes %j and there are more than 10 jobs. 87. PR/155: Default $anyerror to set for backward compatibility 86. PR/149: Don't print -1 in %j (Vojtech Vitek) 85. handle -- on chdir commands as the end of options processing so that they can process a directory like -x without resorting to ./-x (Andrew Stevenson) 84. Handle write(2) returning ENOENT from SoFS, thanks ++HAL (Robert Byrnes) 83. PR/38: Null check for jobs (Kurt Miller) 82. Fix spelling correction correcting ./foo -> ../foo2 (jean-luc leger) 81. PR/120: string0 in filetest does not have enough space. 80. V6.17.06 - 2011-04-15 79. PR/110: Add $anyerror to select behavior. Default to the new one. 78. Don't try to spell commands that are correct (Rouben Rostamian) [./tcsh -f; set path=($path 2); mkdir foo2; cd foo2; touch foo; chmod +x foo; set correct=cmd; ./foo -> ../foo] 77. Don't push the syntax struct on the cleanup stack, because on foo;bar if foo fails, we will free bar prematurely (Ben Miller) 76. Avoid infinite loop while trying to print the pid of a dying process to a closed file (Bob Arendt) 75. Handle completion of ${ variables (Anthony Mallet) 74. Add --disable-nls-catalogs (Corinna Vinschen) 73. convert message catalogs to UTF-8 (Werner Fink) 72. check that the NLS path works before setting $NLSPATH. 71. use SYSMALLOC for GLIBC (Werner Fink) 70. use mallinfo for SYSMALLOC (Corinna Vinschen) 69. V6.17.05 - 2011-02-01 68. Use mkstemp() if there for here docs (Werner Fink) 67. Fix handling of errors and exit values in builtins (Werner Fink) 66. Better pty name detection (Werner Fink) 65. Enable NLS catalogs on Cygwin (Corinna Vinschen) 64. NLSPATH handling fixes (Corinna Vinschen) 63. Avoid infrequent exit when tcsh cd's into a non-existent directory https://bugzilla.novell.com/show_bug.cgi?id=293395 (Werner Fink) 62. Don't try to spell check full path binaries that are correct because they can cause hangs when other nfs partitions are hung. (Werner Fink) 61. Avoid nested interrupts when exiting causing history writing to fail https://bugzilla.novell.com/show_bug.cgi?id=331627 (Werner Fink) 60. Instead of giving an error or ignoring lines with missing eol at eof, process them. 59. Avoid leaking fd's in mail check (Werner Fink) 58. Add cygwin_xcrypt() (Corinna Vinschen) 57. Recognize i686 (Corinna Vinschen) 56. Rename cygwin32 to cygwin and bring it up-to-date with modern cygwin settings (Corinna Vinschen) 55. Avoid double slashes in cdpath (Corinna Vinschen) 54. V6.17.04 - 2011-01-18 53. Revert PR/110, breaks the test suite. 52. V6.17.03 - 2011-01-17 51. PR/102: Complain on input files with missing trailing \n 50. PR/104: If atime == mtime we don't have new mail. 49. PR/113: Don't allow illegal variable names to be set. 48. PR/112: don't set $REMOTEHOST on the local machine. 47. PR/110: exit status of the pipeline should be the status of the last command. 46. Android support (Corinna Vinschen) 45. Add AUTOSET_KANJI which works around the Shift-JIS encoding that translates unshifted 7 bit ASCII (Werner Fink) 44. Handle mb{r,}towc() returning 0 by setting the return value to NUL (Jean-Luc Leger) 43. PR/109: make wait interruptible (Vojtech Vitek) 42. resource limit fixes: signed vs. unsigned, megabyte issue, doc issues (Robert Byrnes) 41. remove .bat and .cmd handling for executables on cygwin (Corinna Vinschen) 40. Don't echo history while history -L or history -M 39. Check for EOS before ** from Greg Dionne 38. Don't fork in backeval from Bryan Mason 37. Better globstar support from Greg Dionne 36. Error out when processing the last incomplete line instead of silently ignoring it (Anders Kaseorg) 35. Fix SEGV from echo `` 34. Better fixes for histchars and promptchars (nargs) 33. Fix win32 issue calling fmalloc/ffree from non-thread-safe context. (Fabio Fabbri) 32. V6.17.02 - 2010-05-12 31. PR/79: nargs: Better handling for promptchars. 30. PR/97: Add parseoctal to retain compatibility with previous versions (Jim Zajkowski) 29. PR/84: Performance fixes for large history merges (add hashtable (Ted Anderson) 28. Revert previous #23; people should use $histlit if they want this feature. 27. Don't kill "hup" background jobs when a child of the shell exits. From Debian. 26. Ignore \r\n in the command line options for OS's that don't strip these from #!; from Debian 25. Fix enhanced missing patch (Greg Dionne) 24. Callers of rt_mbtowc don't grok -2 as a return. Return -1 for now. (Corinna Vinschen) 23. Turn HistLit on while recording history to avoid \!\! losing its \. From Debian 22. set autoexpand; set histchars="";\n crash. From Debian 21. V6.17.01 - 2010-05-06 20. unset verbose while we are reading the history file to avoid echoing to the terminal. (Jeffrey Bastian) 19. globstar addition, Enhance addition, euid, euser, gid variables (Greg Dionne) 18. Make 'e' in vi mode work like 'b' - use wordchars (Alistair Crooks) 17. Handle UTF-16 surrogates (Corinna Vinschen) 16. Make tcsh work on systems where sizeof(wchar_t) == 2 (Corinna Vinschen) 15. Better support for Solaris >= 2.9 (Thomas Uhle) 14. Change internal expression calculations to long long so that we can deal with > 32 bit time, inodes, uids, file sizes etc. 13. Add new linux resource limits. 12. Don't print 'Exit X' when printexitvalue is set in `` expressions (Jeff Bastian) 11. Add more LS_COLORS vars (M.H. Anderson) 10. Reduce whitespace in Makefile (Don Estabrook) 9. Manual page fixes (Alan R. S. Bueno) 8. Remove history in loops bug from the documentation (Holger Weiss) 7. Add autorehash (Holger Weiss) 6. Add history.at (Ted Anderson) 5. Better NLSPATH handling (Norm Jacobs) 4. Fix hostname building from utmp (Cyrus Rahman) 3. Handle pending signals before flush so that the history file does not get truncated. (Ted Anderson) 2. Fix AsciiOnly setting that broke 8 bit input. (Juergen Keil) 1. remember to closedir in mailchk (from Werner Fink, reported by David Binderman) 21. V6.17.00 - 2009-07-10 20. Fix dataroot autoconf issue. 19. Fix directory stuff for unit tests. 18. Fix small bug in history in loops. 17. Provide newer config.{guess,sub} 16. Fix gcc 4 warnings. 15. Fix memory trashing bug introduced in 10. 14. V6.16.01 - 2009-06-24 13. add missing sigemptyset in goodbye() 12. add rlimit swapsize from FreeBSD. 11. restore behavior where a[n-] never prints an error. 10. always save the whole command, not just the first 80 chars of it. 9. fix short2str/short2qstr length adjustment in wide chars (Vitezslav Crhonek) 8. set histfile=/tmp/history.temp; set savehist=(100 merge); alias precmd history -S. After that justpr is not restored and commands don't execute. (Andriy Gapon) 7. Fix "as" $ modifier from corrupting memory. set t=demfonsftraftionf; echo $t:as/f// 6. Make $% work with environment variable (Ron Johnston) 5. Dragonfly script support (Matthias Schmidt, m65) 4. Add autoexpand=onlyhistory (Don Estabrook, m66) 3. Add history in loops (Laurence Darby, m48) 2. Add missing colorls "rs" variable (Shlomi Fish, m70) 1. Fix pts detection issue (Ruslan Ermilov) 33. V6.16.00 - 2008-09-30 32. longjmp clobbered variable fixes. 31. __GNX__ addition 30. Windows fork fixes 28. V6.15.02 - 2008-08-30 27. Fix an eval free'ing botch (Per Hedeland) 26. /bin/echo "`" coredumped because stderror() calls longjmp corrupting the stack (Mark Davies). We should vet the code for all stderror() calls that cleanup local stack variables. 25. foo > ${undef} caused coredumps because of vfork() child corrupting the state of the parent stack. 24. $x[A-B] did not complain for A out of range. (Cai Xianchao) 23. rename setp -> tcsh_setp to avoid conflict with mach (Javier Vasquez) 22. Fix degree handling by defining __XPG4_CHAR_CLASS__ for solaris (Mike Sullivan) 21. Change 'od' to 'od -c' in tests so that they work on big endian machines. (Martin Kraemer) 20. Add environment variable COMMAND_LINE to be available in completions (Marcin Konarski) 19. V6.15.01 - 2007-09-28 18. Evaluate expressions in the proper order (Li Zefan), controlled by compat_expr. 17. Don't need to flush() if we are silent. Prevents recursive error issue. (joshua stein) 16. Don't execute the jobcmd if the output is not a tty (Charles Ross) 15. Quote the history in the examples (Johann 'Myrkraverk' Oskarsson) 14. Mismatch clarification patch (Per Hedeland) 13. Fix 'repeat n cmd &' abort() (Mike Sullivan) 12. Fix octal parsing (Li Zefan) 11. Fix pty detection for autologout setting (Kris Kennaway, Giorgos Keramidas) 10. kill `foo` got stuck because sigchld was disabled too soon (Mark Peek) 9. Avoid null pointer dereference in proc cwd (Kurt Miller) 8. eval "foreach a b c" exits (Anthony Menasse) 7. Quoting was broken in substitutions (Joe Wells) 6. QNX patches via pkgsrc 5. cd - twice from a directory that contained a glob pattern, expands the glob twice (Mark Santcroos) 4. MidnightBsd support (Lucas Holt) 3. Fix history substitution core-dump with no history entries 2. Merge two character tables that are the same (Martin Kraemer) 1. On ancient 7 bit locales, punctuation characters are used to denote special characters such as umlaut, adiaresis, etc. These characters return true for isalpha/isalnum. Ignore them because they break parsing (Martin Kraemer) 74. V6.15.00 - 2007-03-03 73. fix extension eating windows code (christos) 72. fix loop in %R history expansion (christos) 71. sched +X source file disables interrupts (Mike Sullivan) 70. One off copying macro buffers (Jean-Luc Leger) 69. Avoid infinite loops in :ga modifiers when the LHS is a substring of the RHS. 68. Automatically disable WIDE_STRINGS with --disable-nls (Miloslav Trmac) 67. V6.14.07 - 2006-08-25 66. rename set to setv to avoid clashes (christos) 65. Eliminate sighold/sigrelse (christos) 64. Compilation cleanups. (Martin Kraemer) 63. Don't rebuild needlessly when generated files are unchanged (Martin Kraemer) 62. Fix confusion between Char and eChar (Martin Kraemer) 61. V6.14.06 - 2006-08-24 60. set PROGRAM_ENVIRONMENT for OSD_POSIX (Martin Kraemer) 59. EBCDIC patch (Martin Kraemer) 58. Remove globbing support in history rearches (Ryan Barrett) 57. Highlighting patch (Ryan Barrett) 56. Mark-Cursor exchange emacs editing fix (Martin Kraemer) 55. V6.14.05 - 2006-03-04 54. don't limit termcap strings to 1K (Alan Ferrency) 53. protect against null path. 52. Be more conservative in wide_read PR#29 51. remove HAVE_STRCOLL; not needed anymore (Miloslav Trmac) 50. remove imake support and make nls configurable by configure (Miloslav Trmac) 49. V6.14.04 - 2006-02-14 48. Fixes build failure with !SHORT_STRINGS (Miloslav Trmac) 47. Fixes constness warnings with !SHORT_STRINGS: short2str is "strip()", which modifies its argument. Rather than verify this is safe in all callers, I have added caching_strip() to mirror the behavior of other modes. (Miloslav Trmac) 46. Fixes some constness warnings with SHORT_STRINGS; this is orthogonal to both build errors with SHORT_STRINGS in 6.14.03, and short_strings.patch. (Miloslav Trmac) 45. config-catalogs.patch: Autodetect catalog support (#14). (Miloslav Trmac) 44. auth.patch: Handle false positives in getauthid() detection, IIRC on FreeBSD. (Miloslav Trmac) 43. crypt.patch: Autodetect whether is available. (Miloslav Trmac) 42. sigint.patch: Block SIGINT while waiting on children. This is necessary, but I'll still have to look on the older releases to find out why it was not necessary before ("before" = 6.13 on Linux). (Miloslav Trmac) 41. config-package.patch: Readd package version to configure.in, the testsuite uses it. (TODO: a better integration with package.h) (Miloslav Trmac) 40. item_len.patch: Truncate item.len when truncating the string, just to be sure. (Miloslav Trmac) 39. va_list.patch: Add missing va_end(). (Miloslav Trmac) 38. Use va_copy in xvasprintf(); emulate va_copy as suggested in Autoconf manual if it is not available. (Miloslav Trmac) 37. declarations.patch: Replace some #ifdef nests by autodetecting whether the guarded declaration is necessary. I'm only guessing this is the intent of the #ifdefs, though. Declare environ unconditionally, it is a bit hard to detect and the declaration is correct for Linux, anyway. (Miloslav Trmac) 36. warning.patch: Fix a const warning. 35. More color-ls variables (Jean-Luc Leger) 34. V6.14.03 - 2006-02-12 33. Signal related changes (Miloslav Trmac) 32. Misc cast cleanups and code clarification (Miloslav Trmac) 31. Use dynamically allocated buffers everywhere (Miloslav Trmac) 30. Fix reading of invalid byte sequences (Miloslav Trmac) 29. read should only increment count when it succeeds (Miloslav Trmac) 28. testsuiteadditions (Miloslav Trmac) 27. -n fixes (Miloslav Trmac) 26. signness warnings (Miloslav Trmac) 25. Prevent infinite recursion in catclose (Gerhard Niklasch) 24. Add Dragonfly (Joerg Sonnenberger) 23. Check for wcwidth returning a negative number (TOMITA Yoshinori) 22. recognize "li" and "co" in echotc (Martin Kraemer) [PR/7] 21. Don't use T_Cols for wrapping purposes; use TermH consistently (Martin Kraemer) [PR/8] 20. Don't display duplicate utmp records (Miloslav Trmac) [PR/17] 19. Clarify hashing and -f sections of man page (Volker Quetschke) [PR/20] 18. Dave Yearke: configure did not recognize solaris 10 [PR/18] 17. CYGWIN: Don't lowercase commands and allow foo.exe on command line. (Corinna Vinschen) [PR/19] 16. CYGWIN: cd /foo && cd .. ends up erroneously in // for systems that HAVE_SLASHSLASH [PR/21] 15. %j was broken (Peter Kruse) 14. Extend // handling in pathnames from being apollo specific to also cygwin (Corinna Vinschen) 13. Fix uppercase/lowercase transformations (Jean-Luc Leger) 12. Fix symlink expansion (revert from 6.10.00) (Jean-Luc Leger and Christos) 11. Fix literal sequence in prompt (Miloslav Trmac) 10. V6.14.02 - 2005-04-12 9. Prototype fixes (Miloslav Trmac and Jean-Luc Leger) 8. V6.14.01 - 2005-04-11 7. Make =- refer to $owd (H.Merijn Brand) 6. Use prototypes (almost) everywhere (Miloslav Trmac) (issue #5) 5. Fix doc path in Cygwin installation (Corinna Vinschen) 4. Fix column size calculation (Martin Kraemer) 3. Implement newline-and-hold and newline-and-down-history (Per Hedeland) 2. Messages fixes for the ja (Japanese) locale (NAKAMURA Takeshi) (issue #4) 1. Enable charset conversion in nls (Miloslav Trmac) (issue #3) 76. V6.14.00 - 2005-03-25 75. Additional messages for the ja (Japanese) locale (NAKAMURA Takeshi) 74. V6.13.10 - 2005-03-21 73. Implement --help (Tom Warzeka) 72. Clamp solaris autologout time 71. Add support for "limit heapsize" (Martin Kraemer) 70. Improved autoconf for utmp/utmpx (Miloslav Trmac) 69. V6.13.09 - 2005-03-03 68. Autoconf additions (Miloslav Trmac and Jean-Luc Leger) 67. Fix erroneous sign extension when printing huge numbers (Martin Kraemer) 66. Handle delay in termcap entries (Martin Kraemer) 65. EBCDIC and BS2000 fixes (Martin Kraemer) 64. Avoid the SCCS percent-S-percent sequence differently (Kimmo Suominen) 63. Mark position update fixes (Martin Kraemer) 62. Define BSDLIMIT and BSDTIMES for Cygwin (Corinna Vinschen) 61. Fix NLSFrom prototype (Martin Kraemer) 60. V6.13.08 - 2005-03-03 59. Add test for socklen_t in autoconf 58. Fix problems with NLSFrom prototype 57. Deal with AIX's utmpx lossage 56. V6.13.07 - 2005-01-18 55. constifications, XXX: duplicate prototype on setpgrp(). 54. iconv fixes (Miloslav Trmac) 53. literal code cleanups (Miloslav Trmac) 52. move intptr_t definition to sh.h and include both stdint.h and inttypes.h 51. Fix dup2() issues, and introduce FSAFE as the highest file descriptor to be left untouched. This is to avoid closing hesiod/nis etc file descriptors behind their backs. I need to really fix file descriptor handling one day. 50. forward<->reverse char conversion verification (Miloslav Trmac) 49. japanese locale additions (Yoshiyuki Sakakibara) 48. wide character/utf 8 cleanups (Michael Schroeder) 47. V6.13.06 - 2005-01-05 46. autoconf cleanup (Miloslav Trmac) 45. Fix literal refresh code (Michael Schroeder) 44. Fix history printing bug with WIDE_STRINGS 43. V6.13.05 - 2004-11-21 42. deal with not having intptr_t 41. get rid of bool. 40. Protect HAVE_ICONV with NLS_CATALOGS 39. Deal with wchar_t being unsigned. 38. If we HAVEUTMPX redefine some utmp functions in terms of utmpx ones. 37. V6.13.04 - 2004-11-20 36. Fix display problems with two-column characters when using WIDE_STRINGS. (Miloslav Trmac) 35. Change charset declarations for some of the translations. (Miloslav Trmac) 34. Set O_LARGEFILE properly (Miloslav Trmac) 33. Use libc functions to access utmp data (Miloslav Trmac) 32. t_pmatch() was not really case-insensitive when cs == 8 (Miloslav Trmac) 31. Fix escaping of "control" bytes 0x80..0x9F when they are actually parts of UTF-8 character representation. (Miloslav Trmac) 30. V6.13.03 - 2004-11-20 29. More close_on_exec fixes (Miloslav Trmac) 28. SUSE dspmbyte fixes (via Harald) 27. Newline handling in command substitution controlled by csubstnonl (Miloslav Trmac) 26. Fix UNC prompt expansion (WIN32) (Yasuhiro Matsumoto) 25. Fix incorrect xprintf() usage (Miloslav Trmac) 24. Additional architectures support for $HOSTTYPE and $MACHTYPE (Miloslav Trmac) 23. Use nl_langinfo(CODESET) to determine $dspmbyte (Miloslav Trmac) 22. Complete arguments that contant a # (Steven Grady) 21. Set close-on-exec in subshells 20. Compilation fixes (Miloslav Trmac) 19. V6.13.02 - 2004-08-04 18. de-register, de-extern, de-shadow, and const poison. 17. WIDE_STRINGS support (Miloslav Trmac) 16. warning cleanups (Miloslav Trmac) 15. nlsclose() arg passing, exp2 is now a gcc builtin (Mark Peek) 14. iconv malloc portability fix. 13. make automatic dspmbyte determination case insensitive 12. V6.13.01 - 2004-07-24 11. bug fix in automatic dspmbyte setting (Miloslav Trmac) 10. iconv patches (Miloslav Trmac) 9. cygwin signal fixes; only init 32 signals, don't set bit flag on error; breaks SIGHUP. (Corinna Vinschen) 8. Make sure terminal size change takes effect immediately. 7. Obey $printexitvalue for builtins. 6. FreeBSD PR/66420: Allow history parsing to be special so that it can handle inline # characters (Oliver Eikemeier) 5. new termname builtin from (Andrew Stevenson) 4. if ($var =~ *[^0-9]*) echo not numeric, fix (Andrew Stevenson) 3. completion fix to avoid dup hosts from ssh_known_hosts (Eric D. Hendrickson) 2. vc++ 7.1 compilation fix (Steve Schockley) 1. UTF-8 handling for both single and double width characters, but no combining character support. (Michael Schroeder) 36. V6.13.00 - 2004-05-19 35. V6.12.03 - 2004-03-22 34. turn on kanji and dspmbyte by default; add check for utf8 locales, and turn parsing of that automatically based on $LANG. 33. Fix compilation issue under Windows/NT and charset incorrect patch (Yoshiyuki Sakakibara) 32. completion additions (Tom Warzeka) 31. compilation fix (Martin Kraemer) 30. V6.12.02 - 2004-02-21 29. Glob completion listing addition (Tom Warzeka) 28. BS2000 bs2cmd builtin. (Martin Kraemer) 27. Fix interrupt resetting code when /etc startup scripts have syntax errors (Mark A. Grondona) 26. Clarification of kill-ring commands (Per Hedeland) 25. Debian completion additions (Martin Godisch) 24. Japanese character set fixes (Juehiro-san) from debian 23. NLS charset fixes; disabled since they only work with gnu gencat (Martin Godisch) 22. Fix HPUX >= 11 resource (Jack Cummings) 21. Handle breaksw that jumps out of loops. 20. Revert #16. It causes worse problems. 19. Avoid using execl() because the last NULL does not always promoted to a pointer because the function is variadic (Harti Brandt) 18. revert ignoreeof to the 6.11.00 behavior and document it (Martin Godisch) 17. do a case insensitive comparison for the multibyte vars (Martin Godisch) 16. don't sigsuspend() for an already exited job 15. glob all arguments in source (Martin Godisch) 14. various debian fixes (Martin Godisch) 13. setenv syntax check revert (Satoshi I. Nozawa) 12. EAGAIN typo (dan harkless) 11. filec compilation issue on hpux (beebe) 10. win32 compilation fixes for O_LARGEFILE (amol) 9. Don't go into an infinite loop when tcgetpgrp() returns an error. 8. Cygwin fixes (Corinna Vinschen) 7. NLS catclose() bug avoidance (KAJIMOTO Masato) 6. V6.12.01 - 2003-02-08 5. Misc NT cleanup. No more GPL code (amol) 4. use strtol() to detect errors in builtin kill (Peter Jeremy) 3. Recognize linux systems on mips* (Maciej W. Rozycki) 2. Enable complete=igncase on unix (Stephen Krauth) 1. Eliminate maxitems (Todd Miller) 58. V6.12.00 - 2002-07-32 57. misc cleanups. 56. V6.11.05 - 2002-07-12 55. We should have socklen_t in the INET6 case, but we leave int otherwise. 54. Fixed for Darwin/Rhapsody (Mark Peek) 53. provide new config.sub and config.guess from ftp://ftp.gnu.org/gnu/config/ (Nelson Beebe) 52. V6.11.04 - 2002-07-09 51. Dissallow setting of environment variables that do not contain alphanumeric names (Ton Voon) 50. Don't expand path components that don't resolve to path names (Jonathan Chen) 49. Make $ignoreeof agree with the man page (Matias Moreno Meringer) 48. Fix argument passing in tc.prompt.c expdollar (Nelson Beebe) 47. Completion fixes from FreeBSD (Mark Peek) 46. FreeBSD's sbsize limit (Mark Peek) 45. Fix repeat 3 repeat 2 echo foo 44. Fix I/O redirection in scripts (Ian D Allen) 43. Fix ` \\\n ` evaluation (Jean-Luc Leger) 42. add --version (Nelson Beebe) 41. portability fixes for sed (Nelson Beebe) 40. undef sv_handler for AIX's benefit. (Nelson Beebe) 39. Add a test for ss_family that disables IPV6 (linux/ppc, osf/1 have problems) (Nelson Beebe) 38. Disable ipv6 for Apple (Nelson Beebe) 37. Fix darwin configure entry (Nelson Beebe) 36. V6.11.03 - 2002-07-01 35. Add Ian D. Allen's bug list. 34. If we are invoked as csh, default to bsd echo (Matej Vela) 33. Don't close file descriptors too early because setuid scripts fail. (Jill Pryse-Davies) 32. Completion updates (Tom Warzeka) 31. Fix compilation issue on SunOS4 with _POSIX_VDISABLE (Tom Warzeka) 30. ukrainian update (Olexander Kunytsa) 29. DSPMBYTE=utf8 patch (Jean-Luc Leger) 28. fix ipv4 only compilation, remove extra sigsetmask() call (Takayuki Nakao) 27. window change can cause free to be re-entered causing abort (Mark Peek) 26. vp->vec vetting, suggested by Ian Dall. 25. V6.11.02 - 2002-05-16 24. Fix prompt bugs in $var and %c0n (TAKAI Kousuke) 23. Add Cray SV2 config (Rafal Maszkowski) 22. Add pdf manual page (Warren Ferguson) 21. Fix REMOTEHOST lossage in with AF_LOCAL sockets (Tom Mander) 20. Fix win32 break because of TIOCSTI (Amol) 19. Fix TIOCSTI for hpux 11 (Igor Schein) 18. Avoid collapsing paths that refer to non-existent components (Martin Kraemer) 17. Make -shell invocations always treated as a login shell. 16. V6.11.01 - 2002-03-08 15. Fixes to polish nls locale (Paweł Niewiadomski) 14. russian locale fixes (Alexey Dokuchaev) 13. document door support (Shaen) 12. tcsh euc handling extensions (Alexey Zelkin) 11. Make sure that jobcmd does not clobber the current job (Rob McMahon) 10. Make sure that the output of verbose and echo do not end up in the command output (Victor I. Pasko) 9. Add %j in prompt [needs more work; is not right the first time after proclist changes] (Hr. Peter Kruse) 8. `` commands with embedded newlines would ignore commands following the new line (Victor I. Pasko) 7. Re-initialize nls if NLSPATH is changed (Naoki Wakamatsu) 6. Fix 64 bit compilation with linux and resource limits. 5. Avoid double globbing when ls-F needs to fork (Joe Townsend) 4. put back csh filec compatible support. 3. add support for quads in xprintf in the presence of gcc. 2. unlimit should set rlim.rlim_max to rlim.rlim_cur if max < cur. 1. Make ~user work again when the home directory is '/'. 40. V6.11.00 - 2001-09-02 39. Completion fixes (Tom Warzeka) 38. make c_insert not static so that it can be used from win32 (amol) 37. Fix rmstar not to corrupt memory when we say no. (Mark Peek) 36. V6.10.02 - 2001-08-06 35. polish nls locale (Paweł Niewiadomski)) 34. Fix a tcsetattr race running background jobs as the last line on an xterm window (Andrew Brown) 33. jobcmd alias (Greg Parker) 32. hpux11 support (Joshua Weage) 31. Fix SHORT_STRINGS compilation (Daniel Trinkle) 30. Add kill -s (Mark Peek) 29. Don't recognize all mips as dec (Bjorn Knutsson) 28. Fix GLOB_QUOTE problem (noted by Per) I introduced in 6.10.01. 27. Port to concurrent's powermaxos (Matt Majka) 26. New builtin srcfile (Amol) 25. Fix bindkey "\\" cmd (reported by Ismail H. Tuncer) 24. %0Xc was broken in the prompt if the user's home directory was '/'. (reported by Edward Glowacki) 23. V6.10.01 - 2001-04-26 22. LARGEFILE support on Linux. 21. Add big5 multibyte support (Yen-Ming Lee) 20. Check the return value of setpriority (Dima Dorfman) 19. Avoid constructing paths with // on DomainOS (Nickolai Zeldovich) 18. Russian translation (Ilmar S. Habibulin) 17. Fix hostdefs for alpha support in FreeBSD (Andrey A. Chernov) 16. Add door support in colorls (Shaen) 15. Add BSD_STYLE_COLORLS for FreeBSD (Anand) 14. MAXHOSTNAMELEN needs to be 256 (Kris Kennaway) 13. Document stty -tabs problems on compaq (Nelson H. F. Beebe) 12. Fix broken comment, and new versions of config.guess and config.sub (H.Merijn Brand) 11. fix redrawing in the recognize case (Andrew Brown) 10. don't call qsort with 0 items. (Luke Mewburn) 9. fix echo;echo;echo; not outputing anything (Andrey A. Chernov) 8. Fix shell word parsing in dabbrev-expand (Per Hedeland) 7. hpux fixes (Chienting Lin) 6. Implement kill ring (Per Hedeland) 5. Avoid core-dumping when a very long $HOME gets passed in (Kris Kennaway) 4. Add rlimit_vmem for linux based on rlimit_as (N KomaZaki) 3. back out symlink=expand path check. 2. Add Estonian translation (Toomas Soome) 1. Accept empty $savedirs to mean infinity. 57. V6.10.00 - 2000-11-19 56. Completion fixes (Tom Warzeka) 55. add missing linux kanji define (Tsuyoshi Kawabe) 54. More WINNT_NATIVE fixes (amol) 53. Fix compile error on winnt (Yoshiyuki Sakakibara) 52. nonstopux configure and makefile fixes (Tom Bates) 51. V6.09.04 - 2000-11-11 50. Order of initialization for multibyte display was wrong (HyunChul Kim) 49. Follow the guideline for linux for japanese locale: http://www.linux.or.jp/JF/JFdocs/Japanese-Locale-Policy.txt (Tomohiro KUBOTA) 48. Ukrainian nls map (Olexander Kunytsa) 47. exit immeditiately if we get an error while we are setting up (Michael Shalayeff) 46. (unset path; unsetenv PATH; rehash) -> crash (Kent Vander Velden) 45. change winnt to winnt_native (Randolph Fritz) 44. Support home/end in the editor (Andrey A. Chernov) 43. Typo s/gycwin/cygwin/ in tc.os.h (Andreas Schott) 42. Alpha ev6 addition (Karen R. McArthur) 41. DSPMBYTE patch from (Issei Suzuki) 40. Security fix for here-doc tmp files (proton@ENERGYMECH.NET) 39. Fix resource limit rounding *again* (Johannes Gross) 38. Fix $ expansion in prompt (Takashi Sumiyoshi) 37. V6.09.03 - 2000-07-15 36. cygwin port fixes (Arihiro Yoshida) 35. Add a new "catalog" variable that specifies which NLS catalog to be used (Issei Suzuki) 34. cleanup and addition of page up/down (amol) 33. fix vfork compile problem. 32. use inet_addr instead of inet_aton for portability. 31. V6.09.02 - 2000-07-04 30. lots more completions (George Cox) 29. change FILSIZ to BUFSIZE [now that BUFSIZE >> MAXPATHLEN] and avoid a potential buffer overflow in sh.dir.c (Volker Schmidt) 28. _MINIX_VMD port (Martijn van Buul) 27. inet6 handling for remotehost and configure (Hajimu UMEMOTO) 26. aix-4 does not need gethostname (Darren Reed) 25. IBM OS/390 Unix Systems Services support (Peter Prymmer) 24. Fix prompt formatting (Andrey A. Chernov) 23. Use HostType from Imakefile correctly (Kjetil Torgrim Homme) 22. Handle long and expanded history lines better (Boleslaw Ciesielski) 21. With symlinks=expand expand valid paths only (Martin Kraemer) 20. Make one-byte charsets work with KANJI (Andrey A. Chernov) 19. NT-specific executable detection moved to NT code (amol) 18. New "complete module" (Dan Nicolaescu) 17. Correctly display scaling string in limit error messages (Nathan Ahlstrom) 16. Don't display "unset watch" message when not appropriate (Kimmo Suominen) 15. V6.09.01 - 2000-01-14 14. Circumvent IRIX4D ESTALE bug by exiting. 13. IRIS4D de-linting. 12. Finnish nls catalogs (Jukka A. Ukkonen) 11. Even more multibyte fixes (Taga Nayuta) 10. Patches to statically link tcsh under solaris-2.6 (John Hawkinson) 9. Manual page typos (R. Bernstein) 8. HP/UX-11 (9000/800) HP/UX-10.20 (9000/820) (Haflidi Sigtryggur Magnusson) 7. Color-ls fixes (Luis Francisco Gonzalez) 6. Don't re-use time0 to compare to stat's st_mtime, cause it could be the value returned from times(2) which is the ticks since system startup (Frank van der Linden) 5. Time percentage wrap fix (Simon Burge) 4. EUCKR support (HyunChul Kim) 3. Grammar and typo fixes for tcsh.man (Steve Kelem) 2. More multibyte fixes (Rodney Ruddock) 1. Change 6.08 -> 6.09 where I missed it; update for utlrix 4.5 (Simon Burge) 65. V6.09.00 - 1999-08-16 64. Add csh emacs mode (Dan Harkless) 63. Make sure the glob buffer matches the word buffer size (Brian Biswas) 62. Fix periodic to work without tperiod set (Kenny McCormack) 61. V6.08.07 - 1999-08-13 60. Fix e_dabbrev_expand (Bjorn Knutsson) 59. Make \builtin work again (by calling the command not the builtin) 58. Add NLS_BUGS for OS's that keep file descriptors open for NLS (Ian Dowse) 57. Make NONLSREBIND work after tcsh starts up. 56. Fix AIX stupid exit bug. (Dan Harkless) 55. More irix fixes (Kaveh) 54. V6.08.06 - 1999-07-01 53. module command completion (Dan Nicolaescu) 52. Man command completion enhancement (Tom) 51. Fixes for irix configuration (Kaveh) 50. Support \a and \e in echo command. From (Keith Thompson) 49. Alpha configure nit from Kaveh 48. V6.08.05 - 1999-05-11 47. In some system, when a builtin fails immediately after we start tcsh and before we print any messages, NLS messages fail (some descriptor might be closed) [FreeBSD, HP/UX?]. So we force reading the NLS catalogs in errinit() (Yoshiyuki Sakakibara) 46. typos in ja/set1 and ja/set29 (Yoshiyuki Sakakibara) 45. "dspmbyte autoset trap" support to HP-UX 10.20. (Yoshiyuki Sakakibara) 44. misnumbered NLS message in tw.help.c (Yoshiyuki Sakakibara) 43. colorcat variable for NLS color messages (Yoshiyuki Sakakibara) 42. autoconf fixes from Kaveh (and if it broke, me) 41. SGI irix fixes from Glenn Coombs. 40. Don't spin writing the history file when quota is exceeded (Rob McMahon) 39. V6.08.04 - 1999-04-19 38. complete additions (John Gotts) 37. Port to amiga with geek gadgets (Arto Huusko) 36. Ignore case in setenv for windows (amol) 35. Bug fixes for NT unc stuff (amol) 34. Hash spell check (amol) 33. V6.08.03 - 1999-02-11 32. Helpcommand documentation (Vladimir Alexiev) 31. small Y2K fix [%y in prompt would be formatted as 10 not 00 at year 2000], and new Itoa() code (Chris Torek) 30. OpenBSD m68k patches (Paul DuBois) 29. Avoid redefinition of getpeername on Solaris-2.7 28. fix problems with savedups=erase, savehist=merge (Randy Gobbel) 27. Don't set $shell to csh, if we were invoked as tcsh (Tomas Persson) 26. added $_ 25. added postcmd 24. V6.08.02 - 1998-11-24 23. document continue and continue_args 22. wrong test in slowexec made NT optimization a noop (Amol) 21. Rhapsody fixes + separate CFLAGS/CPPFLAGS (Wilfredo Sanchez) 20. literals in both prompt at rprompt did not work properly (Taga Nayuta) 19. multibyte deletion fixes (Yoshiyuki.Sakakibara) 18. clean up key binding stuff for NT by moving the nt dependent code to the NT source (amol) 17. dspmbyte fixes for AIX, typos in man page and nls (Yoshiyuki Sakakibara) 16. Convex fixes (Ron Echeverri) 15. V6.08.01 - 1998-10-25 14. SX4 port; this adds many casts for machines where ptrdiff_t is 64 bits. (Andreas Schott) 13. U/Win port; does not work properly with U/Win 1.6, wait for the next version (Chris Jones) 12. Sgi does not need gethostname prototype (John Bogan) 11. Logic in sh.dir.c was wrong for NT (Amol) 10. HP_CXD_SPP stat64 fixes (Scott Garee) 9. Documentation spelling fixes (Keith Thompson) 8. Documentation fix for savedirs (Amol) 7. Siemens OSD_POSIX fixes (Martin Kraemer) 6. include for all the BSD's (Trevor Johnson) 5. Multibyte display fixes for gnu ls (Taga Nayuta) 4. Configure/Makefile hesiod and bindir fixes (Dan Winship) 3. Use winnt not win32 in tc.os.h (Amol) 2. Cygwin32 port (Raj Menon) 1. Ported Fixes (Tom) 95. V6.08.00 - 1998-10-02 94. where builtin nt fix (Amol) 93. V6.07.13 - 1998-09-26 96. NT multibyte fixes (Amol) 95. NeXT needs getcwd. 94. fix new bug introduced by strncpy'fication in sh.dir.c (Taga Nayuta) 93. V6.07.12 - 1998-09-18 92. add cray in configure script (Tom) 91. nls fixes 90. Avoid buffer overflows in directory code (Kimmo Suominen) 89. Add multibyte character display support (Yoshiyuki Sakakibara) 88. Make tcsh use getcwd instead of getwd and supply a getcwd. 87. Fix remotehost again (Kimmo Suominen) 86. V6.07.11 - 1998-09-13 85. Leave remotehost ip addresses alone (don't try to resolve them) (Kimmo Suominen) 84. Read vs. force_read fixes (Amol) 83. Make colorls if color is set before the first LS_COLORS setenv (Taga Nayuta) 82. Use _PATH_DEFPATH on BSD4_4 systems. (Jim Bernard) 81. Cursor bounds checks (Michael Schroeder) 80. Syntax error nits (Michael Schroeder) 79. configure fixes (Michael Schroeder) 78. V6.07.10 - 1998-09-04 77. Off by one error in NO_ERRORS... 76. Japanese NLS messages (Yoshiyuki Sakakibara) 75. Add ENXIO and EBADF in the test for write failures for Irix Zombies (Ralf W. Grosse-Kunstleve) 74. Missed a test for NOSTRCOLL in glob.c (Michael Liepelt) 73. Another ABSOLUTEP change (Amol) 72. Italian NLS messages (Massimo Bertozzi) 71. WIN32 fixes for ntslowexec and color_ls literal printing in prompt (Amol) 70. a few missed WIN32 merges (Amol) 69. defined YPBUGS for sgi (Kaveh) 68. V6.07.09 - 1998-07-07 67. Separate the nt builtins (Amol) 66. completion fixes (Tom) 65. color ls fixes (Taga Nayuta) 64. V6.07.08 - 1998-06-29 63. add config.h.in (Kaveh) 62. win32 updates (Amol) 61. warning and portability cleanups on the new changes (Kaveh) 60. V6.07.07 - 1998-06-28 59. Fast execute by-pass for win32 (Amol Deshpande) 58. Clean up const usage a bit, and fix gcc 2.8.1 warnings. 57. Use @bindir@ for DESTBIN in Makefile.in (Edgar Hoch) 56. Avoid overflow in time builtin computation (Nobue Adachi) 55. Color ls additions (Taga Nayuta) 54. unsigned char vs. char warning fixes (Kaveh) 53. Solaris 64 bit fixes (fix directory offset bug) (Thomas-Martin Kruel) 52. More win32 patches (Amol) 51. autoconf lossage from (Kaveh) 50. V6.07.06 - 04/08/98 49. Collation fix for globbing (Andrey A. Chernov) 48. We might have NLS_CATALOGS and not LC_MESSAGES (Andrey A. Chernov) 47. 4.4BSD header fixes (Andrey A. Chernov) 46. Signed char prompt fixes (Andrey A. Chernov) 45. Pattern match fix for directory searches (Mike Patnode) 44. Pentium DGUX fixes (Miko Nahum) 43. Spanish nls message catalogs (Luis Francisco Gonzalez) 42. Fix trailing whitespace parsing in HASHBANG code (Martin Kraemer) 41. Remove stray debuggin message from unmatched substitutions. (from Amol Deshpande) 40. Fix reversed arguments in Usagae message. (from Amol Deshpande) 39. Fix bug introduced at tcsh-7.06.03 [expdollar] that affected %.n prompt format. 38. Fix typos introduced in last batch of changes. 37. Fix interrupted script using onintr, exiting parent shell problem. 36. Cleanup prototypes. 35. V6.07.05 - 10/28/97 34. Integrate Amol Deshpande's WINNT fixes to the tcsh source. Note that this is not complete yet; we are missing the NT glue code and the message catalogs. 33. Fix ^T at the first character in the line (Chuck Silvers) 32. Eliminate xsprintf and xvsprintf 31. Qmail patch from (Matthew Zahorik) 30. Added missing linux signals (Vadim Vygonets) 29. fixed problem where complete complete 'p/*/t:*.txt/' would not honor the pattern. 28. Port to an EBCDIC machine: BS2000 by Siemens Nixdorf that has an IBM/390 compatible processor (Martin.Kraemer) 27. Detect when we have errors writing to stdout (Vadim Vygonets) 26. Ignore quotes in the comparisons for builtins, so that \builtin works (Amol Deshpande). 25. HPUX, portability fixes; make sure that we have the right config file (Jonathan Kamens) 24. Don't do lookups for x displays and figure out ttys properly (Leonard N. Zubkoff) 23. make print_by_columns print in a single column when the output is not a tty 22. use rlim_t for Solaris2 (Casper Dik) 21. V6.07.04 - 05/04/97 20. set -f -l patch (Michael Veksler) 19. SGI patches (Tomasz J. Cholewo). Also fix completion code to take into account aliases that start with a period. 18. SCO patches (Boyd Lynn Gerber) 17. Fujitsu patches (Toshiaki Nomura) 16. autoconf patches (Kaveh Ghazi) 15. BSDI patches (Paul Vixie) 14. %Q formatting character addition. 13. Fix set=#123; echo $i:s/#// (Quoting problem) 12. V6.07.03 - 02/23/97 11. Understand %$variable in the prompt. 10. Quote directory names properly in .cshdirs 9. USE_ACCESS and autoconfig patches from (Larry Schwimmer) 8. Pyramid att config file (Andrew Lister) 7. $rprompt code (Luke Mewburn) 6. Kanji patches (Huw Rogers) 5. Cray T3E port (Jorn Amundsen) 4. Avoid html redirects in tcsh.man2html (Kimmo Suominen) 3. HP/UX 10.0 fix for filesize resource limit; don't scale by 512 anymore. 2. Workaround for TIOCSTAT for NetBSD from (Luke Mewburn) 1. Return exit status from 0..255 not -128...127, as POSIX mandates. V6.07.02, 10/27/96 58. More configure fixes from Kaveh. 57. Fix histdup=erase again: Don't renumber events, or access uninitialized storage. 56. 6.07.01 - 10/19/96 55. Fix histdup=erase, where after some repetitions, we would get negative history events (Kimmo Suominen) 54. NLS fixes and typo in sh.err.c (Martin.Kraemer@deejai.mch.sni.de) 53. Output history in raw format in the history file (mveksler@VNET.IBM.COM) 52. Fix possible core dump when !: in autoexpand mode (rbrown@ERA.COM) 51. 6.07.00 - 10/11/96 50. Avoid stdio.h inclusion problem in SCO (gethost.c). 49. A bit of housekeeping in host.defs 48. 6.06.04 - 10/05/96 47. Fix tellmewhat() code to return true if found. 46. Change register foo to register int foo to avoid compiler warnings. 45. Fix problem with sticky non editing mode from Casper Dik. 44. history lex fix from Martin Kraemer; history events that ended with 0 were not properly parsed. 43. SNI fixes from Martin Kraemer. 42. SGI fixes from Ralf W. Grosse-Kunstleve. 41. BSDI2.1 fixes from Paul Vixie. 40. 6.06.03 - 09/24/96 39. undef TIOCGLTC for HP/UX 10.0 from Michael Shroeder 38. Sinix fixes 37. 6.06.02 - 06/22/96 36. Added implicitcd 35. Added configure.in and Makefile.in from Kaveh. 34. unset path, unsetenv PATH, ./foo did not work. 33. Add VAR_NOGLOB, and use it to avoid globbing directory names when cd'ing into them. 32. Fix bug introduced in the new tty parsing code. 31. Avoid pushing string back to the parsing string in ${ errors. 30. Patches for the manual page from Dave. 29. 6.06.01 - 05/24/96 28. Use sysconf to get NCARGS if available Robert Daniel Kennedy 27. Grab the program name and use that instead of tcsh in error messages. 26. Fix histdup, so that it does not leave gaps in the event sequence. 25. HP/UX v10.0 fixes: Don't use bsdtty.h and avoid clobbering memory since SIGRT??? is defined as -1. 24. Avoid coredumps when $TERMCAP exceeds 1024 characters Michael Schroeder 23. Fix memory clobbering when SHORT_STRINGS is not defined. Todd J Derr 22. Only restart stopped editors. Robert Webb 21. Recognize pts sysv ptys when checking to set autologout Bob Myers 20. Magic space incomplete modified core dump fix. Chris Metcalf , Bradley White 19. Linux nls fixes Rik Faith 18. SGI RS8000, Ported notes. Ralf W. Grosse-Kunstleve 17. Greek nls messages. Aggelos P. Varvitsiotis 16. Imakefile linux and libcrypt fixes. Jonathan Kamens 15. FreeBSD fixes Jukka Ukkonen 14. Expand the environment space for path Steve Kelem 13. Don't overwrite the environment randomly Steve Kelem 12. Don't turn the editor on when we have dumb or unknown terminals. This breaks emacs when compiled with terminfo Jonathan Kamens 11. Fix F- parsing in tc.bind.c (Bob Meyers) 10. Added -T option in history to force timestamp printing. -h alone does not print timestamps anymore for compatibility with csh. 9. Typo in tc.bind.c [with -DOBSOLETE] (misplaced parenthesis) 8. Recognize convex models properly. 7. suppress the DING! option using the noding variable. 6. negative nice values did not work. 5. Harris CX/UX 7.x support. 4. ERR_DMMODE was used on the crays but not defined. I changed the error messages in tc.os.c to use ERR_STRING instead, and fixed a missing error message in the catalogs. Someone will need to retranslate #30 and #31 in set23. 3. Bug setting listflags... Workaround: set listflags=(A /bin/ls) 2. Typo in Imakefile (# comment instead of c comment) 1. Typo in ma.setp.c (missing parenthesis) V6.06.00, 05/13/95 88. Cleanup off-by-one error ed.defns.c. 87. 6.05.09 - 05/06/95 86. Small memory leak in dosetenv() 85. Make sure that the number of editing functions defined is correct and abort otherwise. 84. Completion Fixes from Tom 83. Don't add yp stuff in the tilde cache [names that start with + or -] 82. Don't let children catclose() in xexit(), because the parent will lose access to the nls catalogs. From Michael. 81. 6.05.08 - 04/29/95 80. Update to the newest csh sh.file.c 79. More completions from Tom. 78. Fix the Imakefile to use XCOMM 77. Update for AIX 3.2. 76. French catalog from J.M.Vansteene@frcl.bull.fr (fwd Michael Schmidt) 75. Nls fixes and small typos from Michael 74. PDP11 BSD type fixes. 73. More manual page fixes. 72. 6.05.07 - 04/19/95 71. More NLS catalog fixes. 70. Bruce's jumbo patch. 69. 6.05.06 - 03/15/95 68. make clean does not clobber config.h if Makefile.std is used. make veryclean does. 67. New config define NISPLUS. Reportedly fixes vanishing output of ~expansion on solaris 2.4. 66. showdots has been removed; use listflags instead. [handles -x too] 65. more nls catalog fixes. 64. set histchars=,. did not have any effect in .cshrc 63. fix "-c command" new core dump. 62. more completions from Tom 61. call catclose() before exiting, so that svr4 cleans up the symlinks before exiting. 60. Per's fix for insert-last-word 59. Per's emacs abbreviation mode. 58. Makefile fixes for catalog stuff. 57. fixed again complete-word-raw and list-word-raw 56. 6.05.05 - 03/11/95 55. Made %?str work again 54. IRIX sigalarm problem should be fixed 53. complete-word-raw and list-word-raw should work 52. nls catalogs complete reworking. 51. sh.init.c: Signal complete rewrite. 50. Signal fixes from Bruce. 49. Added promptchars, like histchars; affect %# in the prompt. The first char is for the user and the second is for root. 48. 6.05.04 - 03/03/95 47. Add NODOT config, $command [that holds the command passed with -c] $GROUP and $group 46. AFS fixes from Larry Schwimmer 45. Real NLS catalogs from Michael Schmidt 44. patch to allow ^? binding. 43. completion patch from Paul DuBois. 42. Don't spell check in here docs. 41. Incorrect normalization of usec in sh.time.c 40. directory printing and option parsing fixes [from Paul DuBois] 39. realloc_searchlen should be static to avoid conflicts with OS's that use the same malloc package. 38. LOGINFIRST now applies to /etc/csh.login 37. Fixes in bind compatibility code to bindkey. 36. 6.05.03 - 01/17/95 35. Don't print the whole watchlist on startup. One can use explicitly the log builtin for that. 34. Don't display the $watch value in the log command. 33. Don't delete the unmatched portion if we try to complete a spelling error. 32. Solaris 2.4 workaround for isprint('\t') lossage (From Casper) 31. Fixed csh bug: [Reported by Jaap] set test="one\ two\ three" echo "$test:q" 30. Fixed the lossage in setting the looking mode in tw.parse.c before calling t_search; $x/$y will not append the right suffix. 29. Another attempt at the gethost timeout code. 28. Cray dmmode and filetests -m -k [need documentation!] 27. More manual patches. 26. Don't glob the path; security problem and core-dump. [from beto] 25. Avoid waiting for jobs that failed to restart, thus hanging the shell. eg, run job in background, attach to debugger; kill it inside the debugger. Get out of the debugger and you are stuck if you fg that job. 24. 6.05.02 - 09/04/94 23. remhost code could pass the wrong length to getpeername() 22. too eager sed'ing broke convex getwarpbyvalue() to getwarpbyvarval() 21. Fixed new bindings bug. 20. Fixed bug in newgrp code; execv was called incorrectly. 19. Take into account programmable completion hints when spell checking. 18. Unconditionally change stty modes in Rawmode() 17. Change date in $version to be ISO 8601 per Keith's suggestion 16. Fixed portability problems in the new counted-strings codes (From Kaveh) 15. Fixed binding problem with the new counted-strings code [all key bindings ended up in the extended map] 14. 6.05.01 - 07/08/94 13. Changed key bindings to use counted strings instead of Null terminated strings, so that binding ^@ works. 12. Fix parsing bug, where words that contained keywords caused incorrect word breaks: switch (iftagd) case iftagd: echo It works breaksw default: echo It is broken. endsw 11. Fix sh.c for systems with no job control. [the new hup builtin sends SIGCONT]. 10. Don't add the suffix character when all completions fail, from michael 9. Added histdup=erase, that deletes the oldest duplicate instead of the newest. 8. Don't call .logout recursively if we receive more than one hup, and don't process hangups when we execute the .logout. 7. $logout was set to a static string. 6. Non printable binding listing was broken. 5. Recursive sourced scripts would get mangled up because of input buffer confusion (thanks michael) 4. M-space should not be counted as a space. Leads to infinite loop in word splitting. 3. Pyramid fixes. 2. Fixed '\' in sysv echo (from Mika) 1. Missed fix_yp_bugs() when setting REMOTEHOST (From Casper) V6.05.00, 06/19/94 113. 6.04.17 06/18/94 112. Realloc debug fix from John. 111. Completion fixes from Bruce. 110. Added -b option to bind. 109. Added tcsh.man2html from Dave. Looks great! 108. 6.04.16 06/06/94 107. Allow multi word glob in "`foo`" expressions. > if ("`ls`" == "a b c") then 106. Michaels lex() buffer patch version 2. the previous version core-dumped with > sleep | echo 105. Fix seg fault in find_cmd, when path is unset. 104. 6.04.15 05/28/94 103. the previous =~ fix, was a bit broken. 102. 6.04.14 05/25/94 101. expression parser fix for !~ and =~. if (foo =~ *) echo ok the * was taken for a multiply and parsed as 0 * 0 returning 0. and asked to match "foo" with "0" 100. Michael's lex() buffer patch. 99. Bruce's Jumbo cleanup 98. fixed Imakefile for X11R6 97. fixed argument parsing in source command. 96. added $sched to format scheduled events. 95. 6.04.13 05/07/94 94. added expand-command 93. Alpha OSF-2.0 fixes 92. 6.04.12 04/28/94 91. Ignoreeof patch from Bruce. 90. Dan's completion fix. 89. 6.04.11 04/12/94 88. Don't source .logout when killed with -HUP unless we are a login shell. [ actually $loginsh controls the behavior now ] 87. ISC-4.0 posix exec() bug workaround (from Jonathan Broome ) 86. Dan's patch for complete=enhance 85. Kaveh's patches for memset, host.defs, _{U,G}ID_T 84. 6.04.10 03/29/94 83. Pathname completion bug fixes... 82. Completion pathname(p) changes: Completion 'C' -> 'X'. Replaced 'p' with 'F' and added D,T,C. 81. Next NLS fixes (From Paul Nevai ) 80. make spelling correction obey the current histchars setting. 79. Fix rounding in limits so that 0 is a true 0. (From Ken Lalonde ) 78. 6.04.09 03/12/94 77. Alarm race with remotehost. 76. If you have in your .cshrc set savehist=(100 merge) and execute #!./tcsh exec ps you get no output; [fixed] 75. setenv SHLVL -1; tcsh = Segmentation fault [fixed] 74. 6.04.08 02/10/94 73. new machtype, ostype, vendor 72. execute .logout on hangup. 71. more man page fixes. 70. 6.04.07 02/04/94 69. Dynamic hash changes, globbing for which command from Michael. 68. INBUFSIZE fixes for history. 67. printenv returns 1 when a variable is not found, like the non builtin one 66. Add quotes to the mismatch array so that: > touch foo > mail "oo bar" does not get corrected. The right fix would be to do correct parsing and quote the space... 65. NULL terminate mismatch[] array in ed.inputl.c, since it is used in Strchr(). 64. renamed stat to filetest 63. Afs and Hesiod patches. 62. More manual page patches. 61. 6.04.06 12/19/93 60. Alarm for resolver timeouts (untested) 59. Fixes for Henry Spenser's regex in the Makefiles 58. Modifiers now work with $< and $< does not do :q by default. [incompatibility with csh] and $< can be interrupted. 57. Added $histdup. 56. source /etc/.login for Solaris 2.x 55. don't remove trailing spaces in history searches. 54. dirs -L and dirs -S spurious warning elimination. 53. man page fixes from David. 52. Kimmo Suominen's patch [makefile, gcc warning, netdb.h include] 51. 6.04.05 12/12/93 50. rewrote srcunit() to use st_save and st_restore. The code was too messy to be useful before. 49. recdirs and rechist patches again! 48. Harris hck port, and ISC imake update 47. Eliminate the x windows :display.screen before looking for the hostname in REMOTEHOST 46. Patch for CDF filetype() recognition (hpux) 45. 6.04.04 11/12/93 44. Made =x obey nonomatch. 43. Fixed rechist and recdirs not to depend on savehist and savedirs 42. Removed aliases, bind, linedit builtins [ifdef'ed out as OBSOLETE] 41. change REMHOST to REMOTEHOST for compatibility with SGI. 40. $owd was not working correctly. 39. Debugging printf elimination (from Kimmo Suominen) 38. Typos in the new hup code in sh.c (from Matt) 37. Imakefile fix for sequent (from Jaap) 36. 6.04.03, 10/30/93 35. New manual page in place. 34. Fixed Makefile sed RE to work with gnu sed. 33. Added hup builtin. 32. Added $REMHOST in config_f.h 31. Fixed random parsing bug in sh.exp.c in isa(). It checked cp[1] without checking cp[0] first... (should propagate to 4.4BSD) 30. More sh.exp.c fixes from Bruce 29. Always exit when the user types exit. cat | tcsh -f -s exit ls 28. savedirs fix and readlink() null termination fix from Peter. 27. Added -p flag (force dirs printing in all directory functions and $owd variable 26. Let $dirstack work by default without needing to be set. 25. Fixed history -h to work with other history flags. 24. Renamed ed-functions more consistently (dcs) 23. Added missing filetests (dcs) 22. Added NEWGRP define in config_f.h (dcs) 21. More fixes for non blocking io recovery from Bruce 20. 6.04.02, 10/08/93 19. changed default prompt to %# 18. New group 'g' completion. 17. removed IIASA defs. 16. fix for history -SL and dirs -SL to work when savedirs and savehist are not set. 15. fix magic-space to understand :p 14. make :u,:l work for history. 13. Fixes for non-blocking i/o recovery. trap all non blocking styles under sunos. 12. 6.04.01, 08/10/93 11. Vi mode word moves [they work like vi and don't obey wordchars anymore]. 10. New file operators and stat builtin 9. David's FIONREAD patch for SVR4 8. Bruce's ignoreeof=n patch 7. Dan's complete/correct enhancement 6. Abort corrections patch. 5. Print_by_columns, now does not use the rightmost column. 4. Renamed config/config.$i to $i to avoid once and for all filename length problems. 3. bbn butterfly config 2. Beto's proc fixes 1. Bruce's bug fix for ed.chared.c, signals V6.04.00, 07/03/93 92. Alpha prototypes, for gcc -Wall clean compile. 91. Fixed alpha hashing. Did not work for directories > 31, Thanks to Dan Mosedale for all the help! 90. Added USE(a) for unused parameters, to avoid compiler warnings. 89. 6.03.10, 06/25/93 88. Makefile and lint patches from Bruce. 87. Posixsig patch from Peter for svr4 86. 6.03.09, 06/11/93 85. signal handling broke with the last job control patch... > (does-not-compute;) would hang. 84. don't quit after the first modifier fails: > set i=aabbcc > echo $i:s/a/A/:s/b/B/ AaBbcc > echo $i:s/x/A/:s/b/B/ aabbcc 83. Imakefile fixes for sequents from Jaap. 82. Move past the bottom of input when we hit ^C, so that multi-line input commands don't get trashed. 81. Look only at the first word in ${EDITOR,VISUAL} to determine the editor name. 80. Last patch broke listmax. 79. Remove extra sandbagging in exitstat(). Not needed anymore as value() will never return NULL. 78. Save $status before calling aliasrun() otherwise: > alias precmd 'cd .' > true > echo $status 0 > false > echo $status 0 77. 6.03.08, 06/07/93 76. missing prototypes/unused variables under SYSV4. 75. savedirs should glob the filename argument. 74. 6.03.07, 06/05/93 73. Changed _Q, _Q1 macros in sh.lex.c, sh.dol.c, sh.char.? to _QF and _QB because today 4.4BSD defined _Q to be ``Phonetics'' 72. listmaxrows variable. 71. set -r would not make existing variables readonly. 70. print usernames with ~user where possible in dirs and job cwd's 69. Mika's fixes (missing args in sh.c set(), linux Makefile, SIGCHLD) 68. FIONREAD argument is int everywhere except on SunOS where it is long. Tcsh used to think that it was long, and so it broke on the alpha where sizeof(int) != sizeof(long) 67. 6.03.06 05/16/93 66. Pipeline fixes. This should get rid of the dreaded Stopped tty output message. 65. Michael's fix for history buffer cleanup: > alias foo 'echo \!:1:h' > foo a/b a > ^P [nothing happens] 64. Unsigned long rlimit type for 64 bit machines (alpha) 63. Fixed Imakefile for alpha 62. tilde expansion now obeys $nonomatch 61. readonly veriables. 'set -r x=3' will set x to a very sticky 3... 60. Fixed bug in the new tab'ed completion that interfered with old listing. 59. Fixed entry -> item in tw.parse.c 58. Added -f option to unlimit 57. Define __STDC__ in Imakefile for Irix 56. Static redeclarations in tw.parse.c 55. 6.03.05 04/26/93 54. Don't echo history expansion in loops: > alias junk 'foreach i (\!:2*) \ foreach? echo \!:1 $i; \ foreach? end' > junk a b c d echo a $i ; a b echo a $i ; a c echo a $i ; a d 53. Added complete-word-fwd and complete-word-back that scroll through the list of possible completions... Neat addition from jfink@csugrad.cs.vt.edu (Jeff "$DOTDIR" Fink) 52. Workaround hpux9.01 broken optimizer in sh.glob.c where 'ls *' breaks. 51. Michael's editor fix. With "magic margins" and 80 char width, try: > set prompt= 20aa76bac 50. Reverted fix that does not glob the expanded back-quote text again. 49. > cd /., echo $cwd /. Eliminate the . in this case... 48. Matt's optimization in glob.c [retracted] 47. Fixed bug with -S 46. Renamed Makefile Makefile.std, and fixed the readme file 45. 6.03.04 04/07/93 44. Changed -s == !-z and -S == socket 43. Fixed typo in sh.c, in phup [shpgrp != pr->pgrp] 42. Multi-line aliases are not entered into the history when executed. 41. Changed f_seek to a union to avoid gcc warnings on 4.4BSD 40. Fixed 'unset home; dirs' bug 39. fixed $HOME->$home memory problem. 38. $?0 returns false now on interactive shells for csh compatibility. 37. Default watch inteval was 10 hours not 10 minutes as advertized in the manual! 36. Fixed clobbered veriable warning from gcc-1.39 in tw.parse.c 35. Fixed typo with INVPTR in sh.lex.c 34. 6.03.03 03/04/93 33. Eliminate 'Reset tty pgrp error message'. It is normal for the walking process group stuff. Check about the killpg() above? 32. More portability for 64 bit machines. 31. Improved completion error messages. 30. Fix bug with double globbing expansion on mirrored variables: > setenv TERM '?vt100' 29. Avoid hanging when writing to pipes etc. (From Paul Close) 28. Typo in the $HOME->$home mirroring. 27. %p %P 'p'recise time formats that include seconds for prompt strings. 26. Signal list fixes from Paul Close. nsig is now a variable. 25. 6.03.02 02/12/93 24. NEC SX3 "entry" is a reserved word!, changed entry to item... [this is as bad as cray typedefining "word" to int. Next thing I know, I'll have to prefix all the variables with tcsh_!] 23. xxx 22. Protected all include files to avoid warnings from lcc. 21. Finally resolved the job control problems with linux and ISC (from Beto) 20. More HUP,XFSZ,XCPU fixes. (with Beto) 19. Dcanon would not canonicalize correctly in case where dnormalize() failed to find a directory, but the directory existed when not crossing the symbolic link. 18. sh.init.c fixes; give 65 signals for all POSIX machines. 17. AMS mail fixes and cmu wm handling. 16. Setenv would not ignore trim quoted names... > alias foo 'setenv "\!:1" bar' > setenv FOO 123 > foo FOO > printenv ... FOO=123 FOO=bar ... 15. 6.03.01 08/01/93 14. #undef SHORT_STRINGS gcc warning fixes... 13. csh bug fix in foreach [quoteing problem] > foreach i ("*") > echo $i:q > end Should print * 12. ls-F obeys showdots... 11. After scheduled commands get executed, the editor could stay disabled until the first enter. 10. sigset() bug in ed.init.c; ^C could get disabled sometimes. 9. Don't glob in dowhich(); otherwise \pat does not work if pat is aliased. 8. When completion patterns are used $ and ~ expansion did not work right. 7. Printenv builtin and long backquote expansion fix from Harald. 6. $:-1, $:-0 enhancement from Paul and Michael. 5. Lynx/OS patches 4. Apollo bugs [Setenv -> tsetenv, typedef in pid_t] 3. ^@ did not work correctly in bindkey. 2. Fix vms/posix ifdefs in tc.alloc.c 1. Elide gcc-2.3.1 warnings V6.03.00, 11/20/92 102. Solaris2 patches, renamed sunosX to sosX to fit in 14 character filenames. 101. 6.02.12 11/12/92 100. Decreased BUFSIZE to 1K... 99. Don't use sbrk() in tc.alloc.c on VMS 98. EINTR error handling from Michael 97. Overwrite mode takes effect immediately, not delayed by a command. 96. Emx fixes. 95. SIGHUP gain... 94. Coherent times()/ fixes. 93. 6.02.11 10/27/92 92. Mach setpath fixes. 91. Which now globs its arguments 90. Again POSIX SIGHUP fixes... Maybe we got it right this time... 89. Increased BUFSIZE to 4K. Smaller machines may want to decrease this. [ Now one can edit up to 4K of buffer! ]. From Harald. 88. : is now a true builtin that does nothing, instead of being treated like the last character of a label. This is so it can take args. From Harald. 87. More fixes for hpux limits from Harald. 86. Login shell if ppid == 1 and argc == 1 for VMS. 85. Typo in sh.exec.c from Harry. 84. Per's editor fixes. 83. 6.02.10 10/17/92 82. Don't free STRNULL in freelex(). Update linked list in copylex() to do the same insert as in lex(). 81. Fixed spurious tilde printing in %c prompt. 80. Fixed dumb wild free in AddXKey... (thanks Harald for the complex bindings! :-) > bindkey "\e10z" expand-line # Any editor command will do > bindkey -[cs] "\e10z" "foo" # Any string or command will do Free(%x) .... 79. coherent additions. 78. fixes for hpux8 resource limits [Thanks Harald] 77. 6.02.09 10/10/92 76. More vms cleanups. 75. Removed #include CONFIGH from sh.h. There was no way to make it work under VMS/POSIX 74. Added t completion (Gray Watson) 73. Memory leaks in sh.dir.c and sh.glob.c [thanks purify :-)] 72. IRIX 5.0 patches (from Paul Close) 71. BSD resource limits for hpux8.0 (From Andreas Stolcke) 70. NGROUPS_MAX fixes (from Matt Day) 69. 6.02.08 10/04/92 68. VMS port additions. 67. Added $%var, which == strlen(var) 66. Added ^X^I and ^X^D to override programmable listing+completion 65. Added case insensitive globbing for OS/2 64. FIOCLEX and FIONCLEX are only used if we don't have FD_CLOEXEC. 63. Added emx termio support, and emx pathsep support; emx compiles and runs: needs job-debugging and finishing touches. 62. Horrible bug with the lex linked list; from Loic Grenie, grenie@ens.fr > echo a !# echoed 'echo a echo a echo'! 61. Shell -w,-x were incompatible with the same for test [POSIX] (beto) 60. builtin newgrp did not accept the - argument. 59. FIOCLEX for the masses (POSIX FD_CLOEXEC addition) 58. Old style csh completion bug fix [not used] (beto) 57. A background process waiting for input from tty blocks when being foregrounded doesn't read its input and doesn't get and signals. It can only be killed from another session. (beto) > cat > foo #!/bin/csh -f echo ">>>>>>" set x = $< echo $x ^D > chmod +x foo > foo & > fg ^Z,^C # Nothing happens 56. history > 1000 fix (beto) 55. 6.02.07 9/18/92 54. Added e_stuff_char() to put back a character in cooked mode in the input stream... Useful for status (^T) 53. $? == $status and $# == $#argv like in the bourne shell. 52. Added $dirstack. Problems: off by one since =0 == $cwd, but $dirstack[1] == $cwd... Suggestions welcome. 51. Leading spaces would confuse the run-help function. 50. Don't expand imported environment variables: > setenv HOME \* > tcsh > echo "$home" > echo "$HOME" 49. %C0n displays the number of directories omitted as /usr/local/bin /<2>bin/ 48. Added POSIXSIGS as a configuration option. 47. Per's fixes for history format and arrow key binding. 46. Expand-variables expands array variables too 45. 6.02.06 8/14/92 44. Separated limit stuff from BSDTIMES and added BSDLIMIT 43. History searching inconsistent with HistLit: > echo foo foo > ^foo^bar bar > ec[M-p] echo foo 42. 6.02.05 8/8/92 41. sourcing a script that contains 'onintr -; onintr' would disable interrupts on the command line 40. cd ../... with symlinks=ignore would work !@#!@ 39. No more BACKPIPE for POSIX machines... 38. SUNOS NLS bug workarounds... 37. New HASHBANG define for #! emulation... even 386BSD does not have it yet... 36. Added new -b -c file operators from SGI csh. 35. 6.02.04 7/23/92 34. Walking process group fixes. 33. $0 contains now argv[0] when we are not executing a shell script. 32. New Getwd() was broken. 31. 6.02.03 7/17/92 30. We kill our last foreground process group on HUP, for POSIX systems. 29. Walking process group fix. 28. $shlvl gets reset to 1 for login shells. 27. Macros can now involve multiple commands, i.e. bindkey -s "^[OP" "ls\n^P" 26. 6.02.02 7/6/92 25. nostat accepts now a list shell patterns. 24. Avoid print_exit_value in if ( { foo } ) 23. Symbolic key names for bindkey [arrow keys]. 22. Smarter getwd() that avoids some of the NFS hangs... 21. Use memmove() where possible. 20. 6.02.01 6/16/92 19. Fix automatic correction to work with the new completion. 18. Globbing bug with brace expansion, when arguments need to be realloced... e.g. echo 134{6,7}{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9} 17. shift and left operators update variables correcly ('shift path' did not work) 16. apollo fixes for cd. 15. STRNULL <-> NULL bug fixes. 14. %S in xprintf for short strings. 13. history -LSc, dirs -LSc additions, builtins builtin [oxymoron] 12. history formatting string, who formatting string, prompt formatting all use tprintf() now. 11. $history accepts a second formatting argument.. 10. History timestamps preserved in .history 9. Backquotes were broken: echo hi | cat > `echo foo` 8. SGI -t operator problem. 7. Dnix fixes. 6. Fix history file writing bug when autologout. 5. Change from TCSETA to TCSETAW, since we affect the output. 4. Per's fixes for display margin bugs. 3. Linux fixes. 2. Collapse adjacent stars in glob.c to avoid exponential behavior. 1. Fixed parseescape to put ^ literally if not followed by alpha. V6.02.00, 5/15/92 94. Default echo_style was not being set correctly. 93. $< did not work correctly with NLS chars. 92. 6.01.15 (5/11/92) 91. Minor cleanups in refresh code. 90. 6.01.14 (5/8/92) 89. Print \n in the right margin always to be consistent. 88. Linux patches. 87. 6.01.13 (5/2/92) 86. Fixes in listing and completion of non-unique commands. 85. Fix =stack entries > 9... from Bill Petro 84. Fix for last character at margin. [on terminals that have am & xm move the cursor manually to the next line] 83. Fix for complete completions 82. small typo in tc.alloc.c from Mark Moraes. 81. small typo in tw.parse.c from Richard. 80. Man page fixes from Per. 79. 6.01.12 (4/24/92) [release version for 6.02] 78. Autosuffix was not getting reset all the time. 77. Don't limit completion patterns to 1K. 76. Naming changes in ed.screen.c from Justin. 75. 6.01.11 (4/10/92) 74. Fixed magic-space ! expand bug: > echo a b123 45.{6,7} > echo !:2!:3[magic-space] 73. Work-around for apollo optimizer in tc.bind.c 72. Problem with setjmp in tw.parse.c 71. symlinks=expand from Yumin. 70. tenematch() fixes from Michael; 69. 6.01.10 (4/3/92) 68. Fixed Gnmatch. 67. Removed ignore_symlinks and chase_symlinks. Replaced by symlinks variable. 66. Backquote from completion was broken for machines with no dup2() 65. No $printexitvalue for `` jobs. 64. Added ultrix stuff for PW_AUTH [from Mike Potter mpotter@lampf.lanl.gov] 63. Fixed bug in Gnmatch(), added 'N' command 'x' completion. 62. Fixed fg_proc_entry() so autologout gets disabled when a process is foregrounded. 61. 6.01.09 (3/26/92) 60. source builtin takes arguments now that are passed in the script e.g.: > ./tcsh -i a b c > cat test echo $argv > echo $argv a b c > source test 1 2 3 1 2 3 > echo $argv a b c 59. Eliminate $margin_bug, add more intelligent margin code [from Justin] 58. expand_symlinks variable Urgh... 57. SGI CONTROL() fixes... 56. new dnormalize(), expand_symlinks flag. 55. interrupting completion restores the current line. [from Marc] 54. 6.01.08 (3/20/92) 53. inputmode affects the first line too. 52. Searches in vi do not destroy the current line. 51. -drwX test enhancement. 50. Generalized completion syntax and added more completion builtins. 49. Don't print '\n' on the right margin if we can avoid it. 48. 6.01.07 (3/9/92) 47. New completion style. [[[ ]],=] 46. 6.01.06 (3/7/92) 45. complete styles are ignored after shell metachars eg. > complete mail =u > mail christos < [tab] completes filenames. 44. $echo_style is initialized to the default style of the machine. 43. SGI 4.0 CTRL() macro is busted. So we ignore it. 42. Fixed bug with the new margin code (thanks justin) 41. Fixed mirroring of variables. Now set and setenv affect HOME, TERM, PATH, SHLVL, USER and their csh counterparts. Unset affects affects only the csh copies of the variables, and unsetenv only the environment variables. 40. Fixed gcc-2.0 warnings in sh.sem.c (needed for vfork() -O2 optimization) 39. 6.01.05 (2/21/92) 38. signal masking for BSD machines was still wrong in tw.init.c 37. Added $margin_bug, and now the editor outputs on the rightmost column by default. This should fix the xterm cut-n-paste problem. 36. AU/X 2.0 and SGI compiles with POSIX as a default now. 35. sysv_echo is gone too. Now we have a variable called echo_style which can be set to "none", "bsd", "sysv", "both" that defines the builtin echo_style. The default is "bsd" for systems with SYSVREL == 0, "sysv" otherwise. This can be overriden in config.h by defining ECHO_STYLE ro be BSD_ECHO, SYSV_ECHO, BOTH_ECHO, or NONE_ECHO. 34. asynchronous notification in run-fg-editor would try to change the tty settings and print an extra prompt. > set notify > sleep 10 & > vi^Z > ^[^Z 33. alias x /bin/true x? reported .//bin/true instead of /bin/true 32. 6.01.04 (2/12/92) 31. fixed vi_substitute_line 30. binding completion addition. 29. showdots=-A addition 28. sysv_echo addition; deleted bsd_echo which is now the default. 27. dunique could crash. 26. Don't clear lines after an asynchronous notification, because it might erase the message. 25. 6.01.03 (1/29/92) 24. `` were not working correctly when tcsh is started with 0,1,2 closed. 23. Correction was picking up the wrong thing in cases like .rhosts hosts 22. Correction with names with quoted spaces was broken. 21. Added sysv_echo and bsd_echo. 20. Added and documented the complete builtin. 19. Added dunique and cd -. 18. Per's fix for alarm functions. Things would break if time went backwards. 17. Realloc bug fix (copy min of old and new size) 16. Fix for csh compatible braces. 15. Brace globbing and negation globbing for Gmatch. 14. 6.01.02 (1/16/92) 13. Completion builtin, new tw* files. 12. 6.01.01 (1/6/92) 11. Changed w_ fields in tc.who.c to who_ to avoid redefinitions in in some os's. 10. Setting savehist to an empty string makes savehist use the value in $history. 9. echotc did not use the internal termcap descriptions. 8. echotc did not work right for single argument termcap strings. 7. DGUX needs SAVESIGVEC, updated type protection, and disabled CSWTCH. 6. Changed SVID to SYSVREL, since there is no SVID == 4 (yet). 5. Typo in tc.sig.h: UNRELSIGS was not getting defined. 4. Globbing bug fix. tglob() should ignore globbing characters inside backquotes otherwise things get expanded twice: % echo 'bar?' > 'foo?' % echo `cat foo\?` echo: No match. 3. Mach setpath fix. 2. Alliant process group fix. 1. Xenix fixes for broken vi and help path with no suffixes. V6.01.00, 12/19/91 [for comp.sources.unix] 22. Restore the original prompt in automatic correction when the user asks to re-edit the command. 21. Better error for unreadable files in tw.parse.c 20. Sequent patches. 19. (V6.00.08 beta 12/14/91) 18. Filenames containing # were spelled/expanded incorrectly. 17. Stellar/stellix port. 16. Hpux 8.0 has SIGWINDOW but we cannot get the window size. Protect against window changes updating $LINES and $COLUMNS. 15. Mach setpath did not work right. 14. Mach does not need setenv in lib; in fact that does not work right. 13. shell level gets decremented when we exec. 12. restart_fg_editor picked the wrong editor if arg contained a slash. e.g vi ~/.cshrc 11. (V6.00.07 beta 12/08/91) 10. Allow use of vfork() on systems that do not have job control. 9. Avoid NUMCC from being defined twice. 8. (V6.00.06 beta 12/05/91) 7. SunOS3's FIOCLEX dups... 6. Yet another globbing bug fix from Michael (echo .[^.]) 5. Ultrix now wants __ before cpp symbols. 4. Workaround sun's header files inconsistency so tcsh can be compiled with #undef POSIX 3. Fixed limit stuff so that large values don't cause errors. 2. Fixed =1 and ~user error messages (Per) 1. (beta-5 6.00.04 == 6.00.05) $#* $#* New numbering scheme (The last 2 digits are reserved for beta releases $#* from now on. So we start at 6.00.06 which is 6.00.04 beta 6, and we are $#* going to release 6.01.00... $#* V6.00.04, (never released) 34. (beta-5 11/25/91) 33. Simplify code in BindArrowKeys() 32. Get rid of the PNULL's 31. Support for shadow password in locking code. (From Kimmo Suominen) 30. Normalize-path editor function. 29. (beta-4 11/21/91) 28. minix additions 27. bindkey fixes (-c addition, casting cleanups) 26. (beta-3 11/16/91) 25. Prompt length checking. 24. Michael's fixes for the watching code. Tcsh could core dump when using a corrupted utmp. 23. overwrite mode flag, and autologout locking code. 22. overwrite mode would still insert digits! 21. Get the value of _POSIX_VDISABLE from pathconf... 20. Hpux 8.0 fixes. Sigstack botches with shared libraries. Ansi mode static initialization of structures with prototyped function pointers gives spurious warnings... 19. Onintr in /etc rc files is disabled. 18. (beta-2 11/03/91) 17. Multi-line aliases with `` bug fix. 16. Sticky emacs overwrite mode. 15. Autolist option. 14. Fix for redirection with wildcard filanames. 13. No error correction for multi-line commands. 12. Esix-4 re-defines p_pid. Argh... 11. (beta-1 10/28/91) 10. Foreach loops were broken again. 9. SUNOS localtime() bug does not only happen on the 8th byte. [Michael] 8. sh.dir.c, memory corruption in dinit(). Thanks Michael. 7. uts broken work-around, and has a wait3() 6. SGI (-t filename) extension, returns true when filename is a tty. 5. 'default:' addition in all switch() statements. 4. oflag was not being updated correctly in Rawmode() 3. missing 'break;' in prompt code '%y'. 2. infinite loop in :a code. 1. hashstat was not reporting hits+misses V6.00.03, 10/21/91 31. watch code now accepts shell patterns. 30. new hashing code portability fixes. 29. $foo:gs/:/ / fix and 'a' modifier addition. 28. Added $! (the pid of the last background job forked) 27. exec does not kill the shell when it fails. 26. Irix4.0 decls. 25. SVR4 uthost fixes from Kimmo Suominen 24. Imake addition from marc 23. New i-search from Per. 22. ibmesa fixes 21. convex fixes. 20. t command for vi. 19. SVR4 fixes (reverse pipeline and sigaction()) from David Dawes. 18. New hashing from Marc 17. Added : to the ~name separators so ~foo:~bar works. 16. New ed.init.c. Added ed.term.c 15. Still can't get the history exactly csh-like... !-2$ was broken... 14. vi character searches. 13. -Dvar=name command line option for the apollos. 12. Prompt format changes for date/directory. 11. Vi searches. 10. Emacs i-search. [currently not bound] 9. Vi additions ([dc]-{w,$,f},Undo) 8. tcsh -n parses now builtin structures. 7. seek to the end on errors in loops. 6. echotc -s was broken 5. Better !event parsing. !foo;!bar was broken. 4. foreach loops and if statements in aliases. 3. .cshdirs would corrupt the heap if some directories were not there. 2. System V echo was broken with \ 1. Fixed echo '!-1', history would eat the quote. V6.00.02, 08/05/91 [For comp.sources.unix] 8. tcsh will always set $LOGNAME and $USER if not already set in the environment. 7. added $histfile. 6. echo `echo` * and echo ~ {} were broken 5. setty builtin addition 4. Multiple : modifiers [experimental, disabled with -DCOMPAT] 3. 7 bit fixes, and hp9000s500. 2. #undef DEBUG in tc.alloc.c, so we continue if we get a bad free() 1. getn() is now protected against NULL strings. V6.00.01, 07/16/91 17. added beepcmd, and fixed small tenematch bugs. 16. Renamed DUP2 flag to HAVEDUP2 cause AIXPS2 defines DUP2 already. 15. More ANSI fixes, and mit additions (load-average) 14. don't clear ECHOE, background programs might need it. 13. Refresh bug fix... 12. getpwent() should not be interrupted (yellow pages), cause it might leave dangling pointers, that endpwent() will trash. 11. ChangeSize is now responsible to set the screen size to something sane, but it should not affect the environment if the information it received is not valid 10. Find out if we are running under emacs using $TERM. It is more reliable. 9. tcsh was broken if SHORT_STRINGS was not defined (glob() problem) 8. If GetSize() fails it should always return reasonable screen sizes. 7. globbing should not fail if one or more patterns match. 6. increased the number of aliases in the loop detection code. 5. DGUX has size_t and pid_t defined now... 4. ESIX does not have EWOULDBLOCK or EAGAIN & POSIX... That was not handled correctly. 3. rs6000 needs BSDWAIT. 2. Hpux susp key could not be changed. 1. Apollo fixes. V6.00.00, 07/04/91 45. Fixed quoting of VSTART/VSTOP on termios 44. Memory leak every time you pipe in or out. 43. echo {foo bar.[ch]}. Did not check for end of word. 42. ANSI prototypes 41. dmove() would leave the source descriptor open when using dup2() e.g. while (1) echo foo >>! bar end runs out of file descriptors 40. recursive `` expanded via aliases would abort. 39. set home=../relative-path-name was broken. e.g. set home=../..; cd ..; 38. Incorrect error when changing to directory: e.g. mkdir not-in-cd-path; chmod -x not-in-cd-path; cd not-in-cd-path; echoed: not-in-cd-path: No such file or directory. it should have said not-in-cd-path: Permission denied. 37. if ( \! =~ [\!] ) echo ok, did not echo ok. Quoting inside [] pattern. 36. More than 127 jobs caused job # to go negative 35. unsetenv ... Added support for more than one pattern. 34. More background process status report fixes. 33. Apollo builtin support. 32. Glob fix. echo '*' * was not handled properly. 31. Glob fix. setenv FOO `sleep 1` would either cause a segmentation fault. or print ambiguous. 30. Glob fix. Quoted characters inside [] were not handled properly. 29. Removed TELL and VMUNIX defines. I think we cannot compile on V6 anyway 28. Overflow check for expansions. 27. Added matchbeep, shell pattern history searching. 26. Added code to handle /dev/std{in,out,err} 25. Fixed POSIX speed handling in raw mode. 24. Fixed a flushing bug in the filec code in sh.file.c 23. Compiled and added hp9000s700 to the list of hosts. 22. Fixed horrible bug in gmatch() switch (4) case [a-z]: echo bug; breaksw; case 4: echo ok; breaksw; endsw 21. Fixes for _SEQUENT_ ut_host. 20. FLUSHO added 19. mkdir foo\`bar; cd foo\`bar; was broken 18. EWOULDBLOCK == EAGAIN on RENO check for that too. 17. Dword() simplified and removed the gotos. 16. Hpux now compiles with POSIX. Moved the local chars modes in ed.init.c after the tty modes. 15. Process group fixes for POSIX 14. We need on the suns for FIOCLEX!!! We did not close our file descriptors before... 13. A/UX fixes. 12. History events that start with a number are not necessarily numeric: > !3d 3d: Event not fount 11. History loop detection added. > alias a \!# > b; a 10. Alias loop detection code was ineffective on eager optimizers. 9. All errors should now go through our table. Next step we should add nls error messages. 8. Unsetenv now globs its arguments! Before it did not... 7. Added tilde cache and -l flag. 6. Added autocorrect 5. Fixed for so that background jobs in scripts get process groups 4. Fixed amazing memory leak in setenv()... 3. Added short2qstr() so that we can form quoted strings to be used with glob() 2. str2short and short2str allocate space dynamically. 1. Fixed bug related to the is*() routines called with shorts. [only if NLS and SHORT_STRINGS are defined]. (The _ctype_ was getting indexed with shorts...) 0. Complete overhaul. Brought in the 4.4 csh stuff. Separated most tcsh and csh code except where I would have to add more global variables. Compiled correctly with both lint and gcc -Wall on a sparc running 4.1 V5.20.03, 03/20/91. - Never released 25. Kanji, SXA additions. 24. (exec foo) should not fail if they are suspended jobs. 23. Support kernel paging stuff on aix 370. 22. Now we handle correctly the environment variables LINES, COLUMNS, TERMCAP for window size changes... 21. Tcsh 5.18c+ had broken NULL chars on scripts. > cat > foo #!/usr/local/bin/tcsh -f echo "foo" echo "^V^@" echo "bar" ^D > chmod +x foo; foo foo 20. Posix has EAGAIN and not EWOULDBLOCK 19. Don't set ECHOK; makes kill ^U ugly. 18. $shell is SHELLPATH and not $SHELL any more. 17. Added -n flag to cd, pushd, popd and dirs. Documented -l and -v flags. 16. Documented and fixed chase_symlinks and ignore_symlinks. 15. Call endpwent() when you get interrupted... cd ~chri^C cd ~christos/ 14. Exec when you have suspended jobs asks for verification. 13. Variable length fixes: >set abcdefghijklmnopqrstuvwxyz=1 >echo $abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrs: Undefined variable Now we have better messages too... 12. Icon fixes... 11. Quote expanded glob and history chars too. 10. If someone sets SHIN to O_NDELAY we died... Now we set it back... 9. unset path; unsetenv PATH; ls-F; (poof) fixed... 8. Patches for masscomp, and ${var123} lexical analysis fix... 7. Patch for sunview bug: A partially covered suntool sends SIGWINCH every time the text is scrolled, causing annoying redraw effects. Now tcsh checks if the size really changed before doing anything. 6. Interrupt in the middle of cwdcmd, and periodic does not remove the aliases. 5. prompt2 and prompt3 fixes: Prompt2 now prints the status of the parser by default. Prompt3 can now have the standard prompt escape sequences. 4. eval file descriptor re-direction fix. >set p='w | tail +3' >eval $p (originally | tail +3 was ignored) 3. $edit != emacs anymore; it was misleading, 'set edit' enables editing 'unset edit' disables it. 2. PERROR define fix. 1. irix3.3.1 line discipline fix. V5.20.02, 12/15/90. 32. /etc/Logout added and merged with /etc/Login flag. 31. Fixed tty chars in ed.init.c. Some of them were not handled correctly. 30. Command execution does not leak memory any more, and doing ~ four times does not core-dump. 29. Fixed the notorious csh 'if(' bug (part of the convex fixes) 28. Intelligent getwd() on startup, and canonicalization. 27. Intelligent directory stack. Gets updated when $HOME changes. 26. Directory stack/save-restore additions 25. Convex Fixes. 24. Fixed onlret, and echonl getting stuck on svid. 23. Shouldn't leave tty in raw mode at auto-logout (e.g. when su'ing from a csh, this is annoying). 22. Some users had environment EMACS set to something, and with my bad fix at pl 1 found that they didn't have echo... (of course, even before my "fix", they didn't have editing...). Anyway, refined the check to be for EMACS=t, which is what emacs sets when running a subshell. 21. kill -CONT %job, would not update the status of the job, but it would just restart it. 20. Sequent fixes. 19. AIX370 signal and TCF fixes. 18. fixed ls-F -l, SIGINT problem. 17. aix on the ps2 does not have strcoll() either. 16. Bind [A - [D and OA to OD in vi mode to the arrow key functions so that they work from insert mode. 15. %~ was not working correctly for /home/news and /home/newsbin... 14. Removed Rcs Log 13. ISC unix fixes. 12. sunos3.x wants not 11. Remove precmd's, cwdcmd's and periodic cmds that had errors. 10. Compile sunos4.1 using termio. 9. Rs6000 line discipline fixes. 8. T_Tabs was wrong for termio machines. 7. Don't bind single keystroke arrow keys, when they are already bound! 6. Test for newline and tab before deciding not to send shell scripts to the bourne shell. 5. Added LITERAL prompt stuff. 4. Fixed gethostname() in sh.rest.c to return the nodename. 3. Do not quote spell checked stuff. This is not very intelligent but works better than before. 2. Fixes for relative path components. (paths that start with a .) 1. Fixed so that Rawmode() is not called when we are not editing (breaks running under emacs) V5.20.01, 11/15/90. 12. Recognize environment variables too. 11. Always start in Rawmode() 10. don't try to execute binary files using the bourne shell. 9. Vi change to end of line updates correctly now. 8. Prompt in continuation lines. 7. Prompt in if statements fix. 6. System V ^C works right now. 5. ^Z works correctly in bindings 4. Better error messages for variables. 3. dinit() now is more robust. 2. Added aux2.0 patches. 1. Fixed bug with arrow key bindings in ed.screen.c. All the keys were bound to up-history! V5.20.00, 11/10/90. 26. Fixed system V and POSIX time reporting. 25. Fixed ed.screen.c so that it does not use malloc(). 24. Fixed SIGWINCH on the iris 23. Fixed ed.screen.c, so that settc works correcly. It used to set the termcap with a string that was allocated from the stack! 22. Fixed listing of commands, where the last command was not checked. 21. Fixed which command. It did not work for \, if command was aliased. 20. Eliminated CSH4.3 define. You've had enough time to upgrade from 4.2 19. Fixed GotTermCaps to be called only once. 18. Added bindkey -r 17. Attributes were not getting reset correctly. 16. history -t does not print the time-stamp. 15. AddXkey, works now for single character xkeys. 14. filetype() knows better about symlinks. 13. ls-F works with filenames that have metachars 12. Completion/spelling works with quoted things. 11. Fixed refresh bug. Repeat by: On an intelligent terminal that has insert and delete chars (xterm) > orphan > vi orphan.c > ^P^P 10. Fixed so that if we don't have a tty on stdin editing is disabled. 9. Check for nested process forking, to avoid loops such as: > alias foo 'set bar=`foo`' > foo 8. Fix setting of AsciiOnly (Per) 7. tw.spell.c, defined F_OK for systems that don't have it. 6. ourwait.h had typo in ifdef. 5. BSD compilers need a cast to int for enums used in switches (Matthew Day) 4. Found the cause for the core-dump in long backquote expansions (Mark Davies) 3. Some externs in ed.h needed to be truly externs... reported by Mark Davies, bug appeared only on hp9000s800. 2. Changed $tcsh, and $version strings. 1. Added internal sprintf function, renamed putchar to CSHputchar, printf to CSHprintf, sprintf to CSHsprintf. V5.19.02, 10/23/90. 36. Added /etc/cshrc for the SGI irises. 35. Added expand-variables function. 34. Documented $time in tcsh.man 33. Shell variables are now 'recognized' when expanding/listing things. 32. ls-F does not eat the last slash on the / directory! 31. Strings bound to keys are printed inside double quotes. 30. History now remembers the exact line, not just an unparsed version of the tokens. 29. Renamed itoa to Itoa(), so things in libc that use itoa() don't break. 28. Ported to IBM aix/ps2. 27. Fixed eval so that it forks when the output is piped Repeat by: > who | grep $user > eval who | grep $user 26. Fixed so that 'nice ' does not nice or fork. Consider doing: nice cd /tmp && rm *.c (don't try it!!!) [what actually happens is that nice has to fork, then the child executes chdir, and the parent stays where it was] 25. Added Dan's patches (nls, builtin bindkey, fixes to the editor). 24. Added aix370, migrate, getspath, getspath, getxvers, setxvers 23. Added builtin echotc, removed sl and el. 22. Ported to 4.4 BSD. This involved changing the way lots of flags worked, cleanup of the SVID stuff, and addition of more compilation flags. Now POSIX can work whed BSD is defined... 21. Fixed so that el, sl work. Actually they are to be removed soon and be replaced with echotc. 20. Avoid the Quoted Space hack for alias when printing jobs! [aliases to the same name avoid further alias expansion, by inserting a quoted space in front of the command. In SHORT_STRINGS QUOTE is the 15th bit so print ignores it thinking it is the end of the string. So we just skip the Quoted Space....] Repeat by: > set notify > alias ls ls -F > (ls) & Prints Exit 0 ( Should print: Exit 0 ( ls -F ) 19. Fixed so that "", '', ``, all produce ': Command not found', and not the spurious messages. Repeat by: > set path = (/bin /usr/bin .... .) > "" /some/path/name/: Command not found 18. Enable the use of macros if they exist and NLS is defined. NLS code is not ready yet. 17. Fixed rmstar and continue_jobs code, so that they are not compile options, but shell variables. Now you need to 'set rmstar' to get enable rmstar. 16. Fixed SIGWINCH, SIGWINDOW, and setting of li, co, that broke suntools, and others. Repeat by: Start a shelltool of size other than 80x34 > telltc > stty -a do not report the same number of lines and columns. 15. More fixes to tw.parse.c, and tw.spell.c. 14. More fixes to sh.char.c. 13. Fixed coredump caused by ``. 12. Fixed spell-line code.. 11. Trapped SIGCHLD in sh.sem.c, while forking. Still there is a small race, but the probability of happening is smaller! 10. Fixed sh.char.c to be ISO compliant. 9. Added expand-glob 8. Fixed ourwait.h for little endians. 7. Fixed that foreach i (^D expands correctly. 6. Fixed so that listmax is ignored in ls-F. 5. Fixed spelling correction so that single letter words and words that contain globbing chars do not get spell checked. 4. Changed NeXT HOSTTYPE to next, since all HOSTTYPE's are lower case. 3. Fixed symmetry, and changed symmetry HOSTTYPE from sequent to symmetry. 2. Added boldfacing, underlining chars. 1. Added IRIX3.3.1 support. V5.19.01, 9/26/90. 7. Brought the README file up-to-date, and changed the bug report address to point to me. 6. sh.lex.c. In addla(), overflow computation was wrong. 5. Fixed SHELLPATH, to be set correctly when $SHELL is not set. 4. Fixed print statement in sh.proc.c that contained \215. 3. Fixed the Makefile and MAKEDIFFS so that a tahoe diff can be made. 2. RS6000: hacked around execv bug, and ed.init.c warning. 1. Editor should not be enabled when we don't have a tty. V5.19.00 7. 8 bit clean code, by using 16 bit strings. 6. Mostly shared strings (a side-effect) 5. Highlights everywhere (and in ls-F) filenames that contain characters with the eighth bit set (or passes them unchanged depending on the variable 'nometa') 4. Newline in the prompt via %n. 3. dirs takes also a -v flag for `vertical display' 2. There is a new variable `listjobs' which controls if and how jobs are displayed when a new job is suspended. [Idea from the mtXinu code, very useful for novice users who hit control-Z 10 times on the same job!] set listjobs=long, jobs -l is executed every time a job is suspended. set listjobs=short, jobs is executed every time a job is suspended. 1. Passes lint... At least on a sun. tcsh-6.24.13/Imakefile000066400000000000000000000305421463776674600144770ustar00rootroot00000000000000XCOMM XCOMM Imakefile for tcsh 6.12 XCOMM Marc Horowitz, MIT SIPB XCOMM #ifdef DestDir #undef DestDir #endif #ifdef ManSuffix #undef ManSuffix #endif /* All config options go in a separate file. */ #include "imake.config" #ifndef HasGcc # define HasGcc 0 #endif #ifndef HasGcc2 # define HasGcc2 0 #endif /* This is a giant conditional block. It should be set up right for platforms which are in here, but it may need to be changed for new ones. Please send in your fixes and additions! */ /**** tcsh configuration defines ****/ /* specific platforms */ #ifndef ConfigH # ifdef UltrixArchitecture # define ConfigH ultrix # endif # ifdef UxpArchitecture # define ConfigH sysv4 # endif # if defined(LinuxArchitecture) || defined(GNUArchitecture) # define ConfigH linux # endif # ifdef AlphaArchitecture # if !defined(LinuxArchitecture) && !defined(GNUArchitecture) # define ConfigH decosf1 # endif # if !HasGcc # define MyCflags -std1 -Olimit 2000 # else # define NoCombineRegs # endif # endif # if defined(VaxArchitecture) && !defined(UltrixArchitecture) # define ConfigH bsd # endif # ifdef NeXTArchitecture # define ConfigH mach # endif # if defined(SunArchitecture) # if (OSMajorVersion == 3) # define ConfigH sunos35 # else # if (OSMajorVersion == 4) # if (OSMinorVersion == 0) # define ConfigH sunos40 # else /* OSMinorVersion == 1 */ # if (OSTeenyVersion == 3) # define ConfigH sunos413 # else /* OsTeenyVersion in [0,1,2] */ # define ConfigH sunos41 # endif # endif # define NoCombineRegs # else /* OSMajorVersion == 5 */ # if (OSMinorVersion < 3) # if (OSMinorVersion < 2) # define ConfigH sol2 # else # define ConfigH sol22 # endif # else # if (OSMinorVersion < 4) # define ConfigH sol23 # else # if (OSMinorVersion < 6) # define ConfigH sol24 # else # if (OSMinorVersion < 9) # define ConfigH sol26 # else # define ConfigH sol29 # endif # endif # endif # endif # define NoCombineRegs # endif # endif # endif # ifdef HPArchitecture /* For some stupid reason makedepend on HP requires this */ DEPENDFLAGS = -o.o # if (OSMajorVersion >= 8) # define ConfigH hpux8 # else # define ConfigH hpux7 # endif # endif # ifdef CrayArchitecture # define ConfigH cray # endif # ifdef SGIArchitecture # define ConfigH irix # define UseLibBSD # if (OSMajorVersion < 5) # ifdef you_are_using_yp # define UseSunLib # endif # if !HasGCC # define MyStdc -D__STDC__ # if SGICompilerMajorVersion < 4 CCOPTIONS=-float # We don't want -cckr and -prototypes # endif # endif # endif # if (OSMajorVersion == 6) # if (OSMinorVersion >= 2) # undef UseLibBSD # define ConfigH irix62 # endif # endif # endif # ifdef IBMArchitecture # undef UseLibBSD # if (SystemV == YES) # define ConfigH aix # if OSMajorVersion < 3 # if OSMinorVersion < 2 # define UseLibBSD # endif # endif # else # define ConfigH bsd # define AOSArchitecture # endif # endif #ifdef AOSArchitecture #define MyStdc -U__STDC__ #endif # if defined(MipsBsdArchitecture) || defined(MipsSysvArchitecture) # define ConfigH mips # endif # ifdef DguxArchitecture # define ConfigH dgux # endif # ifdef ConvexArchitecture # define ConfigH convex # endif # if defined(SQNTArchitecture) || defined(SequentArchitecture) # define ConfigH sequent # endif # ifdef MacIIArchitecture # define ConfigH mac2 # endif # ifdef MinixArchitecture /* Maybe conditional on MACH? */ SYSSRCS=mi.termios.c mi.wait.h mi.varargs.h SYSOBJS=mi.termios.${SUF} EXTF=ma.setp.c vms.termcap.c # else /* Maybe conditional on MACH? */ SYSSRCS=ma.setp.c SYSOBJS=ma.setp.${SUF} EXTF=mi.termios.c mi.wait.h mi.varargs.h vms.termcap.c # endif # ifdef i386Isc # if IscVersion != 202 # define ConfigH isc # define UseLibCposix # else # define ConfigH isc202 # endif # endif /* i386Isc */ # ifdef OpenBSDArchitecture # define ConfigH bsd4.4 # endif /* OpenBsdArchitecture */ # ifdef NetBSDArchitecture # define ConfigH bsd4.4 # endif /* NetBsdArchitecture */ # ifdef FreeBSDArchitecture # define ConfigH bsd4.4 # endif /* FreeBsdArchitecture */ # ifdef MidnightBSDArchitecture # define ConfigH bsd4.4 # endif /* MidnightBsdArchitecture */ # ifdef i386SVR4Architecture # define ConfigH sysv4 # ifdef DELL # define NoCombineRegs # endif # endif #endif /* !ConfigH */ /* generic os's */ #ifndef ConfigH #if (SystemV == YES) #define ConfigH sysv3 #else /* why this as a default? Why not? */ #define ConfigH bsd #endif #endif /* !ConfigH */ /**** libraries ****/ #if (SystemV == NO) || defined(HPArchitecture) || \ defined(SQNTArchitecture) || defined(SequentArchitecture) || \ defined(MacIIArchitecture) || defined(UseLibTermcap) LIBTERMCAP = -ltermcap #else LIBTERMCAP = #endif #if defined(SQNTArchitecture) || defined(SequentArchitecture) LIBSQNT=-lsocket -linet -lnsl -lseq #endif /* This may not be good enough - I don't have access to enough systems to really test it. */ #if (SystemV == YES) || defined(UseLibCurses) && !defined(HPArchitecture) LIBCURSES = -lcurses #else LIBCURSES = #endif #if defined(UseLibNet) LIBNET = -lnet #else LIBNET = #endif #if defined(UseLibSocket) LIBSOCKET = -lsocket #else LIBSOCKET = #endif #if defined(UseLibBSD) LIBBSD = -lbsd #else LIBBSD = #endif #if (defined(SGIArchitecture) && \ (OSMajorVersion == 3) && (OSMinorVersion == 3)) || \ defined(UseLibC_S) LIBC_S = -lc_s #else LIBC_S = #endif #if defined(UseLibSun) LIBSUN = -lsun #else LIBSUN = #endif #if defined(UseLibCposix) LIBCPOSIX = -lcposix #else LIBCPOSIX = #endif #if defined(UseLibInet) LIBINET = -linet #else LIBINET = #endif #if defined(UseLibDir) LIBDIRECT = -ldir #else LIBDIRECT = #endif #if defined(UseLibX) LIBX = -lx #else LIBX = #endif #if defined(UseLibIntl) LIBINTL = -lintl #else LIBINTL = #endif #if (HasLibCrypt == YES) LIBCRYPT = -lcrypt #else LIBCRYPT = #endif #if defined(MacIIArchitecture) || defined(UseLibPosix) LIBPOSIX = -lposix #else LIBPOSIX = #endif #if defined(ATTArchitecture) || defined(UseLibDirent) LIBDIRECTENT = -ldirent #else LIBDIRECTENT = #endif /* The order here is significant. Although nothing uses all of these, some platforms which use more than one do care about the order. */ SYSLIBS = $(LIBPOSIX) $(LIBDIRECTENT) $(LIBTERMCAP) $(LIBCURSES) \ $(LIBNET) $(LIBINTL) $(LIBSOCKET) $(LIBSUN) $(LIBBSD) $(LIBCPOSIX) \ $(LIBINET) $(LIBDIRECT) $(LIBX) $(LIBC_S) $(LIBSQNT) $(LIBCRYPT) /* Past here, nothing should need to be changed to compile on a different platform, unless you have a really weird architecture. */ #ifdef MyCC CC = MyCC #else # if HasGcc # if HasGcc2 CC = gcc # else # ifdef NoCombineRegs CC = gcc -finline-functions -fstrength-reduce # else CC = gcc -fcombine-regs -finline-functions -fstrength-reduce # endif # endif # else CC = cc # endif #endif #ifdef HESIOD HESLIB = -L/usr/athena/lib -lhesiod /* it seems to me that the -I shouldn't be necessary, but there seems to be a bug in the Imake stuff, so here it is. */ HESDEF = -DHESIOD -I/usr/athena/include #else HESLIB = HESDEF = #endif #ifdef AFS #ifndef AFSDIR AFSDIR = /usr/afsws #endif #ifdef AFS33 #define AFS33LIB -laudit #else #define AFS33LIB #endif /* Auxilliary libs needed for AFS */ /* Both HPUX and Solaris need the BSD libraries. We need -lc before * the bsd library to avoid using any more of it than is necessary. */ #if defined(HPArchitecture) #define AFSAUXLIB -lc -lBSD /* This is probably a kludge, but so is imake. */ #else #if defined(SunArchitecture) && (OSMajorVersion == 5) #define AFSAUXLIB -lsocket -lnsl -lc -lucb #else #define AFSAUXLIB #endif #endif /* AFSAUXLIB */ AFSLIB = -L$(AFSDIR)/lib -L$(AFSDIR)/lib/afs -lkauth -lprot -lubik\ -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err\ $(AFSDIR)/lib/afs/util.a AFS33LIB AFSAUXLIB AFSDEF = -DAFS -I$(AFSDIR)/include #else AFSLIB = AFSDEF = #endif /* This is encore specific, but I don't know what encore's #define is, and it shouldn't hurt to have it here, so here it is */ PARALLEL=12 # Make the multi-max run fast. #ifndef TcshTop #define TcshTop /usr/local #endif TCSHTOP = TcshTop #ifndef ManSuffix #define ManSuffix 1 #endif MANSUFFIX = ManSuffix #ifdef TcshPath PATH_TCSHELL = TcshPath TCSHPATH = -D_PATH_TCSHELL='"$(PATH_TCSHELL)"' #else TCSHPATH = #endif #ifdef DestBin TCSH_BINDIR = DestBin #else TCSH_BINDIR = $(TCSHTOP)/bin #endif #ifdef DestMan TCSH_MANDIR = DestMan #else TCSH_MANDIR = $(TCSHTOP)/man/man$(MANSUFFIX) #endif LOCALLIBS = #ifndef MyCflags #define MyCflags #endif #ifndef MyDefines #define MyDefines #endif #ifndef MyIncludes #define MyIncludes #endif #ifndef MyStdc #define MyStdc #endif #ifdef CDebugFlags CDEBUGFLAGS = CDebugFlags #else # if HasGcc2 CDEBUGFLAGS = -O2 # else CDEBUGFLAGS = -O # endif #endif #ifdef HostType HOSTTYPE=HostType HTDEF = -DHOSTTYPE='"$(HOSTTYPE)"' #else HTDEF = #endif DEFINES = $(TCSHPATH) $(HESDEF) $(AFSDEF) $(HTDEF) MyDefines MyCflags MyStdc INCLUDES = -I. MyIncludes #ifdef MyLibs LDLIBS = MyLibs #endif SUF = o VERSION = 6.12 SHSRCS= sh.c sh.dir.c sh.dol.c sh.err.c sh.exec.c \ sh.char.c sh.exp.c sh.file.c sh.func.c \ sh.glob.c sh.hist.c sh.init.c sh.lex.c \ sh.misc.c sh.parse.c sh.print.c sh.proc.c \ sh.sem.c sh.set.c sh.time.c dotlock.c dotlock.h glob.c \ sh.char.h sh.dir.h sh.proc.h sh.h \ sh.decls.h glob.h ${SYSSRCS} SHOBJS= sh.${SUF} sh.dir.${SUF} sh.dol.${SUF} sh.err.${SUF} sh.exec.${SUF} \ sh.char.${SUF} sh.exp.${SUF} sh.file.${SUF} sh.func.${SUF} \ sh.glob.${SUF} sh.hist.${SUF} sh.init.${SUF} sh.lex.${SUF} \ sh.misc.${SUF} sh.parse.${SUF} sh.print.${SUF} sh.proc.${SUF} \ sh.sem.${SUF} sh.set.${SUF} sh.time.${SUF} dotlock.${SUF} glob.${SUF} \ ${SYSOBJS} TWSRCS= tw.decls.h tw.h tw.help.c tw.init.c tw.parse.c tw.spell.c \ tw.comp.c tw.color.c TWOBJS= tw.help.${SUF} tw.init.${SUF} tw.parse.${SUF} tw.spell.${SUF} \ tw.comp.${SUF} tw.color.${SUF} EDSRCS= ed.chared.c ed.decls.h ed.defns.c ed.h ed.init.c ed.inputl.c \ ed.refresh.c ed.screen.c ed.xmap.c ed.term.c ed.term.h EDOBJS= ed.chared.${SUF} ed.refresh.${SUF} ed.screen.${SUF} ed.init.${SUF} \ ed.inputl.${SUF} ed.defns.${SUF} ed.xmap.${SUF} ed.term.${SUF} TCSRCS= tc.alloc.c tc.bind.c tc.const.c tc.decls.h tc.disc.c \ tc.func.c tc.nls.c tc.nls.h tc.os.c tc.os.h tc.printf.c tc.prompt.c \ tc.disc.${SUF} tc.func.${SUF} tc.nls.${SUF} tc.os.${SUF} \ tc.printf.${SUF} tc.sched.c tc.sig.c tc.sig.h tc.str.c sh.types.h \ tc.vers.c tc.wait.h tc.who.c tc.h TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.defs.${SUF} \ tc.disc.${SUF} tc.func.${SUF} tc.os.${SUF} tc.printf.${SUF} \ tc.prompt.${SUF} tc.sched.${SUF} tc.sig.${SUF} tc.str.${SUF} \ tc.vers.${SUF} tc.who.${SUF} SRCS = $(SHSRCS) $(TWSRCS) $(EDSRCS) $(TCSRCS) OBJS = $(SHOBJS) $(TWOBJS) $(EDOBJS) $(TCOBJS) AllTarget(tcsh) ed.defns.h: config.h ed.defns.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_ed_defns' >> $@ @echo '#define _h_ed_defns' >> $@ egrep '[FV]_' ed.defns.c | egrep '^#define' >> $@ @echo '#endif /* _h_ed_defns */' >> $@ sh.err.h: config.h sh.err.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_sh_err' >> $@ @echo '#define _h_sh_err' >> $@ egrep 'ERR_' sh.err.c | egrep '^#define' >> $@ @echo '#endif /* _h_sh_err */' >> $@ tc.const.h: config.h tc.const.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_tc_const' >> $@ @echo '#define _h_tc_const' >> $@ ${CC} -E $(INCLUDES) ${DEFINES} -D_h_tc_const tc.const.c | \ grep 'Char STR' | \ sed -e 's/Char \([a-zA-Z0-9_]*\)\[\].*/extern Char \1[];/' | \ sort >> $@ @echo '#endif /* _h_tc_const */' >> $@ config.h: config_f.h cp system/ConfigH config.h $(OBJS): sh.err.h tc.const.h ed.defns.h catalogs: @(cd nls; make catalogs) world: $(MAKE) clean ; $(MAKE) depend ; $(MAKE) tcsh ; $(MAKE) install clean:: rm -f ed.defns.h sh.err.h tc.const.h config.h tc.defs.* rm -f tcsh.*.m tcsh.*.cat depend:: config.h ed.defns.h sh.err.h tc.const.h $(SRCS) tc.defs.c tc.defs.${SUF}: tc.defs.c sh.h tc.defs.c: gethost host.defs @rm -f $@ @echo "/* Do not edit this file, make creates it */" > $@ ./gethost host.defs >> $@ ALIB=$(HESLIB) $(AFSLIB) $(SYSLIBS) AINC=ed.defns.h sh.err.h tc.const.h sh.h NormalProgramTarget(tcsh, $(OBJS), $(AINC), $(LOCALLIBS), $(ALIB)) NormalProgramTarget(gethost, gethost.${SUF}, $(AINC), $(LOCALLIBS), $(ALIB)) InstallProgram(tcsh,$(TCSH_BINDIR)) InstallManPage(tcsh,$(TCSH_MANDIR)) DependTarget() tcsh-6.24.13/Makefile.in000066400000000000000000000530121463776674600147300ustar00rootroot00000000000000# # C Shell with process control; VM/UNIX VAX Makefile # Bill Joy UC Berkeley; Jim Kulp IIASA, Austria # # With an input editor, command completion, etc. and ported to all sorts of # things; Paul Placeway, CIS Dept., Ohio State University # SHELL=/bin/sh ENVCMD=/usr/bin/env VERSION=@PACKAGE_VERSION@ BUILD=tcsh$(EXEEXT) EXEEXT=@EXEEXT@ INSTALL=@INSTALL@ INSTALL_DATA=@INSTALL_DATA@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ MKDIR_P?=$(INSTALL) -d VPATH=@srcdir@ srcdir=@srcdir@ ################################################################ ## Default target ################################################################ all: ${BUILD} catalogs ################################################################ ## Packaging ################################################################ RELEASE_GROUP=astron RELEASE_USER=${USER} RELEASE_TAG=@RELEASE_TAG@ .PHONY: Announce Announce: ${srcdir}/Announce-${VERSION} ${srcdir}/Announce-${VERSION}: touch ${@} RELEASE_ARTIFACTS= \ Fixes aclocal.m4 config.h.in configure configure.ac \ debian/changelog .PHONY: release-add add release-add add: cd ${srcdir} \ && test -f Announce-${VERSION} \ && git add Announce-${VERSION} \ || true cmp -s dch-template ${srcdir}/debian/changelog \ || cp dch-template ${srcdir}/debian/changelog cd ${srcdir} \ && git add ${RELEASE_ARTIFACTS} .PHONY: release-diff release-diff diff: git diff --staged .PHONY: release-commit commit release-commit commit: git commit -m 'Release ${VERSION}' git tag ${RELEASE_TAG} .PHONY: release-push push release-push push: git push origin git push origin tag ${RELEASE_TAG} .PHONY: release-archive tar.gz release-archive tar.gz: ${srcdir}/tcsh-${VERSION}.tar.gz ${srcdir}/tcsh-${VERSION}.tar.gz: cd ${srcdir} \ && git archive -o tcsh-${VERSION}.tar.gz \ --prefix=tcsh-${VERSION}/ ${RELEASE_TAG} .PHONY: head-archive orig.tar.gz head-archive orig.tar.gz: ${srcdir}/tcsh_${VERSION}.orig.tar.gz ${srcdir}/tcsh_${VERSION}.orig.tar.gz: cd ${srcdir} \ && git archive -o tcsh_${VERSION}.orig.tar.gz \ --prefix=tcsh-${VERSION}/ HEAD .PHONY: release-sign sign release-sign sign: ${srcdir}/tcsh-${VERSION}.tar.gz.asc ${srcdir}/tcsh-${VERSION}.tar.gz.asc: ${srcdir}/tcsh-${VERSION}.tar.gz cd ${srcdir} \ && gpg --armor --detach-sign tcsh-${VERSION}.tar.gz RELEASE_UPLOAD_FILES= \ ${srcdir}/Announce-${VERSION} \ ${srcdir}/FAQ \ ${srcdir}/Ported \ ${srcdir}/README.md \ ${srcdir}/tcsh-${VERSION}.tar.gz \ ${srcdir}/tcsh-${VERSION}.tar.gz.asc \ tcsh.man RELEASE_UPLOAD_TARGET=rebar.astron.com:/p/astron/ftp/pub/tcsh .PHONY: release-upload upload release-upload upload: rsync -Pv -csgp \ --chmod Fgo-w,a+r \ --numeric-ids \ --groupmap '*:${RELEASE_GROUP}' \ --usermap '*:${RELEASE_USER}' \ --ignore-missing-args \ ${RELEASE_UPLOAD_FILES} \ ${RELEASE_UPLOAD_TARGET}/ ################################################################ ## CFLAGS. For various -D things, see config.h ################################################################ # # These are the default suffixes from .c to .o and -c to get there # but to use the global optimizer on the mips boxes, see below # SUF=o CF=-c CPPFLAGS=-I. -I$(srcdir) LFLAGS= # hpux lint #LFLAGS= -Zn10000 # This is set by autoconf: CFLAGS = @CFLAGS@ # debug: #CFLAGS= -g # production: #CFLAGS= -O # Broken optimizers.... #CFLAGS= #CFLAGS= -g -pg -DPROF #CFLAGS= -O -pg -DPROF # gcc 1.00-1.37 #CFLAGS= -O -finline-functions -fstrength-reduce # gcc 1.37-1.40 #CFLAGS= -O -fcombine-regs -finline-functions -fstrength-reduce # add -msoft-float for 68881 machines. # gcc 2.0 # On the sparc, don't use -O2; it breaks setjmp() and vfork() #CFLAGS= -O # gcc-2.1+ #CFLAGS= -O2 # lucid c on suns #CFLAGS= -O5 # gcc 2.1 on linux #CFLAGS= -O6 -fomit-frame-pointer # HP/UX 8.0, 9.0 #CFLAGS= +O3 -Aa # Ultrix 4.2a #CFLAGS= -O -Olimit 2000 # Intel Paragon OSF/1 with PGI compilers #CFLAGS= -O -Mnodebug -Mnoperfmon # DEC Alpha OSF/1 ## Normal Optimization #CFLAGS= -O2 -Olimit 2000 ## Full Optimization - may not work #CFLAGS= -O3 -Olimit 2000 #CF=-j #SUF=u #.SUFFIXES: .u # for silicon graphics (and other mips compilers) -- use the # global optimizer! (-O3). # On SGI 4.0+ you need to add -D__STDC__ too. #CFLAGS= -O3 ## Ultrix 4.2a #CFLAGS= -O3 -Olimit 2000 #CF=-j #SUF=u #.SUFFIXES: .u ## Ultrix and gnu-make need that # mips systems # CFLAGS= -O -systype bsd43 -Wf,-XNd5000 -Wf,-XNp6000 -Olimit 2000 # for at&t machines #CFLAGS= -O -Ksd # Stardent Titan #CFLAGS = -O -43 # Stardent Stellar or sunos4 /bin/cc or Solaris2.1 /opt/SUNWspro/bin/cc #CFLAGS = -O4 # Intergraph clipper CLIX 3.1 #CFLAGS= -w -O2 # Dnix 5.3 #CFLAGS = -O -X7 # Pyramid OS/x #CFLAGS = -OG # Multiflow (5M binary... if you choose -O5!) #CFLAGS = -O5 -sb_trace 0 # DDE Supermax Unix SYSV Rel III. # CFLAGS= -O3 # SINIX RMx00 #CFLAGS= -O# -D_POSIX_SOURCE# -kansi # Apollo's with cc [apollo builtins don't work with gcc] # and apollo should not define __STDC__ if it does not have # the standard header files. RT's (aos4.3) need that too; # you might want to skip the -O on the rt's... Not very wise. # AIX/ESA needs -D_IBMESA on command line (this may disappear by GA) #DFLAGS=-U__STDC__ #DFLAGS=-D_IBMESA # On aix2.2.1 we need more compiler space. #DFLAGS=-Nd4000 -Nn3000 # AU/X 2.0 needs a flag for POSIX (read the config file) #DFLAGS=-Zp # Tektronix 4300 running UTek 4.0 (BSD 4.2) needs: #DFLAGS = -DUTek -DBSD # VMS_POSIX needs: #DFLAGS=-D_VMS_POSIX # Multiflow and PCC compilers don't like void typedefs. # You may also need -U__STDC__ if you use pcc (i.e. ibmrt aos4.3). #DFLAGS=-DMULTIFLOW #DFLAGS=-DPCC # DELL SVR4 #DFLAGS=-DDELL #DFLAGS= #DFLAGS=-D_PATH_TCSHELL='"${DESTBIN}/tcsh"' ## The following is set by autoconf. DFLAGS = -D_PATH_TCSHELL='"${bindir}/tcsh"' @DFLAGS@ @CPPFLAGS@ ################################################################ ## LDFLAGS. Define something here if you need to ################################################################ ## This is set by autoconf: LDFLAGS= @LDFLAGS@ ## The simplest, suitable for all. #LDFLAGS= ## Stripped. Takes less space on disk. #LDFLAGS= -s ## Pure executable. Spares paging over the network for machines with ## local swap but external /usr/local/bin . #LDFLAGS= -s -n ## Without dynamic linking. (SunOS/cc) #LDFLAGS= -s -n -Bstatic ## Without dynamic linking. (SunOS/gcc) #LDFLAGS= -s -n -static ## Stripped, shared text (Unicos) #LDFLAGS= -Wl,-s,-n ## Link statically. (linux) #LDFLAGS= -s -static ## Impure executable (linux) #LDFLAGS= -s -N ################################################################ ## SBINLDFLAGS. Flags to build a tcsh suitable for installation in ## in /sbin under Solaris with gcc. See the "tcsh.sbin" ## target. ################################################################ SBINLDFLAGS=-Wl,-R/etc/lib,-I/etc/lib/ld.so.1,-ldl,-Bstatic ################################################################ ## LIBES. Pick one, or roll your own. ################################################################ ## This is set by autoconf. LIBES= @LIBS@ ## BSD style things #LIBES= -ltermcap ## SunOS, HP-UX, pyramid #LIBES= -ltermcap ## Linux #LIBES= -ltermcap ## Linux with PW_SHADOW #LIBES= -ltermcap -lshadow ## Tek XD88/10 (UTekV) with PW_SHADOW #LIBES= -ltermcap -lsec ## Motorola MPC (sysV88) with PW_SHADOW #LIBES= -ltermcap -lsec ## Mach #LIBES= -ltermcap -lcs ## DEC osf1 on the alpha #LIBES= -ltermcap -lbsd ## Intel paragon #LIBES= -ltermcap -lbsd ## Clipper intergraph #LIBES= -ltermcap -lbsd ## Sequent's Dynix #LIBES= -ltermcap -lseq ## Ultrix with Enhanced Security #LIBES= -ltermcap -lauth ## Xenix 386 style things #LIBES= -ltermcap -ldir -lx ## masscomp RTU6.0 #LIBES= -ltermcap -lndir -lsocket -ljobs ## AIX on the rt #LIBES= -lcurses ## TitanOS on the stellar #LIBES= -lcurses ## SysV4 w/o BSDTIMES or Solaris 2 #LIBES= -ltermlib -lsocket -lnsl ## SysV3 w/o networking #LIBES= -lcurses ## SysV3 with networking #LIBES= -lcurses -lnet ## SysV2 w/o networking & dirlib #LIBES= -lcurses -ldir ## SysV2 with networking & dirlib #LIBES= -lcurses -ldir -lnet ## AIX on the IBM 370 or rs6000 or ps2 #LIBES= -lcurses -lbsd ## ETA10 #LIBES= -lcurses -lbsd ## Irix3.1 on the SGI-IRIS4D #LIBES= -lcurses -lbsd ## Irix3.3 on the SGI-IRIS4D w/o yp #LIBES= -lcurses -lbsd -lc_s ## Irix3.3 on the SGI-IRIS4D with yp #LIBES= -lcurses -lsun -lbsd -lc_s ## Amdahl UTS 2.1 #LIBES= -lcurses -lsocket -lbsd ## Intel's hypercube. #LIBES= -lcurses -lsocket ## ns32000 based Opus. #LIBES= -lcurses -lsocket ## ISC 2.2 without networking #LIBES= -lcurses -lcposix ## ISC 2.2 with networking #LIBES= -lcposix -lc_s -lcurses -linet ## ISC 2.0.2 without networking #LIBES= -lcurses -lsec -lc_s ## ISC 2.0.2 with networking #LIBES= -lcurses -linet -lsec -lc_s ## SCO SysVR3.2v2.0 #LIBES= -lcurses -lintl -lcrypt ## SCO+ODT1.1 #LIBES= -lcurses -lintl -lsocket -lcrypt ## A/UX 2.0 #LIBES= -lposix -ltermcap ## A/UX 3.0 #LIBES= -lposix -ltermcap -lc_s ## att3b1 cc w/o shared lib & dirlib #LIBES= -ldirent -lcurses ## att3b1 gcc with shared lib & dirlib #LIBES= -shlib -ldirent -lcurses ## SysV4 with BSDTIMES #LIBES= -ltermlib -lsocket -lnsl -lc /usr/ucblib/libucb.a ## Stardent Vistra #LIBES= -lcurses -lnsl -lsocket -lc /usr/ucblib/libucb.a ## emx under OS/2 #LIBES= -ltermc ## Minix, VMS_POSIX #LIBES= ## Multiflow #LIBES= -ltermcap -lcrypt ## NetBSD #LIBES= -ltermcap -lcrypt ## DDE Supermax #LIBES= -lcurses ################################################################ ## EXTRAFLAGS and EXTRALIBS ################################################################ # Compiling for AFS with kerberos authentication #AFSLIBDIR = /usr/afsws/lib #AFSDEF = -DAFS -I/usr/afsws/include #AFS33LIB = -laudit # #Solaris and HPUX require the BSD libraries with AFS. #We use -lc to use only what we require. # Solaris #AFSAUXLIB = -lsocket -lnsl -lc -lucb # HPUX #AFSAUXLIB = -lc -lBSD # #AFSLIB = -L$(AFSLIBDIR) -L$(AFSLIBDIR)/afs -lkauth -lprot -lubik\ # -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err\ # $(AFSLIBDIR)/afs/util.a $(AFS33LIB) $(AFSAUXLIB) # EXTRAFLAGS = @HESDEF@ $(AFSDEF) EXTRALIBS = @HESLIB@ $(AFSLIB) @LIBICONV@ # The difficult choice of a c-compiler... # First, you should try your own c-compiler. # Gcc -traditional is also a safe choice. # If you think that you have good include files try gcc -Wall... # If you want to take out -traditional, make sure that your sys/ioctl.h # is fixed correctly, otherwise you'll be stopped for tty input, or you # will lose the editor and job control. # This is for setting your C preprocessor value. # This is set by autoconf. CPP = @CPP@ # The -B tells gcc to use /bin/ld. This is to avoid using the gnu ld, which # on the suns does not know how to make dynamically linked binaries. # This is set by autoconf. CC = @CC@ #CC= gcc -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Werror -Wmissing-declarations -Wredundant-decls -Wnested-externs -Wsign-compare -Wcast-qual -Wreturn-type -Wswitch -Wshadow -Wwrite-strings -Wextra -Wcast-qual -Wwrite-strings -Wold-style-definition -Wuninitialized -Wpointer-sign # -Wconversion -Wformat=2 -ansi -pedantic #CC= gcc -Wall -pipe -B/bin/ # Generate code for Intel 486 (linux) #CC= gcc -m486 -pipe -Wall # BSDI2.1 w/ shared libraries #CC= shlicc #CC= cc #CC= occ #CC= acc #CC= pcc #CC= hc -w # For VMS/POSIX #CC= c89 # For suns, w/o gcc and SVR4 #CC= /bin/cc # FPS 500 (+FPX) with Sun C compiler #CC= /usr/lib/sun.compile/cc # Solaris 2.1 #CC= /opt/SUNWspro/bin/cc # Alliant fx2800 #CC= scc # for NEC SX-4 #CC= cc -h0,ansi,novector,float0 #CC= lcc -wa CC_FOR_GETHOST = @CC_FOR_GETHOST@ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ ED= ed AS= as RM= rm CXREF= /usr/ucb/cxref VGRIND= csh /usr/ucb/vgrind CTAGS= /usr/ucb/ctags #XSTR= /usr/ucb/xstr SCCS= /usr/local/sccs # Make the multi-max run fast. PARALLEL=12 # Use Sequent's parallel make #P=& P= prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ datarootdir=@datarootdir@ mandir=@mandir@ MANSECT=1 DESTBIN=${DESTDIR}${bindir} DESTMAN=${DESTDIR}${mandir}/man${MANSECT} # A/UX # DESTMAN=${DESTDIR}/catman/man${MANSECT} # Stardent Vistra (SysVR4) # DESTMAN=${DESTDIR}/usr/share/man/man${MANSECT} # Amiga unix (SysVR4) # DESTMAN=/usr/catman/1l BUILD_CATALOGS = @BUILD_CATALOGS@ SHOBJS= sh.${SUF} sh.dir.${SUF} sh.dol.${SUF} sh.err.${SUF} sh.exec.${SUF} \ sh.char.${SUF} sh.exp.${SUF} sh.file.${SUF} sh.func.${SUF} \ sh.glob.${SUF} sh.hist.${SUF} sh.init.${SUF} sh.lex.${SUF} \ sh.misc.${SUF} sh.parse.${SUF} sh.print.${SUF} sh.proc.${SUF} \ sh.sem.${SUF} sh.set.${SUF} sh.time.${SUF} glob.${SUF} dotlock.${SUF} \ mi.termios.${SUF} ma.setp.${SUF} vms.termcap.${SUF} TWOBJS= tw.help.${SUF} tw.init.${SUF} tw.parse.${SUF} tw.spell.${SUF} \ tw.comp.${SUF} tw.color.${SUF} EDOBJS= ed.chared.${SUF} ed.refresh.${SUF} ed.screen.${SUF} ed.init.${SUF} \ ed.inputl.${SUF} ed.defns.${SUF} ed.xmap.${SUF} ed.term.${SUF} TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.defs.${SUF} \ tc.disc.${SUF} tc.func.${SUF} tc.nls.${SUF} tc.os.${SUF} tc.printf.${SUF} \ tc.prompt.${SUF} tc.sched.${SUF} tc.sig.${SUF} tc.str.${SUF} \ tc.vers.${SUF} tc.who.${SUF} # tests/*.at except for tests/testsuite.at TESTFILES= \ tests/aliases.at tests/arguments.at tests/commands.at \ tests/expr.at tests/history.at tests/lexical.at tests/ls-F.at \ tests/mb-eucjp.at tests/mb-utf8.at tests/noexec.at \ tests/parenthesis.at tests/sh.dol.at tests/subst.at \ tests/syntax.at tests/variables.at OBJS= ${SHOBJS} ${TWOBJS} ${EDOBJS} ${TCOBJS} tcsh$(EXEEXT):$(P) ${OBJS} rm -f tcsh$(EXEEXT) core ${CC} -o tcsh$(EXEEXT) ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} tcsh.sbin:$(P) ${OBJS} rm -f tcsh.sbin core ${CC} -o tcsh.sbin ${SBINLDFLAGS} ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} # Purify pure:$(P) ${OBJS} rm -f tcsh$(EXEEXT) core purify `echo ${CC} | sed -e s,-B/bin/,,` -o tcsh$(EXEEXT) ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} # OS/2 #tcsh.exe: tcsh # emxbind tcsh gethost.${SUF}: gethost.c sh.err.h tc.const.h sh.h ${CC_FOR_GETHOST} ${CF} ${CPPFLAGS_FOR_BUILD} ${CFLAGS_FOR_BUILD} $(srcdir)/gethost.c gethost: gethost.${SUF} rm -f gethost ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS_FOR_BUILD} ${CFLAGS_FOR_BUILD} ${LDFLAGS_FOR_BUILD} gethost.${SUF} tc.defs.c: gethost host.defs @rm -f $@.tmp @echo "/* Do not edit this file, make creates it */" > $@.tmp ./gethost $(srcdir)/host.defs >> $@.tmp @if [ -f $@ ] && cmp -s $@.tmp $@; then echo $@ unchanged.; rm -f $@.tmp; else mv -f $@.tmp $@; echo $@ recreated.; fi tcsh.html: tcsh.man rm -f $@ -mandoc -Thtml tcsh.man > $@ tcsh.ps: tcsh.man rm -f tcsh.ps -ptroff -t -man tcsh.man > tcsh.ps .c.${SUF}: ${CC} ${CF} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${EXTRAFLAGS} $< .SUFFIXES: .s .i .c.i: ${CC} -E ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${EXTRAFLAGS} $< | cat -s > $@ .c.s: ${CC} -S ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${EXTRAFLAGS} $< # _VMS_POSIX #module addition #.c.${SUF}: # @(echo '#module '`echo $< | sed -e 's/\./_/g'`; cat $<) > $*..c # @echo ${CC} ${CF} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${EXTRAFLAGS} $*.c # @${CC} ${CF} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${EXTRAFLAGS} $*..c # @mv $*..o $*.o # @rm -f $*..c # Don't do any special massaging of C files for sharing of strings!! # it causes weird segmentation faults on some systems. #.c.o: # ${CPP} ${CFLAGS} ${CPPFLAGS} $*.c | ${XSTR} -c - # ${CC} ${CF} ${CFLAGS} ${CPPFLAGS} x.c # mv -f x.o $*.o # rm -f x.c #ed.init.o: ed.init.c # ${CPP} ${CFLAGS} ${CPPFLAGS} $*.c | ${XSTR} -c - # ${CC} -R ${CF} ${CFLAGS} ${CPPFLAGS} x.c # mv -f x.o $*.o # rm -f x.c #strings.o: strings # ${XSTR} # ${CC} -c -R xs.c # mv -f xs.o strings.o # rm -f xs.c ##.DEFAULT: ## ${SCCS} get $< ##.DEFAULT: ## co $< ed.defns.h: ed.defns.c @rm -f $@.tmp @echo '/* Do not edit this file, make creates it. */' > $@.tmp @echo '#ifndef _h_ed_defns' >> $@.tmp @echo '#define _h_ed_defns' >> $@.tmp grep '[FV]_' $(srcdir)/ed.defns.c | grep '^#define' >> $@.tmp @echo '#endif /* _h_ed_defns */' >> $@.tmp @if [ -f $@ ] && cmp -s $@.tmp $@; then echo $@ unchanged.; rm -f $@.tmp; else mv -f $@.tmp $@; echo $@ recreated.; fi sh.err.h: sh.err.c @rm -f $@.tmp @echo '/* Do not edit this file, make creates it. */' > $@.tmp @echo '#ifndef _h_sh_err' >> $@.tmp @echo '#define _h_sh_err' >> $@.tmp grep 'ERR_' $(srcdir)/sh.err.c | grep '^#define' >> $@.tmp @echo '#endif /* _h_sh_err */' >> $@.tmp @if [ -f $@ ] && cmp -s $@.tmp $@; then echo $@ unchanged.; rm -f $@.tmp; else mv -f $@.tmp $@; echo $@ recreated.; fi tc.const.h: tc.const.c sh.char.h config.h config_f.h sh.types.h sh.err.h @rm -f $@.tmp @echo '/* Do not edit this file, make creates it. */' > $@.tmp @echo '#ifndef _h_tc_const' >> $@.tmp @echo '#define _h_tc_const' >> $@.tmp ${CPP} $(CPPFLAGS) ${DFLAGS} ${EXTRAFLAGS} -D_h_tc_const\ $(srcdir)/tc.const.c | \ sed -n -e 's/^\(Char STR[a-zA-Z0-9_]*\) *\[ *\].*/extern \1[];/p' | \ LC_ALL=C sort >> $@.tmp @echo '#endif /* _h_tc_const */' >> $@.tmp @if [ -f $@ ] && cmp -s $@.tmp $@; then echo $@ unchanged.; rm -f $@.tmp; else mv -f $@.tmp $@; echo $@ recreated.; fi $(srcdir)/tests/package.m4: $(srcdir)/configure.ac { \ echo '# Signature of the current package.'; \ echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \ echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \ echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])'; \ echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \ echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \ } >$(srcdir)/tests/package.m4 $(srcdir)/tests/testsuite: $(srcdir)/tests/package.m4 $(srcdir)/tests/testsuite.at $(TESTFILES) autom4te --language=autotest -I $(srcdir)/tests \ $(srcdir)/tests/testsuite.at -o $@.tmp mv $@.tmp $@ atconfig: config.status $(SHELL) ./config.status ./atconfig atlocal: config.status $(srcdir)/atlocal.in $(SHELL) ./config.status atlocal csh.prof: ${OBJS} sh.prof.${SUF} mcrt0.${SUF} rm -f csh.prof ld -X mcrt0.${SUF} ${OBJS} -o csh.prof ${LIBES} -lc sh.prof.${SUF}: cp sh.c sh.prof.c ${CC} ${CF} ${CFLAGS} ${CPPFLAGS} -DPROF sh.prof.c lint: tc.const.h ed.defns.h lint ${DFLAGS} ${CPPFLAGS} ${LFLAGS} sh*.c tw*.c ed*.c tc.*.c ${LIBES} alint: tc.const.h ed.defns.h alint ${DFLAGS} ${CPPFLAGS} ${LFLAGS} sh*.c tw*.c ed*.c tc.*.c ${LIBES} print: @pr READ_ME @pr makefile makefile.* @(size -l a.out; size *.${SUF}) | pr -h SIZES @${CXREF} sh*.c | pr -h XREF @ls -l | pr @pr sh*.h [a-rt-z]*.h sh*.c alloc.c vprint: @pr -l84 READ_ME TODO @pr -l84 makefile makefile.* @(size -l a.out; size *.${SUF}) | pr -l84 -h SIZES @${CXREF} sh*.c | pr -l84 -h XREF @ls -l | pr -l84 @${CXREF} sh*.c | pr -l84 -h XREF @pr -l84 sh*.h [a-rt-z]*.h sh*.c alloc.c vgrind: @cp /dev/null index @for i in *.h; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done @for i in *.c; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done @vgrind -t -x -h Index index >/crp/bill/csh/index.t install: tcsh$(EXEEXT) install.catalogs install.man $(MKDIR_P) ${DESTBIN} $(INSTALL_PROGRAM) tcsh$(EXEEXT) ${DESTBIN}/tcsh$(EXEEXT) install.catalogs: @test "x${BUILD_CATALOGS}" = "xyes" && (cd nls; ${MAKE} install DESTDIR=${DESTDIR}) || exit 0 install.man: tcsh.man $(MKDIR_P) ${DESTMAN} $(INSTALL_DATA) tcsh.man ${DESTMAN}/tcsh.${MANSECT} # Amiga Unix #install.man: tcsh.man # compress tcsh.man # cp tcsh.man.Z ${DESTMAN}/tcsh.Z # chmod 444 ${DESTMAN}/tcsh.Z # Apple A/UX #install.man: tcsh.man # -rm -f ${DESTMAN}/tcsh.${MANSECT}.Z # nroff -man tcsh.man | compress > ${DESTMAN}/tcsh.${MANSECT}.Z # chmod 444 ${DESTMAN}/tcsh.${MANSECT}.Z .PHONY: clean clean: clean.catalogs ${RM} -f a.out strings x.c xs.c tcsh$(EXEEXT) tcsh.a _MAKE_LOG gethost ${RM} -f *.${SUF} *.i *.s ${RM} -f sh.prof.c ed.defns.h tc.const.h sh.err.h tc.defs.c ${RM} -f tcsh.*.m tcsh.*.cat .PHONY: clean.catalogs clean.catalogs: @test "x${BUILD_CATALOGS}" = "xyes" && (cd nls; ${MAKE} clean) || exit 0 .PHONY: cleandir distclean veryclean cleandir distclean veryclean: clean ${RM} -f Makefile config.h config_p.h dch-template nls/Makefile patchlevel.h tcsh.man ${RM} -f config.status config.cache config.log tcsh.html tcsh.ps ${RM} -f missing ${RM} -f atconfig atlocal testsuite.log ${RM} -rf testsuite.dir ${RM} -rf autom4te.cache ${RM} -f *~ #* tags: /tmp ${CTAGS} sh*.c .PHONY: catalogs catalogs: @test "x${BUILD_CATALOGS}" = "xyes" && (cd nls; ${MAKE} catalogs) || exit 0 autoconfigure: $(srcdir)/configure $(srcdir)/config.h.in $(srcdir)/configure: $(srcdir)/configure.ac cd $(srcdir) && autoconf $(srcdir)/config.h.in: $(srcdir)/stamp-h.in $(srcdir)/stamp-h.in: $(srcdir)/configure.ac cd $(srcdir) && autoheader @echo timestamp > $(srcdir)/stamp-h.in check test: atconfig atlocal $(srcdir)/tests/testsuite $(BUILD) $(ENVCMD) - \ TESTSUITEREGEN="$(TESTSUITEREGEN)" \ USER="$(USER)" \ LC_ALL=C \ $(SHELL) $(srcdir)/tests/testsuite $(TESTSUITEFLAGS) # # Dependencies # config.h: config_f.h TCH=tc.h tc.const.h tc.decls.h tc.nls.h tc.os.h tc.sig.h SHH=sh.h sh.types.h sh.char.h sh.err.h sh.dir.h sh.proc.h pathnames.h \ sh.decls.h ${TCH} TWH=tw.h tw.decls.h EDH=ed.h ed.decls.h # EDH EDINC=sh.${SUF} sh.func.${SUF} sh.lex.${SUF} sh.print.${SUF} sh.proc.${SUF} \ sh.set.${SUF} tc.bind.${SUF} tc.os.${SUF} tc.prompt.${SUF} \ tc.sched.${SUF} tw.parse.${SUF} tw.color.${SUF} ${EDOBJS} ${EDINC} : ${EDH} # SHH ${OBJS}: config.h ${SHH} # TWH TWINC=ed.chared.${SUF} ed.inputl.${SUF} sh.exec.${SUF} sh.func.${SUF} \ sh.set.${SUF} tc.func.${SUF} tc.nls.${SUF} tw.color.${SUF} ${TWOBJS} ${TWINC}: ${TWH} # glob.h glob.${SUF} sh.glob.${SUF}: glob.h # dotlock.h dotlock.${SUF}: dotlock.h # ed.defns.h EDDINC=tc.bind.${SUF} tc.func.${SUF} tc.os.${SUF} ${EDOBJS} ${EDDINC}: ed.defns.h # tc.defs.o tc.defs.${SUF}: tc.defs.c sh.h tcsh-6.24.13/Makefile.std000066400000000000000000000371771463776674600151320ustar00rootroot00000000000000# # C Shell with process control; VM/UNIX VAX Makefile # Bill Joy UC Berkeley; Jim Kulp IIASA, Austria # # With an input editor, command completion, etc. and ported to all sorts of # things; Paul Placeway, CIS Dept., Ohio State University # SHELL=/bin/sh VERSION=6.12 BUILD=tcsh srcdir=. ################################################################ ## CFLAGS. For various -D things, see config.h ################################################################ # # These are the default suffixes from .c to .o and -c to get there # but to use the global optimizer on the mips boxes, see below # SUF=o CF=-c INCLUDES=-I. -I$(srcdir) LFLAGS=$(INCLUDES) #LFLAGS=$(INCLUDES) -Zn10000 # hpux lint #CFLAGS= $(INCLUDES) -g # debug #CFLAGS= $(INCLUDES) -O # production #CFLAGS= $(INCLUDES) # Broken optimizers.... #CFLAGS= -g -pg $(INCLUDES) -DPROF #CFLAGS= -O -pg $(INCLUDES) -DPROF # gcc 1.00-1.37 #CFLAGS=-O $(INCLUDES) -finline-functions -fstrength-reduce # gcc 1.37-1.40 #CFLAGS=-O $(INCLUDES) -fcombine-regs -finline-functions -fstrength-reduce # add -msoft-float for 68881 machines. # gcc 2.0 # On the sparc, don't use -O2; it breaks setjmp() and vfork() #CFLAGS=-O $(INCLUDES) # gcc-2.1+ CFLAGS=-O2 $(INCLUDES) # lucid c on suns #CFLAGS=-O5 $(INCLUDES) # gcc 2.1 on linux #CFLAGS=-O6 -fomit-frame-pointer $(INCLUDES) # HP/UX 8.0, 9.0 #CFLAGS= $(INCLUDES) +O3 -Aa # Ultrix 4.2a #CFLAGS= $(INCLUDES) -O -Olimit 2000 # Intel Paragon OSF/1 with PGI compilers #CFLAGS=-O -Mnodebug -Mnoperfmon $(INCLUDES) # DEC Alpha OSF/1 #CFLAGS= -O2 $(INCLUDES) -Olimit 2000 ## Normal Optimization #CFLAGS= -O3 $(INCLUDES) -Olimit 2000 ## Full Optimization - may not work #CF=-j #SUF=u #.SUFFIXES: .u # for silicon graphics (and other mips compilers) -- use the # global optimizer! (-O3). # On SGI 4.0+ you need to add -D__STDC__ too. #CFLAGS= -O3 $(INCLUDES) #CFLAGS= -O3 $(INCLUDES) -Olimit 2000 ## Ultrix 4.2a #CF=-j #SUF=u #.SUFFIXES: .u ## Ultrix and gnu-make need that # mips systems # CFLAGS= $(INCLUDES) -O -systype bsd43 -Wf,-XNd5000 -Wf,-XNp6000 -Olimit 2000 # for at&t machines #CFLAGS= -O -Ksd $(INCLUDES) # Stardent Titan #CFLAGS = $(INCLUDES) -O -43 # Stardent Stellar or sunos4 /bin/cc or Solaris2.1 /opt/SUNWspro/bin/cc #CFLAGS = $(INCLUDES) -O4 # Intergraph clipper CLIX 3.1 #CFLAGS= -w -O2 $(INCLUDES) # Dnix 5.3 #CFLAGS = -O -X7 # Pyramid OS/x #CFLAGS = -OG # Multiflow (5M binary... if you choose -O5!) #CFLAGS = -O5 -sb_trace 0 # DDE Supermax Unix SYSV Rel III. # CFLAGS= -O3 # SINIX RMx00 #CFLAGS= -O # -D_POSIX_SOURCE # -kansi # Minix-VMD # CFLAGS= -O -D_ANSI_H -I /usr/include/bsdcompat $(INCLUDES) # Apollo's with cc [apollo builtins don't work with gcc] # and apollo should not define __STDC__ if it does not have # the standard header files. RT's (aos4.3) need that too; # you might want to skip the -O on the rt's... Not very wise. # AIX/ESA needs -D_IBMESA on command line (this may disappear by GA) #DFLAGS=-U__STDC__ #DFLAGS=-D_IBMESA # On aix2.2.1 we need more compiler space. #DFLAGS=-Nd4000 -Nn3000 # AU/X 2.0 needs a flag for POSIX (read the config file) #DFLAGS=-Zp # Tektronix 4300 running UTek 4.0 (BSD 4.2) needs: #DFLAGS = -DUTek -DBSD # VMS_POSIX needs: #DFLAGS=-D_VMS_POSIX # Multiflow and PCC compilers don't like void typedefs. # You may also need -U__STDC__ if you use pcc (i.e. ibmrt aos4.3). #DFLAGS=-DMULTIFLOW #DFLAGS=-DPCC # DELL SVR4 #DFLAGS=-DDELL # SCO_SV #DFLAGS=-D_SPEED_T -DSCO DFLAGS= #DFLAGS=-D_PATH_TCSHELL='"${DESTBIN}/tcsh"' ################################################################ ## LDFLAGS. Define something here if you need to ################################################################ LDFLAGS= ## The simplest, suitable for all. #LDFLAGS= -s ## Stripped. Takes less space on disk. #LDFLAGS= -s -n ## Pure executable. Spares paging over # ## the network for machines with local # ## swap but external /usr/local/bin . #LDFLAGS= -s -n -Bstatic ## Without dynamic linking. (SunOS/cc) #LDFLAGS= -s -n -static ## Without dynamic linking. (SunOS/gcc) #LDFLAGS= -Wl,-s,-n ## Stripped, shared text (Unicos) #LDFLAGS= -s -static ## Link statically. (linux) #LDFLAGS= -s -N ## Impure executable (linux) #LDFLAGS= -Bdynamic -dy ## SCO_SV ################################################################ ## LIBES. Pick one, or roll your own. ################################################################ LIBES= -ltermcap ## BSD style things #LIBES= -ltermcap ## SunOS, HP-UX, pyramid #LIBES= -ltermcap ## Linux #LIBES= -ltermcap -lshadow ## Linux with PW_SHADOW #LIBES= -ltermcap -lsec ## Tek XD88/10 (UTekV) with PW_SHADOW #LIBES= -ltermcap -lsec ## Motorola MPC (sysV88) with PW_SHADOW #LIBES= -ltermcap -lcs ## Mach #LIBES= -ltermcap -lbsd ## DEC osf1 on the alpha #LIBES= -ltermcap -lbsd ## Intel paragon #LIBES= -ltermcap -lbsd ## Clipper intergraph #LIBES= -ltermcap -lseq ## Sequent's Dynix #LIBES= -ltermcap -lauth ## Ultrix with Enhanced Security #LIBES= -ltermcap -ldir -lx ## Xenix 386 style things #LIBES= -ltermcap -lndir -lsocket -ljobs ## masscomp RTU6.0 #LIBES= -lcurses ## AIX on the rt #LIBES= -lcurses ## TitanOS on the stellar #LIBES= -ltermlib -lsocket -lnsl ## SysV4 w/o BSDTIMES or Solaris 2 #LIBES= -lcurses ## SysV3 w/o networking #LIBES= -lcurses -lnet ## SysV3 with networking #LIBES= -lcurses -ldir ## SysV2 w/o networking & dirlib #LIBES= -lcurses -ldir -lnet ## SysV2 with networking & dirlib #LIBES= -lcurses -lbsd ## AIX on the IBM 370 or rs6000 or ps2 #LIBES= -lcurses -lbsd ## ETA10 #LIBES= -lcurses -lbsd ## Irix3.1 on the SGI-IRIS4D #LIBES= -lcurses -lbsd -lc_s ## Irix3.3 on the SGI-IRIS4D w/o yp #LIBES= -lcurses -lsun -lbsd -lc_s ## Irix3.3 on the SGI-IRIS4D with yp #LIBES= -lcurses -lsocket -lbsd ## Amdahl UTS 2.1 #LIBES= -lcurses -lsocket ## Intel's hypercube. #LIBES= -lcurses -lsocket ## ns32000 based Opus. #LIBES= -lcurses -lcposix ## ISC 2.2 without networking #LIBES= -lcposix -lc_s -lcurses -linet ## ISC 2.2 with networking #LIBES= -lcurses -lsec -lc_s ## ISC 2.0.2 without networking #LIBES= -lcurses -linet -lsec -lc_s ## ISC 2.0.2 with networking #LIBES= -lcurses -lintl -lcrypt ## SCO SysVR3.2v2.0 #LIBES= -lcurses -lintl -lsocket -lcrypt ## SCO+ODT1.1 #LIBES= -lcurses -lsocket -lcrypt ## SCO_SV #LIBES= -lposix -ltermcap ## A/UX 2.0 #LIBES= -lposix -ltermcap -lc_s ## A/UX 3.0 #LIBES= -ldirent -lcurses ## att3b1 cc w/o shared lib & dirlib #LIBES= -shlib -ldirent -lcurses ## att3b1 gcc with shared lib & dirlib #LIBES= -ltermlib -lsocket -lnsl -lc /usr/ucblib/libucb.a ## SysV4 with BSDTIMES #LIBES= -lcurses -lnsl -lsocket -lc /usr/ucblib/libucb.a ## Stardent Vistra #LIBES= -ltermc ## emx under OS/2 #LIBES= ## Minix, VMS_POSIX #LIBES= -ltermcap -lcrypt ## Multiflow #LIBES= -ltermcap -lcrypt ## NetBSD #LIBES= -lcurses ## DDE Supermax ################################################################ ## EXTRAFLAGS and EXTRALIBS ################################################################ # Compiling for HESIOD #HESDEF = -DHESIOD -I/usr/athena/include #HESLIB = -L/usr/athena/lib -lhesiod # # Compiling for AFS with kerberos authentication #AFSLIBDIR = /usr/afsws/lib #AFSDEF = -DAFS -I/usr/afsws/include #AFS33LIB = -laudit # #Solaris and HPUX require the BSD libraries with AFS. #We use -lc to use only what we require. #AFSAUXLIB = -lsocket -lnsl -lc -lucb # Solaris #AFSAUXLIB = -lc -lBSD # HPUX # #AFSLIB = -L$(AFSLIBDIR) -L$(AFSLIBDIR)/afs -lkauth -lprot -lubik\ # -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err\ # $(AFSLIBDIR)/afs/util.a $(AFS33LIB) $(AFSAUXLIB) # EXTRAFLAGS = $(HESDEF) $(AFSDEF) EXTRALIBS = $(HESLIB) $(AFSLIB) # The difficult choice of a c-compiler... # First, you should try your own c-compiler. # Gcc -traditional is also a safe choice. # If you think that you have good include files try gcc -Wall... # If you want to take out -traditional, make sure that your sys/ioctl.h # is fixed correctly, otherwise you'll be stopped for tty input, or you # will lose the editor and job control. # This is for setting your C preprocessor value. CPP = ${CC} -E # The -B tells gcc to use /bin/ld. This is to avoid using the gnu ld, which # on the suns does not know how to make dynamically linked binaries. CC= gcc -Wall -pipe -B/bin/ # -ansi -pedantic #CC= gcc -m486 -pipe -Wall # Generate code for Intel 486 (linux) #CC= shlicc # BSDI2.1 w/ shared libraries #CC= cc #CC= occ #CC= acc #CC= pcc #CC= hc -w #CC= c89 # For VMS/POSIX #CC= /bin/cc # For suns, w/o gcc and SVR4 #CC= /usr/lib/sun.compile/cc # FPS 500 (+FPX) with Sun C compiler #CC= /opt/SUNWspro/bin/cc # Solaris 2.1 #CC= scc # Alliant fx2800 #CC= lcc -wa #CC= cc -b elf -Kpic # SCO_SV ED= ed AS= as RM= rm CXREF= /usr/ucb/cxref #CXREF= /bin/cxref # SCO_SV VGRIND= csh /usr/ucb/vgrind CTAGS= /usr/ucb/ctags #CTAGS= /usr/bin/ctags # SCO_SV #XSTR= /usr/ucb/xstr #XSTR= /usr/bin/xstr # SCO_SV SCCS= /usr/local/sccs PARALLEL=12 # Make the multi-max run fast. #P=& # Use Sequent's parallel make P= DESTDIR=/usr/local #DESTDIR=/usr/contrib MANSECT=1 DESTBIN=${DESTDIR}/bin DESTMAN=${DESTDIR}/man/man${MANSECT} # DESTMAN=${DESTDIR}/catman/man${MANSECT} # A/UX # DESTMAN=${DESTDIR}/usr/share/man/man${MANSECT} # Stardent Vistra (SysVR4) # DESTMAN=/usr/catman/1l # Amiga unix (SysVR4) SHOBJS= sh.${SUF} sh.dir.${SUF} sh.dol.${SUF} sh.err.${SUF} sh.exec.${SUF} \ sh.char.${SUF} sh.exp.${SUF} sh.file.${SUF} sh.func.${SUF} \ sh.glob.${SUF} sh.hist.${SUF} sh.init.${SUF} sh.lex.${SUF} \ sh.misc.${SUF} sh.parse.${SUF} sh.print.${SUF} sh.proc.${SUF} \ sh.sem.${SUF} sh.set.${SUF} sh.time.${SUF} glob.${SUF} dotlock.${SUF} \ mi.termios.${SUF} ma.setp.${SUF} vms.termcap.${SUF} TWOBJS= tw.help.${SUF} tw.init.${SUF} tw.parse.${SUF} tw.spell.${SUF} \ tw.comp.${SUF} tw.color.${SUF} EDOBJS= ed.chared.${SUF} ed.refresh.${SUF} ed.screen.${SUF} ed.init.${SUF} \ ed.inputl.${SUF} ed.defns.${SUF} ed.xmap.${SUF} ed.term.${SUF} TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.defs.${SUF} \ tc.disc.${SUF} tc.func.${SUF} tc.nls.${SUF} tc.os.${SUF} tc.printf.${SUF} \ tc.prompt.${SUF} tc.sched.${SUF} tc.sig.${SUF} tc.str.${SUF} \ tc.vers.${SUF} tc.who.${SUF} OBJS= ${SHOBJS} ${TWOBJS} ${EDOBJS} ${TCOBJS} all: ${BUILD} tcsh:$(P) ${OBJS} rm -f tcsh core ${CC} -o tcsh ${LDFLAGS} ${CFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} # Purify pure:$(P) ${OBJS} rm -f tcsh core purify `echo ${CC} | sed -e s,-B/bin/,,` -o tcsh ${LDFLAGS} ${CFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} # OS/2 tcsh.exe: tcsh emxbind tcsh gethost: gethost.c sh.err.h tc.const.h sh.h rm -f gethost ${CC} -o gethost ${LDFLAGS} ${CFLAGS} ${DFLAGS} $(srcdir)/gethost.c ${LIBES} ${EXTRALIBS} tc.defs.c: gethost host.defs @rm -f $@ @echo "/* Do not edit this file, make creates it */" > $@ ./gethost $(srcdir)/host.defs >> $@ tcsh.ps: tcsh.man rm -f tcsh.ps -ptroff -t -man $(srcdir)/tcsh.man > tcsh.ps .c.${SUF}: ${CC} ${CF} ${CFLAGS} ${DFLAGS} ${EXTRAFLAGS} $< # _VMS_POSIX #module addition #.c.${SUF}: # @(echo '#module '`echo $< | sed -e 's/\./_/g'`; cat $<) > $*..c # @echo ${CC} ${CF} ${CFLAGS} ${DFLAGS} ${EXTRAFLAGS} $*.c # @${CC} ${CF} ${CFLAGS} ${DFLAGS} ${EXTRAFLAGS} $*..c # @mv $*..o $*.o # @rm -f $*..c # Don't do any special massaging of C files for sharing of strings!! # it causes weird segmentation faults on some systems. #.c.o: # ${CPP} ${CFLAGS} $*.c | ${XSTR} -c - # ${CC} ${CF} ${CFLAGS} x.c # mv -f x.o $*.o # rm -f x.c #ed.init.o: ed.init.c # ${CPP} ${CFLAGS} $*.c | ${XSTR} -c - # ${CC} -R ${CF} ${CF} x.c # mv -f x.o $*.o # rm -f x.c #strings.o: strings # ${XSTR} # ${CC} -c -R xs.c # mv -f xs.o strings.o # rm -f xs.c ##.DEFAULT: ## ${SCCS} get $< ##.DEFAULT: ## co $< ed.defns.h: ed.defns.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_ed_defns' >> $@ @echo '#define _h_ed_defns' >> $@ grep '[FV]_' $(srcdir)/ed.defns.c | grep '^#define' >> $@ @echo '#endif /* _h_ed_defns */' >> $@ sh.err.h: sh.err.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_sh_err' >> $@ @echo '#define _h_sh_err' >> $@ grep 'ERR_' $(srcdir)/sh.err.c | grep '^#define' >> $@ @echo '#endif /* _h_sh_err */' >> $@ tc.const.h: tc.const.c sh.char.h config.h config_f.h sh.types.h sh.err.h @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_tc_const' >> $@ @echo '#define _h_tc_const' >> $@ ${CPP} $(INCLUDES) ${DFLAGS} ${EXTRAFLAGS} -D_h_tc_const\ $(srcdir)/tc.const.c | grep 'Char STR' | \ sed -e 's/Char \([a-zA-Z0-9_]*\) *\[ *\].*/extern Char \1[];/' | \ LC_ALL=C sort >> $@ @echo '#endif /* _h_tc_const */' >> $@ csh.prof: ${OBJS} sh.prof.${SUF} mcrt0.${SUF} rm -f csh.prof ld -X mcrt0.${SUF} ${OBJS} -o csh.prof ${LIBES} -lc sh.prof.${SUF}: cp sh.c sh.prof.c ${CC} ${CF} ${CFLAGS} -DPROF sh.prof.c lint: tc.const.h ed.defns.h lint ${DFLAGS} ${LFLAGS} sh*.c tw*.c ed*.c tc.*.c ${LIBES} alint: tc.const.h ed.defns.h alint ${DFLAGS} ${LFLAGS} sh*.c tw*.c ed*.c tc.*.c ${LIBES} print: @pr READ_ME @pr makefile makefile.* @(size -l a.out; size *.${SUF}) | pr -h SIZES @${CXREF} sh*.c | pr -h XREF @ls -l | pr @pr sh*.h [a-rt-z]*.h sh*.c alloc.c vprint: @pr -l84 READ_ME TODO @pr -l84 makefile makefile.* @(size -l a.out; size *.${SUF}) | pr -l84 -h SIZES @${CXREF} sh*.c | pr -l84 -h XREF @ls -l | pr -l84 @${CXREF} sh*.c | pr -l84 -h XREF @pr -l84 sh*.h [a-rt-z]*.h sh*.c alloc.c vgrind: @cp /dev/null index @for i in *.h; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done @for i in *.c; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done @vgrind -t -x -h Index index >/crp/bill/csh/index.t install: tcsh -mv -f ${DESTBIN}/tcsh ${DESTBIN}/tcsh.old cp tcsh ${DESTBIN}/tcsh -strip ${DESTBIN}/tcsh chmod 555 ${DESTBIN}/tcsh install.man: tcsh.man -rm -f ${DESTMAN}/tcsh.${MANSECT} cp $(srcdir)/tcsh.man ${DESTMAN}/tcsh.${MANSECT} chmod 444 ${DESTMAN}/tcsh.${MANSECT} # Amiga Unix #install.man: tcsh.man # compress tcsh.man # cp tcsh.man.Z ${DESTMAN}/tcsh.Z # chmod 444 ${DESTMAN}/tcsh.Z # Apple A/UX #install.man: tcsh.man # -rm -f ${DESTMAN}/tcsh.${MANSECT}.Z # nroff -man tcsh.man | compress > ${DESTMAN}/tcsh.${MANSECT}.Z # chmod 444 ${DESTMAN}/tcsh.${MANSECT}.Z clean: ${RM} -f a.out strings x.c xs.c tcsh tcsh.a _MAKE_LOG core gethost ${RM} -f *.${SUF} sh.prof.c ed.defns.h tc.const.h sh.err.h tc.defs.c ${RM} -f tcsh.*.m tcsh.*.cat veryclean: clean ${RM} -f config.h config.status config.cache config.log Makefile tcsh.ps ${RM} -f *~ #* distclean: veryclean tags: /tmp ${CTAGS} sh*.c catalogs: @(cd nls; make catalogs) autoconfigure: $(srcdir)/configure $(srcdir)/config.h.in $(srcdir)/configure: $(srcdir)/configure.ac cd $(srcdir) && autoconf $(srcdir)/config.h.in: $(srcdir)/stamp-h.in $(srcdir)/stamp-h.in: $(srcdir)/configure.ac cd $(srcdir) && autoheader @echo timestamp > $(srcdir)/stamp-h.in # # Dependencies # config.h: config_f.h TCH=tc.h tc.const.h tc.decls.h tc.nls.h tc.os.h tc.sig.h SHH=sh.h sh.types.h sh.char.h sh.err.h sh.dir.h sh.proc.h pathnames.h \ sh.decls.h ${TCH} TWH=tw.h tw.decls.h EDH=ed.h ed.decls.h # EDH EDINC=sh.${SUF} sh.func.${SUF} sh.lex.${SUF} sh.print.${SUF} sh.proc.${SUF} \ sh.set.${SUF} tc.bind.${SUF} tc.os.${SUF} tc.prompt.${SUF} \ tc.sched.${SUF} tw.parse.${SUF} tw.color.${SUF} ${EDOBJS} ${EDINC} : ${EDH} # SHH ${OBJS}: config.h ${SHH} # TWH TWINC=ed.chared.${SUF} ed.inputl.${SUF} sh.exec.${SUF} sh.func.${SUF} \ sh.set.${SUF} tc.func.${SUF} tc.nls.${SUF} tw.color.${SUF} ${TWOBJS} ${TWINC}: ${TWH} # glob.h glob.${SUF} sh.glob.${SUF}: glob.h # dotlock.h dotlock.${SUF}: dotlock.h # ed.defns.h EDDINC=tc.bind.${SUF} tc.func.${SUF} tc.os.${SUF} ${EDOBJS} ${EDDINC}: ed.defns.h # tc.defs.o tc.defs.${SUF}: tc.defs.c sh.h tcsh-6.24.13/Makefile.vms000066400000000000000000000346271463776674600151420ustar00rootroot00000000000000# # C Shell with process control; VM/UNIX VAX Makefile # Bill Joy UC Berkeley; Jim Kulp IIASA, Austria # # With an input editor, command completion, etc. and ported to all sorts of # things; Paul Placeway, CIS Dept., Ohio State University # SHELL=/bin/sh VERSION=6.12 BUILD=tcsh ################################################################ ## CFLAGS. For various -D things, see config.h ################################################################ # # These are the default suffixes from .c to .o and -c to get there # but to use the global optimizer on the mips boxes, see below # SUF=o CF=-c INCLUDES=-I. -I.. LFLAGS=$(INCLUDES) #LFLAGS=$(INCLUDES) -Zn10000 # hpux lint #CFLAGS= $(INCLUDES) -g # debug #CFLAGS= $(INCLUDES) -O # production #CFLAGS= $(INCLUDES) # Broken optimizers.... #CFLAGS= -g -pg $(INCLUDES) -DPROF #CFLAGS= -O -pg $(INCLUDES) -DPROF # gcc 1.00-1.37 #CFLAGS=-O $(INCLUDES) -finline-functions -fstrength-reduce # gcc 1.37-1.40 #CFLAGS=-O $(INCLUDES) -fcombine-regs -finline-functions -fstrength-reduce # add -msoft-float for 68881 machines. # gcc 2.0 # On the sparc, don't use -O2; it breaks setjmp() and vfork() #CFLAGS=-O $(INCLUDES) # gcc-2.1+ #CFLAGS=-O2 $(INCLUDES) # lucid c on suns #CFLAGS=-O5 $(INCLUDES) # gcc 2.1 on linux #CFLAGS=-O6 -fomit-frame-pointer $(INCLUDES) # HP/UX 8.0, 9.0 #CFLAGS= $(INCLUDES) +O3 -Aa # Ultrix 4.2a #CFLAGS= $(INCLUDES) -O -Olimit 2000 # Intel Paragon OSF/1 with PGI compilers #CFLAGS=-O -Mnodebug -Mnoperfmon $(INCLUDES) # DEC Alpha OSF/1 #CFLAGS= -O2 $(INCLUDES) -Olimit 2000 ## Normal Optimization #CFLAGS= -O3 $(INCLUDES) -Olimit 2000 ## Full Optimization - may not work #CF=-j #SUF=u #.SUFFIXES: .u # for silicon graphics (and other mips compilers) -- use the # global optimizer! (-O3). # On SGI 4.0+ you need to add -D__STDC__ too. #CFLAGS= -O3 $(INCLUDES) #CFLAGS= -O3 $(INCLUDES) -Olimit 2000 ## Ultrix 4.2a #CF=-j #SUF=u #.SUFFIXES: .u ## Ultrix and gnu-make need that # mips systems # CFLAGS= $(INCLUDES) -O -systype bsd43 -Wf,-XNd5000 -Wf,-XNp6000 -Olimit 2000 # for at&t machines #CFLAGS= -O -Ksd $(INCLUDES) # Stardent Titan #CFLAGS = $(INCLUDES) -O -43 # Stardent Stellar or sunos4 /bin/cc or Solaris2.1 /opt/SUNWspro/bin/cc #CFLAGS = $(INCLUDES) -O4 # Intergraph clipper CLIX 3.1 #CFLAGS= -w -O2 $(INCLUDES) # Dnix 5.3 #CFLAGS = -O -X7 # Pyramid OS/x #CFLAGS = -OG # Multiflow (5M binary... if you choose -O5!) #CFLAGS = -O5 -sb_trace 0 # DDE Supermax Unix SYSV Rel III. # CFLAGS= -O3 # Apollo's with cc [apollo builtins don't work with gcc] # and apollo should not define __STDC__ if it does not have # the standard header files. RT's (aos4.3) need that too; # you might want to skip the -O on the rt's... Not very wise. # AIX/ESA needs -D_IBMESA on command line (this may disappear by GA) #DFLAGS=-U__STDC__ #DFLAGS=-D_IBMESA # On aix2.2.1 we need more compiler space. #DFLAGS=-Nd4000 -Nn3000 # AU/X 2.0 needs a flag for POSIX (read the config file) #DFLAGS=-Zp # Tektronix 4300 running UTek 4.0 (BSD 4.2) needs: #DFLAGS = -DUTek -DBSD # VMS_POSIX needs: #DFLAGS=-D_VMS_POSIX # Multiflow #DFLAGS=-DMULTIFLOW # DELL SVR4 #DFLAGS=-DDELL DFLAGS= #DFLAGS=-D_PATH_TCSHELL='"${DESTBIN}/tcsh"' ################################################################ ## LDFLAGS. Define something here if you need to ################################################################ LDFLAGS= ## The simplest, suitable for all. #LDFLAGS= -s ## Stripped. Takes less space on disk. #LDFLAGS= -s -n ## Pure executable. Spares paging over # ## the network for machines with local # ## swap but external /usr/local/bin . #LDFLAGS= -s -n -Bstatic ## Without dynamic links. (SunOS) #LDFLAGS= -Wl,-s,-n ## Stripped, shared text (Unicos) #LDFLAGS= -s -static ## Link statically. (linux) #LDFLAGS= -s -N ## Impure executable (linux) ################################################################ ## LIBES. Pick one, or roll your own. ################################################################ #LIBES= -ltermcap ## BSD style things #LIBES= -ltermcap ## SunOS, HP-UX, pyramid #LIBES= -ltermcap ## Linux #LIBES= -ltermcap -lshadow ## Linux with PW_SHADOW #LIBES= -ltermcap -lsec ## Tek XD88/10 (UTekV) with PW_SHADOW #LIBES= -ltermcap -lsec ## Motorola MPC (sysV88) with PW_SHADOW #LIBES= -ltermcap -lcs ## Mach #LIBES= -ltermcap -lbsd ## DEC osf1 on the alpha #LIBES= -ltermcap -lbsd ## Intel paragon #LIBES= -ltermcap -lbsd ## Clipper intergraph #LIBES= -ltermcap -lseq ## Sequent's Dynix #LIBES= -ltermcap -lauth ## Ultrix with Enhanced Security #LIBES= -ltermcap -ldir -lx ## Xenix 386 style things #LIBES= -ltermcap -lndir -lsocket -ljobs ## masscomp RTU6.0 #LIBES= -lcurses ## AIX on the rt #LIBES= -lcurses ## TitanOS on the stellar #LIBES= -ltermlib -lsocket -lnsl ## SysV4 w/o BSDTIMES or Solaris 2 #LIBES= -lcurses ## SysV3 w/o networking #LIBES= -lcurses -lnet ## SysV3 with networking #LIBES= -lcurses -ldir ## SysV2 w/o networking & dirlib #LIBES= -lcurses -ldir -lnet ## SysV2 with networking & dirlib #LIBES= -lcurses -lbsd ## AIX on the IBM 370 or rs6000 or ps2 #LIBES= -lcurses -lbsd ## ETA10 #LIBES= -lcurses -lbsd ## Irix3.1 on the SGI-IRIS4D #LIBES= -lcurses -lbsd -lc_s ## Irix3.3 on the SGI-IRIS4D w/o yp #LIBES= -lcurses -lsun -lbsd -lc_s ## Irix3.3 on the SGI-IRIS4D with yp #LIBES= -lcurses -lsocket -lbsd ## Amdahl UTS 2.1 #LIBES= -lcurses -lsocket ## Intel's hypercube. #LIBES= -lcurses -lsocket ## ns32000 based Opus. #LIBES= -lcurses -lcposix ## ISC 2.2 without networking #LIBES= -lcposix -lc_s -lcurses -linet ## ISC 2.2 with networking #LIBES= -lcurses -lsec -lc_s ## ISC 2.0.2 without networking #LIBES= -lcurses -linet -lsec -lc_s ## ISC 2.0.2 with networking #LIBES= -lcurses -lintl -lcrypt ## SCO SysVR3.2v2.0 #LIBES= -lcurses -lintl -lsocket -lcrypt ## SCO+ODT1.1 #LIBES= -lposix -ltermcap ## A/UX 2.0 #LIBES= -lposix -ltermcap -lc_s ## A/UX 3.0 #LIBES= -ldirent -lcurses ## att3b1 cc w/o shared lib & dirlib #LIBES= -shlib -ldirent -lcurses ## att3b1 gcc with shared lib & dirlib #LIBES= -ltermlib -lsocket -lnsl -lc /usr/ucblib/libucb.a ## SysV4 with BSDTIMES #LIBES= -lcurses -lnsl -lsocket -lc /usr/ucblib/libucb.a ## Stardent Vistra #LIBES= -ltermc ## emx under OS/2 LIBES= ## Minix, VMS_POSIX #LIBES= -ltermcap -lcrypt ## Multiflow #LIBES= -ltermcap -lcrypt ## NetBSD #LIBES= -lcurses ## DDE Supermax ################################################################ ## EXTRAFLAGS and EXTRALIBS ################################################################ # Compiling for HESIOD #HESDEF = -DHESIOD -I/usr/athena/include #HESLIB = -L/usr/athena/lib -lhesiod # # Compiling for AFS with kerberos authentication #AFSLIBDIR = /usr/afsws/lib #AFSDEF = -DAFS -I/usr/afsws/include #AFS33LIB = -laudit # #Solaris and HPUX require the BSD libraries with AFS. #We use -lc to use only what we require. #AFSAUXLIB = -lsocket -lnsl -lc -lucb # Solaris #AFSAUXLIB = -lc -lBSD # HPUX # #AFSLIB = -L$(AFSLIBDIR) -L$(AFSLIBDIR)/afs -lkauth -lprot -lubik\ # -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err\ # $(AFSLIBDIR)/afs/util.a $(AFS33LIB) $(AFSAUXLIB) # EXTRAFLAGS = $(HESDEF) $(AFSDEF) EXTRALIBS = $(HESLIB) $(AFSLIB) # The difficult choice of a c-compiler... # First, you should try your own c-compiler. # Gcc -traditional is also a safe choice. # If you think that you have good include files try gcc -Wall... # If you want to take out -traditional, make sure that your sys/ioctl.h # is fixed correctly, otherwise you'll be stopped for tty input, or you # will lose the editor and job control. # The -B tells gcc to use /bin/ld. This is to avoid using the gnu ld, which # on the suns does not know how to make dynamically linked binaries. #CC= gcc -Wall -pipe -B/bin/ # -ansi -pedantic #CC= gcc -m486 -pipe -Wall # Generate code for Intel 486 (linux) #CC= cc #CC= occ #CC= acc #CC= pcc #CC= hc -w CC= c89 # For VMS/POSIX #CC= /bin/cc # For suns, w/o gcc and SVR4 #CC= /usr/lib/sun.compile/cc # FPS 500 (+FPX) with Sun C compiler #CC= /opt/SUNWspro/bin/cc # Solaris 2.1 #CC= scc # Alliant fx2800 #CC= lcc -wa ED= ed AS= as RM= rm CXREF= /usr/ucb/cxref VGRIND= csh /usr/ucb/vgrind CTAGS= /usr/ucb/ctags #XSTR= /usr/ucb/xstr SCCS= /usr/local/sccs PARALLEL=12 # Make the multi-max run fast. #P=& # Use Sequent's parallel make P= DESTDIR=/usr/local MANSECT=1 DESTBIN=${DESTDIR}/bin DESTMAN=${DESTDIR}/man/man${MANSECT} # DESTMAN=${DESTDIR}/catman/man${MANSECT} # A/UX # DESTMAN=${DESTDIR}/usr/share/man/man${MANSECT} # Stardent Vistra (SysVR4) # DESTMAN=/usr/catman/1l # Amiga unix (SysVR4) SHOBJS= sh.${SUF} sh.dir.${SUF} sh.dol.${SUF} sh.err.${SUF} sh.exec.${SUF} \ sh.char.${SUF} sh.exp.${SUF} sh.func.${SUF} sh.glob.${SUF} \ sh.hist.${SUF} sh.init.${SUF} sh.lex.${SUF} sh.misc.${SUF} \ sh.parse.${SUF} sh.print.${SUF} sh.proc.${SUF} sh.sem.${SUF} \ sh.set.${SUF} sh.time.${SUF} glob.${SUF} mi.termios.${SUF} \ ma.setp.${SUF} vms.termcap.${SUF} TWOBJS= tw.help.${SUF} tw.init.${SUF} tw.parse.${SUF} tw.spell.${SUF} \ tw.comp.${SUF} tw.color.${SUF} EDOBJS= ed.chared.${SUF} ed.refresh.${SUF} ed.screen.${SUF} ed.init.${SUF} \ ed.inputl.${SUF} ed.defns.${SUF} ed.xmap.${SUF} ed.term.${SUF} TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.defs.${SUF} \ tc.disc.${SUF} tc.func.${SUF} tc.os.${SUF} tc.os.${SUF} tc.printf.${SUF} \ tc.prompt.${SUF} tc.sched.${SUF} tc.sig.${SUF} tc.str.${SUF} \ tc.vers.${SUF} tc.who.${SUF} OBJS= ${SHOBJS} ${TWOBJS} ${EDOBJS} ${TCOBJS} all: ${BUILD} tcsh:$(P) ${OBJS} rm -f tcsh core ${CC} -o tcsh ${LDFLAGS} ${CFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} # Purify pure:$(P) ${OBJS} rm -f tcsh core purify `echo ${CC} | sed -e s,-B/bin/,,` -o tcsh ${LDFLAGS} ${CFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} # OS/2 tcsh.exe: tcsh emxbind tcsh gethost: gethost.c sh.err.h tc.const.h sh.h rm -f gethost ${CC} -o gethost ${LDFLAGS} ${CFLAGS} ${DFLAGS} gethost.c ${LIBES} ${EXTRALIBS} tc.defs.c: gethost host.defs @rm -f $@ @echo "/* Do not edit this file, make creates it */" > $@ ./gethost host.defs >> $@ tcsh.ps: tcsh.man rm -f tcsh.ps -ptroff -man tcsh.man > tcsh.ps #.c.${SUF}: # ${CC} ${CF} ${CFLAGS} ${DFLAGS} ${EXTRAFLAGS} $< # _VMS_POSIX #module addition .c.${SUF}: @(echo '\#module '`echo $< | sed -e 's/\./_/g'`; cat $<) > $*..c @echo ${CC} ${CF} ${CFLAGS} ${DFLAGS} ${EXTRAFLAGS} $*.c @${CC} ${CF} ${CFLAGS} ${DFLAGS} ${EXTRAFLAGS} $*..c @mv $*..o $*.o @rm -f $*..c # Don't do any special massaging of C files for sharing of strings!! # it causes weird segmentation faults on some systems. #.c.o: # ${CC} -E ${CFLAGS} $*.c | ${XSTR} -c - # ${CC} ${CF} ${CFLAGS} x.c # mv -f x.o $*.o # rm -f x.c #ed.init.o: ed.init.c # ${CC} -E ${CFLAGS} $*.c | ${XSTR} -c - # ${CC} -R ${CF} ${CF} x.c # mv -f x.o $*.o # rm -f x.c #strings.o: strings # ${XSTR} # ${CC} -c -R xs.c # mv -f xs.o strings.o # rm -f xs.c ##.DEFAULT: ## ${SCCS} get $< ##.DEFAULT: ## co $< ed.defns.h: ed.defns.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '\#ifndef _h_ed_defns' >> $@ @echo '\#define _h_ed_defns' >> $@ grep '[FV]_' ed.defns.c | grep '^\#define' >> $@ @echo '\#endif /* _h_ed_defns */' >> $@ sh.err.h: sh.err.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '\#ifndef _h_sh_err' >> $@ @echo '\#define _h_sh_err' >> $@ grep 'ERR_' sh.err.c | grep '^#define' >> $@ @echo '\#endif /* _h_sh_err */' >> $@ tc.const.h: tc.const.c sh.char.h config.h config_f.h sh.types.h sh.err.h @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '\#ifndef _h_tc_const' >> $@ @echo '\#define _h_tc_const' >> $@ ${CC} -E $(INCLUDES) ${DFLAGS} -D_h_tc_const tc.const.c | \ grep 'Char STR' | \ sed -e 's/Char \([a-zA-Z0-9_]*\) *\[ *\].*/extern Char \1[];/' | \ sort >> $@ @echo '\#endif /* _h_tc_const */' >> $@ csh.prof: ${OBJS} sh.prof.${SUF} mcrt0.${SUF} rm -f csh.prof ld -X mcrt0.${SUF} ${OBJS} -o csh.prof ${LIBES} -lc sh.prof.${SUF}: cp sh.c sh.prof.c ${CC} ${CF} ${CFLAGS} -DPROF sh.prof.c lint: tc.const.h ed.defns.h lint ${DFLAGS} ${LFLAGS} sh*.c tw*.c ed*.c tc.*.c ${LIBES} alint: tc.const.h ed.defns.h alint ${DFLAGS} ${LFLAGS} sh*.c tw*.c ed*.c tc.*.c ${LIBES} print: @pr READ_ME @pr makefile makefile.* @(size -l a.out; size *.${SUF}) | pr -h SIZES @${CXREF} sh*.c | pr -h XREF @ls -l | pr @pr sh*.h [a-rt-z]*.h sh*.c alloc.c vprint: @pr -l84 READ_ME TODO @pr -l84 makefile makefile.* @(size -l a.out; size *.${SUF}) | pr -l84 -h SIZES @${CXREF} sh*.c | pr -l84 -h XREF @ls -l | pr -l84 @${CXREF} sh*.c | pr -l84 -h XREF @pr -l84 sh*.h [a-rt-z]*.h sh*.c alloc.c vgrind: @cp /dev/null index @for i in *.h; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done @for i in *.c; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done @vgrind -t -x -h Index index >/crp/bill/csh/index.t install: tcsh -mv -f ${DESTBIN}/tcsh ${DESTBIN}/tcsh.old cp tcsh ${DESTBIN}/tcsh -strip ${DESTBIN}/tcsh chmod 555 ${DESTBIN}/tcsh install.man: tcsh.man -rm -f ${DESTMAN}/tcsh.${MANSECT} cp tcsh.man ${DESTMAN}/tcsh.${MANSECT} chmod 444 ${DESTMAN}/tcsh.${MANSECT} # Amiga Unix #install.man: tcsh.man # compress tcsh.man # cp tcsh.man.Z ${DESTMAN}/tcsh.Z # chmod 444 ${DESTMAN}/tcsh.Z # Apple A/UX #install.man: tcsh.man # -rm -f ${DESTMAN}/tcsh.${MANSECT}.Z # nroff -man tcsh.man | compress > ${DESTMAN}/tcsh.${MANSECT}.Z # chmod 444 ${DESTMAN}/tcsh.${MANSECT}.Z clean: ${RM} -f a.out strings x.c xs.c tcsh tcsh.a _MAKE_LOG core gethost ${RM} -f *.${SUF} sh.prof.c ed.defns.h tc.const.h sh.err.h tc.defs.c ${RM} -f tcsh.*.m tcsh.*.cat veryclean: clean ${RM} -f config.h ${RM} -f *~ #* tags: /tmp ${CTAGS} sh*.c catalogs: @(cd nls; make catalogs) # # Dependencies # config.h: config_f.h TCH=tc.h tc.const.h tc.decls.h tc.nls.h tc.os.h tc.sig.h SHH=sh.h sh.types.h sh.char.h sh.err.h sh.dir.h sh.proc.h pathnames.h \ sh.decls.h ${TCH} TWH=tw.h tw.decls.h EDH=ed.h ed.decls.h # EDH EDINC=sh.${SUF} sh.func.${SUF} sh.lex.${SUF} sh.print.${SUF} sh.proc.${SUF} \ sh.set.${SUF} tc.bind.${SUF} tc.os.${SUF} tc.prompt.${SUF} \ tc.sched.${SUF} tw.parse.${SUF} ${EDOBJS} ${EDINC} : ${EDH} # SHH ${OBJS}: config.h ${SHH} # TWH TWINC=ed.chared.${SUF} ed.inputl.${SUF} sh.exec.${SUF} sh.func.${SUF} \ sh.set.${SUF} tc.func.${SUF} tc.nls.${SUF} ${TWOBJS} ${TWINC}: ${TWH} # glob.h glob.${SUF} sh.glob.${SUF}: glob.h # ed.defns.h EDDINC=tc.bind.${SUF} tc.func.${SUF} tc.os.${SUF} ${EDOBJS} ${EDDINC}: ed.defns.h # tc.defs.o tc.defs.${SUF}: tc.defs.c sh.h tcsh-6.24.13/Ported000066400000000000000000000572631463776674600140570ustar00rootroot00000000000000 Hello, This file contains a list of machines used, libraries compiler etc. If you find it out-of-date, or you have additions or changes, please let me know. christos VENDOR : Sun MODELS : sun3, sun4, sun386i COMPILER: cc, gcc, acc CFLAGS : normal LIBES : -ltermcap OS : sunos 3.5, 4.0, 4.1, 4.1.1, 4.1.2, 4.1.3, 4.1.4 CONFIG : sunos* ENVIRON : n/a NOTES : Don't compile with /usr/5bin/cc VERSION : 6.08 VENDOR : Sun MODELS : sun4, ultra COMPILER: cc, gcc CFLAGS : normal LIBES : -lcurses -lsocket -lnsl OS : solaris 2.1, 2.2, 2.3, 2.4, 2.5, 2.5.1 CONFIG : sol* ENVIRON : n/a NOTES : The sunpro compiler cannot compile tcsh with -O, it crashes : on some files. In any case do not use -O with any of the : tcsh files, because the optimized code assumes that the : floating point is already initialized and does not do the : necessary initializations. This results in weird floating : point failures of programs exec'ed from tcsh. VERSION : 6.08 VENDOR : Sun MODELS : ultra COMPILER: WorkShop cc CFLAGS : normal LIBES : -lcurses -lsocket -lnsl OS : solaris 2.6, 2.7, 8 CONFIG : sol26 ENVIRON : n/a NOTES : none VERSION : 6.08 VENDOR : Sun MODELS : ultra, i686, x86_64 COMPILER: Sun Studio cc CFLAGS : normal LIBES : -lcurses -lsocket -lnsl OS : solaris 9, 10 CONFIG : sol29 ENVIRON : n/a NOTES : none VERSION : 6.18 VENDOR : Sun MODELS : i386 COMPILER: cc, gcc CFLAGS : -D__STDC__=0 LIBES : -lcurses -lsocket -lnsl OS : solaris 2.1 CONFIG : sol2 ENVIRON : n/a NOTES : n/a VERSION : 6.04.13 VENDOR : Sun MODELS : sun4 COMPILER: gcc CFLAGS : normal LIBES : -ltermcap OS : linux 2.0.x, 2.1.x CONFIG : linux ENVIRON : n/a NOTES : none VERSION : 6.07.03 VENDOR : hp MODELS : apollo COMPILER: cc CFLAGS : -U__STDC__ -I. -O LIBES : -ltermcap OS : domain 10.4.3 CONFIG : bsd ENVIRON : bsd4.3 NOTES : Don't use gcc; breaks tc.os.c VERSION : 6.01.00 VENDOR : hp MODELS : hp9000s300, hp9000s700, hp9000s800 COMPILER: cc, gcc CFLAGS : normal (-Aa -O3 hpux 8.0, 8.07, 9.05) LIBES : -ltermcap OS : hpux 6.5, 7.0.x, 8.0, 9.05 CONFIG : hpux{7,8} ENVIRON : n/a NOTES : Don't use -lBSD; breaks getpgrp(). Config.hp-3.2 obsolete? : Some versions of the compiler are broken with -O3. Try 'ls *' : If it does not work, lower the optimization level... VERSION : 6.05.06 VENDOR : hp MODELS : hp9000s700 COMPILER: cc, c89, gcc CFLAGS : +O3 -Aa (cc), +O3 (c89), normal (gcc) LIBES : -ltermcap OS : hpux 10.00, 10.01 CONFIG : hpux8 ENVIRON : n/a NOTES : Carl-Olof Almbladh (coa@teorfys.lu.se) : To make a statically linked version: in config_f.h, #undef NLS : and use these LDFLAGS in the Makefile: LDFLAGS= -Wl,-a,archive : [orban@kato.den.csci.csc.com (Tom Orban) VERSION : 6.08 VENDOR : hp MODELS : SPP-1200 SPP-1600 S-2X00 X-2X00 COMPILER: cc CFLAGS : -Ae LIBES : -ltermcap OS : SPP-UX 5.X CONFIG : hpux8 ENVIRON : n/a NOTES : n/a VERSION : 6.07.02 VENDOR : hp MODELS : hp9000s500 COMPILER: cc CFLAGS : -I. -O LIBES : -ltermcap OS : hpux 5.2 CONFIG : hp-5.2 ENVIRON : n/a NOTES : very slow in executing commands (I think the reason is NOTES : a very slow fork) VERSION : 6.00.01 VENDOR : digital MODELS : vax COMPILER: cc, gcc CFLAGS : normal LIBES : -ltermcap OS : bsd4.3, bsd4.4 CONFIG : bsd* ENVIRON : n/a NOTES : cc broken: typedef void sigret_t; typedef void pret_t; VERSION : 6.00.03 VENDOR : digital MODELS : vax COMPILER: cc, gcc CFLAGS : normal LIBES : -ltermcap OS : mtXinu 4.3 CONFIG : mtxinu ENVIRON : n/a NOTES : cc broken: typedef void sigret_t; typedef void pret_t; VERSION : 6.03.09 VENDOR : digital MODELS : vax, DECstation COMPILER: cc, gcc CFLAGS : -O -Olimit 2000 (cc), normal (gcc) LIBES : -ltermcap OS : ultrix 3.0 (vax), 4.0, 4.1, 4.2, 4.3, 4.4, 4.5 CONFIG : ultrix ENVIRON : n/a NOTES : pcc broken: typedef void sigret_t (vax); NOTES : mips compiler on ultrix 3.5 needs -Dvoid=int NOTES : vax compiler on ultrix 3.0 needs -Dvoid=int NOTES : Does Ultrix 4.x still need YPBUGS? NOTES : Ultrix4.2 may need NAMEI_BUG VERSION : 6.09.00 VENDOR : Apple MODELS : macII COMPILER: cc CFLAGS : normal (-ZP) LIBES : -ltermcap (-lposix -ltermcap) OS : aux 2.0 CONFIG : mac2 (-DPOSIX -DPOSIXJOBS) ENVIRON : n/a NOTES : Tcsh can compile both in non POSIX and POSIX mode. The NOTES : default configuration is non POSIX. The flags in parentheses NOTES : are the changes that are needed to compile in POSIX mode VERSION : 6.00.01 VENDOR : ibm MODELS : ps/2, rs6000, ibm370, ibmESA COMPILER: cc CFLAGS : normal LIBES : -lcurses -lbsd [No -lbsd for 4.1] OS : aix 3.1,3.2,4.1 (rs6000) aix 1.1 (ps/2) aix G9.9 (ibm370) : aix (ibmESA) CONFIG : aix ENVIRON : n/a NOTES : aix G9.9 sfname() frees bad pointers. Use TCF with care! NOTES : aix 3.2 may need NAMEI_BUG NOTES : aix 3.2 may need _BSD_INCLUDES defined in h NOTES : aix 4.1 does not need -lbsd anymore. VERSION : 6.06.00 (rs6000) VENDOR : ibm MODELS : ibm390 COMPILER: c89 CFLAGS : normal LIBES : -lcurses OS : os390 R 2.7 CONFIG : os390 ENVIRON : USS (formerly OpenEdition, aka POSIX) NOTES : Used GNU make for OS/390. NOTES : Use `CFLAGS="" ./configure` to avoid -g and make binary NOTES : half as large. VERSION : 6.09.00 VENDOR : ibm MODELS : rt COMPILER: hc, gcc CFLAGS : -I. -U__STDC__ LIBES : -ltermcap OS : aos 4.3 CONFIG : bsd ENVIRON : n/a NOTES : Old versions of the compiler break with -O. No ansi include NOTES : files so we have to undef __STDC__ VERSION : 6.05.06 VENDOR : ibm MODELS : rt COMPILER: pcc CFLAGS : -I. -U__STDC__ -DPCC LIBES : -ltermcap OS : aos 4.3 CONFIG : bsd ENVIRON : n/a NOTES : Old versions of the compiler break with -O. No ansi include NOTES : files so we have to undef __STDC__ NOTES : pcc broken: typedef void sigret_t; typedef void pret_t; VERSION : 6.05.06 VENDOR : ibm MODELS : rt COMPILER: cc CFLAGS : -I. -Nd4000 -Nn3000 LIBES : -lcurses OS : aix 2.2.1 CONFIG : aix ENVIRON : n/a NOTES : Stacksize limit is 1K off? VERSION : 6.00.03 VENDOR : sequent MODELS : balance, symmetry COMPILER: cc CFLAGS : normal LIBES : -ltermcap -lseq OS : Dynix 3.1, 3.2, ptx 1.2 CONFIG : sequent ENVIRON : universe on Dynix 3.1, 3.2: ucb NOTES : none VERSION : 6.04.00 VENDOR : sequent MODELS : symmetry COMPILER: gcc 2.6.2 CFLAGS : -m486 LIBES : -ltermcap -lseq -lsocket -linet -lnsl OS : DYNIX/ptx 2.1.0, 4.1.3 CONFIG : sequent ENVIRON : NOTES : Didn't work for me with Sequent's /bin/cc NOTES : 4.1.3 does not need libinet anymore. VERSION : 6.05.00 VENDOR : encore MODELS : multimax COMPILER: gcc CFLAGS : normal LIBES : -ltermcap OS : umax 4.2 CONFIG : bsd ENVIRON : n/a NOTES : none VERSION : 6.00.00 VENDOR : sony MODELS : news 1850, 1750 COMPILER: gcc CFLAGS : normal LIBES : -ltermcap OS : bsd 4.3, news-os 3.3,4.1C CONFIG : bsd ENVIRON : n/a NOTES : none VERSION : 6.05.06 VENDOR : ibm + compatibles MODELS : i386,i286 COMPILER: cc CFLAGS : normal LIBES : -ltermcap -ldir -lx OS : xenix CONFIG : xenix ENVIRON : n/a NOTES : none VERSION : 6.00.01 VENDOR : hp MODELS : hp300 COMPILER: cc, gcc CFLAGS : normal LIBES : -ltermcap OS : MORE/bsd 4.3+ CONFIG : mtxinu ENVIRON : n/a NOTES : none VERSION : 6.05.06 VENDOR : hp, motorola MODELS : hp300, m68k COMPILER: gcc CFLAGS : normal LIBES : -ltermcap -lcrypt OS : NetBSD 1.0A CONFIG : bsd4.4 ENVIRON : n/a NOTES : none VERSION : 6.05.06 VENDOR : digital MODELS : vax COMPILER: gcc CFLAGS : normal LIBES : -ltermcap OS : bsd 4.3reno CONFIG : bsdreno NOTES : ttyname() is buggy. calls closedir() twice. See BUILDING ENVIRON : n/a VERSION : 6.00.04 VENDOR : Cray Research MODELS : Y-MP COMPILER: cc CFLAGS : normal LIBES : -ltermcap OS : Unicos 6.0 CONFIG : cray ENVIRON : n/a NOTES : none VERSION : 6.00.01 VENDOR : Cray Research MODELS : C90 COMPILER: cc CFLAGS : normal LIBES : -ltermcap OS : Unicos 9.0.2.1 CONFIG : cray ENVIRON : n/a NOTES : none VERSION : 6.08 VENDOR : Cray Research MODELS : SV1, probably also SV2 COMPILER: cc CFLAGS : normal LIBES : -ltermlib OS : Unicos 10.0.1.0 CONFIG : cray ENVIRON : n/a NOTES : none VERSION : 6.11 VENDOR : pyramid MODELS : MIS4/2T COMPILER: cc CFLAGS : -OG LIBES : -ltermcap OS : OSx5.1,6.4 CONFIG : pyr ENVIRON : n/a NOTES : If there are problems with the global optimizer, use -OP NOTES : If you only have the AT&T universe, use the pyratt config NOTES : file and define -D_PID_T -Dpyr. VERSION : 6.06.00 VENDOR : next MODELS : any COMPILER: gcc or cc -arch m68k -arch i386 CFLAGS : -O2 -g LIBES : -ltermcap # [-lcs 2.0] OS : next os 2.x, 3.x CONFIG : mach ENVIRON : n/a NOTES : NeXTSTeP 3.3 on intel defines speed_t so compile with -D_SPEED_T NOTES : NeXT's cc -E adds spaces before and after array brackets! NOTES : You'll need to change the sed expression in the Makefile to NOTES : something like: NOTES : 's/Char \([a-zA-Z0-9_]*\) *\[ *\].*/extern Char \1[];/' VERSION : 6.04.00 VENDOR : Apple MODELS : any COMPILER: cc CFLAGS : -O3 -pipe -g -arch ppc -arch i386 -UNeXT OS : Rhapsody 5 CONFIG : rhapsody ENVIRON : n/a NOTES : CFLAGS="-O3 -pipe -g -UNeXT" configure && make VERSION : 6.08.00 VENDOR : Apple MODELS : any COMPILER: cc CFLAGS : -O3 -pipe -g -arch ppc -arch i386 OS : Darwin CONFIG : darwin ENVIRON : n/a NOTES : CFLAGS="-O3 -pipe -g -arch ppc -arch i386 -UNeXT" configure && make VERSION : 6.11.05 VENDOR : Heurikon MODELS : HK68 COMPILER: gcc (Green Hills C-68000) CFLAGS : -ga -X138 -X25 -I. LDFLAGS : -n LIBES : -lcurses -ltermcap -ldirent OS : UniPlus+ 5.0 CONFIG : hk68 ENVIRON : n/a NOTES : Need Doug Gwyn's POSIX directory library (libdirent.a) VERSION : 6.00.01 VENDOR : Amdahl MODELS : n/a COMPILER: cc/gcc CFLAGS : normal LIBES : -lcurses -lsocket -lbsd CONFIG : amdahl ENVIRON : n/a VERSION : 6.00.01 VENDOR : prime MODELS : exl 300 series COMPILER: cc CFLAGS : -O -s -I. LIBES : -lcurses -lstcp OS : system v.3.1.2 CONFIG : sysv ENVIRON : sysv NOTES : Is libstcp.a on all exl 300s? VERSION : 6.00.01 VENDOR : convex MODELS : c220 COMPILER: cc CFLAGS : normal LIBES : -ltermcap OS : 9.0.6 (bsd 4.3) CONFIG : convex ENVIRON : n/a NOTES : Dont use the -pcc flag. : Use setty to fix the default tty settings. VERSION : 6.00.01 VENDOR : Norsk Data MODELS : nd5000 COMPILER: cc CFLAGS : normal LIBES : -ltermcap OS : Ndix Version C CONFIG : bsd ENVIRON : n/a NOTES : The -O option makes the compiler run for ages! VERSION : 6.00.03 VENDOR : SGI MODELS : 4D, 3000 COMPILER: cc CFLAGS : -D__STDC__ LIBES : -lcurses -lsun -lbsd -lc_s OS : IRIX (3.?) 3.2 3.3 4.0 CONFIG : sgi ENVIRON : n/a NOTES : AUTOLOGOUT is probably best undef'ed NOTES : For 4.0, the NLS define in h can be enabled. NOTES : 4.0.5a cc does not have -O3 anymore. NOTES : If you don't like -lbsd, you can define POSIXJOBS in NOTES : config.h and omit it. VERSION : 6.06.00 VENDOR : SGI MODELS : R8000 PowerIndigo2 COMPILER: cc -n32 CFLAGS : -D__STDC__ LIBES : -lcurses -lsun -lbsd -lc_s OS : IRIX 6.2 CONFIG : sgi ENVIRON : n/a NOTES : CCOPTIONS=-OPT:fold_arith_limit=4000 NOTES : SHLIBDIR=/usr/lib32 NOTES : LDPOSTLIB = -nostdlib -L$(ROOT)$(SHLIBDIR)/mips3 \ NOTES : -L$(ROOT)$(SHLIBDIR) NOTES : In config.h #undef NLS and #undef NLS_CATALOGS VERSION : 6.06.00 VENDOR : SGI MODELS : Onyx R10000 COMPILER: gcc-2.7.2.1 configured for mips-sgi-irix5.3 CFLAGS : none LIBES : -ltermcap -lbsd OS : IRIX 6.2 CONFIG : sgi ENVIRON : n/a VERSION : 6.07.02 VENDOR : ibm + compatibles MODELS : i386,i486 COMPILER: /bin/cc CFLAGS : normal LIBES : -ltermlib -lsocket -lnsl (without BSDTIMES) LIBES : -ltermlib -lsocket -lnsl -lc /usr/ucblib/libucb.a (BSDTIMES) OS : SVR4 (DELL, ESIX, ISC, UHC) CONFIG : sysv4 ENVIRON : n/a NOTES : none VERSION : 6.05.06 VENDOR : ibm + compatibles MODELS : i386,i486 COMPILER: gcc CFLAGS : normal LIBES : -ltermcap OS : linux 0.8x, 0.9x, 1.x CONFIG : linux ENVIRON : n/a NOTES : none VERSION : 6.05.06 VENDOR : ibm + compatibles MODELS : i386,i486 COMPILER: gcc CFLAGS : normal LIBES : -lcurses -lc_s [for crypt] OS : SVR3.2.2 [SCO] CONFIG : sco32v2 ENVIRON : n/a NOTES : none VERSION : 6.03.00 VENDOR : stardent MODELS : gs2600 COMPILER: /bin/cc CFLAGS : -O LIBES : -lcurses OS : stellix CONFIG : stellar ENVIRON : n/a NOTES : works but not worth compiling with -O4... NOTES : setpgrp() and SIGCHLD work the BSD way, not the way documented. NOTES : we need to define BACKPIPE VERSION : 6.00.04 VENDOR : stardent MODELS : titan 3000 series COMPILER: /bin/cc CFLAGS : -O -43 LIBES : -ltermcap OS : OS 3.0.3 CONFIG : bsd ENVIRON : n/a NOTES : Kernel bug with SIGTTIN, Try vi, ^Z, bg, fg.... VERSION : 6.01.01 VENDOR : stardent MODELS : titan 1500 series COMPILER: cc CFLAGS : -O -43 LIBES : -ltermcap OS : OS 2.5 CONFIG : bsd ENVIRON : n/a NOTES : Kernel bug with SIGTTIN, Try vi, ^Z, bg, fg.... NOTES : You can add -w to the CFLAGS to suppress the warnings. VERSION : 6.02.07 VENDOR : SGI MODELS : INDIGO COMPILER: cc CFLAGS : -D__STDC__ LIBES : -lcurses -lsun -lbsd -lc_s OS : IRIX (3.?) 3.2 3.3 4.0 CONFIG : sgi ENVIRON : n/a NOTES : AUTOLOGOUT is probably best undef'ed NOTES : For 4.0, the NLS define in h can be enabled. VERSION : 6.01 VENDOR : SGI MODELS : INDY COMPILER: cc CFLAGS : LIBES : -lcurses -lbsd OS : IRIX 5.1 CONFIG : sgi ENVIRON : n/a NOTES : it will build without -lbsd but then job control NOTES : won't actually work. VERSION : 6.04.00 VENDOR : alliant MODELS : FX/2800 series COMPILER: scc CFLAGS : normal LIBES : -ltermcap OS : Alliant Concentrix 2800 2.2.00 CONFIG : bsd ENVIRON : n/a NOTES : For a newer version of the operating system try defining : NEW_OS in alliant [or better find a way to tell : them apart. VERSION : 6.03.00 VENDOR : stardent MODELS : Vistra 800 COMPILER: /bin/cc CFLAGS : -O LIBES : -lcurses -lnsl -lsocket -lc /usr/ucblib/libucb.a OS : SYSVR4 CONFIG : sysv4 ENVIRON : n/a NOTES : Works like a charm VERSION : 6.01 VENDOR : Evans & Sutherland MODELS : ESV COMPILER: cc CFLAGS : mips systems LIBES : -ltermcap OS : ES/os 2.2 (UMIPS mips ATT_V3_0) CONFIG : mips ENVIRON : bsd4.3 NOTES : would it be preferable to have HOSTTYPE of NOTES : "esv" instead of "mips"? VERSION : 6.01.00 VENDOR : masscomp MODELS : Masscomp 6000 COMPILER: cc CFLAGS : production LIBES : -ltermcap OS : RTU 5.0 CONFIG : masscomp ENVIRON : Link in the "bsd" universe as opposed to "att". NOTES : For pre RTU 6.0, remember to remove the #define RTU6 in the NOTES : masscomp file. NOTES : As of tcsh v6.02.07, try putting "bindkey ^t stuff-char" NOTES : in your /etc/csh.cshrc for masscomp kernel (ctrl-t) status. VERSION : 6.02.07 VENDOR : masscomp MODELS : Masscomp 5400 COMPILER: cc CFLAGS : normal LIBES : -ltermcap -lndir -lsocket -ljobs OS : RTU 6.0 CONFIG : masscomp ENVIRON : Link in the "bsd" universe as opposed to "att". NOTES : n/a VERSION : 6.01.00 VENDOR : Cray Computer MODELS : CRAY-2 & CRAY-3 COMPILER: cc CFLAGS : normal LIBES : -lcurses -lnet OS : CSOS 1.0 CONFIG : csos ENVIRON : n/a NOTES : none VERSION : 6.02 VENDOR : Motorola MODELS : Delta 3000/Delta 4000 COMPILER: cc CFLAGS : normal LIBES : -lcurses OS : System V/68 R3V6.2, R3V7 CONFIG : sysV68 ENVIRON : n/a NOTES : none VERSION : 6.01.00, 6.02.00 VENDOR : Motorola MODELS : MPC 3062 COMPILER: cc CFLAGS : Broken optimizers... LIBES : -lcurses -lsec OS : System V/88 R32V2 CONFIG : sysV88 ENVIRON : n/a NOTES : If you're using the bundled Greenhills compiler, don't use -O. NOTES : One error -O causes is failure to exec scripts with /bin/sh NOTES : if they don't have a #! header on top. VERSION : 6.02.07 VENDOR : alliant MODELS : FX/8X series COMPILER: pcc CFLAGS : normal LIBES : -ltermcap OS : Concentrix 6.0.00 beta CONFIG : bsd ENVIRON : n/a NOTES : Needs to define DIRENT in h VERSION : 6.02.00 VENDOR : alliant MODELS : FX/8X series COMPILER: pcc CFLAGS : normal LIBES : -ltermcap OS : Concentrix 5.7.00 CONFIG : bsd ENVIRON : n/a NOTES : n/a VERSION : 6.00.01 VENDOR : gould (encore) MODELS : NP1 COMPILER: cc CFLAGS : production LIBES : -ltermcap OS : UTX/32 3.1A CONFIG : bsd ENVIRON : n/a NOTES : n/a VERSION : 6.02.00 VENDOR : gould (encore) MODELS : 9050 COMPILER: cc CFLAGS : production LIBES : -ltermcap OS : UTX/32 2.1A CONFIG : bsd ENVIRON : n/a NOTES : n/a VERSION : 6.02.00 VENDOR : ibm & compatible MODELS : i386 COMPILER: cc CFLAGS : production LIBES : -lcurses -lcposix OS : 3.2 CONFIG : isc ENVIRON : ISC386 NOTES : n/a VERSION : 6.02.00 VENDOR : att MODELS : 3b2-600GR (RISC) COMPILER: cc CFLAGS : production LIBES : -lcurses OS : SystemV R4.0 CONFIG : sysv4 ENVIRON : n/a NOTES : n/a VERSION : 6.02.00 VENDOR : att MODELS : 3b2-600G COMPILER: cc CFLAGS : production LIBES : -lcurses OS : SystemV R3.2.3 CONFIG : sysv3 ENVIRON : n/a NOTES : n/a VERSION : 6.02.00 VENDOR : tektronix MODELS : XD88/10 COMPILER: cc CFLAGS : Broken optimizers... LIBES : -ltermcap -lsec OS : UTekV 3.2e CONFIG : tekXD88 ENVIRON : n/a NOTES : If you're using the bundled Greenhills compiler, don't use -O. NOTES : One error -O causes is failure to exec scripts with /bin/sh NOTES : if they don't have a #! header on top. VERSION : 6.02.07 VENDOR : tektronix MODELS : 4300 COMPILER: cc CFLAGS : production LIBES : -ltermcap OS : UTek 4.0 (BSD 4.2) CONFIG : bsd ENVIRON : n/a NOTES : set DFLAGS = -DUTek -DBSD in the Makefile VERSION : 6.02.07 VENDOR : BBN MODELS : butterfly gp1000 COMPILER: cc CFLAGS : production LIBES : -ltermcap OS : Mach 1000 version 2.5 CONFIG : mach ENVIRON : n/a NOTES : n/a VERSION : 6.02.07 VENDOR : sony MODELS : news 3700 COMPILER: cc CFLAGS : -O -Wf,-XNp15000,-XNd15000,-XNh15000 LIBES : -lcurses -lc /usr/ucblib/libucb.a OS : sysvr4, news-os 5.02 CONFIG : sysv4 ENVIRON : n/a NOTES : Use /usr/bin/cc, not /usr/ucb/cc. VERSION : 6.00.03 VENDOR : ibm & compatible MODELS : i386, i486 COMPILER: cc CFLAGS : production LIBES : -lterm OS : Coherent 4.0 CONFIG : coh3 ENVIRON : gnu tools (see below) NOTES : The standard make, /bin/sh and sed that come with Coherent are NOTES : not quite up to the makefile. Either use gnu make or change NOTES : occurances of '# to '\# since Coherent's make takes all '#'s to NOTES : be a comment, even when quoted, except when escaped by '\'. NOTES : Coherent's /bin/sh does not allow you to set VERSION, etc. NOTES : since they are hard-wired internal variables. Either use NOTES : /usr/bin/ksh, another sh or change the name of the offending NOTES : variables. Coherent's sed, unfortunately, is broken beyond a NOTES : workaround. Either get gnu sed or run that portion of the NOTES : makefile on a machine with a full sed and import the output. VERSION : 6.02.08 VENDOR : Control Data Systems MODELS : CD4680 COMPILER: cc, cc2.20 (mips) CFLAGS : mips systems, DFLAGS=-DCDC LIBES : -ltermcap OS : EP/IX 1.4.3 (RiscOS based) CONFIG : mips ENVIRON : bsd4.3 (if sysv, need "set path=(/usr/bsd43/bin $path)" ) NOTES : n/a VERSION : 6.02.00 VENDOR : alliant MODELS : FX/8X series COMPILER: pcc CFLAGS : normal LIBES : -ltermcap -lresolv OS : Concentrix 6.0.00 beta CONFIG : alliant (see NOTES) ENVIRON : n/a NOTES : Needs to define DIRENT and BSDLIMIT in h. The NOTES : beta release of the Concentrix 6.0.00 has some errors NOTES : in the system header files, namely, /usr/include/sys/dir.h. VERSION : 6.03.00 VENDOR : hp MODELS : hp9000s700 COMPILER: cc CFLAGS : No -O here!!! Breaks quoting! Try echo 'foo | bar'... LIBES : -ltermcap OS : HP OSF/1 1.0 CONFIG : hposf1 ENVIRON : n/a NOTES : n/a VERSION : 6.03.00 VENDOR : digital MODELS : DEC 3000/400 (alpha) COMPILER: cc CFLAGS : -call_shared -I. -I.. -O -Olimit 2000 -std1 LIBES : -lcurses OS : OSF1 1.2 CONFIG : decosf1 ENVIRON : n/a NOTES : none VERSION : 6.03 VENDOR : digital MODELS : DEC 3000/400 (alpha) COMPILER: cc CFLAGS : -O2 -I. -I.. -Olimit 2000 LIBES : -lcurses OS : OSF1 (Digital Unix) 1.3, 2.0, 3.0, 3.2, 4.0 CONFIG : decosf1 ENVIRON : n/a NOTES : none VERSION : 6.07.11 VENDOR : Intel MODELS : Paragon COMPILER: icc CFLAGS : -O2 LIBES : -ltermcap OS : Paragon OSF/1 Release 1.0.1 Server 1.0 R1.0 CONFIG : parosf1 ENVIRON : n/a NOTES : I have gotten two different config files that both seem to : work! VERSION : 6.03.00 VENDOR : Data General MODELS : AViiON mc88000 COMPILER: cc CFLAGS : -O2 LIBES : -lcurses OS : DGUX 5.4R2.01 CONFIG : dgux5.4 ENVIRON : n/a NOTES : n/a VERSION : 6.04.00 VENDOR : Data General MODELS : Aviion COMPILER: gcc 2.5.8 CFLAGS : -g -O2 -msvr4 LIBES : -ltermcap OS : DGUX 5.4.1 CONFIG : dgux5.4 ENVIRON : sde m88kdguxelf VERSION : 6.05.00 VENDOR : Harris MODELS : Tahoe COMPILER: cc, gcc 1.42 CFLAGS : -O LIBES : -ltermcap OS : CX/UX 5.1 CX/UX 7.1 CONFIG : hcx ENVIRON : universe bsd NOTES : n/a VERSION : 6.06.01 VENDOR : Multiflow MODELS : multiflow COMPILER: cc CFLAGS : -O5 -sb_trace 0 -DMULTIFLOW LIBES : -ltermcap -lcrypt OS : 4.3 BSD TRACE/UNIX CONFIG : bsd ENVIRON : n/a NOTES : Lower the optimization or you'll get a 5M binary! NOTES : cc broken: typedef void sigret_t; typedef void pret_t; VERSION : 6.04.00 VENDOR : Unixware MODELS : all COMPILER: cc CFLAGS : normal LIBES : -lcrypt -ltermlib -lsocket -lnsl -lgen OS : Unixware 2.03 (4.2MP) CONFIG : svr4 ENVIRON : n/a NOTES : Remove PW_SHADOW from config file, or add -lgen for getspnam VERSION : 6.07.00 VENDOR : Intergraph MODELS : clipper COMPILER: cc CFLAGS : n/a LIBES : -ltermcap -lbsd OS : clix 7.1.3 CONFIG : clipper ENVIRON : n/a NOTES : n/a VERSION : 6.05.00 VENDOR : SNI (Siemens Nixdorf Information Systems) MODELS : rm400 (R4000 mips) COMPILER: /usr/bin/cc CFLAGS : -kansi; xmkmf (=> -DSVR4 -DSNI -DSMSINFO -DR3000) LIBES : -ltermcap -lc -L/usr/ucblib -lucb OS : SINIX 5.42 CONFIG : sysv4 ENVIRON : NOTES : This is a POSIX (XPG-4) system. NOTES : Make sure that -lucb is included _last_ (even after -lc) NOTES : so use: -ltermcap -lc -L/usr/ucblib -lucb NOTES : In config.h, set HAVEUTMPX und unset BSDSIGS and BSDTIMES NOTES : VERSION : 6.06.03 VENDOR : U/WIN MODELS : i386 COMPILER: cc CFLAGS : -O LIBES : -lcurses OS : Windows NT with U/WIN CONFIG : uwin ENVIRON : NOTES : Needs POSIX.DLL from U/WIN version later than 1.6 NOTES : Did not function correctly when using #define SYSMALLOC VERSION : 6.07.02 VENDOR : SNI (Siemens Nixdorf Information Systems) MODELS : rm600 (R4000 mips) COMPILER: /usr/bin/cc CFLAGS : -kansi -DSVR4 -DSNI -DSMSINFO -DR3000 LIBES : -ltermcap -lsocket -lxnet -lc -L/usr/ucblib -lucb OS : SINIX 5.43 CONFIG : sysv4 ENVIRON : NOTES : In config.h, set HAVEUTMPX und unset BSDSIGS, NOTES : BSDTIMES, and BSDLIMIT, since otherwise resource.h NOTES : is falsely searched in /usr/ucbinclude/sys/ NOTES : VERSION : 6.07.02 VENDOR : FUJITSU MODELS : ds90 COMPILER: cc CFLAGS : -O -I. -DSVR4 -DANSICPP LIBES : -lsocket -lnsl -ltermcap OS : UXP/DS V20L10(SVR4.2) CONFIG : sysv4 ENVIRON : n/a NOTES : n/a VERSION : 6.07.02 VENDOR : Fujitsu ICL MODELS : SuperServer Intel based COMPILER: gcc 2.7.2 CFLAGS : normal for gcc 2.1+ .... -O2 $(INCLUDES) LIBES : -ltermlib -lsocket -lnsl -lcrypt -lgen OS : SCO UnixWare 2.1 SysVR4.2 i386 x86at CONFIG : sysv4 ENVIRON : n/a NOTES : none VERSION : 6.06.00 VENDOR : NEC MODELS : SX-4, SX-5 COMPILER: cc CFLAGS : -h0,ansi,novector,float0 # for NEC SX-4 LIBES : -Gsmall OS : NEC's CONFIG : superux8 ENVIRON : n/a NOTES : none VERSION : 6.08.01 VENDOR : Unixware 7.1.0 MODELS : all COMPILER: gcc CFLAGS : normal LIBES : -ltermlib -lsocket -lgen OS : Unixware 7.1.0 CONFIG : svr5 ENVIRON : n/a NOTES : none VERSION : 6.09.00 tcsh-6.24.13/README.md000066400000000000000000000012461463776674600141440ustar00rootroot00000000000000# TCSH *C shell with file name completion and command line editing* The Tcsh source code is available on GitHub as a read-only repo mirror at: > https://github.com/tcsh-org/tcsh Instructions for compiling Tcsh can be found in [BUILDING]. PLEASE file any bug reports, fixes, and code for new features at: > https://bugs.astron.com/ Comments, questions, etc. (even flames) are welcome via email to the tcsh mailing list: > tcsh@astron.com > https://mailman.astron.com/mailman/listinfo/tcsh [![Coverity Scan][badge]][coverity] [BUILDING]: BUILDING [badge]: https://scan.coverity.com/projects/20307/badge.svg [coverity]: https://scan.coverity.com/projects/tcsh-org-tcsh tcsh-6.24.13/TOOLS.md000066400000000000000000000010041463776674600140770ustar00rootroot00000000000000# Developer Tools You need the following tools to fully work on tcsh development. - `autoconf` - `gettext` (for `AM_ICONV` in `share/aclocal/intl.m4`) ## Debian The `autoconf` scripts on Debian add a `--runstatedir` option to `configured` that we don't have in the `tcsh` repository, due to running `autoreconf` on NetBSD. Install `gettext` to get `AM_ICONV`. The `gettext-base` package does not include the needed files in `/usr/share/aclocal`. ## NetBSD Install `pkgsrc/devel/gettext-m4` to get `AM_ICONV`. tcsh-6.24.13/WishList000066400000000000000000000255571463776674600143710ustar00rootroot00000000000000 [Home] WishList Home | RecentChanges | Preferences _________________________________________________________________ Surprised by this behavior...is this a bug? (Goal: e.g. distinguish between completely numeric args/names and those containing non-numerics) % touch 1023 pex103 pex103a 104a z101 16a02 1999 2001 2001_A_Space_Odyssey % ls -1 *[^0-9]* 104a 16a02 2001_A_Space_Odyssey pex103 pex103a z101 # (great, looks good to me. Got everything containing a nonnumeric, no more, n o less.) % foreach p ( 1023 pex103 pex103a 104a z101 16a02 1999 2001 2001_A_Space_Odyss ey ) foreach? if ( $p !~ *[^0-9]* ) echo $p foreach? end # (no output. Huh?) % foreach p ( 1023 pex103 pex103a 104a z101 16a02 1999 2001 2001_A_Space_Odyss ey ) foreach? if ( $p =~ *[^0-9]* ) echo $p foreach? end 1023 (!) pex103 pex103a 104a z101 16a02 1999 (!) 2001 (!) 2001_A_Space_Odyssey # (Huh?) The [MAN page description] for =~ and !~ just refer to "(see [Filename substitution])', but evidently there is a (unexplained) difference. The actual filename globbing looks correct to me, but the pattern matching operator behavior is unexpected, if I'm not missing something. tcsh 6.09.00 - bhooglan _________________________________________________________________ Wish "tcsh -l" would accept other flags. At least "-c". Currently I can't get ssh to have the right environment unless it is a login shell. The .ssh/environment doesn't work for me because I login to different machines with different environments. One thing to do would be to not have the different environment for login compared to other shells, but what I would really like is something like... ssh remote_application_server "tcsh -l -c application" The "ssh -t" doesn't work for me and I don't know why. Thanks Tim Fix limit vmemoryuse in Linux In Linux tcsh is unable to limit vmemoryuse. This is because RLIMIT_VMEM isn't defined, instead Linux has RLIMIT_AS which means the same. On Google groups I found patches suggested by Komazaki at http://groups.google.com/groups?hl=sv&lr=&ie=UTF-8&oe=ISO-2022-JP&selm =m3snmczvfc.wl%40thinkpad.osk.3web.ne.jp.osk.3web.ne.jp and Ogawa Hirofumi suggests a patch at http://groups.google.com/groups?hl=sv&lr=&ie=UTF-8&selm=87snmba4id.fsf %40devron.myhome.or.jp None of these patches seems to have been included in version 6.12 as 6.12 still has this problem. /Henrik?? New idea: use last line (or n'th line) of output as input to new command. I often find myself typing something like: >locate lshort /usr/local/stow/share/texmf/doc/latex/general/lshort.dvi . . . /usr/local/store/share/texmf/doc/latex/general/lshort.dvi >xdvi /usr/local/store/share/texmf/doc/latex/general/lshort.dvi Now the way I accomplish writing the last line, is by moving the mouse over the last line, and the copy paste it. It would be very nice, if the shell could keep the last n lines of output in a buffer. This way one could avoid using the mouse by typing something like: >xdvi which would insert the last line of output, similarly could insert the second last line of output. (the exact commands used is of course configured via bindkey). This could save me a couple of times to the mouse everyday - di010070@diku.dk The shell does not capture any output from commands it runs, so this is really more a feature for the terminal (be it hardware or software). --Kim Fix memory leak related to aliasrun(). Precmd, Cwdcmd etc. leak memory. Fix migrate -site $$... Seems to hang... (aix370) Fix history in loops. New idea: sed operations on variables. Lots of people seem to like the idea to be able to do sed type operations on shell variables. Maybe we can extend the syntax of the variable editing to understand string operations. So I would like to be able to use: > set a="this is a STRING" > echo $a:[3-] is is a STRING > echo $a:[#] 16 > echo $a:[6-7] is > echo $a:[-2] ng > echo $a:[-20] Subscript out of bounds. > echo $a:[2-20] Subscript out of bounds. > echo $a:[1-1]:u$a:[2-]. This is a string. Fix pipelines that contain builtins so that they behave correctly. I tried to fix that (most of the code is in sh.sem.c, but it works only for non POSIX machines cause otherwise the setpgid() I added fails). Fix the correct code... How to do that involves A.I.... Rewrite the whole thing. It has taken to much beating over the years... Add another hook like precmd to be executed after the prompt but before the command. Add instructions for using configure in the README file. Make manual page references links in the HTML version of the manual. It is possible to match the words with ([0-9]) after them. Links could be using the manual page CGI at http://www.tac.eu.org/cgi-bin/man-cgi for content. Add OpenBSD?? to the Makefile, etc. A Csh compatability mode would be nice: I know tcsh is supposed to be fully csh compatible, but csh scripts containing such constructs as '$<' , 'if ( -d $file ) cd $file' or any of a great number of other valid csh commands, will produce syntax errors or the like with tcsh, which is frustrating when writing/maintaining csh scripts which have to run on systems with only tcsh and systems with only csh. If such a thing exists, I couldn't find it after searching the man page for two hours, and it should be better documented Add hooks for command completion Either for a dynamically loaded library, or a callback to another program that allows another pass to complete the command. As a trivial example, the module could duplicate the functionality of aliases. A tcsh_mud.so could define sigh, groan, cheer, lol, etc to produce output if they weren't actually valid commands. Properly deal with : in filename substitution Given something like blah.foo:*.foo expand it properly to something like blah.foo:baz.foo:bob.foo:bar.foo It already does this, if you have a file named like that... --Kim Directory commands don't handle blanks in filenames. If I have an environment variable such as: % setenv TOMCAT '/c/Program? Files/Apache? Software Foundation/Tomcat? 5.0' and then do the following, setenv complains that it has too many arguments. % cd /tmp % cd "$TOMCAT" setenv: Too many arguments % dirs /c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 /tmp % pushd "$TOMCAT" /c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 setenv: Too many arguments. % pushd /tmp /tmp /c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 % pushd /c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 /tmp setenv: Too many arguments. Wish tcsh would feature fc (fix command) as in bash !Wish tcsh would featuer fc (fix command) as in bash ! i wish for read-only CVS access to the sources (as i am on the bleeding egde) Functions would be useful! As would being able to redirect stderr (or other file descriptors) independently of stdout! -- Rohan Talip Don't complete commands with non-executable files. For example if I have a file called README in a directory in the PATH, and I type R TAB tcsh will complete README as a command. But README does not have the x bit set, so it's kind of pointless to have that completion. --> Setting the shell variable "recognize_only_executables" will give you this behavior. --Waz If I have in my .tcshrc: complete {cd,pushd} p/1/d/ and I type "complete cd" at the shell prompt nothing is printed. It would be nice if {cd,pushd} p/1/d/ was printed. --> I had programmed this feature a while ago but have not submitted it because the implementation is not robust enough to keep TCSH from crashing when special characters are part of the pattern. I'll get back to it at some point! --Waz It would be nice if "set autolist" would be on by default. --- Unicode (UTF-8) doesn't seem to work. It's not even possible to "make catalogs" in unicode environment. Also unicode support (and other multibyte encodings) should depend on environment variables (LC_CTYPE), not on "set dspmbyte". On unicode terminal translations show empty characters instead of messages. In addition to message catalogs, there are more problems: ipi:~/test/tcsh/bin> ls tcsh åäö ipi:~/test/tcsh/bin> set dspmbyte utf8 ipi:~/test/tcsh/bin> ls ??? ls: No match. Unicode is used more and more, and is default on many environments, so this really should be fixed. --mpaananen _________________________________________________________________ When I have a script called from complete I would like to have the the existing text from the command line passed to that script so that it can look at all existing words to detemine what it should output as the completion list. For example: complete prog 'n/-x/`myscript`' Then when I do this: > prog -a A -b B -x The script would get 'prog -a A -b B -x ' which would allow the script to base its -x completions on the options given for -a and -b (or if they aren't present give nothing - or a message saying that they are required). Setting a temporary environment variable before executing the command would also work and would probably be safer. Perhaps this info is already available as a special variable that can be manually passed to the script: complete prog 'n/-x/`myscript $cmd_line`'? Update: I looked into this further by actually downloading the code and looking through it. It doesn't seem that this information is available anywhere, but I did manage to achieve what I wanted by adding the following two lines around the call to tw_complete (line 278, tw.parse.c 6.12.00): added> tsetenv(STRCURRCMDLINE, (Char *)&qline); looking = tw_complete(cmd_start, &wordp, &pat, looking, &suf); added> Unsetenv(STRCURRCMDLINE); And I added a definition for STRCURRCMDLINE to be "CURRCMDLINE". This provides the environment variable CURRCMDLINE to any script/program running under complete. The only issue I see is picking a sufficiently obscure environment variable that noone else is likely to use, but have it readable enough to understand what it is for. It also shouldn't overwrite an existing ENV variable if it is already in use. _________________________________________________________________ Home | RecentChanges | Preferences Edit text of this page | View other revisions Last edited March 25, 2004 10:27 (diff) Search: ____________________ tcsh-6.24.13/Y2K000066400000000000000000000010531463776674600132110ustar00rootroot00000000000000The tcsh code has been tested on a solaris-2.6 machine and a NetBSD-1.3H machine running before, and after the year 2000. The code has been also visually inspected for Y2K compliance problems. Tcsh does not use time functions for anything but display purposes, so its operation should not be affected assuming that the time related functions of the c library work properly. Note: Since the last audit, tcsh-6.08.00 has been found to have a minor problem with %y in the prompt (it will print 10 instead of 00 in y2k). This has been fixed in tcsh-6.09.00. tcsh-6.24.13/acaux/000077500000000000000000000000001463776674600137635ustar00rootroot00000000000000tcsh-6.24.13/acaux/config.guess000077500000000000000000001403101463776674600163020ustar00rootroot00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2021 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale timestamp='2021-06-03' # This file 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 3 of the License, or # (at your option) any later version. # # This program 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 this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi # Just in case it came from the environment. GUESS= # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. tmp= # shellcheck disable=SC2172 trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 set_cc_for_build() { # prevent multiple calls if $tmp is already set test "$tmp" && return 0 : "${TMPDIR=/tmp}" # shellcheck disable=SC2039,SC3028 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver break fi done if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac } # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case $UNAME_SYSTEM in Linux|GNU|GNU/*) LIBC=unknown set_cc_for_build cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu #else #include /* First heuristic to detect musl libc. */ #ifdef __DEFINED_va_list LIBC=musl #endif #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" # Second heuristic to detect musl libc. if [ "$LIBC" = unknown ] && command -v ldd >/dev/null && ldd --version 2>&1 | grep -q ^musl; then LIBC=musl fi # If the system lacks a compiler, then just pick glibc. # We could probably try harder. if [ "$LIBC" = unknown ]; then LIBC=gnu fi ;; esac # Note: order is significant - the case branches are not exclusive. case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` case $UNAME_MACHINE_ARCH in aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earm*) arch="${UNAME_MACHINE_ARCH#e}" arch="${arch%eb}" arch="${arch%hf}" endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-unknown ;; *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case $UNAME_MACHINE_ARCH in earm*) expr='s/v[0-9]//;s/earm/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case $UNAME_VERSION in Debian*) release='-gnu' ;; *) release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. GUESS=$machine-${os}${release}${abi-} ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE ;; *:SecBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE ;; *:MidnightBSD:*:*) GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE ;; *:ekkoBSD:*:*) GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE ;; *:SolidBSD:*:*) GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE ;; *:OS108:*:*) GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE ;; macppc:MirBSD:*:*) GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE ;; *:MirBSD:*:*) GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE ;; *:Sortix:*:*) GUESS=$UNAME_MACHINE-unknown-sortix ;; *:Twizzler:*:*) GUESS=$UNAME_MACHINE-unknown-twizzler ;; *:Redox:*:*) GUESS=$UNAME_MACHINE-unknown-redox ;; mips:OSF1:*.*) GUESS=mips-dec-osf1 ;; alpha:OSF1:*:*) # Reset EXIT trap before exiting to avoid spurious non-zero exit code. trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` GUESS=$UNAME_MACHINE-dec-osf$OSF_REL ;; Amiga*:UNIX_System_V:4.0:*) GUESS=m68k-unknown-sysv4 ;; *:[Aa]miga[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-amigaos ;; *:[Mm]orph[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-morphos ;; *:OS/390:*:*) GUESS=i370-ibm-openedition ;; *:z/VM:*:*) GUESS=s390-ibm-zvmoe ;; *:OS400:*:*) GUESS=powerpc-ibm-os400 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) GUESS=arm-acorn-riscix$UNAME_RELEASE ;; arm*:riscos:*:*|arm*:RISCOS:*:*) GUESS=arm-unknown-riscos ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) GUESS=hppa1.1-hitachi-hiuxmpp ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. case `(/bin/universe) 2>/dev/null` in att) GUESS=pyramid-pyramid-sysv3 ;; *) GUESS=pyramid-pyramid-bsd ;; esac ;; NILE*:*:*:dcosx) GUESS=pyramid-pyramid-svr4 ;; DRS?6000:unix:4.0:6*) GUESS=sparc-icl-nx6 ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) GUESS=sparc-icl-nx7 ;; esac ;; s390x:SunOS:*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL ;; sun4H:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-hal-solaris2$SUN_REL ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris2$SUN_REL ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) GUESS=i386-pc-auroraux$UNAME_RELEASE ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$SUN_ARCH-pc-solaris2$SUN_REL ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris3$SUN_REL ;; sun4*:SunOS:*:*) case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` GUESS=sparc-sun-sunos$SUN_REL ;; sun3*:SunOS:*:*) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case `/bin/arch` in sun3) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac ;; aushp:SunOS:*:*) GUESS=sparc-auspex-sunos$UNAME_RELEASE ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) GUESS=m68k-milan-mint$UNAME_RELEASE ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) GUESS=m68k-hades-mint$UNAME_RELEASE ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) GUESS=m68k-unknown-mint$UNAME_RELEASE ;; m68k:machten:*:*) GUESS=m68k-apple-machten$UNAME_RELEASE ;; powerpc:machten:*:*) GUESS=powerpc-apple-machten$UNAME_RELEASE ;; RISC*:Mach:*:*) GUESS=mips-dec-mach_bsd4.3 ;; RISC*:ULTRIX:*:*) GUESS=mips-dec-ultrix$UNAME_RELEASE ;; VAX*:ULTRIX*:*:*) GUESS=vax-dec-ultrix$UNAME_RELEASE ;; 2020:CLIX:*:* | 2430:CLIX:*:*) GUESS=clipper-intergraph-clix$UNAME_RELEASE ;; mips:*:*:UMIPS | mips:*:*:RISCos) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } GUESS=mips-mips-riscos$UNAME_RELEASE ;; Motorola:PowerMAX_OS:*:*) GUESS=powerpc-motorola-powermax ;; Motorola:*:4.3:PL8-*) GUESS=powerpc-harris-powermax ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) GUESS=powerpc-harris-powermax ;; Night_Hawk:Power_UNIX:*:*) GUESS=powerpc-harris-powerunix ;; m88k:CX/UX:7*:*) GUESS=m88k-harris-cxux7 ;; m88k:*:4*:R4*) GUESS=m88k-motorola-sysv4 ;; m88k:*:3*:R3*) GUESS=m88k-motorola-sysv3 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ test "$TARGET_BINARY_INTERFACE"x = x then GUESS=m88k-dg-dgux$UNAME_RELEASE else GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else GUESS=i586-dg-dgux$UNAME_RELEASE fi ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) GUESS=m88k-dolphin-sysv3 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 GUESS=m88k-motorola-sysv3 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) GUESS=m88k-tektronix-sysv3 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) GUESS=m68k-tektronix-bsd ;; *:IRIX*:*:*) IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` GUESS=mips-sgi-irix$IRIX_REL ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) GUESS=i386-ibm-aix ;; ia64:AIX:*:*) if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then GUESS=$SYSTEM_NAME else GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then GUESS=rs6000-ibm-aix3.2.4 else GUESS=rs6000-ibm-aix3.2 fi ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if test -x /usr/bin/lslpp ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$IBM_ARCH-ibm-aix$IBM_REV ;; *:AIX:*:*) GUESS=rs6000-ibm-aix ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) GUESS=romp-ibm-bsd4.4 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) GUESS=rs6000-bull-bosx ;; DPX/2?00:B.O.S.:*:*) GUESS=m68k-bull-sysv3 ;; 9000/[34]??:4.3bsd:1.*:*) GUESS=m68k-hp-bsd ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) GUESS=m68k-hp-bsd4.4 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if test "$HP_ARCH" = ""; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if test "$HP_ARCH" = hppa2.0w then set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi GUESS=$HP_ARCH-hp-hpux$HPUX_REV ;; ia64:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` GUESS=ia64-hp-hpux$HPUX_REV ;; 3050*:HI-UX:*:*) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } GUESS=unknown-hitachi-hiuxwe2 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) GUESS=hppa1.1-hp-bsd ;; 9000/8??:4.3bsd:*:*) GUESS=hppa1.0-hp-bsd ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) GUESS=hppa1.0-hp-mpeix ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) GUESS=hppa1.1-hp-osf ;; hp8??:OSF1:*:*) GUESS=hppa1.0-hp-osf ;; i*86:OSF1:*:*) if test -x /usr/sbin/sysversion ; then GUESS=$UNAME_MACHINE-unknown-osf1mk else GUESS=$UNAME_MACHINE-unknown-osf1 fi ;; parisc*:Lites*:*:*) GUESS=hppa1.1-hp-lites ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) GUESS=c1-convex-bsd ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) GUESS=c34-convex-bsd ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) GUESS=c38-convex-bsd ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) GUESS=c4-convex-bsd ;; CRAY*Y-MP:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=ymp-cray-unicos$CRAY_REL ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=t90-cray-unicos$CRAY_REL ;; CRAY*T3E:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=alphaev5-cray-unicosmk$CRAY_REL ;; CRAY*SV1:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=sv1-cray-unicos$CRAY_REL ;; *:UNICOS/mp:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=craynv-cray-unicosmp$CRAY_REL ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE ;; sparc*:BSD/OS:*:*) GUESS=sparc-unknown-bsdi$UNAME_RELEASE ;; *:BSD/OS:*:*) GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE ;; arm:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` set_cc_for_build if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi else FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf fi ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL ;; i*:CYGWIN*:*) GUESS=$UNAME_MACHINE-pc-cygwin ;; *:MINGW64*:*) GUESS=$UNAME_MACHINE-pc-mingw64 ;; *:MINGW*:*) GUESS=$UNAME_MACHINE-pc-mingw32 ;; *:MSYS*:*) GUESS=$UNAME_MACHINE-pc-msys ;; i*:PW*:*) GUESS=$UNAME_MACHINE-pc-pw32 ;; *:Interix*:*) case $UNAME_MACHINE in x86) GUESS=i586-pc-interix$UNAME_RELEASE ;; authenticamd | genuineintel | EM64T) GUESS=x86_64-unknown-interix$UNAME_RELEASE ;; IA64) GUESS=ia64-unknown-interix$UNAME_RELEASE ;; esac ;; i*:UWIN*:*) GUESS=$UNAME_MACHINE-pc-uwin ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) GUESS=x86_64-pc-cygwin ;; prep*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=powerpcle-unknown-solaris2$SUN_REL ;; *:GNU:*:*) # the GNU system GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL ;; *:GNU/*:*:*) # other systems with GNU libc and userland GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arm*:Linux:*:*) set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi ;; avr32*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; cris:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; crisv32:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; e2k:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; frv:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; hexagon:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; i*86:Linux:*:*) GUESS=$UNAME_MACHINE-pc-linux-$LIBC ;; ia64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m68*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; mips:Linux:*:* | mips64:Linux:*:*) set_cc_for_build IS_GLIBC=0 test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef mips #undef mipsel #undef mips64 #undef mips64el #if ${IS_GLIBC} && defined(_ABI64) LIBCABI=gnuabi64 #else #if ${IS_GLIBC} && defined(_ABIN32) LIBCABI=gnuabin32 #else LIBCABI=${LIBC} #endif #endif #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa64r6 #else #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa32r6 #else #if defined(__mips64) CPU=mips64 #else CPU=mips #endif #endif #endif #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) MIPS_ENDIAN= #else MIPS_ENDIAN= #endif #endif EOF cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` eval "$cc_set_vars" test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; openrisc*:Linux:*:*) GUESS=or1k-unknown-linux-$LIBC ;; or32:Linux:*:* | or1k*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; padre:Linux:*:*) GUESS=sparc-unknown-linux-$LIBC ;; parisc64:Linux:*:* | hppa64:Linux:*:*) GUESS=hppa64-unknown-linux-$LIBC ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; *) GUESS=hppa-unknown-linux-$LIBC ;; esac ;; ppc64:Linux:*:*) GUESS=powerpc64-unknown-linux-$LIBC ;; ppc:Linux:*:*) GUESS=powerpc-unknown-linux-$LIBC ;; ppc64le:Linux:*:*) GUESS=powerpc64le-unknown-linux-$LIBC ;; ppcle:Linux:*:*) GUESS=powerpcle-unknown-linux-$LIBC ;; riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; s390:Linux:*:* | s390x:Linux:*:*) GUESS=$UNAME_MACHINE-ibm-linux-$LIBC ;; sh64*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sh*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sparc:Linux:*:* | sparc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; tile*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; vax:Linux:*:*) GUESS=$UNAME_MACHINE-dec-linux-$LIBC ;; x86_64:Linux:*:*) set_cc_for_build LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_X32 >/dev/null then LIBCABI=${LIBC}x32 fi fi GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI ;; xtensa*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. GUESS=i386-sequent-sysv4 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. GUESS=$UNAME_MACHINE-pc-os2-emx ;; i*86:XTS-300:*:STOP) GUESS=$UNAME_MACHINE-unknown-stop ;; i*86:atheos:*:*) GUESS=$UNAME_MACHINE-unknown-atheos ;; i*86:syllable:*:*) GUESS=$UNAME_MACHINE-pc-syllable ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) GUESS=i386-unknown-lynxos$UNAME_RELEASE ;; i*86:*DOS:*:*) GUESS=$UNAME_MACHINE-pc-msdosdjgpp ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv32 fi ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. GUESS=i586-pc-msdosdjgpp ;; Intel:Mach:3*:*) GUESS=i386-pc-mach3 ;; paragon:*:*:*) GUESS=i860-intel-osf1 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi ;; mini*:CTIX:SYS*5:*) # "miniframe" GUESS=m68010-convergent-sysv ;; mc68k:UNIX:SYSTEM5:3.51m) GUESS=m68k-convergent-sysv ;; M680?0:D-NIX:5.3:*) GUESS=m68k-diab-dnix ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) GUESS=m68k-unknown-lynxos$UNAME_RELEASE ;; mc68030:UNIX_System_V:4.*:*) GUESS=m68k-atari-sysv4 ;; TSUNAMI:LynxOS:2.*:*) GUESS=sparc-unknown-lynxos$UNAME_RELEASE ;; rs6000:LynxOS:2.*:*) GUESS=rs6000-unknown-lynxos$UNAME_RELEASE ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) GUESS=powerpc-unknown-lynxos$UNAME_RELEASE ;; SM[BE]S:UNIX_SV:*:*) GUESS=mips-dde-sysv$UNAME_RELEASE ;; RM*:ReliantUNIX-*:*:*) GUESS=mips-sni-sysv4 ;; RM*:SINIX-*:*:*) GUESS=mips-sni-sysv4 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` GUESS=$UNAME_MACHINE-sni-sysv4 else GUESS=ns32k-sni-sysv fi ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says GUESS=i586-unisys-sysv4 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm GUESS=hppa1.1-stratus-sysv4 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. GUESS=i860-stratus-sysv4 ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. GUESS=$UNAME_MACHINE-stratus-vos ;; *:VOS:*:*) # From Paul.Green@stratus.com. GUESS=hppa1.1-stratus-vos ;; mc68*:A/UX:*:*) GUESS=m68k-apple-aux$UNAME_RELEASE ;; news*:NEWS-OS:6*:*) GUESS=mips-sony-newsos6 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if test -d /usr/nec; then GUESS=mips-nec-sysv$UNAME_RELEASE else GUESS=mips-unknown-sysv$UNAME_RELEASE fi ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. GUESS=powerpc-be-beos ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. GUESS=powerpc-apple-beos ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. GUESS=i586-pc-beos ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. GUESS=i586-pc-haiku ;; x86_64:Haiku:*:*) GUESS=x86_64-unknown-haiku ;; SX-4:SUPER-UX:*:*) GUESS=sx4-nec-superux$UNAME_RELEASE ;; SX-5:SUPER-UX:*:*) GUESS=sx5-nec-superux$UNAME_RELEASE ;; SX-6:SUPER-UX:*:*) GUESS=sx6-nec-superux$UNAME_RELEASE ;; SX-7:SUPER-UX:*:*) GUESS=sx7-nec-superux$UNAME_RELEASE ;; SX-8:SUPER-UX:*:*) GUESS=sx8-nec-superux$UNAME_RELEASE ;; SX-8R:SUPER-UX:*:*) GUESS=sx8r-nec-superux$UNAME_RELEASE ;; SX-ACE:SUPER-UX:*:*) GUESS=sxace-nec-superux$UNAME_RELEASE ;; Power*:Rhapsody:*:*) GUESS=powerpc-apple-rhapsody$UNAME_RELEASE ;; *:Rhapsody:*:*) GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE ;; arm64:Darwin:*:*) GUESS=aarch64-apple-darwin$UNAME_RELEASE ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac if command -v xcode-select > /dev/null 2> /dev/null && \ ! xcode-select --print-path > /dev/null 2> /dev/null ; then # Avoid executing cc if there is no toolchain installed as # cc will be a stub that puts up a graphical alert # prompting the user to install developer tools. CC_FOR_BUILD=no_compiler_found else set_cc_for_build fi if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then # uname -m returns i386 or x86_64 UNAME_PROCESSOR=$UNAME_MACHINE fi GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE ;; *:QNX:*:4*) GUESS=i386-pc-qnx ;; NEO-*:NONSTOP_KERNEL:*:*) GUESS=neo-tandem-nsk$UNAME_RELEASE ;; NSE-*:NONSTOP_KERNEL:*:*) GUESS=nse-tandem-nsk$UNAME_RELEASE ;; NSR-*:NONSTOP_KERNEL:*:*) GUESS=nsr-tandem-nsk$UNAME_RELEASE ;; NSV-*:NONSTOP_KERNEL:*:*) GUESS=nsv-tandem-nsk$UNAME_RELEASE ;; NSX-*:NONSTOP_KERNEL:*:*) GUESS=nsx-tandem-nsk$UNAME_RELEASE ;; *:NonStop-UX:*:*) GUESS=mips-compaq-nonstopux ;; BS2000:POSIX*:*:*) GUESS=bs2000-siemens-sysv ;; DS/*:UNIX_System_V:*:*) GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "${cputype-}" = 386; then UNAME_MACHINE=i386 elif test "x${cputype-}" != x; then UNAME_MACHINE=$cputype fi GUESS=$UNAME_MACHINE-unknown-plan9 ;; *:TOPS-10:*:*) GUESS=pdp10-unknown-tops10 ;; *:TENEX:*:*) GUESS=pdp10-unknown-tenex ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) GUESS=pdp10-dec-tops20 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) GUESS=pdp10-xkl-tops20 ;; *:TOPS-20:*:*) GUESS=pdp10-unknown-tops20 ;; *:ITS:*:*) GUESS=pdp10-unknown-its ;; SEI:*:*:SEIUX) GUESS=mips-sei-seiux$UNAME_RELEASE ;; *:DragonFly:*:*) DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case $UNAME_MACHINE in A*) GUESS=alpha-dec-vms ;; I*) GUESS=ia64-dec-vms ;; V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) GUESS=i386-pc-xenix ;; i*86:skyos:*:*) SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL ;; i*86:rdos:*:*) GUESS=$UNAME_MACHINE-pc-rdos ;; *:AROS:*:*) GUESS=$UNAME_MACHINE-unknown-aros ;; x86_64:VMkernel:*:*) GUESS=$UNAME_MACHINE-unknown-esx ;; amd64:Isilon\ OneFS:*:*) GUESS=x86_64-unknown-onefs ;; *:Unleashed:*:*) GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE ;; esac # Do we have a guess based on uname results? if test "x$GUESS" != x; then echo "$GUESS" exit fi # No uname command or uname output not recognized. set_cc_for_build cat > "$dummy.c" < #include #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #include #if defined(_SIZE_T_) || defined(SIGLOST) #include #endif #endif #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) #if !defined (ultrix) #include #if defined (BSD) #if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); #else #if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); #else printf ("vax-dec-bsd\n"); exit (0); #endif #endif #else printf ("vax-dec-bsd\n"); exit (0); #endif #else #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname un; uname (&un); printf ("vax-dec-ultrix%s\n", un.release); exit (0); #else printf ("vax-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname *un; uname (&un); printf ("mips-dec-ultrix%s\n", un.release); exit (0); #else printf ("mips-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } echo "$0: unable to guess system type" >&2 case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 <&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = "$UNAME_MACHINE" UNAME_RELEASE = "$UNAME_RELEASE" UNAME_SYSTEM = "$UNAME_SYSTEM" UNAME_VERSION = "$UNAME_VERSION" EOF fi exit 1 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: tcsh-6.24.13/acaux/config.rpath000066400000000000000000000442541463776674600163010ustar00rootroot00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2022 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; nagfor*) wl='-Wl,-Wl,,' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; xl* | bgxl* | bgf* | mpixl*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) wl= ;; *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; newsos6) ;; *nto* | *qnx*) ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) wl='-Qoption ld ' ;; *) wl='-Wl,' ;; esac ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; haiku*) ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd2.[01]*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly* | midnightbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) case "$host_cpu" in powerpc*) library_names_spec='$libname$shrext' ;; m68k) library_names_spec='$libname.a' ;; esac ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd[23].*) library_names_spec='$libname$shrext$versuffix' ;; freebsd* | dragonfly* | midnightbsd*) library_names_spec='$libname$shrext' ;; gnu*) library_names_spec='$libname$shrext' ;; haiku*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; tpf*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. echo "$1" exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Split fields of configuration type # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read field1 field2 field3 field4 <&2 exit 1 ;; *-*-*-*) basic_machine=$field1-$field2 basic_os=$field3-$field4 ;; *-*-*) # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two # parts maybe_os=$field2-$field3 case $maybe_os in nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ | storm-chaos* | os2-emx* | rtmk-nova*) basic_machine=$field1 basic_os=$maybe_os ;; android-linux) basic_machine=$field1-unknown basic_os=linux-android ;; *) basic_machine=$field1-$field2 basic_os=$field3 ;; esac ;; *-*) # A lone config we happen to match not fitting any pattern case $field1-$field2 in decstation-3100) basic_machine=mips-dec basic_os= ;; *-*) # Second component is usually, but not always the OS case $field2 in # Prevent following clause from handling this valid os sun*os*) basic_machine=$field1 basic_os=$field2 ;; zephyr*) basic_machine=$field1-unknown basic_os=$field2 ;; # Manufacturers dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ | convergent* | ncr* | news | 32* | 3600* | 3100* \ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ | ultra | tti* | harris | dolphin | highlevel | gould \ | cbm | ns | masscomp | apple | axis | knuth | cray \ | microblaze* | sim | cisco \ | oki | wec | wrs | winbond) basic_machine=$field1-$field2 basic_os= ;; *) basic_machine=$field1 basic_os=$field2 ;; esac ;; esac ;; *) # Convert single-component short-hands not valid as part of # multi-component configurations. case $field1 in 386bsd) basic_machine=i386-pc basic_os=bsd ;; a29khif) basic_machine=a29k-amd basic_os=udi ;; adobe68k) basic_machine=m68010-adobe basic_os=scout ;; alliant) basic_machine=fx80-alliant basic_os= ;; altos | altos3068) basic_machine=m68k-altos basic_os= ;; am29k) basic_machine=a29k-none basic_os=bsd ;; amdahl) basic_machine=580-amdahl basic_os=sysv ;; amiga) basic_machine=m68k-unknown basic_os= ;; amigaos | amigados) basic_machine=m68k-unknown basic_os=amigaos ;; amigaunix | amix) basic_machine=m68k-unknown basic_os=sysv4 ;; apollo68) basic_machine=m68k-apollo basic_os=sysv ;; apollo68bsd) basic_machine=m68k-apollo basic_os=bsd ;; aros) basic_machine=i386-pc basic_os=aros ;; aux) basic_machine=m68k-apple basic_os=aux ;; balance) basic_machine=ns32k-sequent basic_os=dynix ;; blackfin) basic_machine=bfin-unknown basic_os=linux ;; cegcc) basic_machine=arm-unknown basic_os=cegcc ;; convex-c1) basic_machine=c1-convex basic_os=bsd ;; convex-c2) basic_machine=c2-convex basic_os=bsd ;; convex-c32) basic_machine=c32-convex basic_os=bsd ;; convex-c34) basic_machine=c34-convex basic_os=bsd ;; convex-c38) basic_machine=c38-convex basic_os=bsd ;; cray) basic_machine=j90-cray basic_os=unicos ;; crds | unos) basic_machine=m68k-crds basic_os= ;; da30) basic_machine=m68k-da30 basic_os= ;; decstation | pmax | pmin | dec3100 | decstatn) basic_machine=mips-dec basic_os= ;; delta88) basic_machine=m88k-motorola basic_os=sysv3 ;; dicos) basic_machine=i686-pc basic_os=dicos ;; djgpp) basic_machine=i586-pc basic_os=msdosdjgpp ;; ebmon29k) basic_machine=a29k-amd basic_os=ebmon ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson basic_os=ose ;; gmicro) basic_machine=tron-gmicro basic_os=sysv ;; go32) basic_machine=i386-pc basic_os=go32 ;; h8300hms) basic_machine=h8300-hitachi basic_os=hms ;; h8300xray) basic_machine=h8300-hitachi basic_os=xray ;; h8500hms) basic_machine=h8500-hitachi basic_os=hms ;; harris) basic_machine=m88k-harris basic_os=sysv3 ;; hp300 | hp300hpux) basic_machine=m68k-hp basic_os=hpux ;; hp300bsd) basic_machine=m68k-hp basic_os=bsd ;; hppaosf) basic_machine=hppa1.1-hp basic_os=osf ;; hppro) basic_machine=hppa1.1-hp basic_os=proelf ;; i386mach) basic_machine=i386-mach basic_os=mach ;; isi68 | isi) basic_machine=m68k-isi basic_os=sysv ;; m68knommu) basic_machine=m68k-unknown basic_os=linux ;; magnum | m3230) basic_machine=mips-mips basic_os=sysv ;; merlin) basic_machine=ns32k-utek basic_os=sysv ;; mingw64) basic_machine=x86_64-pc basic_os=mingw64 ;; mingw32) basic_machine=i686-pc basic_os=mingw32 ;; mingw32ce) basic_machine=arm-unknown basic_os=mingw32ce ;; monitor) basic_machine=m68k-rom68k basic_os=coff ;; morphos) basic_machine=powerpc-unknown basic_os=morphos ;; moxiebox) basic_machine=moxie-unknown basic_os=moxiebox ;; msdos) basic_machine=i386-pc basic_os=msdos ;; msys) basic_machine=i686-pc basic_os=msys ;; mvs) basic_machine=i370-ibm basic_os=mvs ;; nacl) basic_machine=le32-unknown basic_os=nacl ;; ncr3000) basic_machine=i486-ncr basic_os=sysv4 ;; netbsd386) basic_machine=i386-pc basic_os=netbsd ;; netwinder) basic_machine=armv4l-rebel basic_os=linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony basic_os=newsos ;; news1000) basic_machine=m68030-sony basic_os=newsos ;; necv70) basic_machine=v70-nec basic_os=sysv ;; nh3000) basic_machine=m68k-harris basic_os=cxux ;; nh[45]000) basic_machine=m88k-harris basic_os=cxux ;; nindy960) basic_machine=i960-intel basic_os=nindy ;; mon960) basic_machine=i960-intel basic_os=mon960 ;; nonstopux) basic_machine=mips-compaq basic_os=nonstopux ;; os400) basic_machine=powerpc-ibm basic_os=os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson basic_os=ose ;; os68k) basic_machine=m68k-none basic_os=os68k ;; paragon) basic_machine=i860-intel basic_os=osf ;; parisc) basic_machine=hppa-unknown basic_os=linux ;; psp) basic_machine=mipsallegrexel-sony basic_os=psp ;; pw32) basic_machine=i586-unknown basic_os=pw32 ;; rdos | rdos64) basic_machine=x86_64-pc basic_os=rdos ;; rdos32) basic_machine=i386-pc basic_os=rdos ;; rom68k) basic_machine=m68k-rom68k basic_os=coff ;; sa29200) basic_machine=a29k-amd basic_os=udi ;; sei) basic_machine=mips-sei basic_os=seiux ;; sequent) basic_machine=i386-sequent basic_os= ;; sps7) basic_machine=m68k-bull basic_os=sysv2 ;; st2000) basic_machine=m68k-tandem basic_os= ;; stratus) basic_machine=i860-stratus basic_os=sysv4 ;; sun2) basic_machine=m68000-sun basic_os= ;; sun2os3) basic_machine=m68000-sun basic_os=sunos3 ;; sun2os4) basic_machine=m68000-sun basic_os=sunos4 ;; sun3) basic_machine=m68k-sun basic_os= ;; sun3os3) basic_machine=m68k-sun basic_os=sunos3 ;; sun3os4) basic_machine=m68k-sun basic_os=sunos4 ;; sun4) basic_machine=sparc-sun basic_os= ;; sun4os3) basic_machine=sparc-sun basic_os=sunos3 ;; sun4os4) basic_machine=sparc-sun basic_os=sunos4 ;; sun4sol2) basic_machine=sparc-sun basic_os=solaris2 ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun basic_os= ;; sv1) basic_machine=sv1-cray basic_os=unicos ;; symmetry) basic_machine=i386-sequent basic_os=dynix ;; t3e) basic_machine=alphaev5-cray basic_os=unicos ;; t90) basic_machine=t90-cray basic_os=unicos ;; toad1) basic_machine=pdp10-xkl basic_os=tops20 ;; tpf) basic_machine=s390x-ibm basic_os=tpf ;; udi29k) basic_machine=a29k-amd basic_os=udi ;; ultra3) basic_machine=a29k-nyu basic_os=sym1 ;; v810 | necv810) basic_machine=v810-nec basic_os=none ;; vaxv) basic_machine=vax-dec basic_os=sysv ;; vms) basic_machine=vax-dec basic_os=vms ;; vsta) basic_machine=i386-pc basic_os=vsta ;; vxworks960) basic_machine=i960-wrs basic_os=vxworks ;; vxworks68) basic_machine=m68k-wrs basic_os=vxworks ;; vxworks29k) basic_machine=a29k-wrs basic_os=vxworks ;; xbox) basic_machine=i686-pc basic_os=mingw32 ;; ymp) basic_machine=ymp-cray basic_os=unicos ;; *) basic_machine=$1 basic_os= ;; esac ;; esac # Decode 1-component or ad-hoc basic machines case $basic_machine in # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) cpu=hppa1.1 vendor=winbond ;; op50n) cpu=hppa1.1 vendor=oki ;; op60c) cpu=hppa1.1 vendor=oki ;; ibm*) cpu=i370 vendor=ibm ;; orion105) cpu=clipper vendor=highlevel ;; mac | mpw | mac-mpw) cpu=m68k vendor=apple ;; pmac | pmac-mpw) cpu=powerpc vendor=apple ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) cpu=m68000 vendor=att ;; 3b*) cpu=we32k vendor=att ;; bluegene*) cpu=powerpc vendor=ibm basic_os=cnk ;; decsystem10* | dec10*) cpu=pdp10 vendor=dec basic_os=tops10 ;; decsystem20* | dec20*) cpu=pdp10 vendor=dec basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) cpu=m68k vendor=motorola ;; dpx2*) cpu=m68k vendor=bull basic_os=sysv3 ;; encore | umax | mmax) cpu=ns32k vendor=encore ;; elxsi) cpu=elxsi vendor=elxsi basic_os=${basic_os:-bsd} ;; fx2800) cpu=i860 vendor=alliant ;; genix) cpu=ns32k vendor=ns ;; h3050r* | hiux*) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) cpu=m68000 vendor=hp ;; hp9k3[2-9][0-9]) cpu=m68k vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) cpu=hppa1.1 vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; i*86v32) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv32 ;; i*86v4*) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv4 ;; i*86v) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv ;; i*86sol2) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=solaris2 ;; j90 | j90-cray) cpu=j90 vendor=cray basic_os=${basic_os:-unicos} ;; iris | iris4d) cpu=mips vendor=sgi case $basic_os in irix*) ;; *) basic_os=irix4 ;; esac ;; miniframe) cpu=m68000 vendor=convergent ;; *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) cpu=m68k vendor=atari basic_os=mint ;; news-3600 | risc-news) cpu=mips vendor=sony basic_os=newsos ;; next | m*-next) cpu=m68k vendor=next case $basic_os in openstep*) ;; nextstep*) ;; ns2*) basic_os=nextstep2 ;; *) basic_os=nextstep3 ;; esac ;; np1) cpu=np1 vendor=gould ;; op50n-* | op60c-*) cpu=hppa1.1 vendor=oki basic_os=proelf ;; pa-hitachi) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; pbd) cpu=sparc vendor=tti ;; pbb) cpu=m68k vendor=tti ;; pc532) cpu=ns32k vendor=pc532 ;; pn) cpu=pn vendor=gould ;; power) cpu=power vendor=ibm ;; ps2) cpu=i386 vendor=ibm ;; rm[46]00) cpu=mips vendor=siemens ;; rtpc | rtpc-*) cpu=romp vendor=ibm ;; sde) cpu=mipsisa32 vendor=sde basic_os=${basic_os:-elf} ;; simso-wrs) cpu=sparclite vendor=wrs basic_os=vxworks ;; tower | tower-32) cpu=m68k vendor=ncr ;; vpp*|vx|vx-*) cpu=f301 vendor=fujitsu ;; w65) cpu=w65 vendor=wdc ;; w89k-*) cpu=hppa1.1 vendor=winbond basic_os=proelf ;; none) cpu=none vendor=none ;; leon|leon[3-9]) cpu=sparc vendor=$basic_machine ;; leon-*|leon[3-9]-*) cpu=sparc vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; *-*) # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read cpu vendor <&2 exit 1 ;; esac ;; esac # Here we canonicalize certain aliases for manufacturers. case $vendor in digital*) vendor=dec ;; commodore*) vendor=cbm ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if test x$basic_os != x then # First recognize some ad-hoc caes, or perhaps split kernel-os, or else just # set os. case $basic_os in gnu/linux*) kernel=linux os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ;; os2-emx) kernel=os2 os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ;; nto-qnx*) kernel=nto os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ;; *-*) # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read kernel os <&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. case $kernel-$os in linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ | linux-musl* | linux-relibc* | linux-uclibc* ) ;; uclinux-uclibc* ) ;; -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 exit 1 ;; kfreebsd*-gnu* | kopensolaris*-gnu*) ;; vxworks-simlinux | vxworks-simwindows | vxworks-spe) ;; nto-qnx*) ;; os2-emx) ;; *-eabi* | *-gnueabi*) ;; -*) # Blank kernel with real OS is always fine. ;; *-*) echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 exit 1 ;; esac # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. case $vendor in unknown) case $cpu-$os in *-riscix*) vendor=acorn ;; *-sunos*) vendor=sun ;; *-cnk* | *-aix*) vendor=ibm ;; *-beos*) vendor=be ;; *-hpux*) vendor=hp ;; *-mpeix*) vendor=hp ;; *-hiux*) vendor=hitachi ;; *-unos*) vendor=crds ;; *-dgux*) vendor=dg ;; *-luna*) vendor=omron ;; *-genix*) vendor=ns ;; *-clix*) vendor=intergraph ;; *-mvs* | *-opened*) vendor=ibm ;; *-os400*) vendor=ibm ;; s390-* | s390x-*) vendor=ibm ;; *-ptx*) vendor=sequent ;; *-tpf*) vendor=ibm ;; *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; *-aux*) vendor=apple ;; *-hms*) vendor=hitachi ;; *-mpw* | *-macos*) vendor=apple ;; *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; *-vos*) vendor=stratus ;; esac ;; esac echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: tcsh-6.24.13/acaux/install-sh000077500000000000000000000325371463776674600160010ustar00rootroot00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # 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. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # 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 $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: tcsh-6.24.13/aclocal.m4000066400000000000000000002363261463776674600145360ustar00rootroot00000000000000# generated automatically by aclocal 1.16.5 -*- Autoconf -*- # Copyright (C) 1996-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # host-cpu-c-abi.m4 serial 17 dnl Copyright (C) 2002-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible and Sam Steingold. dnl Sets the HOST_CPU variable to the canonical name of the CPU. dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its dnl C language ABI (application binary interface). dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in dnl config.h. dnl dnl This canonical name can be used to select a particular assembly language dnl source file that will interoperate with C code on the given host. dnl dnl For example: dnl * 'i386' and 'sparc' are different canonical names, because code for i386 dnl will not run on SPARC CPUs and vice versa. They have different dnl instruction sets. dnl * 'sparc' and 'sparc64' are different canonical names, because code for dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit dnl mode, but not both. dnl * 'mips' and 'mipsn32' are different canonical names, because they use dnl different argument passing and return conventions for C functions, and dnl although the instruction set of 'mips' is a large subset of the dnl instruction set of 'mipsn32'. dnl * 'mipsn32' and 'mips64' are different canonical names, because they use dnl different sizes for the C types like 'int' and 'void *', and although dnl the instruction sets of 'mipsn32' and 'mips64' are the same. dnl * The same canonical name is used for different endiannesses. You can dnl determine the endianness through preprocessor symbols: dnl - 'arm': test __ARMEL__. dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because dnl - Instructions that do not exist on all of these CPUs (cmpxchg, dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your dnl assembly language source files use such instructions, you will dnl need to make the distinction. dnl - Speed of execution of the common instruction set is reasonable across dnl the entire family of CPUs. If you have assembly language source files dnl that are optimized for particular CPU types (like GNU gmp has), you dnl will need to make the distinction. dnl See . AC_DEFUN([gl_HOST_CPU_C_ABI], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_C_ASM]) AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], [case "$host_cpu" in changequote(,)dnl i[34567]86 ) changequote([,])dnl gl_cv_host_cpu_c_abi=i386 ;; x86_64 ) # On x86_64 systems, the C compiler may be generating code in one of # these ABIs: # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 # with native Windows (mingw, MSVC). # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if (defined __x86_64__ || defined __amd64__ \ || defined _M_X64 || defined _M_AMD64) int ok; #else error fail #endif ]])], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=x86_64-x32], [gl_cv_host_cpu_c_abi=x86_64])], [gl_cv_host_cpu_c_abi=i386]) ;; changequote(,)dnl alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) changequote([,])dnl gl_cv_host_cpu_c_abi=alpha ;; arm* | aarch64 ) # Assume arm with EABI. # On arm64 systems, the C compiler may be generating code in one of # these ABIs: # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef __aarch64__ int ok; #else error fail #endif ]])], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=arm64-ilp32], [gl_cv_host_cpu_c_abi=arm64])], [# Don't distinguish little-endian and big-endian arm, since they # don't require different machine code for simple operations and # since the user can distinguish them through the preprocessor # defines __ARMEL__ vs. __ARMEB__. # But distinguish arm which passes floating-point arguments and # return values in integer registers (r0, r1, ...) - this is # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which # passes them in float registers (s0, s1, ...) and double registers # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer # sets the preprocessor defines __ARM_PCS (for the first case) and # __ARM_PCS_VFP (for the second case), but older GCC does not. echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c # Look for a reference to the register d0 in the .s file. AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then gl_cv_host_cpu_c_abi=armhf else gl_cv_host_cpu_c_abi=arm fi rm -f conftest* ]) ;; hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) # On hppa, the C compiler may be generating 32-bit code or 64-bit # code. In the latter case, it defines _LP64 and __LP64__. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef __LP64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=hppa64], [gl_cv_host_cpu_c_abi=hppa]) ;; ia64* ) # On ia64 on HP-UX, the C compiler may be generating 64-bit code or # 32-bit code. In the latter case, it defines _ILP32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=ia64-ilp32], [gl_cv_host_cpu_c_abi=ia64]) ;; mips* ) # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this # at 32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=mips64], [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but # may later get defined by ), and _MIPS_SIM == _ABIN32. # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but # may later get defined by ), and _MIPS_SIM == _ABIO32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if (_MIPS_SIM == _ABIN32) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=mipsn32], [gl_cv_host_cpu_c_abi=mips])]) ;; powerpc* ) # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. # No need to distinguish them here; the caller may distinguish # them based on the OS. # On powerpc64 systems, the C compiler may still be generating # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may # be generating 64-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __powerpc64__ || defined __LP64__ int ok; #else error fail #endif ]])], [# On powerpc64, there are two ABIs on Linux: The AIX compatible # one and the ELFv2 one. The latter defines _CALL_ELF=2. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined _CALL_ELF && _CALL_ELF == 2 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=powerpc64-elfv2], [gl_cv_host_cpu_c_abi=powerpc64]) ], [gl_cv_host_cpu_c_abi=powerpc]) ;; rs6000 ) gl_cv_host_cpu_c_abi=powerpc ;; riscv32 | riscv64 ) # There are 2 architectures (with variants): rv32* and rv64*. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if __riscv_xlen == 64 int ok; #else error fail #endif ]])], [cpu=riscv64], [cpu=riscv32]) # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. # Size of 'long' and 'void *': AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ int ok; #else error fail #endif ]])], [main_abi=lp64], [main_abi=ilp32]) # Float ABIs: # __riscv_float_abi_double: # 'float' and 'double' are passed in floating-point registers. # __riscv_float_abi_single: # 'float' are passed in floating-point registers. # __riscv_float_abi_soft: # No values are passed in floating-point registers. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __riscv_float_abi_double int ok; #else error fail #endif ]])], [float_abi=d], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __riscv_float_abi_single int ok; #else error fail #endif ]])], [float_abi=f], [float_abi='']) ]) gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" ;; s390* ) # On s390x, the C compiler may be generating 64-bit (= s390x) code # or 31-bit (= s390) code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ || defined __s390x__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=s390x], [gl_cv_host_cpu_c_abi=s390]) ;; sparc | sparc64 ) # UltraSPARCs running Linux have `uname -m` = "sparc64", but the # C compiler still generates 32-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=sparc64], [gl_cv_host_cpu_c_abi=sparc]) ;; *) gl_cv_host_cpu_c_abi="$host_cpu" ;; esac ]) dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" AC_SUBST([HOST_CPU]) AC_SUBST([HOST_CPU_C_ABI]) # This was # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) # earlier, but KAI C++ 3.2d doesn't like this. sed -e 's/-/_/g' >> confdefs.h <. dnl Don't make changes that are incompatible with that documentation! AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. gl_saved_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then gl_saved_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$gl_saved_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, dnl Solaris 10. gl_saved_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi am_cv_func_iconv_works=no for ac_iconv_const in '' 'const'; do AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[ #include #include #ifndef ICONV_CONST # define ICONV_CONST $ac_iconv_const #endif ]], [[int result = 0; /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from successful returns. This is even documented in */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\263"; char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ { /* Try standardized names. */ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); /* Try IRIX, OSF/1 names. */ iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); /* Try AIX names. */ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); /* Try HP-UX names. */ iconv_t cd4 = iconv_open ("utf8", "eucJP"); if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) result |= 16; if (cd1 != (iconv_t)(-1)) iconv_close (cd1); if (cd2 != (iconv_t)(-1)) iconv_close (cd2); if (cd3 != (iconv_t)(-1)) iconv_close (cd3); if (cd4 != (iconv_t)(-1)) iconv_close (cd4); } return result; ]])], [am_cv_func_iconv_works=yes], , [case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac]) test "$am_cv_func_iconv_works" = no || break done LIBS="$gl_saved_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$gl_saved_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". AC_DEFUN_ONCE([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature], [gl_cv_iconv_nonconst], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include extern #ifdef __cplusplus "C" #endif size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); ]], [[]])], [gl_cv_iconv_nonconst=yes], [gl_cv_iconv_nonconst=no]) ]) else dnl When compiling GNU libiconv on a system that does not have iconv yet, dnl pick the POSIX compliant declaration without 'const'. gl_cv_iconv_nonconst=yes fi if test $gl_cv_iconv_nonconst = yes; then iconv_arg1="" else iconv_arg1="const" fi AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1], [Define as const if the declaration of iconv() needs const.]) dnl Also substitute ICONV_CONST in the gnulib generated . m4_ifdef([gl_ICONV_H_DEFAULTS], [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test $gl_cv_iconv_nonconst != yes; then ICONV_CONST="const" fi ]) dnl A summary result, for those packages which want to print a summary at the dnl end of the configuration. if test "$am_func_iconv" = yes; then if test -n "$LIBICONV"; then am_cv_func_iconv_summary='yes, in libiconv' else am_cv_func_iconv_summary='yes, in libc' fi else if test "$am_cv_func_iconv" = yes; then am_cv_func_iconv_summary='not working, consider installing GNU libiconv' else am_cv_func_iconv_summary='no, consider installing GNU libiconv' fi fi ]) # lib-ld.m4 serial 13 dnl Copyright (C) 1996-2003, 2009-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid dnl collision with libtool.m4. dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 /dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi if test -n "$LD"; then AC_MSG_CHECKING([for ld]) elif test "$GCC" = yes; then AC_MSG_CHECKING([for ld used by $CC]) elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi if test -n "$LD"; then # Let the user override the test with a path. : else AC_CACHE_VAL([acl_cv_path_LD], [ acl_cv_path_LD= # Final result of this test ac_prog=ld # Program to search in $PATH if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. case $host in *-*-mingw* | windows*) # gcc leaves a trailing carriage return which upsets mingw acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) acl_output=`($CC -print-prog-name=ld) 2>&5` ;; esac case $acl_output in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` done # Got the pathname. No search in PATH is needed. acl_cv_path_LD="$acl_output" ac_prog= ;; "") # If it fails, then pretend we aren't using GCC. ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac fi if test -n "$ac_prog"; then # Search for $ac_prog in $PATH. acl_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_saved_IFS" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" ]) AC_ARG_WITH(PACK[-prefix], [[ --with-]]PACK[[-prefix[=DIR] search for ]]PACKLIBS[[ in DIR/include and DIR/lib --without-]]PACK[[-prefix don't search for ]]PACKLIBS[[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" additional_libdir2="$withval/$acl_libdirstem2" additional_libdir3="$withval/$acl_libdirstem3" fi fi ]) if test "X$additional_libdir2" = "X$additional_libdir"; then additional_libdir2= fi if test "X$additional_libdir3" = "X$additional_libdir"; then additional_libdir3= fi dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Use breadth-first search. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do if test "X$found_dir" = "X"; then eval dir=\$$additional_libdir_variable if test -n "$dir"; then dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi fi done fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem3 | */$acl_libdirstem3/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. saved_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$saved_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then haveit= if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then dnl Really add $dependency_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then dnl Really add $dependency_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. dnl But on GNU systems, ignore -lc options, because dnl - linking with libc is the default anyway, dnl - linking with libc.a may produce an error dnl "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie" dnl or may produce an executable that always crashes, see dnl . dep=`echo "X$dep" | sed -e 's/^X-l//'` if test "X$dep" != Xc \ || case $host_os in linux* | gnu* | k*bsd*-gnu) false ;; *) true ;; esac; then names_next_round="$names_next_round $dep" fi ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_saved_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_saved_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_saved_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_saved_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2" \ && test "X$dir" != "X/usr/$acl_libdirstem3"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2" \ && test "X$dir" != "X/usr/$acl_libdirstem3"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_saved_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_saved_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_saved_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_saved_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) # lib-prefix.m4 serial 22 dnl Copyright (C) 2001-2005, 2008-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH([lib-prefix], [[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_saved_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_saved_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_saved_prefix="$prefix" prefix="$acl_final_prefix" acl_saved_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_saved_exec_prefix" prefix="$acl_saved_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a function acl_is_expected_elfclass, that tests whether standard input dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing dnl the basename of the libdir to try in turn, either "lib" or "lib64" or dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib, lib32, and lib64. dnl On most glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. dnl We determine the compiler's default mode by looking at the compiler's dnl library search path. If at least one of its elements ends in /lib64 or dnl points to a directory whose absolute pathname ends in /lib64, we use that dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, dnl namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], [AC_EGREP_CPP([Extensible Linking Format], [#if defined __ELF__ || (defined __linux__ && defined __EDG__) Extensible Linking Format #endif ], [gl_cv_elf=yes], [gl_cv_elf=no]) ]) if test $gl_cv_elf = yes; then # Extract the ELF class of a file (5th byte) in decimal. # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header if od -A x < /dev/null >/dev/null 2>/dev/null; then # Use POSIX od. func_elfclass () { od -A n -t d1 -j 4 -N 1 } else # Use BSD hexdump. func_elfclass () { dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' echo } fi # Use 'expr', not 'test', to compare the values of func_elfclass, because on # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, # not 1 or 2. changequote(,)dnl case $HOST_CPU_C_ABI_32BIT in yes) # 32-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null } ;; no) # 64-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null } ;; *) # Unknown. acl_is_expected_elfclass () { : } ;; esac changequote([,])dnl else acl_is_expected_elfclass () { : } fi dnl Allow the user to override the result by setting acl_cv_libdirstems. AC_CACHE_CHECK([for the common suffixes of directories in the library search path], [acl_cv_libdirstems], [dnl Try 'lib' first, because that's the default for libdir in GNU, see dnl . acl_libdirstem=lib acl_libdirstem2= acl_libdirstem3= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. if test $HOST_CPU_C_ABI_32BIT = no; then acl_libdirstem2=lib/64 case "$host_cpu" in sparc*) acl_libdirstem3=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; esac fi ;; netbsd*) dnl On NetBSD/sparc64, there is a 'sparc' subdirectory that contains dnl 32-bit libraries. if test $HOST_CPU_C_ABI_32BIT != no; then case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparc ;; esac fi ;; *) dnl If $CC generates code for a 32-bit ABI, the libraries are dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. dnl Find the compiler's search path. However, non-system compilers dnl sometimes have odd library search paths. But we can't simply invoke dnl '/usr/bin/gcc -print-search-dirs' because that would not take into dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test $HOST_CPU_C_ABI_32BIT != no; then # 32-bit or unknown ABI. if test -d /usr/lib32; then acl_libdirstem2=lib32 fi fi if test $HOST_CPU_C_ABI_32BIT != yes; then # 64-bit or unknown ABI. if test -d /usr/lib64; then acl_libdirstem3=lib64 fi fi if test -n "$searchpath"; then acl_saved_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib32 ) acl_libdirstem2=lib32 ;; */lib64 ) acl_libdirstem3=lib64 ;; esac ;; esac fi done IFS="$acl_saved_IFS" if test $HOST_CPU_C_ABI_32BIT = yes; then # 32-bit ABI. acl_libdirstem3= fi if test $HOST_CPU_C_ABI_32BIT = no; then # 64-bit ABI. acl_libdirstem2= fi fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" ]) dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and dnl acl_libdirstem3. changequote(,)dnl acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` changequote([,])dnl ]) tcsh-6.24.13/atlocal.in000066400000000000000000000032171463776674600146340ustar00rootroot00000000000000# atlocal: local helpers for testsuite # path to tests directory # tests_dir="@abs_top_srcdir@/tests" # # create_ls_DIR(): # Create directory "DIR" with entries: # # drwxr-xr-x dir/ # drwxr-xrwx dir-ow/ # drwxr-xr-t dir-st/ # drwxr-xrwt dir-tw/ # -rwxr-xr-x exec* # -rw-r--r-- file # -rw-r--r-- file.1 # -rw-r--r-- file.12 # -rw-r--r-- file.123 # -rw-r--r-- file.1234 # lrwxrwxrwx ldir -> dir/ # lrwxrwxrwx ldir-ow -> dir-ow/ # lrwxrwxrwx ldir-st -> dir-st/ # lrwxrwxrwx ldir-tw -> dir-tw/ # lrwxrwxrwx lexec -> exec* # lrwxrwxrwx lfile -> file # lrwxrwxrwx lfile.1234 -> file.1234 # -rw-r--r-- link1 # -rw-r--r-- link2 # lrwxrwxrwx lldir -> ldir/ # lrwxrwxrwx lldir-ow -> ldir-ow/ # lrwxrwxrwx lldir-st -> ldir-st/ # lrwxrwxrwx lldir-tw -> ldir-tw/ # lrwxrwxrwx llexec -> lexec* # lrwxrwxrwx llfile -> lfile # lrwxrwxrwx llfile.1234 -> lfile.1234 # lrwxrwxrwx llorphan -> lorphan # lrwxrwxrwx llpipe -> lpipe| # lrwxrwxrwx lorphan -> orphan # lrwxrwxrwx lpipe -> pipe| # prw-r--r-- pipe| # create_ls_DIR() { mkdir DIR ( cd DIR mkdir dir mkdir dir-ow dir-st dir-tw chmod o+w dir-ow chmod +t,o-w dir-st chmod +t,o+w dir-tw touch .hidden exec file file.1 file.12 file.123 file.1234 chmod a+x exec touch link1 ln link1 link2 mkfifo pipe ln -s dir ldir ln -s dir-ow ldir-ow ln -s dir-st ldir-st ln -s dir-tw ldir-tw ln -s exec lexec ln -s file lfile ln -s file.1234 lfile.1234 ln -s orphan lorphan ln -s pipe lpipe ln -s ldir lldir ln -s ldir-ow lldir-ow ln -s ldir-st lldir-st ln -s ldir-tw lldir-tw ln -s lexec llexec ln -s lfile llfile ln -s lfile.1234 llfile.1234 ln -s lorphan llorphan ln -s lpipe llpipe ) } tcsh-6.24.13/complete.tcsh000066400000000000000000001530001463776674600153540ustar00rootroot00000000000000# # example file using the new completion code # # Debian GNU/Linux # /usr/share/doc/tcsh/examples/complete.gz # # This file may be read from user's ~/.cshrc or ~/.tcshrc file by # decompressing it into the home directory as ~/.complete and # then adding the line "source ~/.complete" and maybe defining # some of the shell variables described below. # # Added two Debian-specific completions: dpkg and dpkg-deb (who # wrote them?). Changed completions of several commands. The ones # are evaluated if the `traditional_complete' shell variable is # defined. # # Debian enhancements by Vadim Vygonets . # Bugfixes and apt completions by Miklos Quartus . # Cleanup by Martin A. Godisch . onintr - if ( ! $?prompt ) goto end if ( $?tcsh ) then if ( $tcsh != 1 ) then set rev=$tcsh:r:r set rel=$tcsh:r:e if ( $rev > 6 || ( $rev > 5 && $rel > 1 ) ) then set _has_complete=1 endif endif unset rev rel endif if ( ! $?_has_complete ) goto end if ( ! $?noglob ) set noglob _unset_noglob # Old TCSH versions don't define OSTYPE. # Use a close approximation instead. if ( ! $?OSTYPE ) then setenv OSTYPE `echo "$HOSTTYPE" | sed -e 's/^(i[3456]86|(amd|x86_)64)-//'` endif if ( ! $?hosts ) set hosts foreach f ( "$HOME/."{,r,ssh/known_}hosts* \ /usr/local/etc/csh.hosts /etc/hosts.equiv ) if ( -r "$f" ) then set hosts=($hosts `sed \ -e 's/#.*//' \ -e '/^[+-]@/d' \ -e 's/^[-+]//' \ -e 's/[[:space:]].*//' \ -e 's/,/\n/g' "$f" \ | sed -e '/^[.:[:xdigit:][:space:]]*$/d'`) endif end unset f if ( -r "$HOME/.netrc" ) then set hosts=($hosts `awk '$1 == "machine" { print $2 }' "$HOME/.netrc"`) endif set hosts=(`echo $hosts | tr ' ' '\012' | sort -u`) if ( ! $#hosts ) then # This is just a hint for the user. set hosts=(ftp.funet.fi ftp.gnu.org ftp.uu.net) endif complete ywho n/*/\$hosts/ # argument from list in $hosts complete rsh p/1/\$hosts/ c/-/"(l n)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/ complete ssh p/1/\$hosts/ c/-/"(l n)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/ complete xrsh p/1/\$hosts/ c/-/"(l 8 e)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/ complete rlogin p/1/\$hosts/ c/-/"(l 8 e)"/ n/-l/u/ complete telnet p/1/\$hosts/ p/2/x:''/ n/*/n/ complete cd p/1/d/ # Directories only complete chdir p/1/d/ complete pushd p/1/d/ complete popd p/1/d/ complete pu p/1/d/ complete po p/1/d/ complete complete p/1/X/ # Completions only complete uncomplete n/*/X/ complete exec p/1/c/ # Commands only complete trace p/1/c/ complete strace p/1/c/ complete which n/*/c/ complete where n/*/c/ complete skill p/1/c/ complete dde p/1/c/ complete adb c/-I/d/ n/-/c/ N/-/"(core)"/ p/1/c/ p/2/"(core)"/ complete sdb p/1/c/ complete dbx c/-I/d/ n/-/c/ N/-/"(core)"/ p/1/c/ p/2/"(core)"/ complete xdb p/1/c/ complete gdb n/-d/d/ n/*/c/ complete ups p/1/c/ complete set 'c/*=/f/' 'p/1/s/=' 'n/=/f/' complete unset n/*/s/ complete alias p/1/a/ # only aliases are valid complete unalias n/*/a/ complete xdvi n/*/f:*.dvi/ complete dvips n/*/f:*.dvi/ complete tex n/*/f:*.{tex,texi}/ complete latex n/*/f:*.{tex,ltx}/ complete su \ c/--/"(login fast preserve-environment command shell help version)"/ \ c/-/"(f l m p c s -)"/ \ n/{-c,--command}/c/ \ n@{-s,--shell}@'`cat /etc/shells`'@ \ n/*/u/ complete cc \ c/-[IL]/d/ \ c@-l@'`\ls -1 /usr/lib/lib*.a | sed s%^.\*/lib%%\;s%\\.a\$%%`'@ \ c/-/"(o l c g L I D U)"/ n/*/f:*.[coasi]/ complete acc \ c/-[IL]/d/ \ c@-l@'`\ls -1 /usr/lang/SC1.0/lib*.a | sed s%^.\*/lib%%\;s%\\.a\$%%`'@ \ c/-/"(o l c g L I D U)"/ n/*/f:*.[coasi]/ complete gcc \ c/-[IL]/d/ \ c/-f/"(caller-saves cse-follow-jumps delayed-branch elide-constructors \ expensive-optimizations float-store force-addr force-mem inline \ inline-functions keep-inline-functions memoize-lookups \ no-default-inline no-defer-pop no-function-cse omit-frame-pointer \ rerun-cse-after-loop schedule-insns schedule-insns2 strength-reduce \ thread-jumps unroll-all-loops unroll-loops syntax-only all-virtual \ cond-mismatch dollars-in-identifiers enum-int-equiv no-asm no-builtin \ no-strict-prototype signed-bitfields signed-char this-is-variable \ unsigned-bitfields unsigned-char writable-strings call-saved-reg \ call-used-reg fixed-reg no-common no-gnu-binutils nonnull-objects \ pcc-struct-return pic PIC shared-data short-enums short-double \ volatile)"/ \ c/-W/"(all aggregate-return cast-align cast-qual comment conversion \ enum-clash error format id-clash-len implicit missing-prototypes \ no-parentheses pointer-arith return-type shadow strict-prototypes \ switch uninitialized unused write-strings)"/ \ c/-m/"(68000 68020 68881 bitfield fpa nobitfield rtd short c68000 c68020 \ soft-float g gnu unix fpu no-epilogue)"/ \ c/-d/"(D M N)"/ \ c/-/"(f W vspec v vpath ansi traditional traditional-cpp trigraphs pedantic \ x o l c g L I D U O O2 C E H B b V M MD MM i dynamic nodtdlib static \ nostdinc undef)"/ \ c/-l/f:*.a/ \ n/*/f:*.{c,C,cc,o,a,s,i}/ complete g++ n/*/f:*.{C,cc,o,s,i}/ complete CC n/*/f:*.{C,cc,cpp,o,s,i}/ complete rm \ c/--/"(directory force interactive verbose recursive help version)"/ \ c/-/"(d f i v r R -)"/ \ n/*/f:^*.{c,cc,C,h,in}/ # Protect precious files complete vi n/*/f:^*.[oa]/ complete bindkey \ N/-a/b/ N/-c/c/ n/-[ascr]/'x:'/ \ n/-[svedlr]/n/ c/-[vedl]/n/ c/-/"(a s k c v e d l r)"/ \ n/-k/"(left right up down)"/ p/2-/b/ \ p/1/'x:'/ complete find \ n/-fstype/"(nfs 4.2)"/ \ n/-name/f/ \ n/-type/"(c b d f p l s)"/ \ n/-user/u/ \ n/-group/g/ \ n/-exec/c/ \ n/-ok/c/ \ n/-cpio/f/ \ n/-ncpio/f/ \ n/-newer/f/ \ c/-/"(fstype name perm prune type user nouser group nogroup size inum \ atime mtime ctime exec ok print ls cpio ncpio newer xdev depth \ daystart follow maxdepth mindepth noleaf version anewer cnewer \ amin cmin mmin true false uid gid ilname iname ipath iregex links \ lname empty path regex used xtype fprint fprint0 fprintf print0 \ printf not a and o or)"/ \ n/*/d/ complete -%* c/%/j/ # fill in the jobs builtin complete {fg,bg,stop} c/%/j/ p/1/"(%)"// complete limit c/-/"(h)"/ n/*/l/ complete unlimit c/-/"(h)"/ n/*/l/ #complete -co* p/0/"(compress)"/ # make compress completion # # not ambiguous # "zcat" may be linked to "compress" or "gzip" if (-X zcat) then zcat --version >& /dev/null if ($status != 0) then complete zcat n/*/f:*.Z/ else complete zcat c/--/"(force help license quiet version)"/ \ c/-/"(f h L q V -)"/ \ n/*/f:*.{gz,Z,z,zip}/ endif endif complete finger c/*@/\$hosts/ n/*/u/@ complete ping p/1/\$hosts/ complete traceroute p/1/\$hosts/ complete {talk,ntalk,phone} \ p/1/'`users | tr " " "\012" | uniq`'/ \ n/*/\`who\ \|\ grep\ \$:1\ \|\ awk\ \'\{\ print\ \$2\ \}\'\`/ complete ftp c/-/"(d i g n v)"/ n/-/\$hosts/ p/1/\$hosts/ n/*/n/ # this one is simple... #complete rcp c/*:/f/ C@[./\$~]*@f@ n/*/\$hosts/: # From Michael Schroeder # This one will rsh to the file to fetch the list of files! complete rcp 'c%*@*:%`set q=$:-0;set q="$q:s/@/ /";set q="$q:s/:/ /";set q=($q " ");rsh $q[2] -l $q[1] ls -dp $q[3]\*`%' 'c%*:%`set q=$:-0;set q="$q:s/:/ /";set q=($q " ");rsh $q[1] ls -dp $q[2]\*`%' 'c%*@%$hosts%:' 'C@[./$~]*@f@' 'n/*/$hosts/:' complete dd \ c/--/"(help version)"/ c/[io]f=/f/ \ c/conv=*,/"(ascii ebcdic ibm block unblock \ lcase notrunc ucase swab noerror sync)"/,\ c/conv=/"(ascii ebcdic ibm block unblock \ lcase notrunc ucase swab noerror sync)"/,\ c/*=/x:''/ \ n/*/"(if of conv ibs obs bs cbs files skip file seek count)"/= complete nslookup p/1/x:''/ p/2/\$hosts/ complete ar \ c/[dmpqrtx]/"(c l o u v a b i)"/ \ p/1/"(d m p q r t x)"// \ p/2/f:*.a/ \ p/*/f:*.o/ # these should be merged with the MH completion hacks below - jgotts complete {refile,sprev,snext,scan,pick,rmm,inc,folder,show} \ "c@+@F:$HOME/Mail/@" # these and interrupt handling from Jaap Vermeulen complete {rexec,rxexec,rxterm,rmterm} \ 'p/1/$hosts/' \ 'c/-/(l L E)/' \ 'n/-l/u/' \ 'n/-L/f/' \ 'n/-E/e/' \ 'n/*/c/' complete kill \ 'c/-/S/' \ 'c/%/j/' \ 'n/*/`ps -u $LOGNAME | awk '"'"'{print $1}'"'"'`/' # these from Marc Horowitz complete attach \ 'n/-mountpoint/d/' \ 'n/-m/d/' \ 'n/-type/(afs nfs rvd ufs)/' \ 'n/-t/(afs nfs rvd ufs)/' \ 'n/-user/u/' \ 'n/-U/u/' \ 'c/-/(verbose quiet force printpath lookup debug map nomap remap zephyr \ nozephyr readonly write mountpoint noexplicit explicit type \ mountoptions nosetuid setuid override skipfsck lock user host)/' \ 'n/-e/f/' \ 'n/*/()/' complete hesinfo \ 'p/1/u/' \ 'p/2/(passwd group uid grplist pcap pobox cluster filsys sloc service)/' complete ./configure \ 'c@--{prefix,exec-prefix,bindir,sbindir,libexecdir,datadir,sysconfdir,sharedstatedir,localstatedir,infodir,mandir,srcdir,x-includes,x-libraries}=*@x:'@ \ 'c/--cachefile=*/x:/' \ 'c/--{enable,disable,with}-*/x://' \ 'c/--*=/x://' \ 'c/--/(prefix= exec-prefix= bindir= sbindir= libexecdir= datadir= \ sysconfdir= sharedstatedir= localstatedir= infodir= mandir= \ srcdir= x-includes= x-libraries= cachefile= enable- disable- \ with- help no-create quiet silent version verbose )//' complete gs \ 'c/-sDEVICE=/(x11 cdjmono cdj550 epson eps9high epsonc dfaxhigh dfaxlow \ laserjet ljet4 sparc pbm pbmraw pgm pgmraw ppm ppmraw bit)/' \ 'c/-sOutputFile=/f/' 'c/-s/(DEVICE OutputFile)/=' \ 'c/-d/(NODISPLAY NOPLATFONTS NOPAUSE)/' 'n/*/f/' complete perl 'n/-S/c/' complete sccs \ p/1/"(admin cdc check clean comb deledit delget delta diffs edit enter \ fix get help info print prs prt rmdel sccsdiff tell unedit unget \ val what)"/ complete printenv 'n/*/e/' complete setenv 'p/1/e/' 'c/*:/f/' # these and method of setting hosts from Kimmo Suominen if ( -f "$HOME/.mh_profile" && -X folders ) then if ( ! $?FOLDERS ) setenv FOLDERS "`folders -fast -recurse`" if ( ! $?MHA ) setenv MHA "`ali | sed -e '/^ /d' -e 's/:.*//'`" set folders = ( $FOLDERS ) set mha = ( $MHA ) complete ali \ 'c/-/(alias nolist list nonormalize normalize nouser user help)/' \ 'n,-alias,f,' complete anno \ 'c/-/(component noinplace inplace nodate date text help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete burst \ 'c/-/(noinplace inplace noquiet quiet noverbose verbose help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete comp \ 'c/-/(draftfolder draftmessage nodraftfolder editor noedit file form nouse use whatnowproc nowhatnowproc help)/' \ 'c,+,$folders,' \ 'n,-whatnowproc,c,' \ 'n,-file,f,'\ 'n,-form,f,'\ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete dist \ 'c/-/(noannotate annotate draftfolder draftmessage nodraftfolder editor noedit form noinplace inplace whatnowproc nowhatnowproc help)/' \ 'c,+,$folders,' \ 'n,-whatnowproc,c,' \ 'n,-form,f,'\ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete folder \ 'c/-/(all nofast fast noheader header nopack pack noverbose verbose norecurse recurse nototal total noprint print nolist list push pop help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete folders \ 'c/-/(all nofast fast noheader header nopack pack noverbose verbose norecurse recurse nototal total noprint print nolist list push pop help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete forw \ 'c/-/(noannotate annotate draftfolder draftmessage nodraftfolder editor noedit filter form noformat format noinplace inplace digest issue volume whatnowproc nowhatnowproc help)/' \ 'c,+,$folders,' \ 'n,-whatnowproc,c,' \ 'n,-filter,f,'\ 'n,-form,f,'\ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete inc \ 'c/-/(audit file noaudit nochangecur changecur file form format nosilent silent notruncate truncate width help)/' \ 'c,+,$folders,' \ 'n,-audit,f,'\ 'n,-form,f,' complete mark \ 'c/-/(add delete list sequence nopublic public nozero zero help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete mhmail \ 'c/-/(body cc from subject help)/' \ 'n,-cc,$mha,' \ 'n,-from,$mha,' \ 'n/*/$mha/' complete mhpath \ 'c/-/(help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete msgchk \ 'c/-/(nodate date nonotify notify help)/' complete msh \ 'c/-/(prompt noscan scan notopcur topcur help)/' complete next \ 'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \ 'c,+,$folders,' \ 'n,-moreproc,c,' \ 'n,-showproc,c,' \ 'n,-form,f,' complete packf \ 'c/-/(file help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete pick \ 'c/-/(and or not lbrace rbrace cc date from search subject to othercomponent after before datefield sequence nopublic public nozero zero nolist list help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete prev \ 'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \ 'c,+,$folders,' \ 'n,-moreproc,c,' \ 'n,-showproc,c,' \ 'n,-form,f,' complete prompter \ 'c/-/(erase kill noprepend prepend norapid rapid nodoteof doteof help)/' complete refile \ 'c/-/(draft nolink link nopreserve preserve src file help)/' \ 'c,+,$folders,' \ 'n,-file,f,'\ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete rmf \ 'c/-/(nointeractive interactive help)/' \ 'c,+,$folders,' complete rmm \ 'c/-/(help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete scan \ 'c/-/(noclear clear form format noheader header width noreverse reverse file help)/' \ 'c,+,$folders,' \ 'n,-form,f,'\ 'n,-file,f,'\ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete send \ 'c/-/(alias draft draftfolder draftmessage nodraftfolder filter nofilter noformat format noforward forward nomsgid msgid nopush push noverbose verbose nowatch watch width help)/' \ 'n,-alias,f,'\ 'n,-filter,f,' complete show \ 'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \ 'c,+,$folders,' \ 'n,-moreproc,c,' \ 'n,-showproc,c,' \ 'n,-form,f,'\ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete sortm \ 'c/-/(datefield textfield notextfield limit nolimit noverbose verbose help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete vmh \ 'c/-/(prompt vmhproc novmhproc help)/' \ 'n,-vmhproc,c,' complete whatnow \ 'c/-/(draftfolder draftmessage nodraftfolder editor noedit prompt help)/' complete whom \ 'c/-/(alias nocheck check draft draftfolder draftmessage nodraftfolder help)/' \ 'n,-alias,f,' complete plum \ 'c/-/()/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//" ; echo next cur prev first last)|tr " " "\012" | sort -u`,' complete mail \ 'c/-/()/' \ 'n/*/$mha/' endif #from Dan Nicolaescu if ( $?MODULESHOME ) then alias Compl_module \ 'find ${MODULEPATH:as/:/ /} -name .version -o -name .modulea\* -prune \ -o -print | sed `echo "-e s@${MODULEPATH:as%:%/\*@@g -e s@%}/\*@@g"`' complete module \ 'p%1%(add load unload switch display avail use unuse update purge list \ clear help initadd initrm initswitch initlist initclear)%' \ 'n%{unl*,sw*,inits*}%`echo "$LOADEDMODULES:as/:/ /"`%' \ 'n%{lo*,di*,he*,inita*,initr*}%`eval Compl_module`%' \ 'N%{sw*,initsw*}%`eval Compl_module`%' \ 'C%-%(-append)%' \ 'n%{use,unu*,av*}%d%' \ 'n%-append%d%' \ 'C%[^-]*%`eval Compl_module`%' endif # from George Cox complete acroread 'p/*/f:*.{pdf,PDF}/' complete apachectl 'c/*/(start stop restart fullstatus status graceful \ configtest help)/' complete appletviewer 'p/*/f:*.class/' complete bison 'c/--/(debug defines file-prefix= fixed-output-files \ help name-prefix= no-lines no-parser output= \ token-table verbose version yacc)/' \ 'c/-/(b d h k l n o p t v y V)/' \ 'n/-b/f/' 'n/-o/f/' 'n/-p/f/' complete bzcat c/--/"(help test quiet verbose license version)"/ \ c/-/"(h t L V -)"/ n/*/f:*.{bz2,tbz}/ complete bunzip2 c/--/"(help keep force test stdout quiet verbose \ license version)"/ \ c/-/"(h k f t c q v L V -)"/ \ n/*/f:*.{bz2,tbz}/ complete bzip2 c/--/"(help decompress compress keep force test \ stdout quiet verbose license version small)"/ \ c/-/"(h d z k f t c q v L V s 1 2 3 4 5 6 7 8 9 -)"/ \ n/{-d,--decompress}/f:*.{bz2,tbz}/ \ N/{-d,--decompress}/f:*.{bz2,tbz}/ n/*/f:^*.{bz2,tbz}/ complete c++ 'p/*/f:*.{c++,cxx,c,cc,C,cpp}/' complete co 'p@1@`\ls -1a RCS | sed -e "s/\(.*\),v/\1/"`@' complete crontab 'n/-u/u/' complete camcontrol 'p/1/(cmd debug defects devlist eject inquiry \ modepage negotiate periphlist rescan reset \ start stop tags tur)/' complete ctlinnd 'p/1/(addhist allow begin cancel changegroup \ checkfile drop feedinfo flush flushlogs go \ hangup logmode mode name newgroup param pause \ readers refile reject reload renumber reserve \ rmgroup send shutdown kill throttle trace \ xabort xexec)/' complete cvs 'c/--/(help help-commands help-synonyms)/' \ 'p/1/(add admin annotate checkout commit diff edit \ editors export history import init log login \ logout rdiff release remove rtag status tag \ unedit update watch watchers)/' \ 'n/-a/(edit unedit commit all none)/' \ 'n/watch/(on off add remove)/' complete svn 'C@file:///@`'"${HOME}/etc/tcsh/complete.d/svn"'`@@' \ 'n@ls@(file:/// svn+ssh:// svn://)@@' \ 'n@help@(add blame cat checkout cleanup commit copy \ delete export help import info list ls \ lock log merge mkdir move propdel propedit \ propget proplist propset resolved revert \ status switch unlock update)@' \ 'p@1@(add blame cat checkout cleanup commit copy \ delete export help import info list ls lock \ log merge mkdir move propdel propedit propget \ proplist propset resolved revert status switch \ unlock update)@' complete cxx 'p/*/f:*.{c++,cxx,c,cc,C,cpp}/' complete detex 'p/*/f:*.tex/' complete edquota 'n/*/u/' complete exec 'p/1/c/' complete ghostview 'p/*/f:*.ps/' complete gv 'p/*/f:*.ps/' complete ifconfig 'p@1@`ifconfig -l`@' \ 'n/*/(range phase link netmask mtu vlandev vlan \ metric mediaopt down delete broadcast arp debug)/' complete imake 'c/-I/d/' complete ipfw 'p/1/(flush add delete list show zero)/' \ 'n/add/(allow permit accept pass deny drop reject \ reset count skipto num divert port tee port)/' complete javac 'p/*/f:*.java/' complete ldif2ldbm 'n/-i/f:*.ldif/' complete libtool 'c/--mode=/(compile execute finish install link \ uninstall)/' \ 'c/--/(config debug dry-run features finish help \ quiet silent version mode=)/' complete libtoolize 'c/--/(automake copy debug dry-run force help ltdl \ ltdl-tar version)/' complete links 'c/-/(assume-codepage async-dns download-dir \ format-cache-size ftp-proxy help http-proxy \ max-connections max-connections-to-host \ memory-cache-size receive-timeout retries \ unrestartable-receive-timeout version)/' complete natd c/-/'(alias_address config deny_incoming dynamic \ inport interface log log_denied log_facility \ outport outport port pptpalias proxy_only \ proxy_rule redirect_address redirect_port \ reverse same_ports unregistered_only use_sockets \ verbose)'/ \ 'n@-interface@`ifconfig -l`@' complete netstat 'n@-I@`ifconfig -l`@' complete objdump 'c/--/(adjust-vma= all-headers architecture= \ archive-headers debugging demangle disassemble \ disassemble-all disassemble-zeroes dynamic-reloc \ dynamic-syms endian= file-headers full-contents \ headers help info line-numbers no-show-raw-insn \ prefix-addresses private-headers reloc \ section-headers section=source stabs \ start-address= stop-address= syms target= \ version wide)/' \ 'c/-/(a h i f C d D p r R t T x s S l w)/' complete xmodmap 'c/-/(display help grammar verbose quiet n e pm pk \ pke pp)/' complete lynx 'c/-/(accept_all_cookies anonymous assume_charset= \ assume_local_charset= assume_unrec_charset= \ auth= base book buried_news cache= case cfg= \ child cookie_file= cookies core crawl \ debug_partial display= dump editor= emacskeys \ enable_scrollback error_file= force_html \ force_secure forms_options from ftp get_data \ head help hiddenlinks= historical homepage= \ image_links index= ismap link= localhost \ mime_header minimal newschunksize= \ newsmaxchunk= nobrowse nocc nocolor \ nofilereferer nolist nolog nopause noprint \ noredir noreferer nostatus number_links \ partial partial_thres pauth= popup post_data \ preparsed print pseudo_inlines raw realm \ reload restrictions= resubmit_posts rlogin \ selective show_cursor soft_dquotes source \ stack_dump startfile_ok tagsoup telnet term= \ tlog trace traversal underscore useragent= \ validate verbose version vikeys width=)/' \ 'c/(http|ftp)/$URLS/' complete gmake 'c/{--directory=,--include-dir=}/d/' \ 'c/{--assume-new,--assume-old,--makefile,--new-file,--what-if,--file}/f/' \ 'c/--/(assume-new= assume-old= debug directory= \ dry-run environment-overrides file= help \ ignore-errors include-dir= jobs[=N] just-print \ keep-going load-average[=N] makefile= \ max-load[=N] new-file= no-builtin-rules \ no-keep-going no-print-directory old-file= \ print-data-base print-directory question quiet \ recon silent stop touch version \ warn-undefined-variables what-if=)/' \ 'n@*@`cat -s GNUMakefile Makefile makefile |& sed -n -e "/No such file/d" -e "s/^\([A-Za-z0-9-]*\):.*/\1/p"`@' \ 'n/=/f/' \ 'n/-f/f/' complete mpg123 'c/--/(2to1 4to1 8bit aggressive au audiodevice auth \ buffer cdr check doublespeed equalizer frames \ gain halfspeed headphones left lineout list \ mix mono proxy quiet random rate reopen resync \ right scale shuffle single0 single1 skip \ speaker stdout stereo test verbose wav)/' complete mysqladmin 'n/*/(create drop extended-status flush-hosts \ flush-logs flush-status flush-tables \ flush-privileges kill password ping \ processlist reload refresh shutdown status \ variables version)/' complete mutt \ "c@-f=@F:${HOME}/Mail/@" \ n/-a/f/ \ n/-F/f/ \ n/-H/f/ \ n/-s/x:''/ \ n/-e/x:''/ \ n@-b@'`cat "${HOME}/.muttrc-alias" | awk '"'"'{print $2 }'"'"\`@ \ n@-c@'`cat "${HOME}/.muttrc-alias" | awk '"'"'{print $2 }'"'"\`@ \ n@*@'`cat "${HOME}/.muttrc-alias" | awk '"'"'{print $2 }'"'"\`@ complete ndc 'n/*/(status dumpdb reload stats trace notrace \ querylog start stop restart )/' complete nm \ 'c/--radix=/x:/' \ 'c/--target=/x:/' \ 'c/--format=/(bsd sysv posix)/n/' \ 'c/--/(debugsyms extern-only demangle dynamic print-armap \ print-file-name numeric-sort no-sort reverse-sort \ size-sort undefined-only portability target= radix= \ format= defined-only\ line-numbers no-demangle version \ help)//' \ 'n/*/f:^*.{h,c,cc,s,S}/' complete nmap 'n@-e@`ifconfig -l`@' 'p/*/$hostnames/' complete perldoc 'n@*@`\ls -1 /usr/libdata/perl/5.*/pod | sed s%\\.pod.\*\$%%`@' complete postfix 'n/*/(start stop reload abort flush check)/' complete postmap 'n/1/(hash: regexp:)/' 'c/hash:/f/' 'c/regexp:/f/' complete rcsdiff 'p@1@`\ls -1a RCS | sed -e "s/\(.*\),v/\1/"`@' complete X 'c/-/(I a ac allowMouseOpenFail allowNonLocalModInDev \ allowNonLocalXvidtune ar1 ar2 audit auth bestRefresh \ bgamma bpp broadcast bs c cc class co core deferglyphs \ disableModInDev disableVidMode displayID dpi dpms f fc \ flipPixels fn fp gamma ggamma help indirect kb keeptty \ ld lf logo ls nolisten string noloadxkb nolock nopn \ once p pn port probeonly query quiet r rgamma s \ showconfig sp su t terminate to tst v verbose version \ weight wm x xkbdb xkbmap)/' complete users 'c/--/(help version)/' 'p/1/x:""/' complete vidcontrol 'p/1/(132x25 132x30 132x43 132x50 132x60 40x25 80x25 \ 80x30 80x43 80x50 80x60 EGA_80x25 EGA_80x43 \ VESA_132x25 VESA_132x30 VESA_132x43 VESA_132x50 \ VESA_132x60 VESA_800x600 VGA_320x200 VGA_40x25 \ VGA_80x25 VGA_80x30 VGA_80x50 VGA_80x60)/' complete vim 'n/*/f:^*.[oa]/' complete where 'n/*/c/' complete which 'n/*/c/' complete wmsetbg 'c/-/(display D S a b c d e m p s t u w)/' \ 'c/--/(back-color center colors dither help match \ maxscale parse scale smooth tile update-domain \ update-wmaker version workspace)/' complete xdb 'p/1/c/' complete xdvi 'c/-/(allowshell debug display expert gamma hushchars \ hushchecksums hushspecials install interpreter keep \ margins nogrey noinstall nomakepk noscan paper safer \ shrinkbuttonn thorough topmargin underlink version)/' \ 'n/-paper/(a4 a4r a5 a5r)/' 'p/*/f:*.dvi/' complete xlock 'c/-/(allowaccess allowroot debug description \ echokeys enablesaver grabmouse grabserver hide inroot \ install inwindow mono mousemotion nolock remote \ resetsaver sound timeelapsed use3d usefirst verbose \ wireframe background batchcount bg bitmap both3d \ count cycles delay delta3d display dpmsoff \ dpmsstandby dpmssuspend endCmd erasedelay erasemode \ erasetime fg font foreground geometry help \ icongeometry info invalid left3d lockdelay logoutCmd \ mailCmd mailIcon message messagefile messagefont \ messagesfile mode name ncolors nice nomailIcon none3d \ parent password planfont program resources right3d \ saturation size startCmd timeout username validate \ version visual)/' 'n/-mode/(ant atlantis ball bat \ blot bouboule bounce braid bubble bubble3d bug cage \ cartoon clock coral crystal daisy dclock decay deco \ demon dilemma discrete drift eyes fadeplot flag flame \ flow forest galaxy gears goop grav helix hop hyper \ ico ifs image invert julia kaleid kumppa lament laser \ life life1d life3d lightning lisa lissie loop lyapunov \ mandelbrot marquee matrix maze moebius morph3d \ mountain munch nose pacman penrose petal pipes puzzle \ pyro qix roll rotor rubik shape sierpinski slip sphere \ spiral spline sproingies stairs star starfish strange \ superquadrics swarm swirl tetris thornbird triangle \ tube turtle vines voters wator wire world worm xjack \ blank bomb random)/' complete xfig 'c/-/(display)/' 'p/*/f:*.fig/' complete wget c/--/"(accept= append-output= background cache= \ continue convert-links cut-dirs= debug \ delete-after directory-prefix= domains= \ dont-remove-listing dot-style= exclude-directories= \ exclude-domains= execute= follow-ftp \ force-directories force-html glob= header= help \ http-passwd= http-user= ignore-length \ include-directories= input-file= level= mirror \ no-clobber no-directories no-host-directories \ no-host-lookup no-parent non-verbose \ output-document= output-file= passive-ftp \ proxy-passwd= proxy-user= proxy= quiet quota= \ recursive reject= relative retr-symlinks save-headers \ server-response span-hosts spider timeout= \ timestamping tries= user-agent= verbose version wait=)"/ # these from Tom Warzeka # this one works but is slow and doesn't descend into subdirectories # complete cd C@[./\$~]*@d@ \ # p@1@'`\ls -1F . $cdpath | grep /\$ | sort -u`'@ n@*@n@ if ( -r /etc/shells ) then complete setenv p@1@e@ n@DISPLAY@\$hosts@: n@SHELL@'`cat /etc/shells`'@ else complete setenv p@1@e@ n@DISPLAY@\$hosts@: endif complete unsetenv n/*/e/ set _maildir = /var/mail if (-r "$HOME/.mailrc") then complete mail c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \ "c@+@F:$HOME/Mail@" C@[./\$~]@f@ n/-s/x:''/ \ n@-u@T:$_maildir@ n/-f/f/ \ n@*@'`sed -n s/alias//p "$HOME/.mailrc" | \ tr -s " " " " | cut -f 2`'@ else complete mail c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \ "c@+@F:$HOME/Mail@" C@[./\$~]@f@ n/-s/x:''/ \ n@-u@T:$_maildir@ n/-f/f/ n/*/u/ endif unset _maildir if (! $?MANPATH) then if (-r /usr/share/man) then setenv MANPATH /usr/share/man: else setenv MANPATH /usr/man: endif endif if ($?traditional_complete) then # use of $MANPATH from Dan Nicolaescu # use of 'find' adapted from Lubomir Host complete man \ 'n@1@`set q = "$MANPATH:as%:%/man1 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.1.\*\$%%`@'\ 'n@2@`set q = "$MANPATH:as%:%/man2 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.2.\*\$%%`@'\ 'n@3@`set q = "$MANPATH:as%:%/man3 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.3.\*\$%%`@'\ 'n@4@`set q = "$MANPATH:as%:%/man4 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.4.\*\$%%`@'\ 'n@5@`set q = "$MANPATH:as%:%/man5 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.5.\*\$%%`@'\ 'n@6@`set q = "$MANPATH:as%:%/man6 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.6.\*\$%%`@'\ 'n@7@`set q = "$MANPATH:as%:%/man7 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.7.\*\$%%`@'\ 'n@8@`set q = "$MANPATH:as%:%/man8 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.8.\*\$%%`@'\ 'n@9@`set q = "$MANPATH:as%:%/man9 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.9.\*\$%%`@'\ 'n@0@`set q = "$MANPATH:as%:%/man0 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.0.\*\$%%`@'\ 'n@n@`set q = "$MANPATH:as%:%/mann %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.n.\*\$%%`@'\ 'n@o@`set q = "$MANPATH:as%:%/mano %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.o.\*\$%%`@'\ 'n@l@`set q = "$MANPATH:as%:%/manl %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.l.\*\$%%`@'\ 'n@p@`set q = "$MANPATH:as%:%/manp %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.p.\*\$%%`@'\ c@-@"(- f k M P s S t)"@ n@-f@c@ n@-k@x:''@ n@-[MP]@d@ \ 'N@-[MP]@`\ls -1 $:-1/man? |& sed -n s%\\..\\+\$%%p`@' \ 'n@-[sS]@`\ls -1 $MANPATH:as%:% % |& sed -n s%^man%%p | sort -u`@'\ 'n@*@`find $MANPATH:as%:% % \( -type f -o -type l \) -printf "%f " |& sed -e "s%find: .*: No such file or directory%%" -e "s%\([^\.]\+\)\.\([^ ]*\) %\1 %g"`@' #n@*@c@ # old way -- commands only else complete man n@1@'`\ls -1 /usr/man/man1 | sed s%\\.1.\*\$%%`'@ \ n@2@'`\ls -1 /usr/man/man2 | sed s%\\.2.\*\$%%`'@ \ n@3@'`\ls -1 /usr/man/man3 | sed s%\\.3.\*\$%%`'@ \ n@4@'`\ls -1 /usr/man/man4 | sed s%\\.4.\*\$%%`'@ \ n@5@'`\ls -1 /usr/man/man5 | sed s%\\.5.\*\$%%`'@ \ n@6@'`\ls -1 /usr/man/man6 | sed s%\\.6.\*\$%%`'@ \ n@7@'`\ls -1 /usr/man/man7 | sed s%\\.7.\*\$%%`'@ \ n@8@'`\ls -1 /usr/man/man8 | sed s%\\.8.\*\$%%`'@ \ n@9@'`[ -r /usr/man/man9 ] && \ls -1 /usr/man/man9 | sed s%\\.9.\*\$%%`'@ \ n@0@'`[ -r /usr/man/man0 ] && \ls -1 /usr/man/man0 | sed s%\\.0.\*\$%%`'@ \ n@new@'`[ -r /usr/man/mann ] && \ls -1 /usr/man/mann | sed s%\\.n.\*\$%%`'@ \ n@old@'`[ -r /usr/man/mano ] && \ls -1 /usr/man/mano | sed s%\\.o.\*\$%%`'@ \ n@local@'`[ -r /usr/man/manl ] && \ls -1 /usr/man/manl | sed s%\\.l.\*\$%%`'@ \ n@public@'`[ -r /usr/man/manp ]&& \ls -1 /usr/man/manp | sed s%\\.p.\*\$%%`'@ \ c/-/"(- f k P s t)"/ n/-f/c/ n/-k/x:''/ n/-P/d/ \ N@-P@'`\ls -1 $:-1/man? | sed s%\\..\*\$%%`'@ n/*/c/ endif complete ps c/-t/x:''/ c/-/"(a c C e g k l S t u v w x)"/ \ n/-k/x:''/ N/-k/x:''/ n/*/x:''/ complete compress c/-/"(c f v b)"/ n/-b/x:''/ n/*/f:^*.Z/ complete uncompress c/-/"(c f v)"/ n/*/f:*.Z/ complete uuencode p/1/f/ p/2/x:''/ n/*/n/ complete uudecode c/-/"(f)"/ n/-f/f:*.{uu,UU}/ p/1/f:*.{uu,UU}/ n/*/n/ complete xhost c/[+-]/\$hosts/ n/*/\$hosts/ complete xpdf c/-/"(z g remote raise quit cmap rgb papercolor \ eucjp t1lib freetype ps paperw paperh level1 \ upw fullscreen cmd q v h help)"/ \ n/-z/x:''/ \ n/-g/x:''/ n/-remote/x:''/ \ n/-rgb/x:''/ n/-papercolor/x:''/ \ n/-{t1lib,freetype}/x:''/ \ n/-ps/x:''/ n/-paperw/x:''/ \ n/-paperh/x:''/ n/-upw/x:''/ \ n/-/f:*.{pdf,PDF}/ \ N/-{z,g,remote,rgb,papercolor,t1lib,freetype,ps,paperw,paperh,upw}/f:*.{pdf,PDF}/ \ N/-/x:''/ p/1/f:*.{pdf,PDF}/ p/2/x:''/ complete tcsh c/-D*=/'x:'/ c/-D/'x:'/ \ c/-/"(b c d D e f F i l m n q s t v V x X -version)"/ \ n/-c/c/ n/{-l,--version}/n/ n/*/'f:*.{,t}csh'/ complete rpm c/--/"(query verify nodeps nofiles nomd5 noscripts \ nogpg nopgp install upgrade freshen erase allmatches \ notriggers repackage test rebuild recompile initdb \ rebuilddb addsign resign querytags showrc setperms \ setugids all file group package querybynumber qf \ triggeredby whatprovides whatrequires changelog \ configfiles docfiles dump filesbypkg info last list \ provides queryformat requires scripts state triggers \ triggerscripts allfiles badreloc excludepath checksig \ excludedocs force hash ignoresize ignorearch ignoreos \ includedocs justdb noorder oldpackage percent prefix \ relocate replace-files replacepkgs buildroot clean \ nobuild rmsource rmspec short-circuit sign target \ help version quiet rcfile pipe dbpath root specfile)"/\ c/-/"(q V K i U F e ba bb bp bc bi bl bs ta tb tp tc \ ti tl ts a f g p c d l R s h ? v vv -)"/ \ n/{-f,--file}/f/ n/{-g,--group}/g/ n/--pipe/c/ n/--dbpath/d/ \ n/--querybynumber/x:''/ n/--triggeredby/x:''/\ n/--what{provides,requires}/x:''/ n/--root/d/ \ n/--{qf,queryformat}/x:''/ n/--buildroot/d/ \ n/--excludepath/x:''/ n/--prefix/x:''/ \ n/--relocate/x:''/ n/--target/x:''/\ n/--rcfile/x:''/ n/--specfile/x:''/ \ n/{-[iUFep],--{install,upgrade,freshen,erase,package}}/f:*.rpm/ # these conform to the latest GNU versions available at press time ... # updates by John Gotts if (-X emacs) then # TW note: if your version of GNU Emacs supports the "--version" option, # uncomment this line and comment the next to automatically # detect the version, else set "_emacs_ver" to your version. #set _emacs_ver=`emacs --version | sed -e 's%GNU Emacs %%' -e q | cut -d . -f1-2` set _emacs_ver=21.3 set _emacs_dir=`which emacs | sed s%/bin/emacs%%` complete emacs c/--/"(batch terminal display no-windows no-init-file \ user debug-init unibyte multibyte version help \ no-site-file funcall load eval insert kill)"/ \ c/-/"(t d nw q u f l -)"/ c/+/x:''/ \ n/{-t,--terminal}/x:''/ n/{-d,--display}/x:''/ \ n/{-u,--user}/u/ n/{-f,--funcall}/x:''/ \ n@{-l,--load}@F:$_emacs_dir/share/emacs/$_emacs_ver/lisp@ \ n/--eval/x:''/ n/--insert/f/ n/*/f:^*[\#~]/ unset _emacs_ver _emacs_dir endif complete gzcat c/--/"(force help license quiet version)"/ \ c/-/"(f h L q V -)"/ n/*/f:*.{gz,Z,z,zip}/ complete gzip c/--/"(stdout to-stdout decompress uncompress \ force help list license no-name quiet recurse \ suffix test verbose version fast best)"/ \ c/-/"(c d f h l L n q r S t v V 1 2 3 4 5 6 7 8 9 -)"/\ n/{-S,--suffix}/x:''/ \ n/{-d,--{de,un}compress}/f:*.{gz,Z,z,zip,taz,tgz}/ \ N/{-d,--{de,un}compress}/f:*.{gz,Z,z,zip,taz,tgz}/ \ n/*/f:^*.{gz,Z,z,zip,taz,tgz}/ complete {gunzip,ungzip} c/--/"(stdout to-stdout force help list license \ no-name quiet recurse suffix test verbose version)"/ \ c/-/"(c f h l L n q r S t v V -)"/ \ n/{-S,--suffix}/x:''/ \ n/*/f:*.{gz,Z,z,zip,taz,tgz}/ complete zgrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/-/"(A b B c C e f h i l n s v V w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete zegrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/-/"(A b B c C e f h i l n s v V w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete zfgrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/-/"(A b B c C e f h i l n s v V w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete znew c/-/"(f t v 9 P K)"/ n/*/f:*.Z/ complete zmore n/*/f:*.{gz,Z,z,zip}/ complete zfile n/*/f:*.{gz,Z,z,zip,taz,tgz}/ complete ztouch n/*/f:*.{gz,Z,z,zip,taz,tgz}/ complete zforce n/*/f:^*.{gz,tgz}/ complete dcop 'p/1/`$:0`/ /' \ 'p/2/`$:0 $:1 | awk \{print\ \$1\}`/ /' \ 'p/3/`$:0 $:1 $:2 | sed "s%.* \(.*\)(.*%\1%"`/ /' complete grep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/--/"(extended-regexp fixed-regexp basic-regexp \ regexp file ignore-case word-regexp line-regexp \ no-messages revert-match version help byte-offset \ line-number with-filename no-filename quiet silent \ text directories recursive files-without-match \ files-with-matches count before-context after-context \ context binary unix-byte-offsets)"/ \ c/-/"(A a B b C c d E e F f G H h i L l n q r s U u V \ v w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete egrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/--/"(extended-regexp fixed-regexp basic-regexp \ regexp file ignore-case word-regexp line-regexp \ no-messages revert-match version help byte-offset \ line-number with-filename no-filename quiet silent \ text directories recursive files-without-match \ files-with-matches count before-context after-context \ context binary unix-byte-offsets)"/ \ c/-/"(A a B b C c d E e F f G H h i L l n q r s U u V \ v w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete fgrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/--/"(extended-regexp fixed-regexp basic-regexp \ regexp file ignore-case word-regexp line-regexp \ no-messages revert-match version help byte-offset \ line-number with-filename no-filename quiet silent \ text directories recursive files-without-match \ files-with-matches count before-context after-context \ context binary unix-byte-offsets)"/ \ c/-/"(A a B b C c d E e F f G H h i L l n q r s U u V \ v w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete sed c/--/"(quiet silent version help expression file)"/ \ c/-/"(n V e f -)"/ n/{-e,--expression}/x:'