xref: /freebsd/contrib/tcsh/tc.decls.h (revision 45e5710b)
145e5710bSMark Peek /*
2c80476e4SDavid E. O'Brien  * tc.decls.h: Function declarations from all the tcsh modules
3c80476e4SDavid E. O'Brien  */
4c80476e4SDavid E. O'Brien /*-
5c80476e4SDavid E. O'Brien  * Copyright (c) 1980, 1991 The Regents of the University of California.
6c80476e4SDavid E. O'Brien  * All rights reserved.
7c80476e4SDavid E. O'Brien  *
8c80476e4SDavid E. O'Brien  * Redistribution and use in source and binary forms, with or without
9c80476e4SDavid E. O'Brien  * modification, are permitted provided that the following conditions
10c80476e4SDavid E. O'Brien  * are met:
11c80476e4SDavid E. O'Brien  * 1. Redistributions of source code must retain the above copyright
12c80476e4SDavid E. O'Brien  *    notice, this list of conditions and the following disclaimer.
13c80476e4SDavid E. O'Brien  * 2. Redistributions in binary form must reproduce the above copyright
14c80476e4SDavid E. O'Brien  *    notice, this list of conditions and the following disclaimer in the
15c80476e4SDavid E. O'Brien  *    documentation and/or other materials provided with the distribution.
16c80476e4SDavid E. O'Brien  * 3. Neither the name of the University nor the names of its contributors
1729301572SMark Peek  *    may be used to endorse or promote products derived from this software
18c80476e4SDavid E. O'Brien  *    without specific prior written permission.
19c80476e4SDavid E. O'Brien  *
20c80476e4SDavid E. O'Brien  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21c80476e4SDavid E. O'Brien  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22c80476e4SDavid E. O'Brien  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23c80476e4SDavid E. O'Brien  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24c80476e4SDavid E. O'Brien  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25c80476e4SDavid E. O'Brien  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26c80476e4SDavid E. O'Brien  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27c80476e4SDavid E. O'Brien  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28c80476e4SDavid E. O'Brien  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29c80476e4SDavid E. O'Brien  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30c80476e4SDavid E. O'Brien  * SUCH DAMAGE.
31c80476e4SDavid E. O'Brien  */
32c80476e4SDavid E. O'Brien #ifndef _h_tc_decls
33c80476e4SDavid E. O'Brien #define _h_tc_decls
34c80476e4SDavid E. O'Brien 
35c80476e4SDavid E. O'Brien struct blk_buf;
3645e5710bSMark Peek struct strbuf;
3745e5710bSMark Peek struct Strbuf;
3845e5710bSMark Peek 
3945e5710bSMark Peek /*
40c80476e4SDavid E. O'Brien  * tc.alloc.c
41c80476e4SDavid E. O'Brien  */
42c80476e4SDavid E. O'Brien #ifndef SYSMALLOC
43c80476e4SDavid E. O'Brien #ifndef WINNT_NATIVE
443b6eaa7bSAndrey A. Chernov #ifndef __linux__
4545e5710bSMark Peek extern	void		  free		(ptr_t);
4645e5710bSMark Peek extern	memalign_t	  malloc	(size_t);
4745e5710bSMark Peek extern	memalign_t	  realloc	(ptr_t, size_t);
4845e5710bSMark Peek extern	memalign_t	  calloc	(size_t, size_t);
4945e5710bSMark Peek #endif
5045e5710bSMark Peek #endif /* !WINNT_NATIVE */
513b6eaa7bSAndrey A. Chernov #else /* SYSMALLOC */
52c80476e4SDavid E. O'Brien extern	void		  sfree		(ptr_t);
5345e5710bSMark Peek extern	memalign_t	  smalloc	(size_t);
5445e5710bSMark Peek extern	memalign_t	  srealloc	(ptr_t, size_t);
5545e5710bSMark Peek extern	memalign_t	  scalloc	(size_t, size_t);
5645e5710bSMark Peek #endif /* SYSMALLOC */
57c80476e4SDavid E. O'Brien extern	void		  showall	(Char **, struct command *);
5845e5710bSMark Peek 
59c80476e4SDavid E. O'Brien /*
60c80476e4SDavid E. O'Brien  * tc.bind.c
61c80476e4SDavid E. O'Brien  */
62c80476e4SDavid E. O'Brien extern	void		  dobindkey	(Char **, struct command *);
6345e5710bSMark Peek 
64c80476e4SDavid E. O'Brien /*
65c80476e4SDavid E. O'Brien  * tc.defs.c:
66c80476e4SDavid E. O'Brien  */
67c80476e4SDavid E. O'Brien extern	void		  getmachine	(void);
6845e5710bSMark Peek 
69c80476e4SDavid E. O'Brien 
70c80476e4SDavid E. O'Brien /*
71c80476e4SDavid E. O'Brien  * tc.disc.c
72c80476e4SDavid E. O'Brien  */
73c80476e4SDavid E. O'Brien extern	int		  setdisc	(int);
7445e5710bSMark Peek extern	int		  resetdisc	(int);
7545e5710bSMark Peek 
76c80476e4SDavid E. O'Brien /*
77c80476e4SDavid E. O'Brien  * tc.func.c
78c80476e4SDavid E. O'Brien  */
79c80476e4SDavid E. O'Brien extern	Char		 *expand_lex    (const struct wordent *, int, int);
8045e5710bSMark Peek extern	Char		 *sprlex	(const struct wordent *);
8145e5710bSMark Peek extern	Char		 *Itoa		(int, size_t, Char);
8245e5710bSMark Peek extern	void		  dolist	(Char **, struct command *);
8345e5710bSMark Peek extern	void		  dotermname	(Char **, struct command *);
8445e5710bSMark Peek extern	void		  dotelltc	(Char **, struct command *);
8545e5710bSMark Peek extern	void		  doechotc	(Char **, struct command *);
8645e5710bSMark Peek extern	void		  dosettc	(Char **, struct command *);
8745e5710bSMark Peek extern	int		  cmd_expand	(Char *, Char **);
8845e5710bSMark Peek extern	void		  dowhich	(Char **, struct command *);
8945e5710bSMark Peek extern	struct process	 *find_stop_ed	(void);
9045e5710bSMark Peek extern	void		  fg_proc_entry	(struct process *);
9145e5710bSMark Peek extern	void		  alrmcatch	(void);
9245e5710bSMark Peek extern	void		  precmd	(void);
9345e5710bSMark Peek extern	void		  postcmd	(void);
9445e5710bSMark Peek extern	void		  cwd_cmd	(void);
9545e5710bSMark Peek extern	void		  beep_cmd	(void);
9645e5710bSMark Peek extern	void		  period_cmd	(void);
9745e5710bSMark Peek extern	void		  job_cmd	(Char *);
9845e5710bSMark Peek extern	void		  aliasrun	(int, Char *, Char *);
9945e5710bSMark Peek extern	void		  setalarm	(int);
10045e5710bSMark Peek extern	void		  rmstar	(struct wordent *);
10145e5710bSMark Peek extern	void		  continue_jobs	(struct wordent *);
10245e5710bSMark Peek extern	Char		 *gettilde	(const Char *);
10345e5710bSMark Peek extern	Char		 *getusername	(Char **);
10445e5710bSMark Peek #ifdef OBSOLETE
105c80476e4SDavid E. O'Brien extern	void		  doaliases	(Char **, struct command *);
10645e5710bSMark Peek #endif /* OBSOLETE */
107c80476e4SDavid E. O'Brien extern	void		  shlvl		(int);
10845e5710bSMark Peek extern	int		  fixio		(int, int);
10945e5710bSMark Peek extern	int		  collate	(const Char *, const Char *);
11045e5710bSMark Peek #ifdef HASHBANG
111c80476e4SDavid E. O'Brien extern	int		  hashbang	(int, Char ***);
11245e5710bSMark Peek #endif /* HASHBANG */
113c80476e4SDavid E. O'Brien #ifdef REMOTEHOST
114c80476e4SDavid E. O'Brien extern	void		  remotehost	(void);
11545e5710bSMark Peek #endif /* REMOTEHOST */
116c80476e4SDavid E. O'Brien 
117c80476e4SDavid E. O'Brien 
118c80476e4SDavid E. O'Brien /*
119c80476e4SDavid E. O'Brien  * tc.os.c
120c80476e4SDavid E. O'Brien  */
121c80476e4SDavid E. O'Brien #ifdef MACH
122c80476e4SDavid E. O'Brien extern	void		  dosetpath	(Char **, struct command *);
12345e5710bSMark Peek #endif /* MACH */
124c80476e4SDavid E. O'Brien 
125c80476e4SDavid E. O'Brien #ifdef TCF
126c80476e4SDavid E. O'Brien extern	void		  dogetxvers	(Char **, struct command *);
12745e5710bSMark Peek extern	void		  dosetxvers	(Char **, struct command *);
12845e5710bSMark Peek extern	void		  dogetspath	(Char **, struct command *);
12945e5710bSMark Peek extern	void		  dosetspath	(Char **, struct command *);
13045e5710bSMark Peek extern	char		 *sitename	(pid_t);
13145e5710bSMark Peek extern	void		  domigrate	(Char **, struct command *);
13245e5710bSMark Peek #endif /* TCF */
133c80476e4SDavid E. O'Brien 
134c80476e4SDavid E. O'Brien #ifdef WARP
135c80476e4SDavid E. O'Brien extern	void 		  dowarp	(Char **, struct command *);
13645e5710bSMark Peek #endif /* WARP */
137c80476e4SDavid E. O'Brien 
138c80476e4SDavid E. O'Brien #if defined(_CRAY) && !defined(_CRAYMPP)
139c80476e4SDavid E. O'Brien extern	void 		  dodmmode	(Char **, struct command *);
14045e5710bSMark Peek #endif /* _CRAY && !_CRAYMPP */
141c80476e4SDavid E. O'Brien 
142c80476e4SDavid E. O'Brien #if defined(masscomp) || defined(hcx)
143c80476e4SDavid E. O'Brien extern	void		  douniverse	(Char **, struct command *);
14445e5710bSMark Peek #endif /* masscomp */
145c80476e4SDavid E. O'Brien 
146c80476e4SDavid E. O'Brien #if defined(_OSD_POSIX) /* BS2000 */
147b2d5d167SMark Peek extern	void		  dobs2cmd	(Char **, struct command *);
14845e5710bSMark Peek #endif /* _OSD_POSIX */
149b2d5d167SMark Peek 
150b2d5d167SMark Peek #if defined(hcx)
151c80476e4SDavid E. O'Brien extern	void		  doatt		(Char **, struct command *);
15245e5710bSMark Peek extern	void		  doucb		(Char **, struct command *);
15345e5710bSMark Peek #endif /* hcx */
154c80476e4SDavid E. O'Brien 
155c80476e4SDavid E. O'Brien #ifdef _SEQUENT_
156c80476e4SDavid E. O'Brien extern	void	 	  pr_stat_sub	(struct process_stats *,
15745e5710bSMark Peek 					 struct process_stats *,
158c80476e4SDavid E. O'Brien 					 struct process_stats *);
15945e5710bSMark Peek #endif /* _SEQUENT_ */
160c80476e4SDavid E. O'Brien 
161c80476e4SDavid E. O'Brien #ifdef NEEDtcgetpgrp
162c80476e4SDavid E. O'Brien extern	pid_t	 	  xtcgetpgrp	(int);
16345e5710bSMark Peek extern	int		  xtcsetpgrp	(int, int);
16445e5710bSMark Peek # undef tcgetpgrp
165c80476e4SDavid E. O'Brien # define tcgetpgrp(a) 	  xtcgetpgrp(a)
166c80476e4SDavid E. O'Brien # undef tcsetpgrp
167c80476e4SDavid E. O'Brien # define tcsetpgrp(a, b)  xtcsetpgrp((a), (b))
168c80476e4SDavid E. O'Brien #endif /* NEEDtcgetpgrp */
169c80476e4SDavid E. O'Brien 
170c80476e4SDavid E. O'Brien #ifdef YPBUGS
171c80476e4SDavid E. O'Brien extern	void	 	  fix_yp_bugs	(void);
17245e5710bSMark Peek #endif /* YPBUGS */
173c80476e4SDavid E. O'Brien #ifdef STRCOLLBUG
174c80476e4SDavid E. O'Brien extern	void	 	  fix_strcoll_bug	(void);
17545e5710bSMark Peek #endif /* STRCOLLBUG */
176c80476e4SDavid E. O'Brien 
177c80476e4SDavid E. O'Brien extern	void	 	  osinit	(void);
17845e5710bSMark Peek 
179c80476e4SDavid E. O'Brien #ifndef HAVE_MEMMOVE
18023338178SMark Peek extern void 		*xmemmove	(void *, const void *, size_t);
18145e5710bSMark Peek # define memmove(a, b, c) xmemmove(a, b, c)
18223338178SMark Peek #endif /* !HAVE_MEMMOVE */
18323338178SMark Peek 
184c80476e4SDavid E. O'Brien #ifndef HAVE_MEMSET
18523338178SMark Peek extern void 		*xmemset	(void *, int, size_t);
18645e5710bSMark Peek # define memset(a, b, c) xmemset(a, b, c)
18723338178SMark Peek #endif /* !HAVE_MEMSET */
18823338178SMark Peek 
189c80476e4SDavid E. O'Brien 
190c80476e4SDavid E. O'Brien #ifndef HAVE_GETCWD
19123338178SMark Peek extern	char		 *xgetcwd	(char *, size_t);
19245e5710bSMark Peek # undef getcwd
193c80476e4SDavid E. O'Brien # define getcwd(a, b) xgetcwd(a, b)
19423338178SMark Peek #endif /* !HAVE_GETCWD */
19523338178SMark Peek 
196c80476e4SDavid E. O'Brien #ifndef HAVE_GETHOSTNAME
19723338178SMark Peek extern	int	 	  xgethostname	(char *, int);
19845e5710bSMark Peek # undef gethostname
199c80476e4SDavid E. O'Brien # define gethostname(a, b) xgethostname(a, b)
20023338178SMark Peek #endif /* !HAVE_GETHOSTNAME */
20123338178SMark Peek 
202c80476e4SDavid E. O'Brien #ifndef HAVE_NICE
20323338178SMark Peek extern	int	 	  xnice	(int);
20445e5710bSMark Peek # undef nice
205c80476e4SDavid E. O'Brien # define nice(a)	  xnice(a)
206c80476e4SDavid E. O'Brien #endif /* !HAVE_NICE */
20723338178SMark Peek 
208c80476e4SDavid E. O'Brien #ifndef HAVE_STRERROR
20923338178SMark Peek extern	char	 	 *xstrerror	(int);
21045e5710bSMark Peek # undef strerror
211c80476e4SDavid E. O'Brien # define strerror(a) 	  xstrerror(a)
212c80476e4SDavid E. O'Brien #endif /* !HAVE_STRERROR */
21323338178SMark Peek 
214c80476e4SDavid E. O'Brien #ifdef apollo
215c80476e4SDavid E. O'Brien extern	void		  doinlib	(Char **, struct command *);
21645e5710bSMark Peek extern	void		  dover		(Char **, struct command *);
21745e5710bSMark Peek extern	void		  dorootnode	(Char **, struct command *);
21845e5710bSMark Peek extern	int		  getv		(Char *);
21945e5710bSMark Peek #endif /* apollo */
220c80476e4SDavid E. O'Brien 
221c80476e4SDavid E. O'Brien 
222c80476e4SDavid E. O'Brien /*
223c80476e4SDavid E. O'Brien  * tc.printf.h
224c80476e4SDavid E. O'Brien  */
225c80476e4SDavid E. O'Brien #ifndef __GNUC__
22645e5710bSMark Peek #define __attribute__(a)
22745e5710bSMark Peek #endif
22845e5710bSMark Peek extern	int		  xprintf	(const char *, ...)
22945e5710bSMark Peek     __attribute__((__format__(__printf__, 1, 2)));
23045e5710bSMark Peek extern	int		  xsnprintf	(char *, size_t, const char *, ...)
23145e5710bSMark Peek     __attribute__((__format__(__printf__, 3, 4)));
23245e5710bSMark Peek extern	char		 *xasprintf	(const char *, ...)
23345e5710bSMark Peek     __attribute__((__format__(__printf__, 1, 2)));
23445e5710bSMark Peek extern	int		  xvprintf	(const char *, va_list)
23545e5710bSMark Peek     __attribute__((__format__(__printf__, 1, 0)));
23645e5710bSMark Peek extern	int		  xvsnprintf	(char *, size_t, const char *, va_list)
23745e5710bSMark Peek     __attribute__((__format__(__printf__, 3, 0)));
23845e5710bSMark Peek extern	char		 *xvasprintf	(const char *, va_list)
23945e5710bSMark Peek     __attribute__((__format__(__printf__, 1, 0)));
24045e5710bSMark Peek 
241c80476e4SDavid E. O'Brien /*
242c80476e4SDavid E. O'Brien  * tc.prompt.c
243c80476e4SDavid E. O'Brien  */
244c80476e4SDavid E. O'Brien extern	void		  dateinit	(void);
24545e5710bSMark Peek extern	void		  printprompt	(int, const char *);
24645e5710bSMark Peek extern  int 		  expdollar	(struct Strbuf *, const Char **, Char);
24745e5710bSMark Peek extern	Char		 *tprintf	(int, const Char *, const char *,
24845e5710bSMark Peek 					 time_t, ptr_t);
24945e5710bSMark Peek 
250c80476e4SDavid E. O'Brien /*
251c80476e4SDavid E. O'Brien  * tc.sched.c
252c80476e4SDavid E. O'Brien  */
253c80476e4SDavid E. O'Brien extern	time_t		  sched_next	(void);
25445e5710bSMark Peek extern	void		  dosched	(Char **, struct command *);
25545e5710bSMark Peek extern	void		  sched_run	(void);
25645e5710bSMark Peek 
257c80476e4SDavid E. O'Brien /*
258c80476e4SDavid E. O'Brien  * tc.str.c:
259c80476e4SDavid E. O'Brien  */
260c80476e4SDavid E. O'Brien #ifdef WIDE_STRINGS
26123338178SMark Peek extern	size_t		  one_mbtowc	(Char *, const char *, size_t);
26245e5710bSMark Peek extern	size_t		  one_wctomb	(char *, Char);
26345e5710bSMark Peek extern  int		  rt_mbtowc	(Char *, const char *, size_t);
26445e5710bSMark Peek #else
26523338178SMark Peek #define one_mbtowc(PWC, S, N) \
26623338178SMark Peek 	((void)(N), *(PWC) = (unsigned char)*(S), (size_t)1)
26723338178SMark Peek #define one_wctomb(S, WCHAR) (*(S) = (char)(WCHAR), (size_t)1)
26823338178SMark Peek #endif
26923338178SMark Peek #ifdef SHORT_STRINGS
270c80476e4SDavid E. O'Brien extern	Char		 *s_strchr	(const Char *, int);
27145e5710bSMark Peek extern	Char		 *s_strrchr	(const Char *, int);
27245e5710bSMark Peek extern	Char		 *s_strcat	(Char *, const Char *);
27345e5710bSMark Peek # ifdef NOTUSED
274c80476e4SDavid E. O'Brien extern	Char		 *s_strncat	(Char *, const Char *, size_t);
27545e5710bSMark Peek # endif /* NOTUSED */
276c80476e4SDavid E. O'Brien extern	Char		 *s_strcpy	(Char *, const Char *);
27745e5710bSMark Peek extern	Char		 *s_strncpy	(Char *, const Char *, size_t);
27845e5710bSMark Peek extern	Char		 *s_strspl	(const Char *, const Char *);
27945e5710bSMark Peek extern	size_t		  s_strlen	(const Char *);
28045e5710bSMark Peek extern	int		  s_strcmp	(const Char *, const Char *);
28145e5710bSMark Peek extern	int		  s_strncmp	(const Char *, const Char *, size_t);
28245e5710bSMark Peek extern	int		  s_strcasecmp	(const Char *, const Char *);
28345e5710bSMark Peek extern	Char		 *s_strnsave	(const Char *, size_t);
28445e5710bSMark Peek extern	Char		 *s_strsave	(const Char *);
28545e5710bSMark Peek extern	Char		 *s_strend	(const Char *);
28645e5710bSMark Peek extern	Char		 *s_strstr	(const Char *, const Char *);
28745e5710bSMark Peek extern	Char		 *str2short	(const char *);
28845e5710bSMark Peek extern	Char		**blk2short	(char **);
28945e5710bSMark Peek extern	char		 *short2str	(const Char *);
29045e5710bSMark Peek extern	char		**short2blk	(Char **);
29145e5710bSMark Peek #else /* !SHORT_STRINGS */
29245e5710bSMark Peek extern	char		 *caching_strip	(const char *);
29345e5710bSMark Peek #endif
29445e5710bSMark Peek extern	char		 *short2qstr	(const Char *);
29545e5710bSMark Peek 
29645e5710bSMark Peek extern  struct blk_buf   *bb_alloc	(void);
29745e5710bSMark Peek extern	void		  bb_append	(struct blk_buf *, Char *);
29845e5710bSMark Peek extern	void		  bb_cleanup	(void *);
29945e5710bSMark Peek extern	Char		**bb_finish	(struct blk_buf *);
30045e5710bSMark Peek extern  void 		  bb_free	(void *);
30145e5710bSMark Peek 
30245e5710bSMark Peek extern	struct strbuf	 *strbuf_alloc(void);
30345e5710bSMark Peek extern	void		  strbuf_terminate(struct strbuf *);
30445e5710bSMark Peek extern  void		  strbuf_append1(struct strbuf *, char);
30545e5710bSMark Peek extern  void		  strbuf_appendn(struct strbuf *, const char *,
30645e5710bSMark Peek 					 size_t);
30745e5710bSMark Peek extern  void		  strbuf_append (struct strbuf *, const char *);
30845e5710bSMark Peek extern  char		 *strbuf_finish (struct strbuf *);
30945e5710bSMark Peek extern	void		  strbuf_cleanup(void *);
31045e5710bSMark Peek extern	void		  strbuf_free(void *);
31145e5710bSMark Peek extern	struct Strbuf	 *Strbuf_alloc(void);
31245e5710bSMark Peek extern	void		  Strbuf_terminate(struct Strbuf *);
31345e5710bSMark Peek extern  void		  Strbuf_append1(struct Strbuf *, Char);
31445e5710bSMark Peek extern  void		  Strbuf_appendn(struct Strbuf *, const Char *,
315c80476e4SDavid E. O'Brien 					 size_t);
316c80476e4SDavid E. O'Brien extern  void		  Strbuf_append (struct Strbuf *, const Char *);
317c80476e4SDavid E. O'Brien extern  Char		 *Strbuf_finish (struct Strbuf *);
318c80476e4SDavid E. O'Brien extern	void		  Strbuf_cleanup(void *);
319c80476e4SDavid E. O'Brien extern	void		  Strbuf_free(void *);
32045e5710bSMark Peek 
321c80476e4SDavid E. O'Brien 
322c80476e4SDavid E. O'Brien /*
323c80476e4SDavid E. O'Brien  * tc.vers.c:
324c80476e4SDavid E. O'Brien  */
32523338178SMark Peek extern	void		  fix_version	(void);
32645e5710bSMark Peek 
32745e5710bSMark Peek /*
32845e5710bSMark Peek  * tc.who.c
32945e5710bSMark Peek  */
33045e5710bSMark Peek #if defined (HAVE_UTMP_H) || defined (HAVE_UTMPX_H) || defined (WINNT_NATIVE)
33123338178SMark Peek extern	void		  initwatch	(void);
33245e5710bSMark Peek extern	void		  resetwatch	(void);
33345e5710bSMark Peek extern	void		  watch_login	(int);
33423338178SMark Peek extern	char	 	 *who_info	(ptr_t, int);
33523338178SMark Peek extern	void		  dolog		(Char **, struct command *);
33623338178SMark Peek # ifdef HAVE_STRUCT_UTMP_UT_HOST
33723338178SMark Peek extern	char		 *utmphost	(void);
338c80476e4SDavid E. O'Brien extern	size_t		  utmphostsize	(void);
339c80476e4SDavid E. O'Brien # endif /* HAVE_STRUCT_UTMP_UT_HOST */
340 #else
341 # define HAVENOUTMP
342 #endif
343 
344 #endif /* _h_tc_decls */
345