2 * tc.decls.h: Function declarations from all the tcsh modules
5 * Copyright (c) 1980, 1991 The Regents of the University of California.
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. Neither the name of the University nor the names of its contributors
17 * may be used to endorse or promote products derived from this software
18 * without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
45 extern void free (ptr_t
);
46 extern memalign_t
malloc (size_t);
47 extern memalign_t
realloc (ptr_t
, size_t);
48 extern memalign_t
calloc (size_t, size_t);
50 #endif /* !WINNT_NATIVE */
52 extern void sfree (ptr_t
);
53 extern memalign_t
smalloc (size_t);
54 extern memalign_t
srealloc (ptr_t
, size_t);
55 extern memalign_t
scalloc (size_t, size_t);
56 #endif /* SYSMALLOC */
57 extern void showall (Char
**, struct command
*);
62 extern void dobindkey (Char
**, struct command
*);
67 extern void getmachine (void);
73 extern int setdisc (int);
74 extern int resetdisc (int);
79 extern Char
*expand_lex (const struct wordent
*, int, int);
80 extern Char
*sprlex (const struct wordent
*);
81 extern Char
*Itoa (int, size_t, Char
);
82 extern void dolist (Char
**, struct command
*);
83 extern void dotermname (Char
**, struct command
*);
84 extern void dotelltc (Char
**, struct command
*);
85 extern void doechotc (Char
**, struct command
*);
86 extern void dosettc (Char
**, struct command
*);
87 extern int cmd_expand (Char
*, Char
**);
88 extern void dowhich (Char
**, struct command
*);
89 extern struct process
*find_stop_ed (void);
90 extern void fg_proc_entry (struct process
*);
91 extern void alrmcatch (void);
92 extern void precmd (void);
93 extern void postcmd (void);
94 extern void cwd_cmd (void);
95 extern void beep_cmd (void);
96 extern void period_cmd (void);
97 extern void job_cmd (Char
*);
98 extern void aliasrun (int, Char
*, Char
*);
99 extern void setalarm (int);
100 extern void rmstar (struct wordent
*);
101 extern void continue_jobs (struct wordent
*);
102 extern Char
*gettilde (const Char
*);
103 extern Char
*getusername (Char
**);
105 extern void doaliases (Char
**, struct command
*);
106 #endif /* OBSOLETE */
107 extern void shlvl (int);
108 extern int fixio (int, int);
109 extern int collate (const Char
*, const Char
*);
111 extern int hashbang (int, Char
***);
112 #endif /* HASHBANG */
114 extern void remotehost (void);
115 #endif /* REMOTEHOST */
122 extern void dosetpath (Char
**, struct command
*);
126 extern void dogetxvers (Char
**, struct command
*);
127 extern void dosetxvers (Char
**, struct command
*);
128 extern void dogetspath (Char
**, struct command
*);
129 extern void dosetspath (Char
**, struct command
*);
130 extern char *sitename (pid_t
);
131 extern void domigrate (Char
**, struct command
*);
135 extern void dowarp (Char
**, struct command
*);
138 #if defined(_CRAY) && !defined(_CRAYMPP)
139 extern void dodmmode (Char
**, struct command
*);
140 #endif /* _CRAY && !_CRAYMPP */
142 #if defined(masscomp) || defined(hcx)
143 extern void douniverse (Char
**, struct command
*);
144 #endif /* masscomp */
146 #if defined(_OSD_POSIX) /* BS2000 */
147 extern void dobs2cmd (Char
**, struct command
*);
148 #endif /* _OSD_POSIX */
151 extern void doatt (Char
**, struct command
*);
152 extern void doucb (Char
**, struct command
*);
156 extern void pr_stat_sub (struct process_stats
*,
157 struct process_stats
*,
158 struct process_stats
*);
159 #endif /* _SEQUENT_ */
162 extern pid_t
xtcgetpgrp (int);
163 extern int xtcsetpgrp (int, int);
165 # define tcgetpgrp(a) xtcgetpgrp(a)
167 # define tcsetpgrp(a, b) xtcsetpgrp((a), (b))
168 #endif /* NEEDtcgetpgrp */
171 extern void fix_yp_bugs (void);
174 extern void fix_strcoll_bug (void);
175 #endif /* STRCOLLBUG */
177 extern void osinit (void);
180 extern void *xmemmove (void *, const void *, size_t);
181 # define memmove(a, b, c) xmemmove(a, b, c)
182 #endif /* !HAVE_MEMMOVE */
185 extern void *xmemset (void *, int, size_t);
186 # define memset(a, b, c) xmemset(a, b, c)
187 #endif /* !HAVE_MEMSET */
191 extern char *xgetcwd (char *, size_t);
193 # define getcwd(a, b) xgetcwd(a, b)
194 #endif /* !HAVE_GETCWD */
196 #ifndef HAVE_GETHOSTNAME
197 extern int xgethostname (char *, int);
199 # define gethostname(a, b) xgethostname(a, b)
200 #endif /* !HAVE_GETHOSTNAME */
203 extern int xnice (int);
205 # define nice(a) xnice(a)
206 #endif /* !HAVE_NICE */
208 #ifndef HAVE_STRERROR
209 extern char *xstrerror (int);
211 # define strerror(a) xstrerror(a)
212 #endif /* !HAVE_STRERROR */
215 extern void doinlib (Char
**, struct command
*);
216 extern void dover (Char
**, struct command
*);
217 extern void dorootnode (Char
**, struct command
*);
218 extern int getv (Char
*);
226 #define __attribute__(a)
228 extern int xprintf (const char *, ...)
229 __attribute__((__format__(__printf__
, 1, 2)));
230 extern int xsnprintf (char *, size_t, const char *, ...)
231 __attribute__((__format__(__printf__
, 3, 4)));
232 extern char *xasprintf (const char *, ...)
233 __attribute__((__format__(__printf__
, 1, 2)));
234 extern int xvprintf (const char *, va_list)
235 __attribute__((__format__(__printf__
, 1, 0)));
236 extern int xvsnprintf (char *, size_t, const char *, va_list)
237 __attribute__((__format__(__printf__
, 3, 0)));
238 extern char *xvasprintf (const char *, va_list)
239 __attribute__((__format__(__printf__
, 1, 0)));
244 extern void dateinit (void);
245 extern void printprompt (int, const char *);
246 extern int expdollar (struct Strbuf
*, const Char
**, Char
);
247 extern Char
*tprintf (int, const Char
*, const char *,
253 extern time_t sched_next (void);
254 extern void dosched (Char
**, struct command
*);
255 extern void sched_run (void);
261 extern size_t one_mbtowc (Char
*, const char *, size_t);
262 extern size_t one_wctomb (char *, Char
);
263 extern int rt_mbtowc (Char
*, const char *, size_t);
265 #define one_mbtowc(PWC, S, N) \
266 ((void)(N), *(PWC) = (unsigned char)*(S), (size_t)1)
267 #define one_wctomb(S, WCHAR) (*(S) = (char)(WCHAR), (size_t)1)
270 extern Char
*s_strchr (const Char
*, int);
271 extern Char
*s_strrchr (const Char
*, int);
272 extern Char
*s_strcat (Char
*, const Char
*);
274 extern Char
*s_strncat (Char
*, const Char
*, size_t);
275 # endif /* NOTUSED */
276 extern Char
*s_strcpy (Char
*, const Char
*);
277 extern Char
*s_strncpy (Char
*, const Char
*, size_t);
278 extern Char
*s_strspl (const Char
*, const Char
*);
279 extern size_t s_strlen (const Char
*);
280 extern int s_strcmp (const Char
*, const Char
*);
281 extern int s_strncmp (const Char
*, const Char
*, size_t);
282 extern int s_strcasecmp (const Char
*, const Char
*);
283 extern Char
*s_strnsave (const Char
*, size_t);
284 extern Char
*s_strsave (const Char
*);
285 extern Char
*s_strend (const Char
*);
286 extern Char
*s_strstr (const Char
*, const Char
*);
287 extern Char
*str2short (const char *);
288 extern Char
**blk2short (char **);
289 extern char *short2str (const Char
*);
290 extern char **short2blk (Char
**);
291 #else /* !SHORT_STRINGS */
292 extern char *caching_strip (const char *);
294 extern char *short2qstr (const Char
*);
296 extern struct blk_buf
*bb_alloc (void);
297 extern void bb_append (struct blk_buf
*, Char
*);
298 extern void bb_cleanup (void *);
299 extern Char
**bb_finish (struct blk_buf
*);
300 extern void bb_free (void *);
302 extern struct strbuf
*strbuf_alloc(void);
303 extern void strbuf_terminate(struct strbuf
*);
304 extern void strbuf_append1(struct strbuf
*, char);
305 extern void strbuf_appendn(struct strbuf
*, const char *,
307 extern void strbuf_append (struct strbuf
*, const char *);
308 extern char *strbuf_finish (struct strbuf
*);
309 extern void strbuf_cleanup(void *);
310 extern void strbuf_free(void *);
311 extern struct Strbuf
*Strbuf_alloc(void);
312 extern void Strbuf_terminate(struct Strbuf
*);
313 extern void Strbuf_append1(struct Strbuf
*, Char
);
314 extern void Strbuf_appendn(struct Strbuf
*, const Char
*,
316 extern void Strbuf_append (struct Strbuf
*, const Char
*);
317 extern Char
*Strbuf_finish (struct Strbuf
*);
318 extern void Strbuf_cleanup(void *);
319 extern void Strbuf_free(void *);
325 extern void fix_version (void);
330 #if defined (HAVE_UTMP_H) || defined (HAVE_UTMPX_H) || defined (WINNT_NATIVE)
331 extern void initwatch (void);
332 extern void resetwatch (void);
333 extern void watch_login (int);
334 extern char *who_info (ptr_t
, int);
335 extern void dolog (Char
**, struct command
*);
336 # ifdef HAVE_STRUCT_UTMP_UT_HOST
337 extern char *utmphost (void);
338 extern size_t utmphostsize (void);
339 # endif /* HAVE_STRUCT_UTMP_UT_HOST */
344 #endif /* _h_tc_decls */