summaryrefslogtreecommitdiffstats
path: root/tc.decls.h
blob: d6a9f9e1399b5b2ba923940675d2a9afd9fa26bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
/* $Header: /p/tcsh/cvsroot/tcsh/tc.decls.h,v 3.64 2008/05/14 20:10:30 christos Exp $ */
/*
 * tc.decls.h: Function declarations from all the tcsh modules
 */
/*-
 * 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.
 */
#ifndef _h_tc_decls
#define _h_tc_decls

struct blk_buf;
struct strbuf;
struct Strbuf;

/*
 * tc.alloc.c
 */
#ifndef SYSMALLOC
#ifndef WINNT_NATIVE
#ifndef __linux__
extern	void		  free		(ptr_t);
extern	memalign_t	  malloc	(size_t);
extern	memalign_t	  realloc	(ptr_t, size_t);
extern	memalign_t	  calloc	(size_t, size_t);
#endif
#endif /* !WINNT_NATIVE */
#else /* SYSMALLOC */
extern	void		  sfree		(ptr_t);
extern	memalign_t	  smalloc	(size_t);
extern	memalign_t	  srealloc	(ptr_t, size_t);
extern	memalign_t	  scalloc	(size_t, size_t);
#endif /* SYSMALLOC */
extern	void		  showall	(Char **, struct command *);

/*
 * tc.bind.c
 */
extern	void		  dobindkey	(Char **, struct command *);

/*
 * tc.defs.c:
 */
extern	void		  getmachine	(void);


/*
 * tc.disc.c
 */
extern	int		  setdisc	(int);
extern	int		  resetdisc	(int);

/*
 * tc.func.c
 */
extern	Char		 *expand_lex    (const struct wordent *, int, int);
extern	Char		 *sprlex	(const struct wordent *);
extern	Char		 *Itoa		(int, size_t, Char);
extern	void		  dolist	(Char **, struct command *);
extern	void		  dotermname	(Char **, struct command *);
extern	void		  dotelltc	(Char **, struct command *);
extern	void		  doechotc	(Char **, struct command *);
extern	void		  dosettc	(Char **, struct command *);
extern	int		  cmd_expand	(Char *, Char **);
extern	void		  dowhich	(Char **, struct command *);
extern	struct process	 *find_stop_ed	(void);
extern	void		  fg_proc_entry	(struct process *);
extern	void		  alrmcatch	(void);
extern	void		  precmd	(void);
extern	void		  postcmd	(void);
extern	void		  cwd_cmd	(void);
extern	void		  beep_cmd	(void);
extern	void		  period_cmd	(void);
extern	void		  job_cmd	(Char *);
extern	void		  aliasrun	(int, Char *, Char *);
extern	void		  setalarm	(int);
extern	void		  rmstar	(struct wordent *);
extern	void		  continue_jobs	(struct wordent *);
extern	Char		 *gettilde	(const Char *);
extern	Char		 *getusername	(Char **);
#ifdef OBSOLETE
extern	void		  doaliases	(Char **, struct command *);
#endif /* OBSOLETE */
extern	void		  shlvl		(int);
extern	int		  fixio		(int, int);
extern	int		  collate	(const Char *, const Char *);
#ifdef HASHBANG
extern	int		  hashbang	(int, Char ***);
#endif /* HASHBANG */
#ifdef REMOTEHOST
extern	void		  remotehost	(void);
#endif /* REMOTEHOST */


/*
 * tc.os.c
 */
#ifdef MACH
extern	void		  dosetpath	(Char **, struct command *);
#endif /* MACH */

#ifdef TCF
extern	void		  dogetxvers	(Char **, struct command *);
extern	void		  dosetxvers	(Char **, struct command *);
extern	void		  dogetspath	(Char **, struct command *);
extern	void		  dosetspath	(Char **, struct command *);
extern	char		 *sitename	(pid_t);
extern	void		  domigrate	(Char **, struct command *);
#endif /* TCF */

#ifdef WARP
extern	void 		  dowarp	(Char **, struct command *);
#endif /* WARP */

#if defined(_CRAY) && !defined(_CRAYMPP)
extern	void 		  dodmmode	(Char **, struct command *);
#endif /* _CRAY && !_CRAYMPP */

#if defined(masscomp) || defined(hcx)
extern	void		  douniverse	(Char **, struct command *);
#endif /* masscomp */

#if defined(_OSD_POSIX) /* BS2000 */
extern	void		  dobs2cmd	(Char **, struct command *);
#endif /* _OSD_POSIX */

#if defined(hcx)
extern	void		  doatt		(Char **, struct command *);
extern	void		  doucb		(Char **, struct command *);
#endif /* hcx */

#ifdef _SEQUENT_
extern	void	 	  pr_stat_sub	(struct process_stats *, 
					 struct process_stats *, 
					 struct process_stats *);
#endif /* _SEQUENT_ */

#ifdef NEEDtcgetpgrp
extern	pid_t	 	  xtcgetpgrp	(int);
extern	int		  xtcsetpgrp	(int, int);
# undef tcgetpgrp
# define tcgetpgrp(a) 	  xtcgetpgrp(a)
# undef tcsetpgrp
# define tcsetpgrp(a, b)  xtcsetpgrp((a), (b))
#endif /* NEEDtcgetpgrp */

#ifdef YPBUGS
extern	void	 	  fix_yp_bugs	(void);
#endif /* YPBUGS */
#ifdef STRCOLLBUG
extern	void	 	  fix_strcoll_bug	(void);
#endif /* STRCOLLBUG */

extern	void	 	  osinit	(void);

#ifndef HAVE_MEMMOVE
extern void 		*xmemmove	(void *, const void *, size_t);
# define memmove(a, b, c) xmemmove(a, b, c)
#endif /* !HAVE_MEMMOVE */

#ifndef HAVE_MEMSET
extern void 		*xmemset	(void *, int, size_t);
# define memset(a, b, c) xmemset(a, b, c)
#endif /* !HAVE_MEMSET */


#ifndef HAVE_GETCWD
extern	char		 *xgetcwd	(char *, size_t);
# undef getcwd
# define getcwd(a, b) xgetcwd(a, b)
#endif /* !HAVE_GETCWD */

#ifndef HAVE_GETHOSTNAME
extern	int	 	  xgethostname	(char *, int);
# undef gethostname
# define gethostname(a, b) xgethostname(a, b)
#endif /* !HAVE_GETHOSTNAME */

#ifndef HAVE_NICE
extern	int	 	  xnice	(int);
# undef nice
# define nice(a)	  xnice(a)
#endif /* !HAVE_NICE */

#ifndef HAVE_STRERROR
extern	char	 	 *xstrerror	(int);
# undef strerror
# define strerror(a) 	  xstrerror(a)
#endif /* !HAVE_STRERROR */

#ifdef apollo
extern	void		  doinlib	(Char **, struct command *);
extern	void		  dover		(Char **, struct command *);
extern	void		  dorootnode	(Char **, struct command *);
extern	int		  getv		(Char *);
#endif /* apollo */


/*
 * tc.printf.h
 */
#ifndef __GNUC__
#define __attribute__(a)
#endif
extern	pret_t		  xprintf	(const char *, ...)
    __attribute__((__format__(__printf__, 1, 2)));
extern	pret_t		  xsnprintf	(char *, size_t, const char *, ...)
    __attribute__((__format__(__printf__, 3, 4)));
extern	char		 *xasprintf	(const char *, ...)
    __attribute__((__format__(__printf__, 1, 2)));
extern	pret_t		  xvprintf	(const char *, va_list)
    __attribute__((__format__(__printf__, 1, 0)));
extern	pret_t		  xvsnprintf	(char *, size_t, const char *, va_list)
    __attribute__((__format__(__printf__, 3, 0)));
extern	char		 *xvasprintf	(const char *, va_list)
    __attribute__((__format__(__printf__, 1, 0)));

/*
 * tc.prompt.c
 */
extern	void		  dateinit	(void);
extern	void		  printprompt	(int, const char *);
extern  int 		  expdollar	(struct Strbuf *, const Char **, Char);
extern	Char		 *tprintf	(int, const Char *, const char *,
					 time_t, ptr_t);

/*
 * tc.sched.c
 */
extern	time_t		  sched_next	(void);
extern	void		  dosched	(Char **, struct command *);
extern	void		  sched_run	(void);

/*
 * tc.str.c:
 */
#ifdef WIDE_STRINGS
extern	size_t		  one_mbtowc	(wchar_t *, const char *, size_t);
extern	size_t		  one_wctomb	(char *, wchar_t);
extern  int		  rt_mbtowc	(wchar_t *, const char *, size_t);
#else
#define one_mbtowc(PWC, S, N) \
	((void)(N), *(PWC) = (unsigned char)*(S), (size_t)1)
#define one_wctomb(S, WCHAR) (*(S) = (WCHAR), (size_t)1)
#endif
#ifdef SHORT_STRINGS
extern	Char		 *s_strchr	(const Char *, int);
extern	Char		 *s_strrchr	(const Char *, int);
extern	Char		 *s_strcat	(Char *, const Char *);
# ifdef NOTUSED
extern	Char		 *s_strncat	(Char *, const Char *, size_t);
# endif /* NOTUSED */
extern	Char		 *s_strcpy	(Char *, const Char *);
extern	Char		 *s_strncpy	(Char *, const Char *, size_t);
extern	Char		 *s_strspl	(const Char *, const Char *);
extern	size_t		  s_strlen	(const Char *);
extern	int		  s_strcmp	(const Char *, const Char *);
extern	int		  s_strncmp	(const Char *, const Char *, size_t);
extern	int		  s_strcasecmp	(const Char *, const Char *);
extern	Char		 *s_strnsave	(const Char *, size_t);
extern	Char		 *s_strsave	(const Char *);
extern	Char		 *s_strend	(const Char *);
extern	Char		 *s_strstr	(const Char *, const Char *);
extern	Char		 *str2short	(const char *);
extern	Char		**blk2short	(char **);
extern	char		 *short2str	(const Char *);
extern	char		**short2blk	(Char **);
#else /* !SHORT_STRINGS */
extern	char		 *caching_strip	(const char *);
#endif
extern	char		 *short2qstr	(const Char *);

extern  struct blk_buf   *bb_alloc	(void);
extern	void		  bb_append	(struct blk_buf *, Char *);
extern	void		  bb_cleanup	(void *);
extern	Char		**bb_finish	(struct blk_buf *);
extern  void 		  bb_free	(void *);

extern	struct strbuf	 *strbuf_alloc(void);
extern	void		  strbuf_terminate(struct strbuf *);
extern  void		  strbuf_append1(struct strbuf *, char);
extern  void		  strbuf_appendn(struct strbuf *, const char *,
					 size_t);
extern  void		  strbuf_append (struct strbuf *, const char *);
extern  char		 *strbuf_finish (struct strbuf *);
extern	void		  strbuf_cleanup(void *);
extern	void		  strbuf_free(void *);
extern	struct Strbuf	 *Strbuf_alloc(void);
extern	void		  Strbuf_terminate(struct Strbuf *);
extern  void		  Strbuf_append1(struct Strbuf *, Char);
extern  void		  Strbuf_appendn(struct Strbuf *, const Char *,
					 size_t);
extern  void		  Strbuf_append (struct Strbuf *, const Char *);
extern  Char		 *Strbuf_finish (struct Strbuf *);
extern	void		  Strbuf_cleanup(void *);
extern	void		  Strbuf_free(void *);


/*
 * tc.vers.c:
 */
extern	void		  fix_version	(void);

/*
 * tc.who.c
 */
#if defined (HAVE_UTMP_H) || defined (HAVE_UTMPX_H) || defined (WINNT_NATIVE)
extern	void		  initwatch	(void);
extern	void		  resetwatch	(void);
extern	void		  watch_login	(int);
extern	char	 	 *who_info	(ptr_t, int);
extern	void		  dolog		(Char **, struct command *);
# ifdef HAVE_STRUCT_UTMP_UT_HOST
extern	char		 *utmphost	(void);
extern	size_t		  utmphostsize	(void);
# endif /* HAVE_STRUCT_UTMP_UT_HOST */
#else
# define HAVENOUTMP
#endif

#endif /* _h_tc_decls */
OpenPOWER on IntegriCloud