mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-01 21:51:40 +02:00
zsh-workers/8843
This commit is contained in:
parent
2c5eaba197
commit
a4e44197ae
53 changed files with 534 additions and 485 deletions
|
@ -99,15 +99,25 @@ C coding style
|
|||
type of the function, and finally the name of the function with typed
|
||||
arguments. These lines must not be indented. The script generating
|
||||
function prototypes and the ansi2knr program depend on this format.
|
||||
If the function is not used outside the file it is defined in, it
|
||||
should be declared "static"; this keyword goes on the type line,
|
||||
before the return type.
|
||||
|
||||
* Global variable declarations must similarly be preceded by a
|
||||
* Variable declarations must similarly be preceded by a
|
||||
line containing only "/**/", for the prototype generation script.
|
||||
The declaration itself should be all on one line (except for multi-line
|
||||
initialisers).
|
||||
|
||||
* Preprocessor directives thst affect the function/variable declarations must
|
||||
also be preceded by a "/**/" line, so that they get copied into the
|
||||
prototype lists.
|
||||
|
||||
* There are three levels of visibility for a function or variable. It can
|
||||
be file-local, for which it must be marked with the keyword "static" at
|
||||
the front of the declaration. It can be visible to other object files in
|
||||
the same module, for which it requires no extra keyword. Or it can be
|
||||
made available to the entire program (including other dynamically loaded
|
||||
modules), for which it must be marked with the pseudo-keyword "mod_export"
|
||||
at the front of the declaration. Symbols should have the least visibility
|
||||
possible.
|
||||
|
||||
* Leave a blank line between the declarations and statements in a compound
|
||||
statement, if both are present. Use blank lines elsewhere to separate
|
||||
groups of statements in the interests of clarity. There should never
|
||||
|
@ -131,7 +141,7 @@ variables:
|
|||
- autoparams parameters defined by the module, for autoloading
|
||||
- automathfuncs math functions defined by the module, for autoloading
|
||||
- objects .o files making up this module (*must* be defined)
|
||||
- proto .pro files for this module (default generated from $objects)
|
||||
- proto .syms files for this module (default generated from $objects)
|
||||
- headers extra headers for this module (default none)
|
||||
- hdrdeps extra headers on which the .mdh depends (default none)
|
||||
- otherincs extra headers that are included indirectly (default none)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
Makefile
|
||||
Makemod.in Makemod
|
||||
*.export
|
||||
[_a-zA-Z0-9]*.pro
|
||||
*.epro
|
||||
*.syms
|
||||
|
|
|
@ -8,5 +8,5 @@ DISTFILES_SRC='
|
|||
math.c mem.c mkbltnmlst.sh mkmakemod.sh mkmodindex.sh
|
||||
module.c options.c params.c parse.c pattern.c prompt.c prototypes.h
|
||||
signals.c signals.h subst.c system.h text.c utils.c
|
||||
watch.c xmods.conf zsh.h zsh.mdd ztype.h zsh.export
|
||||
watch.c xmods.conf zsh.h zsh.mdd ztype.h
|
||||
'
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
Makefile
|
||||
Makefile.in
|
||||
*.export
|
||||
so_locations
|
||||
*.pro
|
||||
*.epro
|
||||
|
|
|
@ -65,7 +65,7 @@ NLIST = `cat stamp-modobjs`
|
|||
LIBZSH = libzsh-$(VERSION).$(DL_EXT)
|
||||
NIBZSH =
|
||||
|
||||
ZSH_EXPORT = $(EXPOPT)$(sdir)/zsh.export
|
||||
ZSH_EXPORT = $(EXPOPT)zsh.export
|
||||
ZSH_NXPORT =
|
||||
ENTRYOBJ = modentry..o
|
||||
NNTRYOBJ =
|
||||
|
@ -73,7 +73,7 @@ NNTRYOBJ =
|
|||
LDRUNPATH = LD_RUN_PATH=$(libdir)/zsh
|
||||
NDRUNPATH =
|
||||
|
||||
zsh: $(@L@IBZSH) $(@L@STMP) $(MAIN_OBJS)
|
||||
zsh: $(@L@IBZSH) $(@L@STMP) $(MAIN_OBJS) zsh.export
|
||||
rm -f $@
|
||||
$(@L@DRUNPATH) $(LINK) $(MAIN_OBJS) $(@L@LIST) $(ZSH_@E@XPORT) $(@L@IBZSH) $(LIBS)
|
||||
|
||||
|
@ -218,7 +218,7 @@ mostlyclean-modules clean-modules distclean-modules realclean-modules: modules.i
|
|||
# ========== RECURSIVE MAKES ==========
|
||||
|
||||
install.modules uninstall.modules \
|
||||
modobjs modules headers proto $(MAIN_OBJS): Makemod
|
||||
modobjs modules headers proto $(MAIN_OBJS) zsh.export: Makemod
|
||||
@$(MAKE) -f Makemod $(MAKEDEFS) $@
|
||||
|
||||
$(MAIN_OBJS): $(sdir)/zsh.h
|
||||
|
|
|
@ -148,7 +148,7 @@ uninstall.modules-here:
|
|||
@CLEAN_MK@
|
||||
|
||||
mostlyclean-here:
|
||||
rm -f *.o *.$(DL_EXT)
|
||||
rm -f *.o *.export *.$(DL_EXT)
|
||||
|
||||
clean-here:
|
||||
rm -f *.o.c *.syms *.pro *.epro *.mdh *.mdhi *.mdhs *.mdh.tmp
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
Makefile
|
||||
Makefile.in
|
||||
*.export
|
||||
so_locations
|
||||
*.pro
|
||||
*.epro
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
Makefile
|
||||
Makefile.in
|
||||
*.export
|
||||
so_locations
|
||||
*.pro
|
||||
*.epro
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
DISTFILES_SRC='
|
||||
.cvsignore .distfiles .exrc
|
||||
comp.h complete.mdd complete.c complete.export
|
||||
comp.h complete.mdd complete.c
|
||||
compcore.c compmatch.c compresult.c
|
||||
compctl.mdd compctl.c compctl.h
|
||||
complist.mdd complist.c
|
||||
|
@ -10,5 +10,5 @@ DISTFILES_SRC='
|
|||
zle.mdd iwidgets.list zle.h zle_bindings.c zle_hist.c
|
||||
zle_keymap.c zle_main.c zle_misc.c zle_move.c zle_params.c
|
||||
zle_refresh.c zle_things.sed zle_thingy.c zle_tricky.c
|
||||
zle_utils.c zle_vi.c zle_widget.sed zle_word.c zle.export
|
||||
zle_utils.c zle_vi.c zle_widget.sed zle_word.c
|
||||
'
|
||||
|
|
|
@ -59,12 +59,12 @@ int insmnum, insgnum, insgroup, insspace;
|
|||
/* Information about menucompletion. */
|
||||
|
||||
/**/
|
||||
struct menuinfo minfo;
|
||||
mod_export struct menuinfo minfo;
|
||||
|
||||
/* Number of matches accepted with accept-and-menu-complete */
|
||||
|
||||
/**/
|
||||
int menuacc;
|
||||
mod_export int menuacc;
|
||||
|
||||
/* Brace insertion stuff. */
|
||||
|
||||
|
@ -74,7 +74,7 @@ int hasunqu, useqbr, brpcs, brscs;
|
|||
/* Flags saying in what kind of string we are. */
|
||||
|
||||
/**/
|
||||
int ispar, linwhat;
|
||||
mod_export int ispar, linwhat;
|
||||
|
||||
/* A parameter expansion prefix (like ${). */
|
||||
|
||||
|
@ -89,7 +89,7 @@ int parflags;
|
|||
/* Match flags for all matches in this group. */
|
||||
|
||||
/**/
|
||||
int mflags;
|
||||
mod_export int mflags;
|
||||
|
||||
/* Flags saying how the parameter expression we are in is quoted. */
|
||||
|
||||
|
@ -101,13 +101,15 @@ int parq, eparq;
|
|||
* isuf -- the ignored suffix */
|
||||
|
||||
/**/
|
||||
char *ipre, *ripre, *isuf;
|
||||
mod_export char *ipre, *ripre, *isuf;
|
||||
|
||||
/* The list of matches. fmatches contains the matches we first ignore *
|
||||
* because of fignore. */
|
||||
|
||||
/**/
|
||||
LinkList matches, fmatches;
|
||||
mod_export LinkList matches;
|
||||
/**/
|
||||
LinkList fmatches;
|
||||
|
||||
/* This holds the list of matches-groups. lastmatches holds the last list of
|
||||
* permanently allocated matches, pmatches is the same for the list
|
||||
|
@ -116,12 +118,12 @@ LinkList matches, fmatches;
|
|||
* lmatches/lastlmatches is a pointer to the last element in the lists. */
|
||||
|
||||
/**/
|
||||
Cmgroup lastmatches, pmatches, amatches, lmatches, lastlmatches;
|
||||
mod_export Cmgroup lastmatches, pmatches, amatches, lmatches, lastlmatches;
|
||||
|
||||
/* Non-zero if we have permanently allocated matches (old and new). */
|
||||
|
||||
/**/
|
||||
int hasoldlist, hasperm;
|
||||
mod_export int hasoldlist, hasperm;
|
||||
|
||||
/* Non-zero if we have newly added matches. */
|
||||
|
||||
|
@ -136,27 +138,29 @@ int permmnum, permgnum, lastpermmnum, lastpermgnum;
|
|||
/* The total number of matches and the number of matches to be listed. */
|
||||
|
||||
/**/
|
||||
int nmatches, smatches;
|
||||
mod_export int nmatches;
|
||||
/**/
|
||||
int smatches;
|
||||
|
||||
/* != 0 if only explanation strings should be printed */
|
||||
|
||||
/**/
|
||||
int onlyexpl;
|
||||
mod_export int onlyexpl;
|
||||
|
||||
/* Information about the matches for listing. */
|
||||
|
||||
/**/
|
||||
struct cldata listdat;
|
||||
mod_export struct cldata listdat;
|
||||
|
||||
/* This flag is non-zero if we are completing a pattern (with globcomplete) */
|
||||
|
||||
/**/
|
||||
int ispattern, haspattern;
|
||||
mod_export int ispattern, haspattern;
|
||||
|
||||
/* Non-zero if at least one match was added without -U. */
|
||||
|
||||
/**/
|
||||
int hasmatched;
|
||||
mod_export int hasmatched;
|
||||
|
||||
/* The current group of matches. */
|
||||
|
||||
|
@ -166,7 +170,7 @@ Cmgroup mgroup;
|
|||
/* Match counter: all matches. */
|
||||
|
||||
/**/
|
||||
int mnum;
|
||||
mod_export int mnum;
|
||||
|
||||
/* The match counter when unambig_data() was called. */
|
||||
|
||||
|
@ -185,22 +189,22 @@ int maxmlen, minmlen;
|
|||
LinkList expls;
|
||||
|
||||
/**/
|
||||
Cexpl curexpl;
|
||||
mod_export Cexpl curexpl;
|
||||
|
||||
/* A stack of completion matchers to be used. */
|
||||
|
||||
/**/
|
||||
Cmlist mstack;
|
||||
mod_export Cmlist mstack;
|
||||
|
||||
/* The completion matchers used when building new stuff for the line. */
|
||||
|
||||
/**/
|
||||
Cmlist bmatchers;
|
||||
mod_export Cmlist bmatchers;
|
||||
|
||||
/* A list with references to all matchers we used. */
|
||||
|
||||
/**/
|
||||
LinkList matchers;
|
||||
mod_export LinkList matchers;
|
||||
|
||||
/* A heap of free Cline structures. */
|
||||
|
||||
|
@ -215,7 +219,7 @@ Aminfo ainfo, fainfo;
|
|||
/* The memory heap to use for new style completion generation. */
|
||||
|
||||
/**/
|
||||
Heap compheap;
|
||||
mod_export Heap compheap;
|
||||
|
||||
/* A list of some data.
|
||||
*
|
||||
|
@ -223,7 +227,7 @@ Heap compheap;
|
|||
* conceptually we don't know anything about compctls here... */
|
||||
|
||||
/**/
|
||||
LinkList allccs;
|
||||
mod_export LinkList allccs;
|
||||
|
||||
/* This says what of the state the line is in when completion is started *
|
||||
* came from a previous completion. If the FC_LINE bit is set, the *
|
||||
|
@ -917,7 +921,7 @@ makecomplist(char *s, int incmd, int lst)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
multiquote(char *s, int ign)
|
||||
{
|
||||
if (s) {
|
||||
|
@ -940,7 +944,7 @@ multiquote(char *s, int ign)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
tildequote(char *s, int ign)
|
||||
{
|
||||
if (s) {
|
||||
|
@ -961,7 +965,7 @@ tildequote(char *s, int ign)
|
|||
/* Check if we have to complete a parameter name. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
check_param(char *s, int set, int test)
|
||||
{
|
||||
char *p;
|
||||
|
@ -1086,7 +1090,7 @@ check_param(char *s, int set, int test)
|
|||
/* Copy the given string and remove backslashes from the copy and return it. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
rembslash(char *s)
|
||||
{
|
||||
char *t = s = dupstring(s);
|
||||
|
@ -1105,7 +1109,7 @@ rembslash(char *s)
|
|||
/* This should probably be moved into tokenize(). */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
ctokenize(char *p)
|
||||
{
|
||||
char *r = p;
|
||||
|
@ -1131,7 +1135,7 @@ ctokenize(char *p)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
comp_str(int *ipl, int *pl, int untok)
|
||||
{
|
||||
char *p = dupstring(compprefix);
|
||||
|
@ -1396,7 +1400,7 @@ set_comp_sep(void)
|
|||
/* This stores the strings from the list in an array. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
set_list_array(char *name, LinkList l)
|
||||
{
|
||||
char **a, **p;
|
||||
|
@ -1413,7 +1417,7 @@ set_list_array(char *name, LinkList l)
|
|||
/* Get the words from a variable or a (list of words). */
|
||||
|
||||
/**/
|
||||
char **
|
||||
mod_export char **
|
||||
get_user_var(char *nam)
|
||||
{
|
||||
if (!nam)
|
||||
|
@ -1842,7 +1846,7 @@ addmatches(Cadata dat, char **argv)
|
|||
/* This adds all the data we have for a match. */
|
||||
|
||||
/**/
|
||||
Cmatch
|
||||
mod_export Cmatch
|
||||
add_match_data(int alt, char *str, Cline line,
|
||||
char *ipre, char *ripre, char *isuf,
|
||||
char *pre, char *prpre,
|
||||
|
@ -2170,7 +2174,7 @@ add_match_data(int alt, char *str, Cline line,
|
|||
/* This begins a new group of matches. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
begcmgroup(char *n, int flags)
|
||||
{
|
||||
if (n) {
|
||||
|
@ -2213,7 +2217,7 @@ begcmgroup(char *n, int flags)
|
|||
/* End the current group for now. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
endcmgroup(char **ylist)
|
||||
{
|
||||
mgroup->ylist = ylist;
|
||||
|
@ -2222,7 +2226,7 @@ endcmgroup(char **ylist)
|
|||
/* Add an explanation string to the current group, joining duplicates. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
addexpl(void)
|
||||
{
|
||||
LinkNode n;
|
||||
|
@ -2581,7 +2585,7 @@ freematch(Cmatch m, int nbeg, int nend)
|
|||
/* This frees the groups of matches. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
freematches(Cmgroup g)
|
||||
{
|
||||
Cmgroup n;
|
||||
|
|
|
@ -33,41 +33,44 @@
|
|||
/* Global matcher. */
|
||||
|
||||
/**/
|
||||
Cmlist cmatcher;
|
||||
mod_export Cmlist cmatcher;
|
||||
|
||||
/* global variables for shell parameters in new style completion */
|
||||
|
||||
/**/
|
||||
zlong compcurrent,
|
||||
compmatcher,
|
||||
mod_export zlong compcurrent;
|
||||
/**/
|
||||
zlong compmatcher,
|
||||
compmatchertot,
|
||||
complistmax,
|
||||
complistlines;
|
||||
|
||||
/**/
|
||||
mod_export
|
||||
char **compwords,
|
||||
*compprefix,
|
||||
*compsuffix,
|
||||
*compiprefix,
|
||||
*compisuffix,
|
||||
*compqiprefix,
|
||||
*compqisuffix,
|
||||
*compquote,
|
||||
*compqstack,
|
||||
*comppatmatch,
|
||||
*complastprompt;
|
||||
/**/
|
||||
char *compiprefix,
|
||||
*compmatcherstr,
|
||||
*compcontext,
|
||||
*compparameter,
|
||||
*compredirect,
|
||||
*compquote,
|
||||
*compquoting,
|
||||
*compqstack,
|
||||
*comprestore,
|
||||
*complist,
|
||||
*compforcelist,
|
||||
*compinsert,
|
||||
*compexact,
|
||||
*compexactstr,
|
||||
*comppatmatch,
|
||||
*comppatinsert,
|
||||
*complastprompt,
|
||||
*comptoend,
|
||||
*compoldlist,
|
||||
*compoldins,
|
||||
|
@ -94,7 +97,7 @@ freecmlist(Cmlist l)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
freecmatcher(Cmatcher m)
|
||||
{
|
||||
Cmatcher n;
|
||||
|
@ -152,7 +155,7 @@ cpcmlist(Cmlist l)
|
|||
/* Copy a completion matcher list. */
|
||||
|
||||
/**/
|
||||
Cmatcher
|
||||
mod_export Cmatcher
|
||||
cpcmatcher(Cmatcher m)
|
||||
{
|
||||
Cmatcher r = NULL, *p = &r, n;
|
||||
|
@ -202,7 +205,7 @@ cpcpattern(Cpattern o)
|
|||
/* Set the global match specs. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
set_gmatcher(char *name, char **argv)
|
||||
{
|
||||
Cmlist l = NULL, *q = &l, n;
|
||||
|
@ -229,7 +232,7 @@ set_gmatcher(char *name, char **argv)
|
|||
/* Parse a string for matcher control, containing multiple matchers. */
|
||||
|
||||
/**/
|
||||
Cmatcher
|
||||
mod_export Cmatcher
|
||||
parse_cmatcher(char *name, char *s)
|
||||
{
|
||||
Cmatcher ret = NULL, r = NULL, n;
|
||||
|
@ -616,7 +619,7 @@ bin_compadd(char *name, char **argv, char *ops, int func)
|
|||
#define CVT_SUFPAT 5
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
ignore_prefix(int l)
|
||||
{
|
||||
if (l) {
|
||||
|
@ -640,7 +643,7 @@ ignore_prefix(int l)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
ignore_suffix(int l)
|
||||
{
|
||||
if (l) {
|
||||
|
@ -663,7 +666,7 @@ ignore_suffix(int l)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
restrict_range(int b, int e)
|
||||
{
|
||||
int wl = arrlen(compwords) - 1;
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
hasexport=1
|
||||
|
||||
moddeps="zle"
|
||||
|
||||
autobins="compgen compadd compset"
|
||||
|
|
|
@ -68,7 +68,7 @@ cmp_cmatchers(Cmatcher a, Cmatcher b)
|
|||
/* Add the given matchers to the bmatcher list. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
add_bmatchers(Cmatcher m)
|
||||
{
|
||||
Cmlist old = bmatchers, *q = &bmatchers, n;
|
||||
|
@ -88,7 +88,7 @@ add_bmatchers(Cmatcher m)
|
|||
* ensure that the bmatchers list contains no matchers not in mstack. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
update_bmatchers(void)
|
||||
{
|
||||
Cmlist p = bmatchers, q = NULL, ms;
|
||||
|
@ -832,7 +832,7 @@ match_parts(char *l, char *w, int n, int part)
|
|||
* and the suffix don't match the word w. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
comp_match(char *pfx, char *sfx, char *w, Patprog cp, Cline *clp, int qu,
|
||||
Brinfo *bpl, int bcp, Brinfo *bsl, int bcs, int *exact)
|
||||
{
|
||||
|
|
|
@ -682,7 +682,7 @@ do_ambiguous(void)
|
|||
* (l)stat(). */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
ztat(char *nam, struct stat *buf, int ls)
|
||||
{
|
||||
char b[PATH_MAX], *p;
|
||||
|
@ -700,7 +700,7 @@ ztat(char *nam, struct stat *buf, int ls)
|
|||
/* Insert a single match in the command line. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
do_single(Cmatch m)
|
||||
{
|
||||
int l, sr = 0, scs;
|
||||
|
@ -891,7 +891,7 @@ do_single(Cmatch m)
|
|||
* insert the next completion. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
do_menucmp(int lst)
|
||||
{
|
||||
/* Just list the matches if the list was requested. */
|
||||
|
@ -947,7 +947,7 @@ reverse_menu(Hookdef dummy, void *dummy2)
|
|||
* accept several selections from the list of matches. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
accept_last(void)
|
||||
{
|
||||
if (!menuacc) {
|
||||
|
@ -1132,7 +1132,7 @@ skipnolist(Cmatch *p)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
calclist(void)
|
||||
{
|
||||
Cmgroup g;
|
||||
|
@ -1517,7 +1517,7 @@ int asklist(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
printlist(int over, CLPrintFunc printm)
|
||||
{
|
||||
Cmgroup g;
|
||||
|
@ -1800,7 +1800,7 @@ list_matches(Hookdef dummy, void *dummy2)
|
|||
/* Invalidate the completion list. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
invalidate_list(void)
|
||||
{
|
||||
if (showinglist == -2)
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
hasexport=1
|
||||
|
||||
autobins="bindkey vared zle"
|
||||
|
||||
objects="zle_bindings.o zle_hist.o zle_keymap.o zle_main.o \
|
||||
|
|
|
@ -69,7 +69,7 @@ widgets[] = {
|
|||
*/
|
||||
|
||||
/**/
|
||||
struct thingy thingies[] = {
|
||||
mod_export struct thingy thingies[] = {
|
||||
#define T(name, th_flags, w_idget, t_next) \
|
||||
{ NULL, name, th_flags, 2, w_idget, t_next },
|
||||
#include "thingies.list"
|
||||
|
|
|
@ -105,7 +105,7 @@ char *curkeymapname;
|
|||
/* the hash table of keymap names */
|
||||
|
||||
/**/
|
||||
HashTable keymapnamtab;
|
||||
mod_export HashTable keymapnamtab;
|
||||
|
||||
/* key sequence reading data */
|
||||
|
||||
|
@ -217,7 +217,7 @@ freekeynode(HashNode hn)
|
|||
static HashTable copyto;
|
||||
|
||||
/**/
|
||||
Keymap
|
||||
mod_export Keymap
|
||||
newkeymap(Keymap tocopy, char *kmname)
|
||||
{
|
||||
Keymap km = zcalloc(sizeof(*km));
|
||||
|
@ -323,7 +323,7 @@ openkeymap(char *name)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
unlinkkeymap(char *name, int ignm)
|
||||
{
|
||||
KeymapName n = (KeymapName) keymapnamtab->getnode(keymapnamtab, name);
|
||||
|
@ -336,7 +336,7 @@ unlinkkeymap(char *name, int ignm)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
linkkeymap(Keymap km, char *name, int imm)
|
||||
{
|
||||
KeymapName n = (KeymapName) keymapnamtab->getnode(keymapnamtab, name);
|
||||
|
@ -386,7 +386,7 @@ selectkeymap(char *name, int fb)
|
|||
/* Select a local key map. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
selectlocalmap(Keymap m)
|
||||
{
|
||||
localkeymap = m;
|
||||
|
@ -414,7 +414,7 @@ reselectkeymap(void)
|
|||
* back onto the input. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
bindkey(Keymap km, char *seq, Thingy bind, char *str)
|
||||
{
|
||||
Key k;
|
||||
|
@ -1204,7 +1204,7 @@ getkeybuf(int w)
|
|||
* Must be executed at most once after each getkeymapcmd(). */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
ungetkeycmd(void)
|
||||
{
|
||||
ungetkeys(keybuf, keybuflen);
|
||||
|
@ -1213,7 +1213,7 @@ ungetkeycmd(void)
|
|||
/* read a command from the current keymap, with widgets */
|
||||
|
||||
/**/
|
||||
Thingy
|
||||
mod_export Thingy
|
||||
getkeycmd(void)
|
||||
{
|
||||
Thingy func;
|
||||
|
|
|
@ -34,17 +34,17 @@
|
|||
* will work (i.e., the line is metafied, and the above word arrays are OK). */
|
||||
|
||||
/**/
|
||||
int incompctlfunc;
|
||||
mod_export int incompctlfunc;
|
||||
|
||||
/* != 0 if we are in a new style completion function */
|
||||
|
||||
/**/
|
||||
int incompfunc;
|
||||
mod_export int incompfunc;
|
||||
|
||||
/* != 0 if completion module is loaded */
|
||||
|
||||
/**/
|
||||
int hascompmod;
|
||||
mod_export int hascompmod;
|
||||
|
||||
/* != 0 if we're done editing */
|
||||
|
||||
|
@ -64,7 +64,7 @@ int c;
|
|||
/* the bindings for the previous and for this key */
|
||||
|
||||
/**/
|
||||
Thingy lbindk, bindk;
|
||||
mod_export Thingy lbindk, bindk;
|
||||
|
||||
/* insert mode/overwrite mode flag */
|
||||
|
||||
|
@ -83,10 +83,10 @@ static int baud;
|
|||
/* flags associated with last command */
|
||||
|
||||
/**/
|
||||
int lastcmd;
|
||||
mod_export int lastcmd;
|
||||
|
||||
/**/
|
||||
Widget compwidget;
|
||||
mod_export Widget compwidget;
|
||||
|
||||
/* the status line, and its length */
|
||||
|
||||
|
@ -109,7 +109,7 @@ int undoing;
|
|||
/* current modifier status */
|
||||
|
||||
/**/
|
||||
struct modifier zmod;
|
||||
mod_export struct modifier zmod;
|
||||
|
||||
/* Current command prefix status. This is normally 0. Prefixes set *
|
||||
* this to 1. Each time round the main loop, this is checked: if it *
|
||||
|
@ -127,7 +127,7 @@ int prefixflag;
|
|||
int kungetct;
|
||||
|
||||
/**/
|
||||
char *zlenoargs[1] = { NULL };
|
||||
mod_export char *zlenoargs[1] = { NULL };
|
||||
|
||||
#ifdef FIONREAD
|
||||
static int delayzsetterm;
|
||||
|
@ -136,7 +136,7 @@ static int delayzsetterm;
|
|||
/* set up terminal */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zsetterm(void)
|
||||
{
|
||||
struct ttyinfo ti;
|
||||
|
@ -316,7 +316,7 @@ breakread(int fd, char *buf, int n)
|
|||
#endif
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
getkey(int keytmout)
|
||||
{
|
||||
char cc;
|
||||
|
@ -722,7 +722,7 @@ handleprefixes(void)
|
|||
/* this exports the argument we are currently vared'iting if != NULL */
|
||||
|
||||
/**/
|
||||
char *varedarg;
|
||||
mod_export char *varedarg;
|
||||
|
||||
/* vared: edit (literally) a parameter value */
|
||||
|
||||
|
@ -952,7 +952,7 @@ whereis(char **args)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
trashzle(void)
|
||||
{
|
||||
if (zleactive) {
|
||||
|
@ -991,7 +991,7 @@ static struct builtin bintab[] = {
|
|||
* macros in zle.h */
|
||||
|
||||
/**/
|
||||
struct hookdef zlehooks[] = {
|
||||
mod_export struct hookdef zlehooks[] = {
|
||||
HOOKDEF("list_matches", NULL, 0),
|
||||
HOOKDEF("complete", NULL, 0),
|
||||
HOOKDEF("before_complete", NULL, 0),
|
||||
|
|
|
@ -833,7 +833,7 @@ executenamedcommand(char *prmt)
|
|||
* suffixlen[256] is the length to remove for non-insertion editing actions. */
|
||||
|
||||
/**/
|
||||
int suffixlen[257];
|
||||
mod_export int suffixlen[257];
|
||||
|
||||
/* Shell function to call to remove the suffix. */
|
||||
|
||||
|
@ -844,7 +844,7 @@ static char *suffixfunc;
|
|||
* removed in the usual word end conditions. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
makesuffix(int n)
|
||||
{
|
||||
suffixlen[256] = suffixlen[' '] = suffixlen['\t'] = suffixlen['\n'] =
|
||||
|
@ -858,7 +858,7 @@ makesuffix(int n)
|
|||
* characters that can only be used in braces are included. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
makeparamsuffix(int br, int n)
|
||||
{
|
||||
if(br || unset(KSHARRAYS))
|
||||
|
@ -874,7 +874,7 @@ makeparamsuffix(int br, int n)
|
|||
* remove the suffix. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
makesuffixstr(char *f, char *s, int n)
|
||||
{
|
||||
if (f) {
|
||||
|
@ -920,7 +920,7 @@ makesuffixstr(char *f, char *s, int n)
|
|||
/* Remove suffix, if there is one, when inserting character c. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
iremovesuffix(int c, int keep)
|
||||
{
|
||||
if (suffixfunc) {
|
||||
|
@ -958,7 +958,7 @@ iremovesuffix(int c, int keep)
|
|||
/* Fix the suffix in place, if there is one, making it non-removable. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
fixsuffix(void)
|
||||
{
|
||||
memset(suffixlen, 0, sizeof(suffixlen));
|
||||
|
|
|
@ -79,7 +79,7 @@ static struct zleparam {
|
|||
};
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
makezleparams(int ro)
|
||||
{
|
||||
struct zleparam *zp;
|
||||
|
|
|
@ -43,7 +43,7 @@ unsigned pmpt_attr, rpmpt_attr;
|
|||
/* number of lines displayed */
|
||||
|
||||
/**/
|
||||
int nlnct;
|
||||
mod_export int nlnct;
|
||||
|
||||
/* Most lines of the buffer we've shown at once with the current list *
|
||||
* showing. == 0 if there is no list. == -1 if a new list has just *
|
||||
|
@ -51,25 +51,25 @@ int nlnct;
|
|||
* list. */
|
||||
|
||||
/**/
|
||||
int showinglist;
|
||||
mod_export int showinglist;
|
||||
|
||||
/* > 0 if a completion list is displayed below the prompt,
|
||||
* < 0 if a list is displayed above the prompt. */
|
||||
|
||||
/**/
|
||||
int listshown;
|
||||
mod_export int listshown;
|
||||
|
||||
/* Non-zero if ALWAYS_LAST_PROMPT has been used, meaning that the *
|
||||
* screen below the buffer display should not be cleared by *
|
||||
* zrefresh(), but should be by trashzle(). */
|
||||
|
||||
/**/
|
||||
int clearflag;
|
||||
mod_export int clearflag;
|
||||
|
||||
/* Non-zero if zrefresh() should clear the list below the prompt. */
|
||||
|
||||
/**/
|
||||
int clearlist;
|
||||
mod_export int clearlist;
|
||||
|
||||
#ifdef HAVE_SELECT
|
||||
/* cost of last update */
|
||||
|
@ -243,7 +243,7 @@ static int cleareol, /* clear to end-of-line (if can't cleareod) */
|
|||
numscrolls, onumscrolls;
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zrefresh(void)
|
||||
{
|
||||
static int inlist; /* avoiding recursion */
|
||||
|
@ -893,7 +893,7 @@ moveto(int ln, int cl)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
tcmultout(int cap, int multcap, int ct)
|
||||
{
|
||||
if (tccan(multcap) && (!tccan(cap) || tclen[multcap] <= tclen[cap] * ct)) {
|
||||
|
@ -989,7 +989,7 @@ tc_downcurs(int ct)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
tcout(int cap)
|
||||
{
|
||||
tputs(tcstr[cap], 1, putshout);
|
||||
|
@ -1008,7 +1008,7 @@ tcoutarg(int cap, int arg)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
clearscreen(char **args)
|
||||
{
|
||||
tcout(TCCLEARSCREEN);
|
||||
|
@ -1018,7 +1018,7 @@ clearscreen(char **args)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
redisplay(char **args)
|
||||
{
|
||||
moveto(0, 0);
|
||||
|
|
|
@ -134,7 +134,7 @@ freethingynode(HashNode hn)
|
|||
* correctly. */
|
||||
|
||||
/**/
|
||||
Thingy
|
||||
mod_export Thingy
|
||||
refthingy(Thingy th)
|
||||
{
|
||||
if(th)
|
||||
|
@ -261,7 +261,7 @@ freewidget(Widget w)
|
|||
* returned. */
|
||||
|
||||
/**/
|
||||
Widget
|
||||
mod_export Widget
|
||||
addzlefunction(char *name, ZleIntFunc ifunc, int flags)
|
||||
{
|
||||
VARARR(char, dotn, strlen(name) + 2);
|
||||
|
@ -290,7 +290,7 @@ addzlefunction(char *name, ZleIntFunc ifunc, int flags)
|
|||
* a widget from the fixed table -- it would be bad. (Thanks, Egon.) */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
deletezlefunction(Widget w)
|
||||
{
|
||||
Thingy p, n;
|
||||
|
|
|
@ -47,27 +47,27 @@
|
|||
/* The line before completion was tried. */
|
||||
|
||||
/**/
|
||||
char *origline;
|
||||
mod_export char *origline;
|
||||
/**/
|
||||
int origcs, origll;
|
||||
mod_export int origcs, origll;
|
||||
|
||||
/* Words on the command line, for use in completion */
|
||||
|
||||
/**/
|
||||
int clwsize, clwnum, clwpos;
|
||||
mod_export int clwsize, clwnum, clwpos;
|
||||
/**/
|
||||
char **clwords;
|
||||
mod_export char **clwords;
|
||||
|
||||
/* wb and we hold the beginning/end position of the word we are completing. */
|
||||
|
||||
/**/
|
||||
int wb, we;
|
||||
mod_export int wb, we;
|
||||
|
||||
/* offs is the cursor position within the tokenized *
|
||||
* current word after removing nulargs. */
|
||||
|
||||
/**/
|
||||
int offs;
|
||||
mod_export int offs;
|
||||
|
||||
/* These control the type of completion that will be done. They are *
|
||||
* affected by the choice of ZLE command and by relevant shell options. *
|
||||
|
@ -75,34 +75,34 @@ int offs;
|
|||
* insert a match as if for menucompletion but without really starting it. */
|
||||
|
||||
/**/
|
||||
int usemenu, useglob;
|
||||
mod_export int usemenu, useglob;
|
||||
|
||||
/* != 0 if we are in the middle of a menu completion. May be == 2 to force *
|
||||
* menu completion even if using different widgets. */
|
||||
|
||||
/**/
|
||||
int menucmp;
|
||||
mod_export int menucmp;
|
||||
|
||||
/* Lists of brace-infos before/after cursor (first and last for each). */
|
||||
|
||||
/**/
|
||||
Brinfo brbeg, lastbrbeg, brend, lastbrend;
|
||||
mod_export Brinfo brbeg, lastbrbeg, brend, lastbrend;
|
||||
|
||||
/**/
|
||||
int nbrbeg, nbrend;
|
||||
mod_export int nbrbeg, nbrend;
|
||||
|
||||
/**/
|
||||
char *lastprebr, *lastpostbr;
|
||||
mod_export char *lastprebr, *lastpostbr;
|
||||
|
||||
/* !=0 if we have a valid completion list. */
|
||||
|
||||
/**/
|
||||
int validlist;
|
||||
mod_export int validlist;
|
||||
|
||||
/* Non-zero if we have to redisplay the list of matches. */
|
||||
|
||||
/**/
|
||||
int showagain = 0;
|
||||
mod_export int showagain = 0;
|
||||
|
||||
/* This holds the word we are completing in quoted from. */
|
||||
|
||||
|
@ -112,13 +112,13 @@ static char *qword;
|
|||
* closing quote. */
|
||||
|
||||
/**/
|
||||
char *qipre, *qisuf, *autoq;
|
||||
mod_export char *qipre, *qisuf, *autoq;
|
||||
|
||||
/* This contains the name of the function to call if this is for a new *
|
||||
* style completion. */
|
||||
|
||||
/**/
|
||||
char *compfunc = NULL;
|
||||
mod_export char *compfunc = NULL;
|
||||
|
||||
/* Non-zero if the last completion done was ambiguous (used to find *
|
||||
* out if AUTOMENU should start). More precisely, it's nonzero after *
|
||||
|
@ -132,14 +132,14 @@ char *compfunc = NULL;
|
|||
* lastambig == 2. */
|
||||
|
||||
/**/
|
||||
int lastambig;
|
||||
mod_export int lastambig;
|
||||
|
||||
/* Arguments for and return value of completion widget. */
|
||||
|
||||
/**/
|
||||
char **cfargs;
|
||||
mod_export char **cfargs;
|
||||
/**/
|
||||
int cfret;
|
||||
mod_export int cfret;
|
||||
|
||||
/* Find out if we have to insert a tab (instead of trying to complete). */
|
||||
|
||||
|
@ -189,7 +189,7 @@ completeword(char **args)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
menucomplete(char **args)
|
||||
{
|
||||
usemenu = 1;
|
||||
|
@ -284,7 +284,7 @@ listexpand(char **args)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
reversemenucomplete(char **args)
|
||||
{
|
||||
if (!menucmp)
|
||||
|
@ -308,28 +308,28 @@ acceptandmenucomplete(char **args)
|
|||
* position, in a redirection, or in a parameter expansion. */
|
||||
|
||||
/**/
|
||||
int lincmd, linredir, linarr;
|
||||
mod_export int lincmd, linredir, linarr;
|
||||
|
||||
/* The string for the redirection operator. */
|
||||
|
||||
/**/
|
||||
char *rdstr;
|
||||
mod_export char *rdstr;
|
||||
|
||||
/* This holds the name of the current command (used to find the right *
|
||||
* compctl). */
|
||||
|
||||
/**/
|
||||
char *cmdstr;
|
||||
mod_export char *cmdstr;
|
||||
|
||||
/* This hold the name of the variable we are working on. */
|
||||
|
||||
/**/
|
||||
char *varname;
|
||||
mod_export char *varname;
|
||||
|
||||
/* != 0 if we are in a subscript */
|
||||
|
||||
/**/
|
||||
int insubscr;
|
||||
mod_export int insubscr;
|
||||
|
||||
/* Parameter pointer for completing keys of an assoc array. */
|
||||
|
||||
|
@ -339,7 +339,7 @@ Param keypm;
|
|||
/* 1 if we are completing in a quoted string (or inside `...`) */
|
||||
|
||||
/**/
|
||||
int instring, inbackt;
|
||||
mod_export int instring, inbackt;
|
||||
|
||||
/* Convenience macro for calling bslashquote() (formerly quotename()). *
|
||||
* This uses the instring variable above. */
|
||||
|
@ -802,7 +802,7 @@ addx(char **ptmp)
|
|||
/* Like dupstring, but add an extra space at the end of the string. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
dupstrspace(const char *str)
|
||||
{
|
||||
int len = strlen((char *)str);
|
||||
|
@ -820,7 +820,7 @@ dupstrspace(const char *str)
|
|||
* functions (there's one for each direction). */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
metafy_line(void)
|
||||
{
|
||||
int len = ll;
|
||||
|
@ -836,7 +836,7 @@ metafy_line(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
unmetafy_line(void)
|
||||
{
|
||||
cs = ztrsub((char *) line + cs, (char *) line);
|
||||
|
@ -846,7 +846,7 @@ unmetafy_line(void)
|
|||
/* Free a brinfo list. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
freebrinfo(Brinfo p)
|
||||
{
|
||||
Brinfo n;
|
||||
|
@ -863,7 +863,7 @@ freebrinfo(Brinfo p)
|
|||
/* Duplicate a brinfo list. */
|
||||
|
||||
/**/
|
||||
Brinfo
|
||||
mod_export Brinfo
|
||||
dupbrinfo(Brinfo p, Brinfo *last)
|
||||
{
|
||||
Brinfo ret = NULL, *q = &ret, n = NULL;
|
||||
|
@ -1572,7 +1572,7 @@ get_comp_string(void)
|
|||
* The last argument says if we should quote the string. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
inststrlen(char *str, int move, int len)
|
||||
{
|
||||
if (!len || !str)
|
||||
|
@ -1683,7 +1683,7 @@ docompletion(char *s, int lst, int incmd)
|
|||
/* Return the length of the common prefix of s and t. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
pfxlen(char *s, char *t)
|
||||
{
|
||||
int i = 0;
|
||||
|
@ -1715,7 +1715,7 @@ sfxlen(char *s, char *t)
|
|||
/* This is strcmp with ignoring backslashes. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
strbpcmp(char **aa, char **bb)
|
||||
{
|
||||
char *a = *aa, *b = *bb;
|
||||
|
@ -1761,7 +1761,7 @@ strbpcmp(char **aa, char **bb)
|
|||
* It returns the number of lines printed. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
printfmt(char *fmt, int n, int dopr, int doesc)
|
||||
{
|
||||
char *p = fmt, nc[DIGBUFSIZE];
|
||||
|
|
|
@ -73,7 +73,7 @@ sizeline(int sz)
|
|||
/* insert space for ct chars at cursor position */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
spaceinline(int ct)
|
||||
{
|
||||
int i;
|
||||
|
@ -105,7 +105,7 @@ shiftchars(int to, int cnt)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
backkill(int ct, int dir)
|
||||
{
|
||||
int i = (cs -= ct);
|
||||
|
@ -115,7 +115,7 @@ backkill(int ct, int dir)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
forekill(int ct, int dir)
|
||||
{
|
||||
int i = cs;
|
||||
|
@ -191,14 +191,14 @@ cut(int i, int ct, int dir)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
backdel(int ct)
|
||||
{
|
||||
shiftchars(cs -= ct, ct);
|
||||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
foredel(int ct)
|
||||
{
|
||||
shiftchars(cs, ct);
|
||||
|
@ -283,7 +283,7 @@ hstrnstr(char *haystack, int pos, char *needle, int len, int dir, int sens)
|
|||
* characters are read. Case is folded. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
getzlequery(void)
|
||||
{
|
||||
int c;
|
||||
|
|
|
@ -133,7 +133,7 @@ static struct builtin builtins[] =
|
|||
/* hash table containing builtin commands */
|
||||
|
||||
/**/
|
||||
HashTable builtintab;
|
||||
mod_export HashTable builtintab;
|
||||
|
||||
/**/
|
||||
void
|
||||
|
@ -573,7 +573,7 @@ bin_pwd(char *name, char **argv, char *ops, int func)
|
|||
/* the directory stack */
|
||||
|
||||
/**/
|
||||
LinkList dirstack;
|
||||
mod_export LinkList dirstack;
|
||||
|
||||
/* dirs: list the directory stack, or replace it with a provided list */
|
||||
|
||||
|
@ -1139,7 +1139,7 @@ fixdir(char *src)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
printqt(char *str)
|
||||
{
|
||||
/* Print str, but turn any single quote into '\'' or ''. */
|
||||
|
@ -1151,7 +1151,7 @@ printqt(char *str)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
printif(char *str, int c)
|
||||
{
|
||||
/* If flag c has an argument, print that */
|
||||
|
@ -2699,7 +2699,7 @@ bin_false(char *name, char **argv, char *ops, int func)
|
|||
/* the zle buffer stack */
|
||||
|
||||
/**/
|
||||
LinkList bufstack;
|
||||
mod_export LinkList bufstack;
|
||||
|
||||
/* echo, print, pushln */
|
||||
|
||||
|
@ -3149,7 +3149,7 @@ bin_break(char *name, char **argv, char *ops, int func)
|
|||
/* we have printed a 'you have stopped (running) jobs.' message */
|
||||
|
||||
/**/
|
||||
int stopmsg;
|
||||
mod_export int stopmsg;
|
||||
|
||||
/* check to see if user has jobs running/stopped */
|
||||
|
||||
|
@ -3183,7 +3183,7 @@ checkjobs(void)
|
|||
* because of a signal. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zexit(int val, int from_signal)
|
||||
{
|
||||
static int in_exit;
|
||||
|
@ -4045,7 +4045,7 @@ bin_umask(char *nam, char **args, char *ops, int func)
|
|||
/* Generic builtin for facilities not available on this OS */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
bin_notavail(char *nam, char **argv, char *ops, int func)
|
||||
{
|
||||
zwarnnam(nam, "not available on this system", NULL, 0);
|
||||
|
|
|
@ -106,7 +106,7 @@ strerror(int errnum)
|
|||
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
zgetdir(struct dirsav *d)
|
||||
{
|
||||
char nbuf[PATH_MAX+3];
|
||||
|
@ -258,7 +258,7 @@ zgetcwd(void)
|
|||
* faliliure and -2 when chdir failed and the current directory is lost. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
zchdir(char *dir)
|
||||
{
|
||||
char *s;
|
||||
|
@ -313,7 +313,7 @@ zchdir(char *dir)
|
|||
/**/
|
||||
#ifdef ZSH_64_BIT_TYPE
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
output64(zlong val)
|
||||
{
|
||||
static char llbuf[DIGBUFSIZE];
|
||||
|
|
|
@ -349,7 +349,7 @@ optison(char *s)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
cond_str(char **args, int num, int raw)
|
||||
{
|
||||
char *s = args[num];
|
||||
|
@ -362,7 +362,7 @@ cond_str(char **args, int num, int raw)
|
|||
}
|
||||
|
||||
/**/
|
||||
zlong
|
||||
mod_export zlong
|
||||
cond_val(char **args, int num)
|
||||
{
|
||||
char *s = args[num];
|
||||
|
@ -374,7 +374,7 @@ cond_val(char **args, int num)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
cond_match(char **args, int num, char *str)
|
||||
{
|
||||
char *s = args[num];
|
||||
|
|
38
Src/exec.c
38
Src/exec.c
|
@ -38,7 +38,7 @@ int noerrexit;
|
|||
/* suppress error messages */
|
||||
|
||||
/**/
|
||||
int noerrs;
|
||||
mod_export int noerrs;
|
||||
|
||||
/* do not save history on exec and exit */
|
||||
|
||||
|
@ -48,7 +48,7 @@ int nohistsave;
|
|||
/* error/break flag */
|
||||
|
||||
/**/
|
||||
int errflag;
|
||||
mod_export int errflag;
|
||||
|
||||
/* Status of return from a trap */
|
||||
|
||||
|
@ -63,7 +63,7 @@ int subsh;
|
|||
/* != 0 if we have a return pending */
|
||||
|
||||
/**/
|
||||
int retflag;
|
||||
mod_export int retflag;
|
||||
|
||||
/**/
|
||||
long lastval2;
|
||||
|
@ -92,17 +92,17 @@ int max_zsh_fd;
|
|||
/* input fd from the coprocess */
|
||||
|
||||
/**/
|
||||
int coprocin;
|
||||
mod_export int coprocin;
|
||||
|
||||
/* output fd from the coprocess */
|
||||
|
||||
/**/
|
||||
int coprocout;
|
||||
mod_export int coprocout;
|
||||
|
||||
/* != 0 if the line editor is active */
|
||||
|
||||
/**/
|
||||
int zleactive;
|
||||
mod_export int zleactive;
|
||||
|
||||
/* pid of process undergoing 'process substitution' */
|
||||
|
||||
|
@ -117,7 +117,7 @@ int cmdoutval;
|
|||
/* The context in which a shell function is called, see SFC_* in zsh.h. */
|
||||
|
||||
/**/
|
||||
int sfcontext;
|
||||
mod_export int sfcontext;
|
||||
|
||||
/* Stack to save some variables before executing a signal handler function */
|
||||
|
||||
|
@ -132,7 +132,7 @@ static int doneps4;
|
|||
/* parse string into a list */
|
||||
|
||||
/**/
|
||||
List
|
||||
mod_export List
|
||||
parse_string(char *s, int ln)
|
||||
{
|
||||
List l;
|
||||
|
@ -156,10 +156,10 @@ parse_string(char *s, int ln)
|
|||
/* the resource limits for the shell and its children */
|
||||
|
||||
/**/
|
||||
struct rlimit current_limits[RLIM_NLIMITS], limits[RLIM_NLIMITS];
|
||||
mod_export struct rlimit current_limits[RLIM_NLIMITS], limits[RLIM_NLIMITS];
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
zsetlimit(int limnum, char *nam)
|
||||
{
|
||||
if (limits[limnum].rlim_max != current_limits[limnum].rlim_max ||
|
||||
|
@ -175,7 +175,7 @@ zsetlimit(int limnum, char *nam)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
setlimits(char *nam)
|
||||
{
|
||||
int limnum;
|
||||
|
@ -546,7 +546,7 @@ execute(Cmdnam not_used_yet, int dash)
|
|||
*/
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
findcmd(char *arg0, int docopy)
|
||||
{
|
||||
char **pp;
|
||||
|
@ -644,7 +644,7 @@ isrelative(char *s)
|
|||
}
|
||||
|
||||
/**/
|
||||
Cmdnam
|
||||
mod_export Cmdnam
|
||||
hashcmd(char *arg0, char **pp)
|
||||
{
|
||||
Cmdnam cn;
|
||||
|
@ -683,7 +683,7 @@ hashcmd(char *arg0, char **pp)
|
|||
/* execute a string */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
execstring(char *s, int dont_change_job, int exiting)
|
||||
{
|
||||
List list;
|
||||
|
@ -1145,7 +1145,7 @@ makecline(LinkList list)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
untokenize(char *s)
|
||||
{
|
||||
if (*s) {
|
||||
|
@ -2309,7 +2309,7 @@ entersubsh(int how, int cl, int fake)
|
|||
/* close internal shell fds */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
closem(int how)
|
||||
{
|
||||
int i;
|
||||
|
@ -2477,7 +2477,7 @@ getoutput(char *cmd, int qt)
|
|||
/* read output of command substitution */
|
||||
|
||||
/**/
|
||||
LinkList
|
||||
mod_export LinkList
|
||||
readoutput(int in, int qt)
|
||||
{
|
||||
LinkList ret;
|
||||
|
@ -2961,7 +2961,7 @@ loadautofn(Shfunc shf)
|
|||
/* execute a shell function */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
doshfunc(char *name, List list, LinkList doshargs, int flags, int noreturnval)
|
||||
/* If noreturnval is nonzero, then reset the current return *
|
||||
* value (lastval) to its value before the shell function *
|
||||
|
@ -3058,7 +3058,7 @@ doshfunc(char *name, List list, LinkList doshargs, int flags, int noreturnval)
|
|||
* in turn has to call back this function with the arguments it gets. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
runshfunc(List list, FuncWrap wrap, char *name)
|
||||
{
|
||||
int cont;
|
||||
|
|
14
Src/glob.c
14
Src/glob.c
|
@ -116,7 +116,7 @@ struct qual {
|
|||
/* Prefix, suffix for doing zle trickery */
|
||||
|
||||
/**/
|
||||
char *glob_pre, *glob_suf;
|
||||
mod_export char *glob_pre, *glob_suf;
|
||||
|
||||
/* struct to easily save/restore current state */
|
||||
|
||||
|
@ -390,7 +390,7 @@ insert(char *s, int checked)
|
|||
/* Check to see if str is eligible for filename generation. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
haswilds(char *str)
|
||||
{
|
||||
/* `[' and `]' are legal even if bad patterns are usually not. */
|
||||
|
@ -1445,7 +1445,7 @@ notstrcmp(char **a, char **b)
|
|||
/* Return the trailing character for marking file types */
|
||||
|
||||
/**/
|
||||
char
|
||||
mod_export char
|
||||
file_type(mode_t filemode)
|
||||
{
|
||||
if(S_ISBLK(filemode))
|
||||
|
@ -1620,7 +1620,7 @@ xpandredir(struct redir *fn, LinkList tab)
|
|||
/* concatenate s1 and s2 in dynamically allocated buffer */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
dyncat(char *s1, char *s2)
|
||||
{
|
||||
/* This version always uses space from the current heap. */
|
||||
|
@ -1636,7 +1636,7 @@ dyncat(char *s1, char *s2)
|
|||
/* concatenate s1, s2, and s3 in dynamically allocated buffer */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
tricat(char const *s1, char const *s2, char const *s3)
|
||||
{
|
||||
/* This version always uses permanently-allocated space. */
|
||||
|
@ -2252,7 +2252,7 @@ igetmatch(char **sp, Patprog p, int fl, int n, char *replstr)
|
|||
/* blindly turn a string into a tokenised expression without lexing */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
tokenize(char *s)
|
||||
{
|
||||
char *t;
|
||||
|
@ -2314,7 +2314,7 @@ tokenize(char *s)
|
|||
/* remove unnecessary Nulargs */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
remnulargs(char *s)
|
||||
{
|
||||
if (*s) {
|
||||
|
|
|
@ -77,7 +77,7 @@ static HashTable firstht, lastht;
|
|||
/* Generic hash function */
|
||||
|
||||
/**/
|
||||
unsigned
|
||||
mod_export unsigned
|
||||
hasher(char *str)
|
||||
{
|
||||
unsigned hashval = 0;
|
||||
|
@ -91,7 +91,7 @@ hasher(char *str)
|
|||
/* Get a new hash table */
|
||||
|
||||
/**/
|
||||
HashTable
|
||||
mod_export HashTable
|
||||
newhashtable(int size, char const *name, PrintTableStats printinfo)
|
||||
{
|
||||
HashTable ht;
|
||||
|
@ -120,7 +120,7 @@ newhashtable(int size, char const *name, PrintTableStats printinfo)
|
|||
* existing pointers to the hash table are invalid. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
deletehashtable(HashTable ht)
|
||||
{
|
||||
ht->emptytable(ht);
|
||||
|
@ -148,7 +148,7 @@ deletehashtable(HashTable ht)
|
|||
* the table is then expanded. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
addhashnode(HashTable ht, char *nam, void *nodeptr)
|
||||
{
|
||||
HashNode oldnode = addhashnode2(ht, nam, nodeptr);
|
||||
|
@ -222,7 +222,7 @@ addhashnode2(HashTable ht, char *nam, void *nodeptr)
|
|||
* or isn't found, it returns NULL */
|
||||
|
||||
/**/
|
||||
HashNode
|
||||
mod_export HashNode
|
||||
gethashnode(HashTable ht, char *nam)
|
||||
{
|
||||
unsigned hashval;
|
||||
|
@ -246,7 +246,7 @@ gethashnode(HashTable ht, char *nam)
|
|||
* it returns NULL. */
|
||||
|
||||
/**/
|
||||
HashNode
|
||||
mod_export HashNode
|
||||
gethashnode2(HashTable ht, char *nam)
|
||||
{
|
||||
unsigned hashval;
|
||||
|
@ -266,7 +266,7 @@ gethashnode2(HashTable ht, char *nam)
|
|||
* is no such node, then it returns NULL */
|
||||
|
||||
/**/
|
||||
HashNode
|
||||
mod_export HashNode
|
||||
removehashnode(HashTable ht, char *nam)
|
||||
{
|
||||
unsigned hashval;
|
||||
|
@ -358,7 +358,7 @@ hnamcmp(const void *ap, const void *bp)
|
|||
*/
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
scanhashtable(HashTable ht, int sorted, int flags1, int flags2, ScanFunc scanfunc, int scanflags)
|
||||
{
|
||||
struct scanstatus st;
|
||||
|
@ -509,7 +509,7 @@ resizehashtable(HashTable ht, int newsize)
|
|||
/* Generic method to empty a hash table */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
emptyhashtable(HashTable ht)
|
||||
{
|
||||
resizehashtable(ht, ht->hsize);
|
||||
|
@ -578,12 +578,12 @@ bin_hashinfo(char *nam, char **args, char *ops, int func)
|
|||
/* hash table containing external commands */
|
||||
|
||||
/**/
|
||||
HashTable cmdnamtab;
|
||||
mod_export HashTable cmdnamtab;
|
||||
|
||||
/* how far we've hashed the PATH so far */
|
||||
|
||||
/**/
|
||||
char **pathchecked;
|
||||
mod_export char **pathchecked;
|
||||
|
||||
/* Create a new command hash table */
|
||||
|
||||
|
@ -756,7 +756,7 @@ printcmdnamnode(HashNode hn, int printflags)
|
|||
/* hash table containing the shell functions */
|
||||
|
||||
/**/
|
||||
HashTable shfunctab;
|
||||
mod_export HashTable shfunctab;
|
||||
|
||||
/**/
|
||||
void
|
||||
|
@ -934,7 +934,7 @@ static struct reswd reswds[] = {
|
|||
/* hash table containing the reserved words */
|
||||
|
||||
/**/
|
||||
HashTable reswdtab;
|
||||
mod_export HashTable reswdtab;
|
||||
|
||||
/* Build the hash table containing zsh's reserved words. */
|
||||
|
||||
|
@ -997,7 +997,7 @@ printreswdnode(HashNode hn, int printflags)
|
|||
/* hash table containing the aliases */
|
||||
|
||||
/**/
|
||||
HashTable aliastab;
|
||||
mod_export HashTable aliastab;
|
||||
|
||||
/* Create new hash table for aliases */
|
||||
|
||||
|
@ -1028,7 +1028,7 @@ createaliastable(void)
|
|||
/* Create a new alias node */
|
||||
|
||||
/**/
|
||||
Alias
|
||||
mod_export Alias
|
||||
createaliasnode(char *txt, int flags)
|
||||
{
|
||||
Alias al;
|
||||
|
@ -1133,7 +1133,7 @@ printaliasnode(HashNode hn, int printflags)
|
|||
/* hash table containing named directories */
|
||||
|
||||
/**/
|
||||
HashTable nameddirtab;
|
||||
mod_export HashTable nameddirtab;
|
||||
|
||||
/* != 0 if all the usernames have already been *
|
||||
* added to the named directory hash table. */
|
||||
|
|
38
Src/hist.c
38
Src/hist.c
|
@ -34,7 +34,7 @@
|
|||
* word control. */
|
||||
|
||||
/**/
|
||||
int (*hgetc) _((void));
|
||||
mod_export int (*hgetc) _((void));
|
||||
|
||||
/**/
|
||||
void (*hungetc) _((int));
|
||||
|
@ -54,7 +54,7 @@ void (*addtoline) _((int));
|
|||
/* != 0 means history substitution is turned off */
|
||||
|
||||
/**/
|
||||
int stophist;
|
||||
mod_export int stophist;
|
||||
|
||||
/* this line began with a space, so junk it if HISTIGNORESPACE is on */
|
||||
|
||||
|
@ -64,12 +64,12 @@ int spaceflag;
|
|||
/* if != 0, we are expanding the current line */
|
||||
|
||||
/**/
|
||||
int expanding;
|
||||
mod_export int expanding;
|
||||
|
||||
/* these are used to modify the cursor position during expansion */
|
||||
|
||||
/**/
|
||||
int excs, exlast;
|
||||
mod_export int excs, exlast;
|
||||
|
||||
/*
|
||||
* Current history event number
|
||||
|
@ -84,7 +84,7 @@ int excs, exlast;
|
|||
*/
|
||||
|
||||
/**/
|
||||
int curhist;
|
||||
mod_export int curhist;
|
||||
|
||||
/**/
|
||||
struct histent curline;
|
||||
|
@ -99,7 +99,7 @@ int histlinect;
|
|||
/**/
|
||||
HashTable histtab;
|
||||
/**/
|
||||
Histent hist_ring;
|
||||
mod_export Histent hist_ring;
|
||||
|
||||
/* capacity of history lists */
|
||||
|
||||
|
@ -126,7 +126,7 @@ int hist_ignore_all_dups;
|
|||
/* What flags (if any) we should skip when moving through the history */
|
||||
|
||||
/**/
|
||||
int hist_skip_flags;
|
||||
mod_export int hist_skip_flags;
|
||||
|
||||
/* Bits of histactive variable */
|
||||
#define HA_ACTIVE (1<<0) /* History mechanism is active */
|
||||
|
@ -159,12 +159,12 @@ char *hsubr;
|
|||
/* pointer into the history line */
|
||||
|
||||
/**/
|
||||
char *hptr;
|
||||
mod_export char *hptr;
|
||||
|
||||
/* the current history line */
|
||||
|
||||
/**/
|
||||
char *chline;
|
||||
mod_export char *chline;
|
||||
|
||||
/* true if the last character returned by hgetc was an escaped bangchar *
|
||||
* if it is set and NOBANGHIST is unset hwaddc escapes bangchars */
|
||||
|
@ -670,7 +670,7 @@ ihungetc(int c)
|
|||
/* begin reading a string */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
strinbeg(int dohist)
|
||||
{
|
||||
strin++;
|
||||
|
@ -681,7 +681,7 @@ strinbeg(int dohist)
|
|||
/* done reading a string */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
strinend(void)
|
||||
{
|
||||
hend();
|
||||
|
@ -798,7 +798,7 @@ histremovedups(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
addhistnum(int hl, int n, int xflags)
|
||||
{
|
||||
int dir = n < 0? -1 : n > 0? 1 : 0;
|
||||
|
@ -816,7 +816,7 @@ addhistnum(int hl, int n, int xflags)
|
|||
}
|
||||
|
||||
/**/
|
||||
Histent
|
||||
mod_export Histent
|
||||
movehistent(Histent he, int n, int xflags)
|
||||
{
|
||||
while (n < 0) {
|
||||
|
@ -835,14 +835,14 @@ movehistent(Histent he, int n, int xflags)
|
|||
}
|
||||
|
||||
/**/
|
||||
Histent
|
||||
mod_export Histent
|
||||
up_histent(Histent he)
|
||||
{
|
||||
return he->up == hist_ring? NULL : he->up;
|
||||
}
|
||||
|
||||
/**/
|
||||
Histent
|
||||
mod_export Histent
|
||||
down_histent(Histent he)
|
||||
{
|
||||
return he == hist_ring? NULL : he->down;
|
||||
|
@ -1182,7 +1182,7 @@ hwrep(char *rep)
|
|||
/* Get the entire current line, deleting it in the history. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
hgetline(void)
|
||||
{
|
||||
/* Currently only used by pushlineoredit().
|
||||
|
@ -1329,7 +1329,7 @@ rembutext(char **junkptr)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
remlpaths(char **junkptr)
|
||||
{
|
||||
char *str = *junkptr, *remcut;
|
||||
|
@ -1434,7 +1434,7 @@ convamps(char *out, char *in, int inlen)
|
|||
}
|
||||
|
||||
/**/
|
||||
Histent
|
||||
mod_export Histent
|
||||
quietgethistent(int ev, int nearmatch)
|
||||
{
|
||||
if (ev == curhist && (histactive & HA_ACTIVE)) {
|
||||
|
@ -1446,7 +1446,7 @@ quietgethistent(int ev, int nearmatch)
|
|||
}
|
||||
|
||||
/**/
|
||||
Histent
|
||||
mod_export Histent
|
||||
quietgethist(int ev)
|
||||
{
|
||||
return quietgethistent(ev, GETHIST_EXACT);
|
||||
|
|
54
Src/init.c
54
Src/init.c
|
@ -53,38 +53,40 @@ int sourcelevel;
|
|||
/* the shell tty fd */
|
||||
|
||||
/**/
|
||||
int SHTTY;
|
||||
mod_export int SHTTY;
|
||||
|
||||
/* the FILE attached to the shell tty */
|
||||
|
||||
/**/
|
||||
FILE *shout;
|
||||
mod_export FILE *shout;
|
||||
|
||||
/* termcap strings */
|
||||
|
||||
/**/
|
||||
char *tcstr[TC_COUNT];
|
||||
mod_export char *tcstr[TC_COUNT];
|
||||
|
||||
/* lengths of each termcap string */
|
||||
|
||||
/**/
|
||||
int tclen[TC_COUNT];
|
||||
mod_export int tclen[TC_COUNT];
|
||||
|
||||
/* Values of the li, co and am entries */
|
||||
|
||||
/**/
|
||||
int tclines, tccolumns, hasam;
|
||||
int tclines, tccolumns;
|
||||
/**/
|
||||
mod_export int hasam;
|
||||
|
||||
/* Pointer to read-key function from zle */
|
||||
|
||||
/**/
|
||||
int (*getkeyptr) _((int));
|
||||
mod_export int (*getkeyptr) _((int));
|
||||
|
||||
#ifdef DEBUG
|
||||
/* depth of allocation type stack */
|
||||
|
||||
/**/
|
||||
int alloc_stackp;
|
||||
mod_export int alloc_stackp;
|
||||
#endif
|
||||
|
||||
/* keep executing lists until EOF found */
|
||||
|
@ -287,7 +289,7 @@ parseargs(char **argv)
|
|||
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
init_io(void)
|
||||
{
|
||||
long ttpgrp;
|
||||
|
@ -412,7 +414,7 @@ init_io(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
init_shout(void)
|
||||
{
|
||||
static char shoutbuf[BUFSIZ];
|
||||
|
@ -446,7 +448,7 @@ static char *tccapnams[TC_COUNT] = {
|
|||
/* Initialise termcap */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
init_term(void)
|
||||
{
|
||||
#ifndef TGETENT_ACCEPTS_NULL
|
||||
|
@ -945,14 +947,14 @@ init_bltinmods(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
noop_function(void)
|
||||
{
|
||||
/* do nothing */
|
||||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
noop_function_int(int nothing)
|
||||
{
|
||||
/* do nothing */
|
||||
|
@ -966,26 +968,26 @@ noop_function_int(int nothing)
|
|||
#ifdef LINKED_XMOD_zle
|
||||
|
||||
/**/
|
||||
ZleVoidFn trashzleptr = noop_function;
|
||||
mod_export ZleVoidFn trashzleptr = noop_function;
|
||||
/**/
|
||||
ZleVoidFn gotwordptr = noop_function;
|
||||
mod_export ZleVoidFn gotwordptr = noop_function;
|
||||
/**/
|
||||
ZleVoidFn refreshptr = noop_function;
|
||||
mod_export ZleVoidFn refreshptr = noop_function;
|
||||
/**/
|
||||
ZleVoidIntFn spaceinlineptr = noop_function_int;
|
||||
mod_export ZleVoidIntFn spaceinlineptr = noop_function_int;
|
||||
/**/
|
||||
ZleReadFn zlereadptr = autoload_zleread;
|
||||
mod_export ZleReadFn zlereadptr = autoload_zleread;
|
||||
|
||||
#else /* !LINKED_XMOD_zle */
|
||||
|
||||
ZleVoidFn trashzleptr = noop_function;
|
||||
ZleVoidFn gotwordptr = noop_function;
|
||||
ZleVoidFn refreshptr = noop_function;
|
||||
ZleVoidIntFn spaceinlineptr = noop_function_int;
|
||||
mod_export ZleVoidFn trashzleptr = noop_function;
|
||||
mod_export ZleVoidFn gotwordptr = noop_function;
|
||||
mod_export ZleVoidFn refreshptr = noop_function;
|
||||
mod_export ZleVoidIntFn spaceinlineptr = noop_function_int;
|
||||
# ifdef UNLINKED_XMOD_zle
|
||||
ZleReadFn zlereadptr = autoload_zleread;
|
||||
mod_export ZleReadFn zlereadptr = autoload_zleread;
|
||||
# else /* !UNLINKED_XMOD_zle */
|
||||
ZleReadFn zlereadptr = fallback_zleread;
|
||||
mod_export ZleReadFn zlereadptr = fallback_zleread;
|
||||
# endif /* !UNLINKED_XMOD_zle */
|
||||
|
||||
#endif /* !LINKED_XMOD_zle */
|
||||
|
@ -1000,7 +1002,7 @@ autoload_zleread(char *lp, char *rp, int ha)
|
|||
}
|
||||
|
||||
/**/
|
||||
unsigned char *
|
||||
mod_export unsigned char *
|
||||
fallback_zleread(char *lp, char *rp, int ha)
|
||||
{
|
||||
char *pptbuf;
|
||||
|
@ -1015,10 +1017,10 @@ fallback_zleread(char *lp, char *rp, int ha)
|
|||
/* compctl entry point pointers. Similar to the ZLE ones. */
|
||||
|
||||
/**/
|
||||
CompctlReadFn compctlreadptr = fallback_compctlread;
|
||||
mod_export CompctlReadFn compctlreadptr = fallback_compctlread;
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
fallback_compctlread(char *name, char **args, char *ops, char *reply)
|
||||
{
|
||||
zwarnnam(name, "option valid only in functions called from completion",
|
||||
|
|
|
@ -88,7 +88,7 @@ int strin;
|
|||
/* total # of characters waiting to be read. */
|
||||
|
||||
/**/
|
||||
int inbufct;
|
||||
mod_export int inbufct;
|
||||
|
||||
/* the flags controlling the input routines in input.c: see INP_* in zsh.h */
|
||||
|
||||
|
@ -128,7 +128,7 @@ static int instacksz = INSTACK_INITIAL;
|
|||
* null characters to Meta c^32 character pairs. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
shingetline(void)
|
||||
{
|
||||
char *line = NULL;
|
||||
|
@ -444,7 +444,7 @@ inerrflush(void)
|
|||
/* Set some new input onto a new element of the input stack */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
inpush(char *str, int flags, Alias inalias)
|
||||
{
|
||||
if (!instack) {
|
||||
|
@ -532,7 +532,7 @@ inpoptop(void)
|
|||
/* Remove the top element of the stack and all its continuations. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
inpop(void)
|
||||
{
|
||||
int remcont;
|
||||
|
|
|
@ -33,12 +33,12 @@
|
|||
/* the process group of the shell */
|
||||
|
||||
/**/
|
||||
pid_t mypgrp;
|
||||
mod_export pid_t mypgrp;
|
||||
|
||||
/* the job we are working on */
|
||||
|
||||
/**/
|
||||
int thisjob;
|
||||
mod_export int thisjob;
|
||||
|
||||
/* the current job (+) */
|
||||
|
||||
|
@ -53,7 +53,7 @@ int prevjob;
|
|||
/* the job table */
|
||||
|
||||
/**/
|
||||
struct job jobtab[MAXJOB];
|
||||
mod_export struct job jobtab[MAXJOB];
|
||||
|
||||
/* shell timings */
|
||||
|
||||
|
@ -906,7 +906,7 @@ waitjobs(void)
|
|||
/* clear job table when entering subshells */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
clearjobtab(void)
|
||||
{
|
||||
int i;
|
||||
|
|
43
Src/lex.c
43
Src/lex.c
|
@ -33,24 +33,28 @@
|
|||
/* tokens */
|
||||
|
||||
/**/
|
||||
char ztokens[] = "#$^*()$=|{}[]`<>?~`,'\"\\";
|
||||
mod_export char ztokens[] = "#$^*()$=|{}[]`<>?~`,'\"\\";
|
||||
|
||||
/* parts of the current token */
|
||||
|
||||
/**/
|
||||
char *yytext, *tokstr;
|
||||
char *yytext;
|
||||
/**/
|
||||
int tok, tokfd;
|
||||
mod_export char *tokstr;
|
||||
/**/
|
||||
mod_export int tok;
|
||||
/**/
|
||||
int tokfd;
|
||||
|
||||
/* lexical analyzer error flag */
|
||||
|
||||
/**/
|
||||
int lexstop;
|
||||
mod_export int lexstop;
|
||||
|
||||
/* if != 0, this is the first line of the command */
|
||||
|
||||
/**/
|
||||
int isfirstln;
|
||||
mod_export int isfirstln;
|
||||
|
||||
/* if != 0, this is the first char of the command (not including white space) */
|
||||
|
||||
|
@ -70,47 +74,48 @@ int nocorrect;
|
|||
/* the line buffer */
|
||||
|
||||
/**/
|
||||
unsigned char *line;
|
||||
mod_export unsigned char *line;
|
||||
|
||||
/* cursor position and line length */
|
||||
/* N.B.: must use the real names here, for the .export file */
|
||||
|
||||
/**/
|
||||
int cs, ll;
|
||||
mod_export int zshcs, zshll;
|
||||
|
||||
/* inwhat says what exactly we are in *
|
||||
* (its value is one of the IN_* things). */
|
||||
|
||||
/**/
|
||||
int inwhat;
|
||||
mod_export int inwhat;
|
||||
|
||||
/* 1 if x added to complete in a blank between words */
|
||||
|
||||
/**/
|
||||
int addedx;
|
||||
mod_export int addedx;
|
||||
|
||||
/* 1 if aliases should not be expanded */
|
||||
|
||||
/**/
|
||||
int noaliases;
|
||||
mod_export int noaliases;
|
||||
|
||||
/* we are parsing a line sent to use by the editor */
|
||||
|
||||
/**/
|
||||
int zleparse;
|
||||
mod_export int zleparse;
|
||||
|
||||
/**/
|
||||
int wordbeg;
|
||||
mod_export int wordbeg;
|
||||
|
||||
/**/
|
||||
int parbegin;
|
||||
mod_export int parbegin;
|
||||
|
||||
/**/
|
||||
int parend;
|
||||
mod_export int parend;
|
||||
|
||||
/* text of puctuation tokens */
|
||||
|
||||
/**/
|
||||
char *tokstrings[WHILE + 1] = {
|
||||
mod_export char *tokstrings[WHILE + 1] = {
|
||||
NULL, /* NULLTOK 0 */
|
||||
";", /* SEPER */
|
||||
"\\n", /* NEWLIN */
|
||||
|
@ -197,7 +202,7 @@ static struct lexstack *lstack = NULL;
|
|||
/* is this a hack or what? */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
lexsave(void)
|
||||
{
|
||||
struct lexstack *ls;
|
||||
|
@ -250,7 +255,7 @@ lexsave(void)
|
|||
/* restore lexical state */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
lexrestore(void)
|
||||
{
|
||||
struct lexstack *ln;
|
||||
|
@ -332,7 +337,7 @@ yylex(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
ctxtlex(void)
|
||||
{
|
||||
static int oldpos;
|
||||
|
@ -1351,7 +1356,7 @@ dquote_parse(char endchar, int sub)
|
|||
* quotes. This is usually called before singsub(). */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
parsestr(char *s)
|
||||
{
|
||||
int l = strlen(s), err;
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
/* Get an empty linked list header */
|
||||
|
||||
/**/
|
||||
LinkList
|
||||
mod_export LinkList
|
||||
newlinklist(void)
|
||||
{
|
||||
LinkList list;
|
||||
|
@ -47,7 +47,7 @@ newlinklist(void)
|
|||
/* Insert a node in a linked list after a given node */
|
||||
|
||||
/**/
|
||||
LinkNode
|
||||
mod_export LinkNode
|
||||
insertlinknode(LinkList list, LinkNode node, void *dat)
|
||||
{
|
||||
LinkNode tmp, new;
|
||||
|
@ -67,7 +67,7 @@ insertlinknode(LinkList list, LinkNode node, void *dat)
|
|||
/* Insert an already-existing node into a linked list after a given node */
|
||||
|
||||
/**/
|
||||
LinkNode
|
||||
mod_export LinkNode
|
||||
uinsertlinknode(LinkList list, LinkNode node, LinkNode new)
|
||||
{
|
||||
LinkNode tmp = node->next;
|
||||
|
@ -104,7 +104,7 @@ insertlinklist(LinkList l, LinkNode where, LinkList x)
|
|||
/* Get top node in a linked list */
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
getlinknode(LinkList list)
|
||||
{
|
||||
void *dat;
|
||||
|
@ -125,7 +125,7 @@ getlinknode(LinkList list)
|
|||
/* Get top node in a linked list without freeing */
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
ugetnode(LinkList list)
|
||||
{
|
||||
void *dat;
|
||||
|
@ -145,7 +145,7 @@ ugetnode(LinkList list)
|
|||
/* Remove a node from a linked list */
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
remnode(LinkList list, LinkNode nd)
|
||||
{
|
||||
void *dat;
|
||||
|
@ -164,7 +164,7 @@ remnode(LinkList list, LinkNode nd)
|
|||
/* Remove a node from a linked list without freeing */
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
uremnode(LinkList list, LinkNode nd)
|
||||
{
|
||||
void *dat;
|
||||
|
@ -181,7 +181,7 @@ uremnode(LinkList list, LinkNode nd)
|
|||
/* Free a linked list */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
freelinklist(LinkList list, FreeFunc freefunc)
|
||||
{
|
||||
LinkNode node, next;
|
||||
|
@ -198,7 +198,7 @@ freelinklist(LinkList list, FreeFunc freefunc)
|
|||
/* Count the number of nodes in a linked list */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
countlinknodes(LinkList list)
|
||||
{
|
||||
LinkNode nd;
|
||||
|
|
|
@ -43,7 +43,7 @@ int contflag;
|
|||
/* # of break levels */
|
||||
|
||||
/**/
|
||||
int breaks;
|
||||
mod_export int breaks;
|
||||
|
||||
/**/
|
||||
int
|
||||
|
|
|
@ -77,13 +77,14 @@ BEGIN {
|
|||
break
|
||||
}
|
||||
sub(/^ */, "", line)
|
||||
match(line, /^((const|enum|static|struct|union) +)*([_0-9A-Za-z]+ +|((char|double|float|int|long|short|unsigned|void) +)+)((const|static) +)*/)
|
||||
match(line, /^((const|enum|mod_export|static|struct|union) +)*([_0-9A-Za-z]+ +|((char|double|float|int|long|short|unsigned|void) +)+)((const|static) +)*/)
|
||||
dtype = substr(line, 1, RLENGTH)
|
||||
sub(/ *$/, "", dtype)
|
||||
if(" " dtype " " ~ / static /)
|
||||
locality = "L"
|
||||
else
|
||||
locality = "E"
|
||||
exported = " " dtype " " ~ / mod_export /
|
||||
line = substr(line, RLENGTH+1) ","
|
||||
# Handle each declarator.
|
||||
while(match(line, /^[^,]*,/)) {
|
||||
|
@ -117,6 +118,10 @@ BEGIN {
|
|||
printf "%s# endif\n", locality
|
||||
}
|
||||
|
||||
# If this is exported, add it to the exported symbol list.
|
||||
if(exported)
|
||||
printf "X%s\n", dnam
|
||||
|
||||
# Format the declaration for output
|
||||
dcl = dtype " " dcltor ";"
|
||||
if(locality ~ /E/)
|
||||
|
|
|
@ -911,7 +911,7 @@ mathevall(char *s, int prek, char **ep)
|
|||
|
||||
|
||||
/**/
|
||||
mnumber
|
||||
mod_export mnumber
|
||||
matheval(char *s)
|
||||
{
|
||||
char *junk;
|
||||
|
|
47
Src/mem.c
47
Src/mem.c
|
@ -76,13 +76,13 @@
|
|||
/* != 0 if we are allocating in the heaplist */
|
||||
|
||||
/**/
|
||||
int useheap;
|
||||
mod_export int useheap;
|
||||
|
||||
/* Current allocation pointers. ncalloc() is either zalloc() or zhalloc(); *
|
||||
* alloc() is either zcalloc() or hcalloc(). */
|
||||
|
||||
/**/
|
||||
void *(*ncalloc) _((size_t)), *(*alloc) _((size_t));
|
||||
mod_export void *(*ncalloc) _((size_t)), *(*alloc) _((size_t));
|
||||
|
||||
#ifdef ZSH_MEM_WARNING
|
||||
# ifndef DEBUG
|
||||
|
@ -110,7 +110,7 @@ union mem_align {
|
|||
/* set default allocation to heap stack */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
global_heapalloc(void)
|
||||
{
|
||||
int luh = useheap;
|
||||
|
@ -124,7 +124,7 @@ global_heapalloc(void)
|
|||
/* set default allocation to malloc() */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
global_permalloc(void)
|
||||
{
|
||||
int luh = useheap;
|
||||
|
@ -146,7 +146,7 @@ static Heap fheap;
|
|||
/* Use new heaps from now on. This returns the old heap-list. */
|
||||
|
||||
/**/
|
||||
Heap
|
||||
mod_export Heap
|
||||
new_heaps(void)
|
||||
{
|
||||
Heap h = heaps;
|
||||
|
@ -159,7 +159,7 @@ new_heaps(void)
|
|||
/* Re-install the old heaps again, freeing the new ones. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
old_heaps(Heap old)
|
||||
{
|
||||
Heap h, n;
|
||||
|
@ -176,7 +176,7 @@ old_heaps(Heap old)
|
|||
/* Temporarily switch to other heaps (or back again). */
|
||||
|
||||
/**/
|
||||
Heap
|
||||
mod_export Heap
|
||||
switch_heaps(Heap new)
|
||||
{
|
||||
Heap h = heaps;
|
||||
|
@ -190,7 +190,7 @@ switch_heaps(Heap new)
|
|||
/* save states of zsh heaps */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
pushheap(void)
|
||||
{
|
||||
Heap h;
|
||||
|
@ -212,7 +212,7 @@ pushheap(void)
|
|||
/* reset heaps to previous state */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
freeheap(void)
|
||||
{
|
||||
Heap h, hn, hl = NULL;
|
||||
|
@ -244,7 +244,7 @@ freeheap(void)
|
|||
/* reset heap to previous state and destroy state information */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
popheap(void)
|
||||
{
|
||||
Heap h, hn, hl = NULL;
|
||||
|
@ -280,7 +280,7 @@ popheap(void)
|
|||
/* allocate memory from the current memory pool */
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
zhalloc(size_t size)
|
||||
{
|
||||
Heap h;
|
||||
|
@ -337,7 +337,7 @@ zhalloc(size_t size)
|
|||
}
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
hrealloc(char *p, size_t old, size_t new)
|
||||
{
|
||||
Heap h, ph;
|
||||
|
@ -413,7 +413,7 @@ hrealloc(char *p, size_t old, size_t new)
|
|||
/* allocate memory from the current memory pool and clear it */
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
hcalloc(size_t size)
|
||||
{
|
||||
void *ptr;
|
||||
|
@ -426,7 +426,7 @@ hcalloc(size_t size)
|
|||
/* allocate permanent memory */
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
zalloc(size_t size)
|
||||
{
|
||||
void *ptr;
|
||||
|
@ -442,7 +442,7 @@ zalloc(size_t size)
|
|||
}
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
zcalloc(size_t size)
|
||||
{
|
||||
void *ptr;
|
||||
|
@ -465,7 +465,7 @@ zcalloc(size_t size)
|
|||
* POSIX compliant, but I'm not sure how to do that. */
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
zrealloc(void *ptr, size_t size)
|
||||
{
|
||||
if (ptr) {
|
||||
|
@ -490,7 +490,7 @@ zrealloc(void *ptr, size_t size)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
dupstring(const char *s)
|
||||
{
|
||||
char *t;
|
||||
|
@ -503,7 +503,7 @@ dupstring(const char *s)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
ztrdup(const char *s)
|
||||
{
|
||||
char *t;
|
||||
|
@ -515,6 +515,7 @@ ztrdup(const char *s)
|
|||
return t;
|
||||
}
|
||||
|
||||
/**/
|
||||
#ifdef ZSH_MEM
|
||||
|
||||
/*
|
||||
|
@ -913,7 +914,7 @@ malloc(MALLOC_ARG_T size)
|
|||
0 for this parameter means: `don't know' */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zfree(void *p, int sz)
|
||||
{
|
||||
struct m_hdr *m = (struct m_hdr *)(((char *)p) - M_ISIZE), *mp, *mt = NULL;
|
||||
|
@ -1120,7 +1121,7 @@ free(FREE_ARG_T p)
|
|||
those that have a zero byte at the end) */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zsfree(char *p)
|
||||
{
|
||||
if (p)
|
||||
|
@ -1327,10 +1328,11 @@ bin_mem(char *name, char **argv, char *ops, int func)
|
|||
|
||||
#endif
|
||||
|
||||
/**/
|
||||
#else /* not ZSH_MEM */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zfree(void *p, int sz)
|
||||
{
|
||||
if (p)
|
||||
|
@ -1338,11 +1340,12 @@ zfree(void *p, int sz)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zsfree(char *p)
|
||||
{
|
||||
if (p)
|
||||
free(p);
|
||||
}
|
||||
|
||||
/**/
|
||||
#endif
|
||||
|
|
|
@ -185,7 +185,7 @@ if $first_stage; then
|
|||
imports=
|
||||
for dep in $moddeps; do
|
||||
eval "loc=\$loc_$dep"
|
||||
imports="$imports \$(IMPOPT)\$(sdir_top)/$loc/$dep.export"
|
||||
imports="$imports \$(IMPOPT)\$(dir_top)/$loc/$dep.export"
|
||||
case $the_subdir in
|
||||
$loc)
|
||||
mdh="${dep}.mdh"
|
||||
|
@ -215,17 +215,20 @@ if $first_stage; then
|
|||
echo "SYMS_${module} = $proto"
|
||||
echo "EPRO_${module} = "`echo $proto '' | sed 's,\.syms ,.epro ,g'`
|
||||
echo "INCS_${module} = \$(EPRO_${module}) $otherincs"
|
||||
echo "EXPIMP_${module} = $imports ${hasexport+\$(EXPOPT)\$(sdir)/$module.export}"
|
||||
echo "EXPIMP_${module} = $imports \$(EXPOPT)$module.export"
|
||||
echo "NXPIMP_${module} ="
|
||||
echo
|
||||
echo "proto.${module}: \$(PRO_${module})"
|
||||
echo "proto.${module}: \$(EPRO_${module})"
|
||||
echo "\$(SYMS_${module}): \$(PROTODEPS)"
|
||||
echo
|
||||
echo "${module}.export: \$(SYMS_${module})"
|
||||
echo " ( echo '#!'; cat \$(SYMS_${module}) | sed -n '/^X/{s/^X//;p;}' | sort -u ) > \$@"
|
||||
echo
|
||||
echo "modobjs.${module}: \$(MODOBJS_${module})"
|
||||
echo " echo '' \$(MODOBJS_${module}) $modobjs_sed>> \$(dir_src)/stamp-modobjs.tmp"
|
||||
echo
|
||||
if test -z "$alwayslink"; then
|
||||
echo "${module}.\$(DL_EXT): \$(MODDOBJS_${module})"
|
||||
echo "${module}.\$(DL_EXT): \$(MODDOBJS_${module}) ${module}.export"
|
||||
echo ' rm -f $@'
|
||||
echo " \$(DLLINK) \$(@E@XPIMP_$module) \$(@E@NTRYOPT) \$(MODDOBJS_${module}) \$(LIBS)"
|
||||
echo
|
||||
|
|
40
Src/module.c
40
Src/module.c
|
@ -134,7 +134,7 @@ addbuiltin(Builtin b)
|
|||
* return !addbuiltins(m->nam, bintab, sizeof(bintab)/sizeof(*bintab)); */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
addbuiltins(char const *nam, Builtin binl, int size)
|
||||
{
|
||||
int hads = 0, hadf = 0, n;
|
||||
|
@ -163,7 +163,7 @@ FuncWrap wrappers;
|
|||
* error and zero if all went fine. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
addwrapper(Module m, FuncWrap w)
|
||||
{
|
||||
FuncWrap p, q;
|
||||
|
@ -190,7 +190,7 @@ char **module_path;
|
|||
/* List of modules */
|
||||
|
||||
/**/
|
||||
LinkList modules;
|
||||
mod_export LinkList modules;
|
||||
|
||||
/* Define an autoloadable builtin. It returns 0 on success, or 1 on *
|
||||
* failure. The only possible cause of failure is that a builtin *
|
||||
|
@ -232,7 +232,7 @@ deletebuiltin(char *nam)
|
|||
* wayward module had deleted our builtin without telling us. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
deletebuiltins(char const *nam, Builtin binl, int size)
|
||||
{
|
||||
int hads = 0, hadf = 0, n;
|
||||
|
@ -255,7 +255,7 @@ deletebuiltins(char const *nam, Builtin binl, int size)
|
|||
* one in case of error and zero otherwise. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
deletewrapper(Module m, FuncWrap w)
|
||||
{
|
||||
FuncWrap p, q;
|
||||
|
@ -760,7 +760,7 @@ load_module(char const *name)
|
|||
* The return value is non-zero if the module was found or loaded. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
require_module(char *nam, char *module, int res, int test)
|
||||
{
|
||||
Module m = NULL;
|
||||
|
@ -1427,7 +1427,7 @@ bin_zmodload_load(char *nam, char **args, char *ops)
|
|||
/* The list of module-defined conditions. */
|
||||
|
||||
/**/
|
||||
Conddef condtab;
|
||||
mod_export Conddef condtab;
|
||||
|
||||
/* This gets a condition definition with the given name. The first *
|
||||
* argument says if we have to look for an infix condition. The last *
|
||||
|
@ -1488,7 +1488,7 @@ addconddef(Conddef c)
|
|||
/* This adds multiple condition definitions. This is like addbuiltins(). */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
addconddefs(char const *nam, Conddef c, int size)
|
||||
{
|
||||
int hads = 0, hadf = 0;
|
||||
|
@ -1551,7 +1551,7 @@ addhookdef(Hookdef h)
|
|||
/* This adds multiple hook definitions. This is like addbuiltins(). */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
addhookdefs(char const *nam, Hookdef h, int size)
|
||||
{
|
||||
int hads = 0, hadf = 0;
|
||||
|
@ -1589,7 +1589,7 @@ deletehookdef(Hookdef h)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
deletehookdefs(char const *nam, Hookdef h, int size)
|
||||
{
|
||||
while (size--) {
|
||||
|
@ -1612,7 +1612,7 @@ addhookdeffunc(Hookdef h, Hookfn f)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
addhookfunc(char *n, Hookfn f)
|
||||
{
|
||||
Hookdef h = gethookdef(n);
|
||||
|
@ -1639,7 +1639,7 @@ deletehookdeffunc(Hookdef h, Hookfn f)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
deletehookfunc(char *n, Hookfn f)
|
||||
{
|
||||
Hookdef h = gethookdef(n);
|
||||
|
@ -1652,7 +1652,7 @@ deletehookfunc(char *n, Hookfn f)
|
|||
/* Run the function(s) for a hook. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
runhookdef(Hookdef h, void *d)
|
||||
{
|
||||
if (empty(h->funcs)) {
|
||||
|
@ -1712,7 +1712,7 @@ addparamdef(Paramdef d)
|
|||
/* This adds multiple parameter definitions. This is like addbuiltins(). */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
addparamdefs(char const *nam, Paramdef d, int size)
|
||||
{
|
||||
int hads = 0, hadf = 0;
|
||||
|
@ -1739,7 +1739,7 @@ deleteparamdef(Paramdef d)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
deleteparamdefs(char const *nam, Paramdef d, int size)
|
||||
{
|
||||
while (size--) {
|
||||
|
@ -1802,7 +1802,7 @@ deleteconddef(Conddef c)
|
|||
/* This removes multiple condition definitions (like deletebuiltins()). */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
deleteconddefs(char const *nam, Conddef c, int size)
|
||||
{
|
||||
int hads = 0, hadf = 0;
|
||||
|
@ -1874,7 +1874,7 @@ getmathfunc(char *name, int autol)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
addmathfunc(MathFunc f)
|
||||
{
|
||||
MathFunc p;
|
||||
|
@ -1894,7 +1894,7 @@ addmathfunc(MathFunc f)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
addmathfuncs(char const *nam, MathFunc f, int size)
|
||||
{
|
||||
int hads = 0, hadf = 0;
|
||||
|
@ -1936,7 +1936,7 @@ add_automathfunc(char *nam, char *module)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
deletemathfunc(MathFunc f)
|
||||
{
|
||||
MathFunc p, q;
|
||||
|
@ -1962,7 +1962,7 @@ deletemathfunc(MathFunc f)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
deletemathfuncs(char const *nam, MathFunc f, int size)
|
||||
{
|
||||
int hads = 0, hadf = 0;
|
||||
|
|
|
@ -38,12 +38,12 @@ int emulation;
|
|||
/* the options; e.g. if opts[SHGLOB] != 0, SH_GLOB is turned on */
|
||||
|
||||
/**/
|
||||
char opts[OPT_SIZE];
|
||||
mod_export char opts[OPT_SIZE];
|
||||
|
||||
/* Option name hash table */
|
||||
|
||||
/**/
|
||||
HashTable optiontab;
|
||||
mod_export HashTable optiontab;
|
||||
|
||||
/* The canonical option name table */
|
||||
|
||||
|
@ -559,7 +559,7 @@ bin_setopt(char *nam, char **args, char *ops, int isun)
|
|||
/* Identify an option name */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
optlookup(char const *name)
|
||||
{
|
||||
char *s, *t;
|
||||
|
@ -622,7 +622,7 @@ static char *rparams[] = {
|
|||
* from the usual meaning of the option. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
dosetopt(int optno, int value, int force)
|
||||
{
|
||||
if(!optno)
|
||||
|
|
102
Src/params.c
102
Src/params.c
|
@ -35,58 +35,66 @@
|
|||
/* what level of localness we are at */
|
||||
|
||||
/**/
|
||||
int locallevel;
|
||||
mod_export int locallevel;
|
||||
|
||||
/* Variables holding values of special parameters */
|
||||
|
||||
/**/
|
||||
char **pparams, /* $argv */
|
||||
**cdpath, /* $cdpath */
|
||||
**fignore, /* $fignore */
|
||||
**fpath, /* $fpath */
|
||||
**mailpath, /* $mailpath */
|
||||
**manpath, /* $manpath */
|
||||
**path, /* $path */
|
||||
**psvar, /* $psvar */
|
||||
**watch; /* $watch */
|
||||
/**/
|
||||
mod_export
|
||||
char **path, /* $path */
|
||||
**fignore; /* $fignore */
|
||||
|
||||
/**/
|
||||
char *argzero, /* $0 */
|
||||
*home, /* $HOME */
|
||||
*hostnam, /* $HOST */
|
||||
*ifs, /* $IFS */
|
||||
*nullcmd, /* $NULLCMD */
|
||||
*oldpwd, /* $OLDPWD */
|
||||
*zoptarg, /* $OPTARG */
|
||||
*postedit, /* $POSTEDIT */
|
||||
*prompt, /* $PROMPT */
|
||||
*prompt2, /* $PROMPT2 */
|
||||
*prompt3, /* $PROMPT3 */
|
||||
*prompt4, /* $PROMPT4 */
|
||||
*pwd, /* $PWD */
|
||||
*readnullcmd, /* $READNULLCMD */
|
||||
*rprompt, /* $RPROMPT */
|
||||
*sprompt, /* $SPROMPT */
|
||||
*term, /* $TERM */
|
||||
*ttystrname, /* $TTY */
|
||||
*wordchars, /* $WORDCHARS */
|
||||
*zsh_name; /* $ZSH_NAME */
|
||||
/**/
|
||||
mod_export
|
||||
char *ifs, /* $IFS */
|
||||
*postedit, /* $POSTEDIT */
|
||||
*ttystrname, /* $TTY */
|
||||
*pwd; /* $PWD */
|
||||
|
||||
/**/
|
||||
mod_export
|
||||
zlong lastval, /* $? */
|
||||
mypid, /* $$ */
|
||||
lastpid, /* $! */
|
||||
columns, /* $COLUMNS */
|
||||
lineno, /* $LINENO */
|
||||
lines, /* $LINES */
|
||||
ppid; /* $PPID */
|
||||
/**/
|
||||
zlong lineno, /* $LINENO */
|
||||
zoptind, /* $OPTIND */
|
||||
ppid, /* $PPID */
|
||||
shlvl; /* $SHLVL */
|
||||
|
||||
/* $histchars */
|
||||
|
||||
/**/
|
||||
unsigned char bangchar, hatchar, hashchar;
|
||||
mod_export unsigned char bangchar;
|
||||
/**/
|
||||
unsigned char hatchar, hashchar;
|
||||
|
||||
/* $SECONDS = time(NULL) - shtimer.tv_sec */
|
||||
|
||||
|
@ -96,7 +104,7 @@ struct timeval shtimer;
|
|||
/* 0 if this $TERM setup is usable, otherwise it contains TERM_* flags */
|
||||
|
||||
/**/
|
||||
int termflags;
|
||||
mod_export int termflags;
|
||||
|
||||
/* Nodes for special parameters for parameter hash table */
|
||||
|
||||
|
@ -248,10 +256,10 @@ static Param argvparam;
|
|||
/* hash table containing the parameters */
|
||||
|
||||
/**/
|
||||
HashTable paramtab, realparamtab;
|
||||
mod_export HashTable paramtab, realparamtab;
|
||||
|
||||
/**/
|
||||
HashTable
|
||||
mod_export HashTable
|
||||
newparamtable(int size, char const *name)
|
||||
{
|
||||
HashTable ht = newhashtable(size, name, NULL);
|
||||
|
@ -327,7 +335,7 @@ static int delunset;
|
|||
/* Function to delete a parameter table. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
deleteparamtable(HashTable t)
|
||||
{
|
||||
/* The parameters in the hash table need to be unset *
|
||||
|
@ -341,7 +349,7 @@ deleteparamtable(HashTable t)
|
|||
static unsigned numparamvals;
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
scancountparams(HashNode hn, int flags)
|
||||
{
|
||||
++numparamvals;
|
||||
|
@ -586,7 +594,7 @@ assigngetset(Param pm)
|
|||
* created because it already exists, the PM_UNSET flag is cleared. */
|
||||
|
||||
/**/
|
||||
Param
|
||||
mod_export Param
|
||||
createparam(char *name, int flags)
|
||||
{
|
||||
Param pm, oldpm;
|
||||
|
@ -1162,14 +1170,14 @@ getindex(char **pptr, Value v)
|
|||
|
||||
|
||||
/**/
|
||||
Value
|
||||
mod_export Value
|
||||
getvalue(char **pptr, int bracks)
|
||||
{
|
||||
return fetchvalue(pptr, bracks, 0);
|
||||
}
|
||||
|
||||
/**/
|
||||
Value
|
||||
mod_export Value
|
||||
fetchvalue(char **pptr, int bracks, int flags)
|
||||
{
|
||||
char *s, *t;
|
||||
|
@ -1265,7 +1273,7 @@ fetchvalue(char **pptr, int bracks, int flags)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
getstrvalue(Value v)
|
||||
{
|
||||
char *s, **ss;
|
||||
|
@ -1372,7 +1380,7 @@ getarrvalue(Value v)
|
|||
}
|
||||
|
||||
/**/
|
||||
zlong
|
||||
mod_export zlong
|
||||
getintvalue(Value v)
|
||||
{
|
||||
if (!v || v->isarr)
|
||||
|
@ -1408,7 +1416,7 @@ getnumvalue(Value v)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
setstrvalue(Value v, char *val)
|
||||
{
|
||||
char buf[(sizeof(zlong) * 8) + 4];
|
||||
|
@ -1543,7 +1551,7 @@ setnumvalue(Value v, mnumber val)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
setarrvalue(Value v, char **val)
|
||||
{
|
||||
if (v->pm->flags & PM_READONLY) {
|
||||
|
@ -1611,7 +1619,7 @@ setarrvalue(Value v, char **val)
|
|||
/* Retrieve an integer parameter */
|
||||
|
||||
/**/
|
||||
zlong
|
||||
mod_export zlong
|
||||
getiparam(char *s)
|
||||
{
|
||||
Value v;
|
||||
|
@ -1640,7 +1648,7 @@ getnparam(char *s)
|
|||
/* Retrieve a scalar (string) parameter */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
getsparam(char *s)
|
||||
{
|
||||
Value v;
|
||||
|
@ -1653,7 +1661,7 @@ getsparam(char *s)
|
|||
/* Retrieve an array parameter */
|
||||
|
||||
/**/
|
||||
char **
|
||||
mod_export char **
|
||||
getaparam(char *s)
|
||||
{
|
||||
Value v;
|
||||
|
@ -1667,7 +1675,7 @@ getaparam(char *s)
|
|||
/* Retrieve an assoc array parameter as an array */
|
||||
|
||||
/**/
|
||||
char **
|
||||
mod_export char **
|
||||
gethparam(char *s)
|
||||
{
|
||||
Value v;
|
||||
|
@ -1679,7 +1687,7 @@ gethparam(char *s)
|
|||
}
|
||||
|
||||
/**/
|
||||
Param
|
||||
mod_export Param
|
||||
setsparam(char *s, char *val)
|
||||
{
|
||||
Value v;
|
||||
|
@ -1717,7 +1725,7 @@ setsparam(char *s, char *val)
|
|||
}
|
||||
|
||||
/**/
|
||||
Param
|
||||
mod_export Param
|
||||
setaparam(char *s, char **val)
|
||||
{
|
||||
Value v;
|
||||
|
@ -1761,7 +1769,7 @@ setaparam(char *s, char **val)
|
|||
}
|
||||
|
||||
/**/
|
||||
Param
|
||||
mod_export Param
|
||||
sethparam(char *s, char **val)
|
||||
{
|
||||
Value v;
|
||||
|
@ -1856,7 +1864,7 @@ setnparam(char *s, mnumber val)
|
|||
/* Unset a parameter */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
unsetparam(char *s)
|
||||
{
|
||||
Param pm;
|
||||
|
@ -1870,7 +1878,7 @@ unsetparam(char *s)
|
|||
/* Unset a parameter */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
unsetparam_pm(Param pm, int altflag, int exp)
|
||||
{
|
||||
Param oldpm, altpm;
|
||||
|
@ -1933,7 +1941,7 @@ unsetparam_pm(Param pm, int altflag, int exp)
|
|||
* the specific set function. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
stdunsetfn(Param pm, int exp)
|
||||
{
|
||||
switch (PM_TYPE(pm->flags)) {
|
||||
|
@ -1983,7 +1991,7 @@ floatsetfn(Param pm, double x)
|
|||
/* Function to get value of a scalar (string) parameter */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
strgetfn(Param pm)
|
||||
{
|
||||
return pm->u.str ? pm->u.str : (char *) hcalloc(1);
|
||||
|
@ -2014,7 +2022,7 @@ arrgetfn(Param pm)
|
|||
/* Function to set value of an array parameter */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
arrsetfn(Param pm, char **x)
|
||||
{
|
||||
if (pm->u.arr && pm->u.arr != x)
|
||||
|
@ -2030,7 +2038,7 @@ arrsetfn(Param pm, char **x)
|
|||
/* Function to get value of an association parameter */
|
||||
|
||||
/**/
|
||||
HashTable
|
||||
mod_export HashTable
|
||||
hashgetfn(Param pm)
|
||||
{
|
||||
return pm->u.hash;
|
||||
|
@ -2039,7 +2047,7 @@ hashgetfn(Param pm)
|
|||
/* Function to set value of an association parameter */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
hashsetfn(Param pm, HashTable x)
|
||||
{
|
||||
if (pm->u.hash && pm->u.hash != x)
|
||||
|
@ -2103,7 +2111,7 @@ nullsetfn(Param pm, char *x)
|
|||
* containing the integer value. */
|
||||
|
||||
/**/
|
||||
zlong
|
||||
mod_export zlong
|
||||
intvargetfn(Param pm)
|
||||
{
|
||||
return *((zlong *)pm->u.data);
|
||||
|
@ -2114,7 +2122,7 @@ intvargetfn(Param pm)
|
|||
* where the value is to be stored. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
intvarsetfn(Param pm, zlong x)
|
||||
{
|
||||
*((zlong *)pm->u.data) = x;
|
||||
|
@ -2140,7 +2148,7 @@ zlevarsetfn(Param pm, zlong x)
|
|||
* representing the scalar (string). */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
strvarsetfn(Param pm, char *x)
|
||||
{
|
||||
char **q = ((char **)pm->u.data);
|
||||
|
@ -2154,7 +2162,7 @@ strvarsetfn(Param pm, char *x)
|
|||
* representing the scalar (string). */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
strvargetfn(Param pm)
|
||||
{
|
||||
char *s = *((char **)pm->u.data);
|
||||
|
@ -2170,7 +2178,7 @@ strvargetfn(Param pm)
|
|||
* of pointers). */
|
||||
|
||||
/**/
|
||||
char **
|
||||
mod_export char **
|
||||
arrvargetfn(Param pm)
|
||||
{
|
||||
return *((char ***)pm->u.data);
|
||||
|
@ -2183,7 +2191,7 @@ arrvargetfn(Param pm)
|
|||
* version of this array which will need to be updated. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
arrvarsetfn(Param pm, char **x)
|
||||
{
|
||||
char ***dptr = (char ***)pm->u.data;
|
||||
|
@ -2688,7 +2696,7 @@ arrfixenv(char *s, char **t)
|
|||
* "foo=bar", and returns a pointer to the beginning of "bar" */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
zgetenv(char *name)
|
||||
{
|
||||
char **ep, *s, *t;
|
||||
|
@ -2800,7 +2808,7 @@ delenv(char *x)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
convbase(char *s, zlong v, int base)
|
||||
{
|
||||
int digs = 0;
|
||||
|
@ -2888,7 +2896,7 @@ convfloat(double dval, int digits, int flags, FILE *fout)
|
|||
/* Start a parameter scope */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
startparamscope(void)
|
||||
{
|
||||
locallevel++;
|
||||
|
@ -2897,7 +2905,7 @@ startparamscope(void)
|
|||
/* End a parameter scope: delete the parameters local to the scope. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
endparamscope(void)
|
||||
{
|
||||
locallevel--;
|
||||
|
@ -2980,7 +2988,7 @@ freeparamnode(HashNode hn)
|
|||
/* Print a parameter */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
printparamnode(HashNode hn, int printflags)
|
||||
{
|
||||
Param p = (Param) hn;
|
||||
|
|
|
@ -33,17 +33,17 @@
|
|||
/* != 0 if we are about to read a command word */
|
||||
|
||||
/**/
|
||||
int incmdpos;
|
||||
mod_export int incmdpos;
|
||||
|
||||
/* != 0 if we are in the middle of a [[ ... ]] */
|
||||
|
||||
/**/
|
||||
int incond;
|
||||
mod_export int incond;
|
||||
|
||||
/* != 0 if we are after a redirection (for ctxtlex only) */
|
||||
|
||||
/**/
|
||||
int inredir;
|
||||
mod_export int inredir;
|
||||
|
||||
/* != 0 if we are about to read a case pattern */
|
||||
|
||||
|
@ -68,7 +68,7 @@ struct heredocs *hdocs;
|
|||
/* used in arrays of lists instead of NULL pointers */
|
||||
|
||||
/**/
|
||||
struct list dummy_list;
|
||||
mod_export struct list dummy_list;
|
||||
|
||||
#define YYERROR { tok = LEXERR; return NULL; }
|
||||
#define YYERRORV { tok = LEXERR; return; }
|
||||
|
|
|
@ -292,7 +292,7 @@ patcompstart(void)
|
|||
/* Top level pattern compilation subroutine */
|
||||
|
||||
/**/
|
||||
Patprog
|
||||
mod_export Patprog
|
||||
patcompile(char *exp, int inflags, char **endexp)
|
||||
{
|
||||
int flags = 0, len = 0;
|
||||
|
@ -1280,7 +1280,7 @@ pattrystart(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
pattry(Patprog prog, char *string)
|
||||
{
|
||||
int i;
|
||||
|
@ -2212,7 +2212,7 @@ duppatprog(Patprog prog)
|
|||
/* Free a patprog. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
freepatprog(Patprog prog)
|
||||
{
|
||||
if (prog && prog != dummy_patprog1 && prog != dummy_patprog2)
|
||||
|
|
|
@ -38,7 +38,7 @@ unsigned txtattrmask;
|
|||
/* text change - attribute change made by prompts */
|
||||
|
||||
/**/
|
||||
unsigned txtchange;
|
||||
mod_export unsigned txtchange;
|
||||
|
||||
/* the command stack for use with %_ in prompts */
|
||||
|
||||
|
@ -137,7 +137,7 @@ promptpath(char *p, int npath, int tilde)
|
|||
* `glitch' space. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
promptexpand(char *s, int ns, char *rs, char *Rs)
|
||||
{
|
||||
if(!s)
|
||||
|
@ -628,7 +628,7 @@ stradd(char *d)
|
|||
/* tsetcap(), among other things, can write a termcap string into the buffer. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
tsetcap(int cap, int flag)
|
||||
{
|
||||
if (!(termflags & TERM_SHORT) && tcstr[cap]) {
|
||||
|
@ -688,7 +688,7 @@ putstr(int d)
|
|||
* newlines require nontrivial processing. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
countprompt(char *str, int *wp, int *hp, int overf)
|
||||
{
|
||||
int w = 0, h = 1;
|
||||
|
|
|
@ -34,12 +34,12 @@
|
|||
* 0 for the default action or some ZSIG_* flags ored together. */
|
||||
|
||||
/**/
|
||||
int sigtrapped[VSIGCOUNT];
|
||||
mod_export int sigtrapped[VSIGCOUNT];
|
||||
|
||||
/* trap functions for each signal */
|
||||
|
||||
/**/
|
||||
List sigfuncs[VSIGCOUNT];
|
||||
mod_export List sigfuncs[VSIGCOUNT];
|
||||
|
||||
/* Variables used by signal queueing */
|
||||
|
||||
|
@ -82,7 +82,7 @@ static sigset_t blocked_set;
|
|||
* system calls are not restarted. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
install_handler(int sig)
|
||||
{
|
||||
#ifdef POSIX_SIGNALS
|
||||
|
@ -122,7 +122,7 @@ install_handler(int sig)
|
|||
/* enable ^C interrupts */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
intr(void)
|
||||
{
|
||||
if (interact)
|
||||
|
@ -143,7 +143,7 @@ nointr(void)
|
|||
/* temporarily block ^C interrupts */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
holdintr(void)
|
||||
{
|
||||
if (interact)
|
||||
|
@ -153,7 +153,7 @@ holdintr(void)
|
|||
/* release ^C interrupts */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
noholdintr(void)
|
||||
{
|
||||
if (interact)
|
||||
|
@ -682,7 +682,7 @@ dosavetrap(int sig, int level)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
settrap(int sig, List l)
|
||||
{
|
||||
if (sig == -1)
|
||||
|
|
|
@ -63,7 +63,7 @@ END {
|
|||
printf "#include %czsh.mdh%c\n", 34, 34
|
||||
printf "\n"
|
||||
printf "/**/\n"
|
||||
printf "char *sigmsg[SIGCOUNT+2] = {\n"
|
||||
printf "mod_export char *sigmsg[SIGCOUNT+2] = {\n"
|
||||
printf "\t%c%s%c,\n", 34, "done", 34
|
||||
|
||||
for (i = 1; i <= 0 + max; i++)
|
||||
|
|
10
Src/subst.c
10
Src/subst.c
|
@ -46,7 +46,7 @@ char nulstring[] = {Nularg, '\0'};
|
|||
*/
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
prefork(LinkList list, int flags)
|
||||
{
|
||||
LinkNode node;
|
||||
|
@ -211,7 +211,7 @@ stringsubst(LinkList list, LinkNode node, int ssub)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
globlist(LinkList list)
|
||||
{
|
||||
LinkNode node, next;
|
||||
|
@ -228,7 +228,7 @@ globlist(LinkList list)
|
|||
/* perform substitution on a single word */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
singsub(char **s)
|
||||
{
|
||||
LinkList foo;
|
||||
|
@ -306,7 +306,7 @@ multsub(char **s, char ***a, int *isarr, char *sep)
|
|||
*/
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
filesub(char **namptr, int assign)
|
||||
{
|
||||
char *sub = NULL, *str, *ptr;
|
||||
|
@ -341,7 +341,7 @@ filesub(char **namptr, int assign)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
filesubstr(char **namptr, int assign)
|
||||
{
|
||||
#define isend(c) ( !(c) || (c)=='/' || (c)==Inpar || (assign && (c)==':') )
|
||||
|
|
|
@ -104,7 +104,7 @@ taddnl(void)
|
|||
/* get a permanent textual representation of n */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
getpermtext(struct node *n)
|
||||
{
|
||||
tnewlins = 1;
|
||||
|
|
132
Src/utils.c
132
Src/utils.c
|
@ -38,7 +38,7 @@ char *scriptname;
|
|||
/* Print an error */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zerr(const char *fmt, const char *str, int num)
|
||||
{
|
||||
if (errflag || noerrs) {
|
||||
|
@ -51,7 +51,7 @@ zerr(const char *fmt, const char *str, int num)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zerrnam(const char *cmd, const char *fmt, const char *str, int num)
|
||||
{
|
||||
if (errflag || noerrs)
|
||||
|
@ -62,7 +62,7 @@ zerrnam(const char *cmd, const char *fmt, const char *str, int num)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zwarn(const char *fmt, const char *str, int num)
|
||||
{
|
||||
if (errflag || noerrs)
|
||||
|
@ -81,7 +81,7 @@ zwarn(const char *fmt, const char *str, int num)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zwarnnam(const char *cmd, const char *fmt, const char *str, int num)
|
||||
{
|
||||
if (errflag || noerrs)
|
||||
|
@ -172,7 +172,7 @@ putraw(int c)
|
|||
/* Output a single character, for the termcap routines. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
putshout(int c)
|
||||
{
|
||||
putc(c, shout);
|
||||
|
@ -190,7 +190,7 @@ putshout(int c)
|
|||
* literal characters. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
nicechar(int c)
|
||||
{
|
||||
static char buf[6];
|
||||
|
@ -505,7 +505,7 @@ finddir(char *s)
|
|||
/* add a named directory */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
adduserdir(char *s, char *t, int flags, int always)
|
||||
{
|
||||
Nameddir nd;
|
||||
|
@ -610,7 +610,7 @@ dircmp(char *s, char *t)
|
|||
/* extra functions to call before displaying the prompt */
|
||||
|
||||
/**/
|
||||
LinkList prepromptfns;
|
||||
mod_export LinkList prepromptfns;
|
||||
|
||||
/* the last time we checked mail */
|
||||
|
||||
|
@ -806,7 +806,7 @@ printprompt4(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
freestr(void *a)
|
||||
{
|
||||
zsfree(a);
|
||||
|
@ -838,7 +838,7 @@ gettyinfo(struct ttyinfo *ti)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
settyinfo(struct ttyinfo *ti)
|
||||
{
|
||||
if (SHTTY != -1) {
|
||||
|
@ -870,18 +870,18 @@ settyinfo(struct ttyinfo *ti)
|
|||
/* the default tty state */
|
||||
|
||||
/**/
|
||||
struct ttyinfo shttyinfo;
|
||||
mod_export struct ttyinfo shttyinfo;
|
||||
|
||||
/* != 0 if we need to call resetvideo() */
|
||||
|
||||
/**/
|
||||
int resetneeded;
|
||||
mod_export int resetneeded;
|
||||
|
||||
#ifdef TIOCGWINSZ
|
||||
/* window size changed */
|
||||
|
||||
/**/
|
||||
int winchanged;
|
||||
mod_export int winchanged;
|
||||
#endif
|
||||
|
||||
static int
|
||||
|
@ -1017,7 +1017,7 @@ adjustwinsize(int from)
|
|||
* is already >= 10, it is not moved. If it is invalid, -1 is returned. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
movefd(int fd)
|
||||
{
|
||||
if(fd != -1 && fd < 10) {
|
||||
|
@ -1043,7 +1043,7 @@ movefd(int fd)
|
|||
/* Move fd x to y. If x == -1, fd y is closed. */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
redup(int x, int y)
|
||||
{
|
||||
if(x < 0)
|
||||
|
@ -1061,7 +1061,7 @@ redup(int x, int y)
|
|||
/* Close the given fd, and clear it from fdtable. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
zclose(int fd)
|
||||
{
|
||||
if (fd >= 0) {
|
||||
|
@ -1080,7 +1080,7 @@ zclose(int fd)
|
|||
* is unique, for use as a temporary file. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
gettempname(void)
|
||||
{
|
||||
char *s;
|
||||
|
@ -1094,7 +1094,7 @@ gettempname(void)
|
|||
/* Check if a string contains a token */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
has_token(const char *s)
|
||||
{
|
||||
while(*s)
|
||||
|
@ -1106,7 +1106,7 @@ has_token(const char *s)
|
|||
/* Delete a character in a string */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
chuck(char *str)
|
||||
{
|
||||
while ((str[0] = str[1]))
|
||||
|
@ -1114,7 +1114,7 @@ chuck(char *str)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
tulower(int c)
|
||||
{
|
||||
c &= 0xff;
|
||||
|
@ -1122,7 +1122,7 @@ tulower(int c)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
tuupper(int c)
|
||||
{
|
||||
c &= 0xff;
|
||||
|
@ -1143,7 +1143,7 @@ ztrncpy(char *s, char *t, int len)
|
|||
/* copy t into *s and update s */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
strucpy(char **s, char *t)
|
||||
{
|
||||
char *u = *s;
|
||||
|
@ -1153,7 +1153,7 @@ strucpy(char **s, char *t)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
struncpy(char **s, char *t, int n)
|
||||
{
|
||||
char *u = *s;
|
||||
|
@ -1168,7 +1168,7 @@ struncpy(char **s, char *t, int n)
|
|||
* It doesn't count the NULL pointer at the end. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
arrlen(char **s)
|
||||
{
|
||||
int count;
|
||||
|
@ -1180,7 +1180,7 @@ arrlen(char **s)
|
|||
/* Skip over a balanced pair of parenthesis. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
skipparens(char inpar, char outpar, char **s)
|
||||
{
|
||||
int level;
|
||||
|
@ -1202,7 +1202,7 @@ skipparens(char inpar, char outpar, char **s)
|
|||
* to be broken. */
|
||||
|
||||
/**/
|
||||
zlong
|
||||
mod_export zlong
|
||||
zstrtol(const char *s, char **t, int base)
|
||||
{
|
||||
zlong ret = 0;
|
||||
|
@ -1384,7 +1384,7 @@ spscan(HashNode hn, int scanflags)
|
|||
/* fix s ; if hist is nonzero, fix the history list too */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
spckword(char **s, int hist, int cmd, int ask)
|
||||
{
|
||||
char *t, *u;
|
||||
|
@ -1513,7 +1513,7 @@ spckword(char **s, int hist, int cmd, int ask)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
ztrftime(char *buf, int bufsize, char *fmt, struct tm *tm)
|
||||
{
|
||||
int hr12;
|
||||
|
@ -1613,7 +1613,7 @@ ztrftime(char *buf, int bufsize, char *fmt, struct tm *tm)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
zjoin(char **arr, int delim)
|
||||
{
|
||||
int len = 0;
|
||||
|
@ -1684,7 +1684,7 @@ skipwsep(char **s)
|
|||
}
|
||||
|
||||
/**/
|
||||
char **
|
||||
mod_export char **
|
||||
spacesplit(char *s, int allownull)
|
||||
{
|
||||
char *t, **ret, **ptr;
|
||||
|
@ -1831,7 +1831,7 @@ wordcount(char *s, char *sep, int mul)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
sepjoin(char **s, char *sep)
|
||||
{
|
||||
char *r, *p, **t;
|
||||
|
@ -1890,7 +1890,7 @@ sepsplit(char *s, char *sep, int allownull)
|
|||
/* Get the definition of a shell function */
|
||||
|
||||
/**/
|
||||
List
|
||||
mod_export List
|
||||
getshfunc(char *nam)
|
||||
{
|
||||
Shfunc shf;
|
||||
|
@ -1964,7 +1964,7 @@ allocnode(int type)
|
|||
/* duplicate a syntax tree */
|
||||
|
||||
/**/
|
||||
void *
|
||||
mod_export void *
|
||||
dupstruct(void *a)
|
||||
{
|
||||
void **onodes, **nnodes, *ret, *n, *on;
|
||||
|
@ -2027,7 +2027,7 @@ dupstruct(void *a)
|
|||
static LinkList freeslist = NULL;
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
freestruct(void *a)
|
||||
{
|
||||
if (!a || ((List) a) == &dummy_list)
|
||||
|
@ -2171,7 +2171,7 @@ mkarray(char *s)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
zbeep(void)
|
||||
{
|
||||
char *vb;
|
||||
|
@ -2184,7 +2184,7 @@ zbeep(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
freearray(char **s)
|
||||
{
|
||||
char **t = s;
|
||||
|
@ -2212,7 +2212,7 @@ equalsplit(char *s, char **t)
|
|||
/* the ztypes table */
|
||||
|
||||
/**/
|
||||
short int typtab[256];
|
||||
mod_export short int typtab[256];
|
||||
|
||||
/* initialize the ztypes table */
|
||||
|
||||
|
@ -2262,7 +2262,7 @@ inittyptab(void)
|
|||
}
|
||||
|
||||
/**/
|
||||
char **
|
||||
mod_export char **
|
||||
arrdup(char **s)
|
||||
{
|
||||
char **x, **y;
|
||||
|
@ -2458,7 +2458,7 @@ setcbreak(void)
|
|||
/* give the tty to some process */
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
attachtty(pid_t pgrp)
|
||||
{
|
||||
static int ep = 0;
|
||||
|
@ -2638,7 +2638,7 @@ getbaudrate(struct ttyinfo *shttyinfo)
|
|||
* META_HEAPDUP: same as META_DUP, but uses the heap */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
metafy(char *buf, int len, int heap)
|
||||
{
|
||||
int meta = 0;
|
||||
|
@ -2703,7 +2703,7 @@ metafy(char *buf, int len, int heap)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
unmetafy(char *s, int *len)
|
||||
{
|
||||
char *p, *t;
|
||||
|
@ -2721,7 +2721,7 @@ unmetafy(char *s, int *len)
|
|||
* unmetafied substring length. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
metalen(const char *s, int len)
|
||||
{
|
||||
int mlen = len;
|
||||
|
@ -2741,7 +2741,7 @@ metalen(const char *s, int len)
|
|||
* 4 * PATH_MAX. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
unmeta(const char *file_name)
|
||||
{
|
||||
static char fn[4 * PATH_MAX];
|
||||
|
@ -2796,7 +2796,7 @@ ztrcmp(unsigned char const *s1, unsigned char const *s2)
|
|||
* 2 is r is the lowercase prefix of s and return 3 otherwise. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
metadiffer(char const *s, char const *r, int len)
|
||||
{
|
||||
int l = len;
|
||||
|
@ -2823,7 +2823,7 @@ metadiffer(char const *s, char const *r, int len)
|
|||
/* Return the unmetafied length of a metafied string. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
ztrlen(char const *s)
|
||||
{
|
||||
int l;
|
||||
|
@ -2843,7 +2843,7 @@ ztrlen(char const *s)
|
|||
/* Subtract two pointers in a metafied string. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
ztrsub(char const *t, char const *s)
|
||||
{
|
||||
int l = t - s;
|
||||
|
@ -2862,7 +2862,7 @@ ztrsub(char const *t, char const *s)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
zreaddir(DIR *dir, int ignoredots)
|
||||
{
|
||||
struct dirent *de;
|
||||
|
@ -2880,7 +2880,7 @@ zreaddir(DIR *dir, int ignoredots)
|
|||
/* Unmetafy and output a string. Tokens are skipped. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
zputs(char const *s, FILE *stream)
|
||||
{
|
||||
int c;
|
||||
|
@ -2927,7 +2927,7 @@ nicedup(char const *s, int heap)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
niceztrdup(char const *s)
|
||||
{
|
||||
return nicedup(s, 0);
|
||||
|
@ -2943,7 +2943,7 @@ nicedupstring(char const *s)
|
|||
/* Unmetafy and output a string, displaying special characters readably. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
nicezputs(char const *s, FILE *stream)
|
||||
{
|
||||
int c;
|
||||
|
@ -2966,7 +2966,7 @@ nicezputs(char const *s, FILE *stream)
|
|||
/* Return the length of the visible representation of a metafied string. */
|
||||
|
||||
/**/
|
||||
size_t
|
||||
mod_export size_t
|
||||
niceztrlen(char const *s)
|
||||
{
|
||||
size_t l = 0;
|
||||
|
@ -2989,7 +2989,7 @@ niceztrlen(char const *s)
|
|||
/* check for special characters in the string */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
hasspecial(char const *s)
|
||||
{
|
||||
for (; *s; s++)
|
||||
|
@ -3007,7 +3007,7 @@ hasspecial(char const *s)
|
|||
* The string may be metafied and contain tokens. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
bslashquote(const char *s, char **e, int instring)
|
||||
{
|
||||
const char *u, *tt;
|
||||
|
@ -3118,7 +3118,7 @@ bslashquote(const char *s, char **e, int instring)
|
|||
/* Unmetafy and output a string, quoted if it contains special characters. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
quotedzputs(char const *s, FILE *stream)
|
||||
{
|
||||
int inquote = 0, c;
|
||||
|
@ -3193,7 +3193,7 @@ quotedzputs(char const *s, FILE *stream)
|
|||
/* Double-quote a metafied string. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
dquotedztrdup(char const *s)
|
||||
{
|
||||
int len = strlen(s) * 4 + 2;
|
||||
|
@ -3303,7 +3303,7 @@ dquotedzputs(char const *s, FILE *stream)
|
|||
*/
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
getkeystring(char *s, int *len, int fromwhere, int *misc)
|
||||
{
|
||||
char *buf, tmp[1];
|
||||
|
@ -3460,7 +3460,7 @@ getkeystring(char *s, int *len, int fromwhere, int *misc)
|
|||
/* Return non-zero if s is a prefix of t. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
strpfx(char *s, char *t)
|
||||
{
|
||||
while (*s && *s == *t)
|
||||
|
@ -3471,7 +3471,7 @@ strpfx(char *s, char *t)
|
|||
/* Return non-zero if s is a suffix of t. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
strsfx(char *s, char *t)
|
||||
{
|
||||
int ls = strlen(s), lt = strlen(t);
|
||||
|
@ -3482,7 +3482,7 @@ strsfx(char *s, char *t)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
dupstrpfx(const char *s, int len)
|
||||
{
|
||||
char *r = ncalloc(len + 1);
|
||||
|
@ -3493,7 +3493,7 @@ dupstrpfx(const char *s, int len)
|
|||
}
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
ztrduppfx(const char *s, int len)
|
||||
{
|
||||
char *r = zalloc(len + 1);
|
||||
|
@ -3506,7 +3506,7 @@ ztrduppfx(const char *s, int len)
|
|||
/* Append a string to an allocated string, reallocating to make room. */
|
||||
|
||||
/**/
|
||||
char *
|
||||
mod_export char *
|
||||
appstr(char *base, char const *append)
|
||||
{
|
||||
return strcat(realloc(base, strlen(base) + strlen(append) + 1), append);
|
||||
|
@ -3537,7 +3537,7 @@ upchdir(int n)
|
|||
* in an unwanted directory in case of failure. */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
lchdir(char const *path, struct dirsav *d, int hard)
|
||||
{
|
||||
char const *pptr;
|
||||
|
@ -3660,7 +3660,7 @@ lchdir(char const *path, struct dirsav *d, int hard)
|
|||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
restoredir(struct dirsav *d)
|
||||
{
|
||||
int err = 0;
|
||||
|
@ -3699,7 +3699,7 @@ restoredir(struct dirsav *d)
|
|||
/* Get a signal number from a string */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
getsignum(char *s)
|
||||
{
|
||||
int x, i;
|
||||
|
@ -3753,7 +3753,7 @@ privasserted(void)
|
|||
#ifdef DEBUG
|
||||
|
||||
/**/
|
||||
void
|
||||
mod_export void
|
||||
dputs(char *message)
|
||||
{
|
||||
fprintf(stderr, "%s\n", message);
|
||||
|
@ -3763,7 +3763,7 @@ dputs(char *message)
|
|||
#endif /* DEBUG */
|
||||
|
||||
/**/
|
||||
int
|
||||
mod_export int
|
||||
mode_to_octal(mode_t mode)
|
||||
{
|
||||
int m = 0;
|
||||
|
|
|
@ -1660,3 +1660,9 @@ typedef int (*CompctlReadFn) _((char *, char **, char *, char *));
|
|||
typedef void (*ZleVoidFn) _((void));
|
||||
typedef void (*ZleVoidIntFn) _((int));
|
||||
typedef unsigned char * (*ZleReadFn) _((char *, char *, int));
|
||||
|
||||
/***************************************/
|
||||
/* Pseudo-keyword to mark exportedness */
|
||||
/***************************************/
|
||||
|
||||
#define mod_export
|
||||
|
|
Loading…
Reference in a new issue