tc.decls.h 10.6 KB
Newer Older
1
/* $Header: /p/tcsh/cvsroot/tcsh/tc.decls.h,v 3.66 2012/06/21 18:49:11 christos Exp $ */
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
/*
 * 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

36 37 38 39
struct blk_buf;
struct strbuf;
struct Strbuf;

40 41 42 43 44
/*
 * tc.alloc.c
 */
#ifndef SYSMALLOC
#ifndef WINNT_NATIVE
45 46 47 48 49 50
#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
51 52
#endif /* !WINNT_NATIVE */
#else /* SYSMALLOC */
53 54 55 56
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);
57
#endif /* SYSMALLOC */
58
extern	void		  showall	(Char **, struct command *);
59 60 61 62

/*
 * tc.bind.c
 */
63
extern	void		  dobindkey	(Char **, struct command *);
64 65 66 67

/*
 * tc.defs.c:
 */
68
extern	void		  getmachine	(void);
69 70 71 72 73


/*
 * tc.disc.c
 */
74 75
extern	int		  setdisc	(int);
extern	int		  resetdisc	(int);
76 77 78 79

/*
 * tc.func.c
 */
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
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 **);
105
#ifdef OBSOLETE
106
extern	void		  doaliases	(Char **, struct command *);
107
#endif /* OBSOLETE */
108 109 110
extern	void		  shlvl		(int);
extern	int		  fixio		(int, int);
extern	int		  collate	(const Char *, const Char *);
111
#ifdef HASHBANG
112
extern	int		  hashbang	(int, Char ***);
113 114
#endif /* HASHBANG */
#ifdef REMOTEHOST
115
extern	void		  remotehost	(void);
116 117 118 119 120 121 122
#endif /* REMOTEHOST */


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

#ifdef TCF
127 128 129 130 131 132
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 *);
133 134 135
#endif /* TCF */

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

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

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

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

#if defined(hcx)
152 153
extern	void		  doatt		(Char **, struct command *);
extern	void		  doucb		(Char **, struct command *);
154 155 156
#endif /* hcx */

#ifdef _SEQUENT_
157 158 159
extern	void	 	  pr_stat_sub	(struct process_stats *, 
					 struct process_stats *, 
					 struct process_stats *);
160 161 162
#endif /* _SEQUENT_ */

#ifdef NEEDtcgetpgrp
163 164
extern	pid_t	 	  xtcgetpgrp	(int);
extern	int		  xtcsetpgrp	(int, int);
165 166 167 168 169 170 171
# undef tcgetpgrp
# define tcgetpgrp(a) 	  xtcgetpgrp(a)
# undef tcsetpgrp
# define tcsetpgrp(a, b)  xtcsetpgrp((a), (b))
#endif /* NEEDtcgetpgrp */

#ifdef YPBUGS
172
extern	void	 	  fix_yp_bugs	(void);
173 174
#endif /* YPBUGS */
#ifdef STRCOLLBUG
175
extern	void	 	  fix_strcoll_bug	(void);
176 177
#endif /* STRCOLLBUG */

178
extern	void	 	  osinit	(void);
179 180

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

#ifndef HAVE_MEMSET
186
extern void 		*xmemset	(void *, int, size_t);
187 188 189 190 191
# define memset(a, b, c) xmemset(a, b, c)
#endif /* !HAVE_MEMSET */


#ifndef HAVE_GETCWD
192
extern	char		 *xgetcwd	(char *, size_t);
193 194 195 196 197
# undef getcwd
# define getcwd(a, b) xgetcwd(a, b)
#endif /* !HAVE_GETCWD */

#ifndef HAVE_GETHOSTNAME
198
extern	int	 	  xgethostname	(char *, int);
199 200 201 202 203
# undef gethostname
# define gethostname(a, b) xgethostname(a, b)
#endif /* !HAVE_GETHOSTNAME */

#ifndef HAVE_NICE
204
extern	int	 	  xnice	(int);
205 206 207 208 209
# undef nice
# define nice(a)	  xnice(a)
#endif /* !HAVE_NICE */

#ifndef HAVE_STRERROR
210
extern	char	 	 *xstrerror	(int);
211 212 213 214 215
# undef strerror
# define strerror(a) 	  xstrerror(a)
#endif /* !HAVE_STRERROR */

#ifdef apollo
216 217 218 219
extern	void		  doinlib	(Char **, struct command *);
extern	void		  dover		(Char **, struct command *);
extern	void		  dorootnode	(Char **, struct command *);
extern	int		  getv		(Char *);
220 221 222 223 224 225
#endif /* apollo */


/*
 * tc.printf.h
 */
226 227 228
#ifndef __GNUC__
#define __attribute__(a)
#endif
229
extern	int		  xprintf	(const char *, ...)
230
    __attribute__((__format__(__printf__, 1, 2)));
231
extern	int		  xsnprintf	(char *, size_t, const char *, ...)
232 233 234
    __attribute__((__format__(__printf__, 3, 4)));
extern	char		 *xasprintf	(const char *, ...)
    __attribute__((__format__(__printf__, 1, 2)));
235
extern	int		  xvprintf	(const char *, va_list)
236
    __attribute__((__format__(__printf__, 1, 0)));
237
extern	int		  xvsnprintf	(char *, size_t, const char *, va_list)
238 239 240
    __attribute__((__format__(__printf__, 3, 0)));
extern	char		 *xvasprintf	(const char *, va_list)
    __attribute__((__format__(__printf__, 1, 0)));
241 242 243 244

/*
 * tc.prompt.c
 */
245 246 247 248 249
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);
250 251 252 253

/*
 * tc.sched.c
 */
254 255 256
extern	time_t		  sched_next	(void);
extern	void		  dosched	(Char **, struct command *);
extern	void		  sched_run	(void);
257 258 259 260 261

/*
 * tc.str.c:
 */
#ifdef WIDE_STRINGS
262 263 264
extern	size_t		  one_mbtowc	(Char *, const char *, size_t);
extern	size_t		  one_wctomb	(char *, Char);
extern  int		  rt_mbtowc	(Char *, const char *, size_t);
265 266 267 268 269 270
#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
271 272 273
extern	Char		 *s_strchr	(const Char *, int);
extern	Char		 *s_strrchr	(const Char *, int);
extern	Char		 *s_strcat	(Char *, const Char *);
274
# ifdef NOTUSED
275
extern	Char		 *s_strncat	(Char *, const Char *, size_t);
276
# endif /* NOTUSED */
277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296
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 *);

297
extern  struct blk_buf   *bb_alloc	(void);
298 299 300
extern	void		  bb_append	(struct blk_buf *, Char *);
extern	void		  bb_cleanup	(void *);
extern	Char		**bb_finish	(struct blk_buf *);
301
extern  void 		  bb_free	(void *);
302

303
extern	struct strbuf	 *strbuf_alloc(void);
304 305 306 307 308 309 310
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 *);
311 312
extern	void		  strbuf_free(void *);
extern	struct Strbuf	 *Strbuf_alloc(void);
313 314 315 316 317 318 319
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 *);
320
extern	void		  Strbuf_free(void *);
321 322 323 324 325


/*
 * tc.vers.c:
 */
326
extern	void		  fix_version	(void);
327 328 329 330 331

/*
 * tc.who.c
 */
#if defined (HAVE_UTMP_H) || defined (HAVE_UTMPX_H) || defined (WINNT_NATIVE)
332 333 334 335 336
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 *);
337
# ifdef HAVE_STRUCT_UTMP_UT_HOST
338 339
extern	char		 *utmphost	(void);
extern	size_t		  utmphostsize	(void);
340 341 342 343 344 345
# endif /* HAVE_STRUCT_UTMP_UT_HOST */
#else
# define HAVENOUTMP
#endif

#endif /* _h_tc_decls */