6560ac57ce
Merge commit '174d8b60324d7e8754709f7155e13ca95220b48c' into main. MFC After: 2 weeks
345 lines
10 KiB
C
345 lines
10 KiB
C
/*
|
|
* 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 int xprintf (const char *, ...)
|
|
__attribute__((__format__(__printf__, 1, 2)));
|
|
extern int xsnprintf (char *, size_t, const char *, ...)
|
|
__attribute__((__format__(__printf__, 3, 4)));
|
|
extern char *xasprintf (const char *, ...)
|
|
__attribute__((__format__(__printf__, 1, 2)));
|
|
extern int xvprintf (const char *, va_list)
|
|
__attribute__((__format__(__printf__, 1, 0)));
|
|
extern int 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 (Char *, const char *, size_t);
|
|
extern size_t one_wctomb (char *, Char);
|
|
extern int rt_mbtowc (Char *, 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) = (char)(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 */
|