diff options
Diffstat (limited to 'src/cmd')
-rw-r--r-- | src/cmd/core/basename.c | 9 | ||||
-rw-r--r-- | src/cmd/core/cat.c | 14 | ||||
-rw-r--r-- | src/cmd/filter/filter.c | 32 | ||||
-rw-r--r-- | src/cmd/ic/ic.c | 16 | ||||
-rw-r--r-- | src/cmd/menu/menu.h | 12 | ||||
-rw-r--r-- | src/cmd/rc/input.c | 47 | ||||
-rw-r--r-- | src/cmd/rc/rc.h | 4 | ||||
-rw-r--r-- | src/cmd/rc/util.c | 4 | ||||
-rw-r--r-- | src/cmd/rules.mk | 4 | ||||
-rw-r--r-- | src/cmd/term/term.h | 14 | ||||
-rw-r--r-- | src/cmd/walk/walk.c | 14 |
11 files changed, 110 insertions, 60 deletions
diff --git a/src/cmd/core/basename.c b/src/cmd/core/basename.c index 23d7b22..6b84812 100644 --- a/src/cmd/core/basename.c +++ b/src/cmd/core/basename.c @@ -13,6 +13,7 @@ main(int argc, char *argv[]) { int d; long n; + intptr x; char *p, *s; ARGBEGIN{ @@ -26,10 +27,10 @@ main(int argc, char *argv[]) p = d ? fs·dirname(argv[0]) : fs·basename(argv[0]); if(argc>1){ - n = strlen(p)-strlen(argv[1]); - if(n >= 0 && strcmp(p+n, argv[1])==0) + n = str·len(p)-str·len(argv[1]); + if(n >= 0 && str·compare(p+n, argv[1])==0) p[n] = 0; } - puts(p); - exits(nil); + sys·write(1,p,str·len(p),&x); + return 0; } diff --git a/src/cmd/core/cat.c b/src/cmd/core/cat.c index e9b770b..aeed1be 100644 --- a/src/cmd/core/cat.c +++ b/src/cmd/core/cat.c @@ -11,15 +11,15 @@ usage(void) static void cat(int fd, char *s) { - long n; + intptr nr, nw; char buf[8192]; - while((n=read(fd, buf, sizeof(buf)))>0){ - if(write(1, buf, n) != n) + while(!(sys·read(fd, buf, sizeof(buf), &nr))){ + if(sys·write(1, buf, nr, &nw) || nr != nw) fmt·panic("write error copying %s: %r", s); } - if(n<0) + if(nr<0) fmt·panic("error reading %s: %r", s); } @@ -40,12 +40,14 @@ main(int argc, char *argv[]) } while(argc-- > 0){ - if((fd = open(*argv, O_RDONLY))<0) + if(sys·open(*argv, sys·ORead, 0, &fd)) fmt·panic("can't open %s: %r", *argv); cat(fd, *argv); - close(fd); + sys·close(fd); argv++; } + + return 0; } diff --git a/src/cmd/filter/filter.c b/src/cmd/filter/filter.c index abc9a88..82fb364 100644 --- a/src/cmd/filter/filter.c +++ b/src/cmd/filter/filter.c @@ -2,42 +2,42 @@ #include <u.h> #include <base.h> +#include <stdio.h> #include <dirent.h> #include <sys/stat.h> #define FLAG(x) (flag[(x)-'a']) -static void filter(const char *, const char *); +static void filter(char *, char *); static void usage(void); static int match = 0; static int flag[26]; static struct stat old, new; -static -void -filter(const char *path, const char *name) +static void +filter(char *path, char *name) { struct stat st, ln; if ((!stat(path, &st) && (FLAG('a') || name[0] != '.') /* hidden files */ - && (!FLAG('b') || S_ISBLK(st.st_mode)) /* block special */ - && (!FLAG('c') || S_ISCHR(st.st_mode)) /* character special */ - && (!FLAG('d') || S_ISDIR(st.st_mode)) /* directory */ - && (!FLAG('e') || access(path, F_OK) == 0) /* exists */ - && (!FLAG('f') || S_ISREG(st.st_mode)) /* regular file */ + && (!FLAG('b') || sys·InfoIsBlock(st.st_mode)) /* block special */ + && (!FLAG('c') || sys·InfoIsChar(st.st_mode)) /* character special */ + && (!FLAG('d') || sys·InfoIsDir(st.st_mode)) /* directory */ + && (!FLAG('e') || !sys·access(path,sys·FileExists)) /* exists */ + && (!FLAG('f') || sys·InfoIsFile(st.st_mode)) /* regular file */ && (!FLAG('g') || st.st_mode & S_ISGID) /* set-group-id flag */ && (!FLAG('h') || (!lstat(path, &ln) && S_ISLNK(ln.st_mode))) /* symbolic link */ && (!FLAG('n') || st.st_mtime > new.st_mtime) /* newer than file */ && (!FLAG('o') || st.st_mtime < old.st_mtime) /* older than file */ - && (!FLAG('p') || S_ISFIFO(st.st_mode)) /* named pipe */ - && (!FLAG('r') || access(path, R_OK) == 0) /* readable */ + && (!FLAG('p') || sys·InfoIsFifo(st.st_mode)) /* named pipe */ + && (!FLAG('r') || !sys·access(path, sys·FileCanRead)) /* readable */ && (!FLAG('s') || st.st_size > 0) /* not empty */ && (!FLAG('u') || st.st_mode & S_ISUID) /* set-user-id flag */ - && (!FLAG('w') || access(path, W_OK) == 0) /* writable */ - && (!FLAG('x') || access(path, X_OK) == 0)) != FLAG('v')) { /* executable */ + && (!FLAG('w') || !sys·access(path, sys·FileCanWrite)) /* writable */ + && (!FLAG('x') || !sys·access(path, sys·FileCanExec))) != FLAG('v')) { /* executable */ if (FLAG('q')) - exit(0); + rt·exit(0); match = 1; puts(name); } @@ -48,7 +48,7 @@ usage(void) { fprintf(stderr, "usage: %s [-abcdefghlpqrsuvwx] " "[-n file] [-o file] [file...]\n", argv0); - exit(2); /* like test(1) return > 1 on error */ + rt·exit(2); /* like test(1) return > 1 on error */ } int @@ -70,7 +70,7 @@ main(int argc, char *argv[]) break; default: /* miscellaneous operators */ - if (strchr("abcdefghlpqrsuvwx", ARGC())) + if(str·rfindc("abcdefghlpqrsuvwx", ARGC())) FLAG(ARGC()) = 1; else usage(); /* unknown flag */ diff --git a/src/cmd/ic/ic.c b/src/cmd/ic/ic.c index 7fc37d8..0d5daed 100644 --- a/src/cmd/ic/ic.c +++ b/src/cmd/ic/ic.c @@ -2,6 +2,15 @@ #include <u.h> #include <base.h> +#include <stdio.h> +#include <unistd.h> +#include <fcntl.h> +#include <errno.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> +#include <pwd.h> + #include <sys/select.h> #include <sys/socket.h> #include <sys/stat.h> @@ -71,14 +80,13 @@ static char nick[32], _nick[arrlen(nick)]; /* active nickname at runtime */ static char ircpath[PATH_MAX]; /* irc dir (-i) */ static char msg[IRC_MSG_MAX]; /* message buf used for communication */ -static -void +static void usage(void) { - fprintf(stderr, "usage: %s <-s host> [-i <irc dir>] [-p <port>] " + fmt·fprint(sys·Stderr, "usage: %s <-s host> [-i <irc dir>] [-p <port>] " "[-u <sockname>] [-n <nick>] [-k <password>] " "[-f <fullname>]\n", argv0); - exit(1); + rt·exit(1); } static diff --git a/src/cmd/menu/menu.h b/src/cmd/menu/menu.h index de01607..8126d81 100644 --- a/src/cmd/menu/menu.h +++ b/src/cmd/menu/menu.h @@ -2,6 +2,18 @@ #include <u.h> #include <base.h> +#include <stdlib.h> +#include <string.h> +#include <math.h> +#include <ctype.h> +#include <stdio.h> +#include <wchar.h> +#include <errno.h> +#include <pwd.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/types.h> + #include <time.h> #include <locale.h> diff --git a/src/cmd/rc/input.c b/src/cmd/rc/input.c index 9771174..f8bb2f9 100644 --- a/src/cmd/rc/input.c +++ b/src/cmd/rc/input.c @@ -119,7 +119,7 @@ enum KeyBackspace = 127 /* Backspace */
};
-static void doatexit(void);
+static void doatexit(void*);
/* vi operations */
typedef struct
@@ -149,13 +149,15 @@ runetype(rune r) static void
normalcursor(int fd)
{
- write(fd,"\e[2 q",5);
+ intptr x;
+ sys·write(fd,"\e[2 q",5,&x);
}
static void
insertcursor(int fd)
{
- write(fd,"\e[6 q",5);
+ intptr x;
+ sys·write(fd,"\e[6 q",5,&x);
}
/* raw mode: 1960 magic shit. */
@@ -168,7 +170,7 @@ enterraw(int fd) goto fatal;
if(!mode.defer){
- atexit(doatexit);
+ rt·atexit(doatexit,nil);
mode.defer = 1;
}
if(tcgetattr(fd,&originalterm) == -1)
@@ -198,7 +200,7 @@ enterraw(int fd) return 1;
fatal:
- errno = ENOTTY;
+ /* errno = ENOTTY; */
return 0;
}
@@ -216,17 +218,18 @@ exitraw(int fd) static int
cursorposition(int ifd, int ofd)
{
- char buf[32];
+ char *b,buf[32];
int cols, rows;
+ intptr n;
unsigned int i = 0;
/* Report cursor location */
- if(write(ofd, "\x1b[6n", 4) != 4)
+ if(sys·write(ofd, "\x1b[6n", 4, &n) || n != 4)
return -1;
/* Read the response: ESC [ rows ; cols R */
while(i < sizeof(buf)-1) {
- if(read(ifd,buf+i,1) != 1)
+ if(sys·read(ifd,buf+i,1, &n) || n != 1)
break;
if(buf[i] == 'R')
break;
@@ -237,8 +240,12 @@ cursorposition(int ifd, int ofd) /* Parse it. */
if(buf[0] != KeyEsc || buf[1] != '[')
return -1;
- if(sscanf(buf+2,"%d;%d",&rows,&cols) != 2)
- return -1;
+ b=buf+2;
+ while(*b != ';')
+ b++;
+ *b=0;
+ rows = str·atoi(buf+2);
+ cols = str·atoi(b+1);
return cols;
}
@@ -247,6 +254,7 @@ cursorposition(int ifd, int ofd) static int
columns(int ifd, int ofd)
{
+ intptr n;
struct winsize ws;
if(ioctl(1, TIOCGWINSZ, &ws) == -1 || ws.ws_col == 0){
@@ -259,7 +267,7 @@ columns(int ifd, int ofd) goto failed;
/* Go to right margin and get position. */
- if(write(ofd,"\x1b[999C",6) != 6)
+ if(sys·write(ofd,"\x1b[999C",6,&n) || n != 6)
goto failed;
cols = cursorposition(ifd,ofd);
if(cols == -1)
@@ -268,8 +276,8 @@ columns(int ifd, int ofd) /* Restore position. */
if(cols > start){
char esc[32];
- snprintf(esc,32,"\x1b[%dD",cols-start);
- if(write(ofd,esc,strlen(esc)) == -1)
+ fmt·nsprint(esc,32,"\x1b[%dD",cols-start);
+ if(sys·write(ofd,esc,str·len(esc),&n))
;
}
return cols;
@@ -283,7 +291,8 @@ failed: static void
clear(void)
{
- if(write(1,"\x1b[H\x1b[2J",7) <= 0)
+ intptr n;
+ if(sys·write(1,"\x1b[H\x1b[2J",7,&n))
;
}
@@ -292,8 +301,8 @@ clear(void) static void
beep(void)
{
- fprintf(stderr, "\x7");
- fflush(stderr);
+ fmt·fprint(sys·Stderr, "\x7");
+ /* fmt·flush(stderr); */
}
// -----------------------------------------------------------------------
@@ -1347,7 +1356,7 @@ interact(int ifd, int ofd, char *buf, intptr len, char *prompt) goto finish;
case KeyCtrlC:
- errno = EAGAIN;
+ /* errno = EAGAIN; */
return -1;
case KeyBackspace:
@@ -1569,7 +1578,7 @@ raw(char *buf, intptr len, char *prompt) int n;
if(!len){
- errno = EINVAL;
+ /* errno = EINVAL; */
return -1;
}
@@ -1635,7 +1644,7 @@ readline(char *prompt) /* At exit we'll try to fix the terminal to the initial conditions. */
static void
-doatexit(void)
+doatexit(void *_)
{
exitraw(0);
normalcursor(1);
diff --git a/src/cmd/rc/rc.h b/src/cmd/rc/rc.h index 76a1b3d..67d10a4 100644 --- a/src/cmd/rc/rc.h +++ b/src/cmd/rc/rc.h @@ -4,6 +4,10 @@ #include <base.h> #include <base/utf.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + // ----------------------------------------------------------------------- // types diff --git a/src/cmd/rc/util.c b/src/cmd/rc/util.c index b0be788..0949377 100644 --- a/src/cmd/rc/util.c +++ b/src/cmd/rc/util.c @@ -4,7 +4,7 @@ void fatal(char *msg, ...) { va_list args; - vfprintf(stderr, msg, args); + fmt·fprint(sys·Stderr, msg, args); va_end(args); abort(); @@ -17,7 +17,7 @@ emalloc(uintptr n) if(!(p = malloc(n))) fatal("out of memory: can't allocate %d bytes", n); - memset(p, 0, n); + mem·set(p, n, 0); return p; } diff --git a/src/cmd/rules.mk b/src/cmd/rules.mk index ea53737..dbb4eb0 100644 --- a/src/cmd/rules.mk +++ b/src/cmd/rules.mk @@ -5,8 +5,8 @@ include share/push.mk # DIR := $(d)/cc # include $(DIR)/rules.mk -DIR := $(d)/rc -include $(DIR)/rules.mk +# DIR := $(d)/rc +# include $(DIR)/rules.mk DIR := $(d)/core include $(DIR)/rules.mk diff --git a/src/cmd/term/term.h b/src/cmd/term/term.h index c370239..9501ae2 100644 --- a/src/cmd/term/term.h +++ b/src/cmd/term/term.h @@ -4,6 +4,20 @@ #include <u.h> #include <base.h> +#include <stdlib.h> +#include <string.h> +#include <math.h> +#include <ctype.h> +#include <stdio.h> +#include <wchar.h> +#include <errno.h> +#include <pwd.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/types.h> + +typedef wchar_t wchar; + #include <signal.h> #include <sys/ioctl.h> #include <sys/select.h> diff --git a/src/cmd/walk/walk.c b/src/cmd/walk/walk.c index 29a8600..8239587 100644 --- a/src/cmd/walk/walk.c +++ b/src/cmd/walk/walk.c @@ -6,8 +6,9 @@ static char buf[4*1024], *c = buf; /* should be greater or equal to PATH_MAX */ static void flush(void) { + intptr n; *c = 0; - puts(buf); + sys·write(1, buf, str·len(buf), &n); c = buf; } @@ -27,12 +28,11 @@ copy: return 0; } -static -void +static void usage(void) { - fprintf(stderr, "usage: walk [-dlpv] file ...\n"); - exit(1); + fmt·fprint(sys·Stderr, "usage: walk [-dlpv] file ...\n"); + rt·exit(1); } int @@ -44,7 +44,7 @@ main(int argc, char *argv[]) ARGBEGIN{ case 'd': - max = atoi(ARGF()); + max = str·atoi(ARGF()); break; case 'l': f ^= fs·nolinks; @@ -78,5 +78,5 @@ main(int argc, char *argv[]) } fs·fini(&walker); flush(); - exit(err); + rt·exit(err); } |