summaryrefslogtreecommitdiff
path: root/usr/src/cmd/csh/sh.glob.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/csh/sh.glob.c')
-rw-r--r--usr/src/cmd/csh/sh.glob.c157
1 files changed, 80 insertions, 77 deletions
diff --git a/usr/src/cmd/csh/sh.glob.c b/usr/src/cmd/csh/sh.glob.c
index 1d639392e5..df7b2adec8 100644
--- a/usr/src/cmd/csh/sh.glob.c
+++ b/usr/src/cmd/csh/sh.glob.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -17,6 +17,7 @@
#include "sh.h"
#include "sh.tconst.h"
#include <dirent.h>
+#include <strings.h>
#ifdef MBCHAR
#include <widec.h> /* wcsetno() */
#include <fnmatch.h> /* fnmatch() */
@@ -34,8 +35,21 @@ bool noglob;
bool nonomatch;
tchar *entp;
tchar **sortbas;
-int sortscmp();
-extern DIR *opendir_();
+int sortscmp(tchar **, tchar **);
+void ginit(tchar **);
+void collect(tchar *);
+void acollect(tchar *);
+void expand(tchar *);
+void matchdir_(tchar *);
+void Gcat(tchar *, tchar *);
+void addpath(tchar);
+void tglob(tchar **);
+tchar **dobackp(tchar *, bool);
+void backeval(tchar *, bool);
+void psave(tchar);
+void pword(void);
+
+extern DIR *opendir_(tchar *);
#define sort() qsort((char *)sortbas, &gargv[gargc] - sortbas, \
sizeof (*sortbas), (int (*)(const void *, \
@@ -43,8 +57,7 @@ extern DIR *opendir_();
tchar **
-glob(v)
- register tchar **v;
+glob(tchar **v)
{
tchar agpath[BUFSIZ];
tchar *agargv[GAVSIZ];
@@ -74,18 +87,18 @@ glob(v)
return (gargv = copyblk(gargv));
}
-ginit(agargv)
- tchar **agargv;
+void
+ginit(tchar **agargv)
{
agargv[0] = 0; gargv = agargv; sortbas = agargv; gargc = 0;
gnleft = NCARGS - 4;
}
-collect(as)
- register tchar *as;
+void
+collect(tchar *as)
{
- register int i;
+ int i;
#ifdef TRACE
tprintf("TRACE- collect()\n");
@@ -124,10 +137,10 @@ collect(as)
acollect(as);
}
-acollect(as)
- register tchar *as;
+void
+acollect(tchar *as)
{
- register long ogargc = gargc;
+ long ogargc = gargc;
#ifdef TRACE
tprintf("TRACE- acollect()\n");
@@ -146,18 +159,18 @@ acollect(as)
/*
* String compare for qsort. Also used by filec code in sh.file.c.
*/
-sortscmp(a1, a2)
- tchar **a1, **a2;
+int
+sortscmp(tchar **a1, tchar **a2)
{
return (strcoll_(*a1, *a2));
}
-expand(as)
- tchar *as;
+void
+expand(tchar *as)
{
- register tchar *cs;
- register tchar *sgpathp, *oldcs;
+ tchar *cs;
+ tchar *sgpathp, *oldcs;
struct stat stb;
#ifdef TRACE
@@ -212,12 +225,12 @@ endit:
*gpathp = 0;
}
-matchdir_(pattern)
- tchar *pattern;
+void
+matchdir_(tchar *pattern)
{
struct stat stb;
- register struct dirent *dp;
- register DIR *dirp;
+ struct dirent *dp;
+ DIR *dirp;
tchar curdir_[MAXNAMLEN+1];
int slproc = 0;
@@ -265,11 +278,11 @@ patherr2:
Perror(gpath);
}
-execbrc(p, s)
- tchar *p, *s;
+int
+execbrc(tchar *p, tchar *s)
{
tchar restbuf[BUFSIZ + 2];
- register tchar *pe, *pm, *pl;
+ tchar *pe, *pm, *pl;
int brclev = 0;
tchar *lm, savec, *sgpathp;
int slproc = 0;
@@ -346,12 +359,11 @@ doit:
return (0);
}
-match(s, p, slproc)
- tchar *s, *p;
- int *slproc;
+int
+match(tchar *s, tchar *p, int *slproc)
{
- register int c;
- register tchar *sentp;
+ int c;
+ tchar *sentp;
tchar sglobbed = globbed;
#ifdef TRACE
@@ -367,11 +379,10 @@ match(s, p, slproc)
return (c);
}
-amatch(s, p, slproc)
- register tchar *s, *p;
- int *slproc;
+int
+amatch(tchar *s, tchar *p, int *slproc)
{
- register int scc;
+ int scc;
int ok, lc;
tchar *sgpathp;
struct stat stb;
@@ -479,10 +490,10 @@ slash:
}
}
-Gmatch(s, p)
- register tchar *s, *p;
+int
+Gmatch(tchar *s, tchar *p)
{
- register int scc;
+ int scc;
int ok, lc;
int c, cc;
@@ -548,10 +559,10 @@ Gmatch(s, p)
}
}
-Gcat(s1, s2)
- tchar *s1, *s2;
+void
+Gcat(tchar *s1, tchar *s2)
{
- register tchar *p, *q;
+ tchar *p, *q;
int n;
#ifdef TRACE
@@ -573,8 +584,8 @@ Gcat(s1, s2)
;
}
-addpath(c)
- tchar c;
+void
+addpath(tchar c)
{
#ifdef TRACE
@@ -586,11 +597,10 @@ addpath(c)
*gpathp = 0;
}
-rscan(t, f)
- register tchar **t;
- int (*f)();
+void
+rscan(tchar **t, int (*f)(int))
{
- register tchar *p;
+ tchar *p;
#ifdef TRACE
tprintf("TRACE- rscan()\n");
@@ -600,10 +610,10 @@ rscan(t, f)
(*f)(*p++);
}
-trim(t)
- register tchar **t;
+void
+trim(tchar **t)
{
- register tchar *p;
+ tchar *p;
#ifdef TRACE
tprintf("TRACE- trim()\n");
@@ -613,10 +623,10 @@ trim(t)
*p++ &= TRIM;
}
-tglob(t)
- register tchar **t;
+void
+tglob(tchar **t)
{
- register tchar *p, c;
+ tchar *p, c;
#ifdef TRACE
tprintf("TRACE- tglob()\n");
@@ -634,12 +644,11 @@ tglob(t)
}
tchar *
-globone(str)
- register tchar *str;
+globone(tchar *str)
{
tchar *gv[2];
- register tchar **gvp;
- register tchar *cp;
+ tchar **gvp;
+ tchar *cp;
#ifdef TRACE
tprintf("TRACE- globone()\n");
@@ -682,11 +691,9 @@ globone(str)
* not crunch blanks and tabs, separating words only at newlines.
*/
tchar **
-dobackp(cp, literal)
- tchar *cp;
- bool literal;
+dobackp(tchar *cp, bool literal)
{
- register tchar *lp, *rp;
+ tchar *lp, *rp;
tchar *ep;
tchar word[BUFSIZ];
tchar *apargv[GAVSIZ + 2];
@@ -734,15 +741,14 @@ oops:
}
}
-backeval(cp, literal)
- tchar *cp;
- bool literal;
+void
+backeval(tchar *cp, bool literal)
{
int pvec[2];
int quoted = (literal || (cp[0] & QUOTE)) ? QUOTE : 0;
tchar ibuf[BUFSIZ];
- register int icnt = 0, c;
- register tchar *ip;
+ int icnt = 0, c;
+ tchar *ip;
bool hadnl = 0;
tchar *fakecom[2];
struct command faket;
@@ -869,8 +875,8 @@ backeval(cp, literal)
prestjob();
}
-psave(c)
- tchar c;
+void
+psave(tchar c)
{
#ifdef TRACE
tprintf("TRACE- psave()\n");
@@ -881,7 +887,8 @@ psave(c)
*pargcp++ = c;
}
-pword()
+void
+pword(void)
{
#ifdef TRACE
tprintf("TRACE- pword()\n");
@@ -906,9 +913,7 @@ pword()
* dir is a null-terminated string;
*/
char *
-makename(dir, file)
- char *dir;
- char *file;
+makename(char *dir, char *file)
{
/*
* Maximum length of a
@@ -918,7 +923,7 @@ makename(dir, file)
*/
static char dfile[MAXNAMLEN];
- register char *dp, *fp;
+ char *dp, *fp;
dp = dfile;
fp = dir;
@@ -937,10 +942,8 @@ makename(dir, file)
return (rindex(dfile, '/') + 1);
}
-sh_bracket_exp(t_ch, t_fch, t_lch)
-tchar t_ch;
-tchar t_fch;
-tchar t_lch;
+int
+sh_bracket_exp(tchar t_ch, tchar t_fch, tchar t_lch)
{
char t_char[MB_LEN_MAX + 1];
char t_patan[MB_LEN_MAX * 2 + 8];