364 lines
8.8 KiB
C
364 lines
8.8 KiB
C
/* $NetBSD: extern.h,v 1.30 2007/10/27 15:14:50 christos Exp $ */
|
|
|
|
/*-
|
|
* Copyright (c) 1992, 1993
|
|
* 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.
|
|
*
|
|
* @(#)extern.h 8.2 (Berkeley) 4/20/95
|
|
* $NetBSD: extern.h,v 1.30 2007/10/27 15:14:50 christos Exp $
|
|
*/
|
|
|
|
#ifndef __EXTERN_H__
|
|
#define __EXTERN_H__
|
|
|
|
/*
|
|
* from cmd1.c
|
|
*/
|
|
int More(void *);
|
|
int Type(void *);
|
|
int folders(void *);
|
|
int from(void *);
|
|
int headers(void *);
|
|
int inc(void *);
|
|
int mboxit(void *);
|
|
int more(void *);
|
|
int pcmdlist(void *);
|
|
int pdot(void *);
|
|
int pipecmd(void *);
|
|
int scroll(void *);
|
|
int stouch(void *);
|
|
int top(void *);
|
|
int type(void *);
|
|
#ifdef MIME_SUPPORT
|
|
int page(void *);
|
|
int Page(void *);
|
|
int print(void *);
|
|
int Print(void *);
|
|
int view(void *);
|
|
int View(void *);
|
|
#endif
|
|
/* XXX - should these be elsewhere? */
|
|
void printhead(int);
|
|
char * sget_msgnum(struct message *, struct message *);
|
|
void show_msgnum(FILE *, struct message *, struct message *);
|
|
|
|
/*
|
|
* from cmd2.c
|
|
*/
|
|
int Detach(void *);
|
|
int Save(void *);
|
|
int clobber(void *);
|
|
int copycmd(void *);
|
|
int core(void *);
|
|
int delete(void *);
|
|
int deltype(void *);
|
|
int detach(void *);
|
|
int igfield(void *);
|
|
int next(void *);
|
|
int retfield(void *);
|
|
int save(void *);
|
|
int saveigfield(void *);
|
|
int saveretfield(void *);
|
|
int swrite(void *);
|
|
int undeletecmd(void *);
|
|
|
|
/*
|
|
* from cmd3.c
|
|
*/
|
|
int Respond(void *);
|
|
int alternates(void *);
|
|
int bounce(void *);
|
|
int dosh(void *);
|
|
int echo(void *);
|
|
int elsecmd(void *);
|
|
int endifcmd(void *);
|
|
int file(void *);
|
|
int bounce(void *);
|
|
int forward(void *);
|
|
int group(void *);
|
|
int help(void *);
|
|
int ifcmd(void *);
|
|
int ifdefcmd(void *v);
|
|
int ifndefcmd(void *v);
|
|
int markread(void *);
|
|
int messize(void *);
|
|
int null(void *);
|
|
int preserve(void *);
|
|
int respond(void *);
|
|
int rexit(void *);
|
|
int schdir(void *);
|
|
int set(void *);
|
|
int shell(void *);
|
|
int show(void *);
|
|
int unalias(void *);
|
|
int unread(void *);
|
|
int unset(void *);
|
|
/* XXX - Should this be elsewhere? */
|
|
void sort(const char **);
|
|
|
|
/*
|
|
* from cmd4.c
|
|
*/
|
|
struct smopts_s *findsmopts(const char *, int);
|
|
int smoptscmd(void *);
|
|
int unsmoptscmd(void *);
|
|
|
|
/*
|
|
* from cmdtab.c
|
|
*/
|
|
extern const struct cmd cmdtab[];
|
|
|
|
/*
|
|
* from collect.c
|
|
*/
|
|
FILE * collect(struct header *, int);
|
|
void savedeadletter(FILE *);
|
|
|
|
/*
|
|
* from dotlock.c
|
|
*/
|
|
int dot_lock(const char *, int, FILE *, const char *);
|
|
void dot_unlock(const char *);
|
|
|
|
/*
|
|
* from edit.c
|
|
*/
|
|
int editor(void *);
|
|
int visual(void *);
|
|
FILE * run_editor(FILE *, off_t, int, int);
|
|
|
|
/*
|
|
* from fio.c
|
|
*/
|
|
const char *expand(const char *);
|
|
off_t fsize(FILE *);
|
|
const char *getdeadletter(void);
|
|
int getfold(char *, size_t);
|
|
void holdsigs(void);
|
|
int mail_readline(FILE *, char *, int);
|
|
int putline(FILE *, const char *, int);
|
|
void relsesigs(void);
|
|
int rm(char *);
|
|
FILE * setinput(const struct message *);
|
|
void setptr(FILE *, off_t);
|
|
|
|
/*
|
|
* from getname.c
|
|
*/
|
|
const char *getname(uid_t);
|
|
int getuserid(char []);
|
|
|
|
/*
|
|
* from head.c
|
|
*/
|
|
int ishead(const char []);
|
|
void parse(const char [], struct headline *, char []);
|
|
|
|
/*
|
|
* from lex.c
|
|
*/
|
|
void announce(void);
|
|
void commands(void);
|
|
enum execute_contxt_e { ec_normal, ec_composing, ec_autoprint };
|
|
int execute(char [], enum execute_contxt_e);
|
|
int incfile(void);
|
|
const struct cmd *lex(char []);
|
|
void load(const char *);
|
|
int newfileinfo(int);
|
|
int pversion(void *);
|
|
int setfile(const char *);
|
|
char * shellpr(char *);
|
|
char * get_cmdname(char *);
|
|
|
|
/*
|
|
* from list.c
|
|
*/
|
|
int first(int, int);
|
|
int get_Hflag(char **);
|
|
int getmsglist(char *, int *, int);
|
|
int getrawlist(const char [], char **, int);
|
|
int show_headers_and_exit(int) __attribute__((__noreturn__));
|
|
|
|
/*
|
|
* from main.c
|
|
*/
|
|
struct name *lexpand(char *, int);
|
|
void setscreensize(void);
|
|
int main(int, char **);
|
|
|
|
/*
|
|
* from names.c
|
|
*/
|
|
struct name *cat(struct name *, struct name *);
|
|
int count(struct name *);
|
|
struct name *delname(struct name *, char []);
|
|
char * detract(struct name *, int);
|
|
struct name * elide(struct name *);
|
|
struct name * extract(char [], int);
|
|
struct name * gexpand(struct name *, struct grouphead *, int, int);
|
|
struct name * nalloc(char [], int);
|
|
struct name * outof(struct name *, FILE *, struct header *);
|
|
const char ** unpack(struct name *);
|
|
struct name * usermap(struct name *);
|
|
#if 0
|
|
void prettyprint(struct name *); /* commented out? */
|
|
#endif
|
|
|
|
/*
|
|
* from popen.c
|
|
*/
|
|
int Fclose(FILE *);
|
|
FILE * Fdopen(int, const char *);
|
|
FILE * Fopen(const char *, const char *);
|
|
int Pclose(FILE *);
|
|
FILE * Popen(const char *, const char *);
|
|
void close_all_files(void);
|
|
void close_top_files(FILE *);
|
|
void free_child(int);
|
|
void prepare_child(sigset_t *, int, int);
|
|
FILE * last_registered_file(int);
|
|
void register_file(FILE *, int, int);
|
|
int run_command(const char *, sigset_t *, int, int, ...);
|
|
void sigchild(int);
|
|
int start_command(const char *, sigset_t *, int, int, ...);
|
|
int wait_child(int);
|
|
#ifdef MIME_SUPPORT
|
|
void flush_files(FILE *, int);
|
|
#endif
|
|
|
|
/*
|
|
* from quit.c
|
|
*/
|
|
void quit(void);
|
|
int quitcmd(void *);
|
|
|
|
/*
|
|
* from send.c
|
|
*/
|
|
#ifndef MIME_SUPPORT
|
|
# define sendmessage(a,b,c,d,e) legacy_sendmessage(a,b,c,d)
|
|
# define mail(a,b,c,d,e,f) legacy_mail(a,b,c,d,e)
|
|
#endif
|
|
int sendmessage(struct message *, FILE *, struct ignoretab *, const char *, struct mime_info *);
|
|
int mail(struct name *, struct name *, struct name *, struct name *, char *, struct attachment *);
|
|
void mail1(struct header *, int);
|
|
void mail2(FILE *, const char **);
|
|
int puthead(struct header *, FILE *, int);
|
|
int sendmail(void *);
|
|
|
|
/*
|
|
* from strings.c
|
|
*/
|
|
void * csalloc(size_t, size_t);
|
|
void * salloc(size_t);
|
|
void sreset(void);
|
|
void spreserve(void);
|
|
|
|
/*
|
|
* from support.c
|
|
*/
|
|
void add_ignore(const char *, struct ignoretab *);
|
|
void alter(char *);
|
|
int argcount(char **);
|
|
int blankline(char []);
|
|
char * copy(char *, char *);
|
|
char * hfield(const char [], const struct message *);
|
|
int isdir(const char []);
|
|
int isign(const char *, struct ignoretab []);
|
|
void istrcpy(char *, const char *);
|
|
int member(char *, struct ignoretab *);
|
|
char * nameof(struct message *, int);
|
|
int sasprintf(char **ret, const char *format, ...);
|
|
char * savestr(const char *);
|
|
struct message *set_m_flag(int, int, int);
|
|
char * skin(char *);
|
|
int source(void *);
|
|
void touch(struct message *);
|
|
int unstack(void);
|
|
int upcase(int);
|
|
void cathelp(const char *);
|
|
|
|
/*
|
|
* from temp.c
|
|
*/
|
|
void tinit(void);
|
|
|
|
/*
|
|
* from tty.c
|
|
*/
|
|
int grabh(struct header *, int);
|
|
|
|
/*
|
|
* from vars.c
|
|
*/
|
|
void assign(const char [], const char []);
|
|
struct grouphead * findgroup(const char []);
|
|
int hash(const char *);
|
|
struct var * lookup(const char []);
|
|
void printgroup(const char []);
|
|
void v_free(char *);
|
|
char * value(const char []);
|
|
char * vcopy(const char []);
|
|
|
|
/*
|
|
* from v7.local.c
|
|
*/
|
|
void demail(void);
|
|
void findmail(const char *, char *, size_t);
|
|
const char *username(void);
|
|
|
|
/*
|
|
* from version.c
|
|
*/
|
|
extern const char *version;
|
|
|
|
|
|
#ifndef THREAD_SUPPORT
|
|
/*
|
|
* Specials from fio.c (if THREAD_SUPPORT is not defined).
|
|
* With THREAD_SUPPORT, they live in thread.c.
|
|
*/
|
|
struct message *next_message(struct message *);
|
|
struct message *prev_message(struct message *);
|
|
struct message *get_message(int);
|
|
int get_msgnum(struct message *);
|
|
int get_msgCount(void);
|
|
|
|
/* we remap these commands */
|
|
# define get_abs_msgCount get_msgCount
|
|
# define get_abs_message(a) get_message(a)
|
|
# define next_abs_message(a) next_message(a)
|
|
|
|
/* we trash these commands */
|
|
# define do_recursion() 0
|
|
# define thread_recursion(mp,fn,args) fn(mp,args)
|
|
# define thread_fix_old_links(nmessage,message,omsgCount)
|
|
# define thread_fix_new_links(message,omsgCount,msgCount)
|
|
#endif /* THREAD_SUPPORT */
|
|
|
|
#endif /* __EXTERN_H__ */
|