tc.decls.h revision 59243
1155228Smjacob/* $Header: /src/pub/tcsh/tc.decls.h,v 3.44 1999/02/06 15:19:00 christos Exp $ */ 2196008Smjacob/* 3167403Smjacob * tc.decls.h: Function declarations from all the tcsh modules 4196008Smjacob */ 5167403Smjacob/*- 6167403Smjacob * Copyright (c) 1980, 1991 The Regents of the University of California. 7167403Smjacob * All rights reserved. 8196008Smjacob * 9167403Smjacob * Redistribution and use in source and binary forms, with or without 10167403Smjacob * modification, are permitted provided that the following conditions 11167403Smjacob * are met: 12167403Smjacob * 1. Redistributions of source code must retain the above copyright 13167403Smjacob * notice, this list of conditions and the following disclaimer. 14196008Smjacob * 2. Redistributions in binary form must reproduce the above copyright 15167403Smjacob * notice, this list of conditions and the following disclaimer in the 16167403Smjacob * documentation and/or other materials provided with the distribution. 17167403Smjacob * 3. All advertising materials mentioning features or use of this software 18167403Smjacob * must display the following acknowledgement: 19167403Smjacob * This product includes software developed by the University of 20167403Smjacob * California, Berkeley and its contributors. 21167403Smjacob * 4. Neither the name of the University nor the names of its contributors 22167403Smjacob * may be used to endorse or promote products derived from this software 23167403Smjacob * without specific prior written permission. 24167403Smjacob * 25167403Smjacob * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 26196008Smjacob * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27155228Smjacob * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 28160410Smjacob * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 29160410Smjacob * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 30160410Smjacob * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 31155704Smjacob * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 32167403Smjacob * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33167403Smjacob * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 34155704Smjacob * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 35155704Smjacob * SUCH DAMAGE. 36155704Smjacob */ 37160410Smjacob#ifndef _h_tc_decls 38160410Smjacob#define _h_tc_decls 39155228Smjacob 40155704Smjacob/* 41155704Smjacob * tc.alloc.c 42155704Smjacob */ 43155704Smjacob#ifndef SYSMALLOC 44155704Smjacob#ifndef WINNT 45155704Smjacobextern void free __P((ptr_t)); 46155704Smjacobextern memalign_t malloc __P((size_t)); 47155704Smjacobextern memalign_t realloc __P((ptr_t, size_t)); 48155704Smjacobextern memalign_t calloc __P((size_t, size_t)); 49155704Smjacob#endif /* !WINNT */ 50155228Smjacob#else /* SYSMALLOC */ 51196008Smjacobextern void sfree __P((ptr_t)); 52196008Smjacobextern memalign_t smalloc __P((size_t)); 53196008Smjacobextern memalign_t srealloc __P((ptr_t, size_t)); 54196008Smjacobextern memalign_t scalloc __P((size_t, size_t)); 55196008Smjacob#endif /* SYSMALLOC */ 56196008Smjacobextern void showall __P((Char **, struct command *)); 57196008Smjacob 58196008Smjacob/* 59196008Smjacob * tc.bind.c 60155228Smjacob */ 61196008Smjacobextern void dobindkey __P((Char **, struct command *)); 62196008Smjacob#ifdef OBSOLETE 63196008Smjacobextern void dobind __P((Char **, struct command *)); 64196008Smjacob#endif /* OBSOLETE */ 65196008Smjacob 66196008Smjacob/* 67196008Smjacob * tc.defs.c: 68196008Smjacob */ 69196008Smjacobextern void getmachine __P((void)); 70196008Smjacob 71196008Smjacob 72196008Smjacob/* 73196008Smjacob * tc.disc.c 74196008Smjacob */ 75196008Smjacobextern int setdisc __P((int)); 76196008Smjacobextern int resetdisc __P((int)); 77196008Smjacob 78196008Smjacob/* 79196008Smjacob * tc.func.c 80196008Smjacob */ 81196008Smjacobextern Char *expand_lex __P((Char *, size_t, struct wordent *, 82196008Smjacob int, int)); 83196008Smjacobextern Char *sprlex __P((Char *, size_t, struct wordent *)); 84196008Smjacobextern Char *Itoa __P((int, Char *, int, int)); 85196008Smjacobextern void dolist __P((Char **, struct command *)); 86196008Smjacobextern void dotelltc __P((Char **, struct command *)); 87196008Smjacobextern void doechotc __P((Char **, struct command *)); 88196008Smjacobextern void dosettc __P((Char **, struct command *)); 89196008Smjacobextern int cmd_expand __P((Char *, Char *)); 90196008Smjacobextern void dowhich __P((Char **, struct command *)); 91196008Smjacobextern struct process *find_stop_ed __P((void)); 92196008Smjacobextern void fg_proc_entry __P((struct process *)); 93196008Smjacobextern sigret_t alrmcatch __P((int)); 94196008Smjacobextern void precmd __P((void)); 95196008Smjacobextern void postcmd __P((void)); 96196008Smjacobextern void cwd_cmd __P((void)); 97196008Smjacobextern void beep_cmd __P((void)); 98196008Smjacobextern void period_cmd __P((void)); 99196008Smjacobextern void aliasrun __P((int, Char *, Char *)); 100196008Smjacobextern void setalarm __P((int)); 101196008Smjacobextern void rmstar __P((struct wordent *)); 102196008Smjacobextern void continue_jobs __P((struct wordent *)); 103196008Smjacobextern Char *gettilde __P((Char *)); 104196008Smjacobextern Char *getusername __P((Char **)); 105196008Smjacob#ifdef OBSOLETE 106196008Smjacobextern void doaliases __P((Char **, struct command *)); 107196008Smjacob#endif /* OBSOLETE */ 108196008Smjacobextern void shlvl __P((int)); 109196008Smjacobextern int fixio __P((int, int)); 110196008Smjacobextern int collate __P((const Char *, const Char *)); 111196008Smjacob#ifdef HASHBANG 112196008Smjacobextern int hashbang __P((int, Char ***)); 113196008Smjacob#endif /* HASHBANG */ 114196008Smjacob#ifdef REMOTEHOST 115196008Smjacobextern void remotehost __P((void)); 116196008Smjacob#endif /* REMOTEHOST */ 117196008Smjacob 118196008Smjacob 119196008Smjacob/* 120196008Smjacob * tc.os.c 121196008Smjacob */ 122196008Smjacob#ifdef MACH 123196008Smjacobextern void dosetpath __P((Char **, struct command *)); 124196008Smjacob#endif /* MACH */ 125196008Smjacob 126196008Smjacob#ifdef TCF 127196008Smjacobextern void dogetxvers __P((Char **, struct command *)); 128196008Smjacobextern void dosetxvers __P((Char **, struct command *)); 129196008Smjacobextern void dogetspath __P((Char **, struct command *)); 130196008Smjacobextern void dosetspath __P((Char **, struct command *)); 131196008Smjacobextern char *sitename __P((pid_t)); 132196008Smjacobextern void domigrate __P((Char **, struct command *)); 133196008Smjacob#endif /* TCF */ 134196008Smjacob 135196008Smjacob#ifdef WARP 136196008Smjacobextern void dowarp __P((Char **, struct command *)); 137196008Smjacob#endif /* WARP */ 138196008Smjacob 139196008Smjacob#if defined(_CRAY) && !defined(_CRAYMPP) 140196008Smjacobextern void dodmmode __P((Char **, struct command *)); 141196008Smjacob#endif /* _CRAY && !_CRAYMPP */ 142196008Smjacob 143196008Smjacob#if defined(masscomp) || defined(hcx) 144196008Smjacobextern void douniverse __P((Char **, struct command *)); 145196008Smjacob#endif /* masscomp */ 146196008Smjacob 147196008Smjacob#if defined(hcx) 148196008Smjacobextern void doatt __P((Char **, struct command *)); 149196008Smjacobextern void doucb __P((Char **, struct command *)); 150196008Smjacob#endif /* hcx */ 151196008Smjacob 152196008Smjacob#ifdef _SEQUENT_ 153196008Smjacobextern void pr_stat_sub __P((struct process_stats *, 154196008Smjacob struct process_stats *, 155196008Smjacob struct process_stats *)); 156196008Smjacob#endif /* _SEQUENT_ */ 157196008Smjacob 158196008Smjacob#ifdef NEEDtcgetpgrp 159196008Smjacobextern int xtcgetpgrp __P((int)); 160196008Smjacobextern int xtcsetpgrp __P((int, int)); 161196008Smjacob# undef tcgetpgrp 162196008Smjacob# define tcgetpgrp(a) xtcgetpgrp(a) 163196008Smjacob# undef tcsetpgrp 164196008Smjacob# define tcsetpgrp(a, b) xtcsetpgrp((a), (b)) 165196008Smjacob#endif /* NEEDtcgetpgrp */ 166196008Smjacob 167196008Smjacob#ifdef YPBUGS 168196008Smjacobextern void fix_yp_bugs __P((void)); 169196008Smjacob#endif /* YPBUGS */ 170196008Smjacob#ifdef STRCOLLBUG 171196008Smjacobextern void fix_strcoll_bug __P((void)); 172196008Smjacob#endif /* STRCOLLBUG */ 173196008Smjacob 174196008Smjacobextern void osinit __P((void)); 175196008Smjacob 176196008Smjacob#ifdef NEEDmemmove 177196008Smjacobextern ptr_t xmemmove __P((ptr_t, const ptr_t, size_t)); 178196008Smjacob# define memmove(a, b, c) xmemmove((a), (b), (c)) 179196008Smjacob#endif /* NEEDmemmove */ 180196008Smjacob 181196008Smjacob#ifdef NEEDmemset 182196008Smjacobextern ptr_t xmemset __P((ptr_t, int, size_t)); 183196008Smjacob# define memset(a, b, c) xmemset((a), (b), (c)) 184196008Smjacob#endif /* NEEDmemset */ 185196008Smjacob 186196008Smjacob 187196008Smjacob#ifdef NEEDgetcwd 188196008Smjacobextern char *xgetcwd __P((char *, size_t)); 189196008Smjacob# undef getcwd 190196008Smjacob# define getcwd(a, b) xgetcwd((a), (b)) 191196008Smjacob#endif /* NEEDgetcwd */ 192196008Smjacob 193196008Smjacob#ifdef NEEDgethostname 194196008Smjacobextern int xgethostname __P((char *, int)); 195196008Smjacob# undef gethostname 196196008Smjacob# define gethostname(a, b) xgethostname((a), (b)) 197196008Smjacob#endif /* NEEDgethostname */ 198196008Smjacob 199196008Smjacob#ifdef NEEDnice 200196008Smjacobextern int xnice __P((int)); 201196008Smjacob# undef nice 202196008Smjacob# define nice(a) xnice(a) 203196008Smjacob#endif /* NEEDnice */ 204196008Smjacob 205196008Smjacob#ifdef NEEDstrerror 206196008Smjacobextern char *xstrerror __P((int)); 207196008Smjacob# undef strerror 208196008Smjacob# define strerror(a) xstrerror(a) 209196008Smjacob#endif /* NEEDstrerror */ 210196008Smjacob 211196008Smjacob#ifdef apollo 212196008Smjacobextern void doinlib __P((Char **, struct command *)); 213196008Smjacobextern void dover __P((Char **, struct command *)); 214196008Smjacobextern void dorootnode __P((Char **, struct command *)); 215196008Smjacobextern int getv __P((Char *)); 216196008Smjacob#endif /* apollo */ 217196008Smjacob 218196008Smjacob 219196008Smjacob/* 220196008Smjacob * tc.printf.h 221196008Smjacob */ 222196008Smjacobextern pret_t xprintf __P((const char *, ...)); 223196008Smjacobextern pret_t xsnprintf __P((char *, size_t, const char *, ...)); 224196008Smjacobextern pret_t xvprintf __P((const char *, va_list)); 225196008Smjacobextern pret_t xvsnprintf __P((char *, size_t, const char *, 226196008Smjacob va_list)); 227196008Smjacob 228196008Smjacob/* 229196008Smjacob * tc.prompt.c 230196008Smjacob */ 231196008Smjacobextern void dateinit __P((void)); 232196008Smjacobextern void printprompt __P((int, char *)); 233196008Smjacobextern Char *expdollar __P((Char **, const Char **, size_t *, 234196008Smjacob int)); 235196008Smjacobextern void tprintf __P((int, Char *, const Char *, size_t, 236196008Smjacob char *, time_t, ptr_t)); 237196008Smjacob 238196008Smjacob/* 239196008Smjacob * tc.sched.c 240196008Smjacob */ 241196008Smjacobextern time_t sched_next __P((void)); 242196008Smjacobextern void dosched __P((Char **, struct command *)); 243196008Smjacobextern void sched_run __P((int)); 244196008Smjacob 245196008Smjacob/* 246196008Smjacob * tc.sig.c 247196008Smjacob */ 248196008Smjacob#ifndef BSDSIGS 249203444Smjacob# ifdef UNRELSIGS 250155228Smjacob# ifdef COHERENT 251203444Smjacobextern sigret_t (*xsignal __P((int, sigret_t (*)(int)))) (); 252155228Smjacob# define signal(x,y) xsignal(x,y) 253203444Smjacob# endif /* COHERENT */ 254203444Smjacobextern sigret_t (*xsigset __P((int, sigret_t (*)(int)))) (); 255155228Smjacob# define sigset(x,y) xsigset(x,y) 256155228Smjacobextern void xsigrelse __P((int)); 257203444Smjacob# define sigrelse(x) xsigrelse(x) 258203444Smjacobextern void xsighold __P((int)); 259203444Smjacob# define sighold(x) xsighold(x) 260203444Smjacobextern void xsigignore __P((int)); 261203444Smjacob# define sigignore(x) xsigignore(x) 262203444Smjacobextern void xsigpause __P((int)); 263155228Smjacob# define sigpause(x) xsigpause(x) 264155228Smjacobextern pid_t ourwait __P((int *)); 265155228Smjacob# endif /* UNRELSIGS */ 266155228Smjacob# ifdef SXA 267163899Smjacobextern void sigpause __P((int)); 268155228Smjacob# endif /* SXA */ 269203444Smjacob#endif /* !BSDSIGS */ 270203444Smjacob 271155228Smjacob#ifdef NEEDsignal 272155228Smjacobextern sigret_t (*xsignal __P((int, sigret_t (*)(int)))) (); 273203444Smjacob# define signal(a, b) xsignal(a, b) 274155228Smjacob#endif /* NEEDsignal */ 275155228Smjacob#if defined(_SEQUENT_) || ((SYSVREL > 3 || defined(_DGUX_SOURCE)) && defined(POSIXSIGS)) || (defined(_AIX) && defined(POSIXSIGS)) || defined(WINNT) 276163899Smjacobextern sigmask_t sigsetmask __P((sigmask_t)); 277155704Smjacob# if !defined(DGUX) || (defined(DGUX) && defined(__ix86)) 278155228Smjacobextern sigmask_t sigblock __P((sigmask_t)); 279203444Smjacob# endif /* !DGUX */ 280203444Smjacobextern void bsd_sigpause __P((sigmask_t)); 281155228Smjacobextern sigret_t (*bsd_signal __P((int, sigret_t (*)(int)))) __P((int)); 282155228Smjacob#endif /* _SEQUENT_ */ 283203444Smjacob#ifdef SIGSYNCH 284203444Smjacobextern sigret_t synch_handler __P((int)); 285155228Smjacob#endif /* SIGSYNCH */ 286203444Smjacob 287203444Smjacob 288155228Smjacob/* 289155228Smjacob * tc.str.c: 290203444Smjacob */ 291155228Smjacob#ifdef SHORT_STRINGS 292155228Smjacobextern Char *s_strchr __P((const Char *, int)); 293163899Smjacobextern Char *s_strrchr __P((const Char *, int)); 294203444Smjacobextern Char *s_strcat __P((Char *, const Char *)); 295155228Smjacob# ifdef NOTUSED 296203444Smjacobextern Char *s_strncat __P((Char *, const Char *, size_t)); 297203444Smjacob# endif /* NOTUSED */ 298203444Smjacobextern Char *s_strcpy __P((Char *, const Char *)); 299203444Smjacobextern Char *s_strncpy __P((Char *, const Char *, size_t)); 300203444Smjacobextern Char *s_strspl __P((const Char *, const Char *)); 301203444Smjacobextern size_t s_strlen __P((const Char *)); 302155228Smjacobextern int s_strcmp __P((const Char *, const Char *)); 303155228Smjacobextern int s_strncmp __P((const Char *, const Char *, 304155228Smjacob size_t)); 305163899Smjacobextern Char *s_strsave __P((const Char *)); 306155228Smjacobextern Char *s_strend __P((const Char *)); 307203444Smjacobextern Char *s_strstr __P((const Char *, const Char *)); 308203444Smjacobextern Char *str2short __P((const char *)); 309203444Smjacobextern Char **blk2short __P((char **)); 310203444Smjacobextern char *short2str __P((const Char *)); 311203444Smjacobextern char **short2blk __P((Char **)); 312203444Smjacob#endif /* SHORT_STRINGS */ 313155228Smjacobextern char *short2qstr __P((const Char *)); 314155228Smjacob 315155228Smjacob 316196008Smjacob/* 317196008Smjacob * tc.vers.c: 318196008Smjacob */ 319196008Smjacobextern void fix_version __P((void)); 320196008Smjacob 321196008Smjacob/* 322196008Smjacob * tc.who.c 323196008Smjacob */ 324155228Smjacob#ifndef HAVENOUTMP 325196008Smjacobextern void initwatch __P((void)); 326196008Smjacobextern void resetwatch __P((void)); 327196008Smjacobextern void watch_login __P((int)); 328155228Smjacobextern const char *who_info __P((ptr_t, int, char *, size_t)); 329196008Smjacobextern void dolog __P((Char **, struct command *)); 330155228Smjacob# ifdef UTHOST 331155228Smjacobextern char *utmphost __P((void)); 332155228Smjacob# endif /* UTHOST */ 333155228Smjacob#endif /* HAVENOUTMP */ 334196008Smjacob 335155228Smjacob#endif /* _h_tc_decls */ 336155228Smjacob