/* $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 */