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