use strnul(); optimise
This commit is contained in:
parent
f2de19c41f
commit
e6395046df
12
edit.c
12
edit.c
|
@ -28,7 +28,7 @@
|
|||
|
||||
#ifndef MKSH_NO_CMDLINE_EDITING
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.334 2017/04/29 14:20:23 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.335 2017/04/29 22:04:26 tg Exp $");
|
||||
|
||||
/*
|
||||
* in later versions we might use libtermcap for this, but since external
|
||||
|
@ -747,7 +747,7 @@ x_basename(const char *s, const char *se)
|
|||
const char *p;
|
||||
|
||||
if (se == NULL)
|
||||
se = s + strlen(s);
|
||||
se = strnul(s);
|
||||
if (s == se)
|
||||
return (0);
|
||||
|
||||
|
@ -799,7 +799,7 @@ glob_path(int flags, const char *pat, XPtrV *wp, const char *lpath)
|
|||
while (sp) {
|
||||
xp = Xstring(xs, xp);
|
||||
if (!(p = cstrchr(sp, MKSH_PATHSEPC)))
|
||||
p = sp + strlen(sp);
|
||||
p = strnul(sp);
|
||||
pathlen = p - sp;
|
||||
if (pathlen) {
|
||||
/*
|
||||
|
@ -1852,7 +1852,7 @@ x_load_hist(char **hp)
|
|||
strlcpy(holdbufp, xbuf, LINE);
|
||||
strlcpy(xbuf, sp, xend - xbuf);
|
||||
xbp = xbuf;
|
||||
xep = xcp = xbuf + strlen(xbuf);
|
||||
xep = xcp = strnul(xbuf);
|
||||
x_adjust();
|
||||
modified = 0;
|
||||
}
|
||||
|
@ -3055,7 +3055,7 @@ x_version(int c MKSH_A_UNUSED)
|
|||
strdupx(v, KSH_VERSION, ATEMP);
|
||||
|
||||
xbuf = xbp = xcp = v;
|
||||
xend = xep = v + strlen(v);
|
||||
xend = xep = strnul(v);
|
||||
x_redraw('\r');
|
||||
x_flush();
|
||||
|
||||
|
@ -3098,7 +3098,7 @@ x_edit_line(int c MKSH_A_UNUSED)
|
|||
"fc -e ${VISUAL:-${EDITOR:-vi}} --", x_arg);
|
||||
else
|
||||
strlcpy(xbuf, "fc -e ${VISUAL:-${EDITOR:-vi}} --", xend - xbuf);
|
||||
xep = xbuf + strlen(xbuf);
|
||||
xep = strnul(xbuf);
|
||||
return (x_newline('\n'));
|
||||
}
|
||||
#endif
|
||||
|
|
13
eval.c
13
eval.c
|
@ -23,7 +23,7 @@
|
|||
|
||||
#include "sh.h"
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/eval.c,v 1.208 2017/04/29 21:49:06 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/eval.c,v 1.209 2017/04/29 22:04:27 tg Exp $");
|
||||
|
||||
/*
|
||||
* string expansion
|
||||
|
@ -1405,7 +1405,7 @@ comsub(Expand *xp, const char *cp, int fn)
|
|||
if (!herein(io, &name)) {
|
||||
xp->str = name;
|
||||
/* as $(…) requires, trim trailing newlines */
|
||||
name += strlen(name);
|
||||
name = strnul(name);
|
||||
while (name > xp->str && name[-1] == '\n')
|
||||
--name;
|
||||
*name = '\0';
|
||||
|
@ -1655,7 +1655,7 @@ globit(XString *xs, /* dest string */
|
|||
*np++ = '\0';
|
||||
} else {
|
||||
odirsep = '\0'; /* keep gcc quiet */
|
||||
se = sp + strlen(sp);
|
||||
se = strnul(sp);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1669,7 +1669,7 @@ globit(XString *xs, /* dest string */
|
|||
if (!has_globbing(sp)) {
|
||||
XcheckN(*xs, xp, se - sp + 1);
|
||||
debunk(xp, sp, Xnleft(*xs, xp));
|
||||
xp += strlen(xp);
|
||||
xp = strnul(xp);
|
||||
*xpp = xp;
|
||||
globit(xs, xpp, np, wp, check);
|
||||
} else {
|
||||
|
@ -1698,9 +1698,8 @@ globit(XString *xs, /* dest string */
|
|||
XcheckN(*xs, xp, len);
|
||||
memcpy(xp, name, len);
|
||||
*xpp = xp + len - 1;
|
||||
globit(xs, xpp, np, wp,
|
||||
(check & GF_MARKDIR) | GF_GLOBBED
|
||||
| (np ? GF_EXCHECK : GF_NONE));
|
||||
globit(xs, xpp, np, wp, (check & GF_MARKDIR) |
|
||||
GF_GLOBBED | (np ? GF_EXCHECK : GF_NONE));
|
||||
xp = Xstring(*xs, xp) + prefix_len;
|
||||
}
|
||||
closedir(dirp);
|
||||
|
|
4
exec.c
4
exec.c
|
@ -23,7 +23,7 @@
|
|||
|
||||
#include "sh.h"
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.197 2017/04/28 00:38:29 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.198 2017/04/29 22:04:28 tg Exp $");
|
||||
|
||||
#ifndef MKSH_DEFAULT_EXECSHELL
|
||||
#define MKSH_DEFAULT_EXECSHELL MKSH_UNIXROOT "/bin/sh"
|
||||
|
@ -1341,7 +1341,7 @@ search_path(const char *name, const char *lpath,
|
|||
while (sp != NULL) {
|
||||
xp = Xstring(xs, xp);
|
||||
if (!(p = cstrchr(sp, MKSH_PATHSEPC)))
|
||||
p = sp + strlen(sp);
|
||||
p = strnul(sp);
|
||||
if (p != sp) {
|
||||
XcheckN(xs, xp, p - sp);
|
||||
memcpy(xp, sp, p - sp);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
/*-
|
||||
* Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||
* 2011, 2012, 2014, 2015, 2016
|
||||
* 2011, 2012, 2014, 2015, 2016, 2017
|
||||
* mirabilos <m@mirbsd.org>
|
||||
*
|
||||
* Provided that these terms and disclaimer and all copyright notices
|
||||
|
@ -27,7 +27,7 @@
|
|||
#include <sys/file.h>
|
||||
#endif
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.161 2017/04/27 19:33:49 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.162 2017/04/29 22:04:28 tg Exp $");
|
||||
|
||||
Trap sigtraps[ksh_NSIG + 1];
|
||||
static struct sigaction Sigact_ign;
|
||||
|
@ -629,7 +629,7 @@ histsave(int *lnp, const char *cmd, int svmode, bool ignoredups)
|
|||
if (svmode == HIST_FLUSH)
|
||||
return;
|
||||
|
||||
ccp = cmd + strlen(cmd);
|
||||
ccp = strnul(cmd);
|
||||
while (ccp > cmd && ccp[-1] == '\n')
|
||||
--ccp;
|
||||
strndupx(c, cmd, ccp - cmd, APERM);
|
||||
|
|
10
misc.c
10
misc.c
|
@ -32,7 +32,7 @@
|
|||
#include <grp.h>
|
||||
#endif
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.271 2017/04/29 21:49:07 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.272 2017/04/29 22:04:29 tg Exp $");
|
||||
|
||||
#define KSH_CHVT_FLAG
|
||||
#ifdef MKSH_SMALL
|
||||
|
@ -556,7 +556,7 @@ simplify_gmatch_pattern(const unsigned char *sp)
|
|||
sp = cp;
|
||||
simplify_gmatch_pat1a:
|
||||
dp = cp;
|
||||
se = sp + strlen((const void *)sp);
|
||||
se = strnul(sp);
|
||||
while ((c = *sp++)) {
|
||||
if (!ISMAGIC(c)) {
|
||||
*dp++ = c;
|
||||
|
@ -628,8 +628,7 @@ gmatchx(const char *s, const char *p, bool isfile)
|
|||
if (s == NULL || p == NULL)
|
||||
return (0);
|
||||
|
||||
se = s + strlen(s);
|
||||
pe = p + strlen(p);
|
||||
pe = strnul(p);
|
||||
/*
|
||||
* isfile is false iff no syntax check has been done on
|
||||
* the pattern. If check fails, just do a strcmp().
|
||||
|
@ -641,13 +640,14 @@ gmatchx(const char *s, const char *p, bool isfile)
|
|||
debunk(t, p, len);
|
||||
return (!strcmp(t, s));
|
||||
}
|
||||
se = strnul(s);
|
||||
|
||||
/*
|
||||
* since the do_gmatch() engine sucks so much, we must do some
|
||||
* pattern simplifications
|
||||
*/
|
||||
pnew = simplify_gmatch_pattern((const unsigned char *)p);
|
||||
pe = pnew + strlen(pnew);
|
||||
pe = strnul(pnew);
|
||||
|
||||
rv = do_gmatch((const unsigned char *)s, (const unsigned char *)se,
|
||||
(const unsigned char *)pnew, (const unsigned char *)pe);
|
||||
|
|
8
os2.c
8
os2.c
|
@ -1,6 +1,8 @@
|
|||
/*-
|
||||
* Copyright (c) 2015
|
||||
* KO Myung-Hun <komh@chollian.net>
|
||||
* Copyright (c) 2017
|
||||
* mirabilos <m@mirbsd.org>
|
||||
*
|
||||
* Provided that these terms and disclaimer and all copyright notices
|
||||
* are retained or reproduced in an accompanying document, permission
|
||||
|
@ -28,7 +30,7 @@
|
|||
#include <unistd.h>
|
||||
#include <process.h>
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/os2.c,v 1.1 2017/04/02 15:00:44 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/os2.c,v 1.2 2017/04/29 22:04:29 tg Exp $");
|
||||
|
||||
static char *remove_trailing_dots(char *);
|
||||
static int access_stat_ex(int (*)(), const char *, void *);
|
||||
|
@ -247,9 +249,9 @@ setextlibpath(const char *name, const char *val)
|
|||
static char *
|
||||
remove_trailing_dots(char *name)
|
||||
{
|
||||
char *p;
|
||||
char *p = strnul(name);
|
||||
|
||||
for (p = name + strlen(name); --p > name && *p == '.'; )
|
||||
while (--p > name && *p == '.')
|
||||
/* nothing */;
|
||||
|
||||
if (*p != '.' && *p != '/' && *p != '\\' && *p != ':')
|
||||
|
|
4
sh.h
4
sh.h
|
@ -175,7 +175,7 @@
|
|||
#endif
|
||||
|
||||
#ifdef EXTERN
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.833 2017/04/29 21:49:07 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.834 2017/04/29 22:04:30 tg Exp $");
|
||||
#endif
|
||||
#define MKSH_VERSION "R55 2017/04/27"
|
||||
|
||||
|
@ -649,7 +649,7 @@ im_sorry_dave(void)
|
|||
#endif
|
||||
|
||||
/* use this ipv strchr(s, 0) but no side effects in s! */
|
||||
#define strnul(s) ((s) + strlen(s))
|
||||
#define strnul(s) ((s) + strlen((const void *)s))
|
||||
|
||||
#define utf_ptradjx(src, dst) do { \
|
||||
(dst) = (src) + utf_ptradj(src); \
|
||||
|
|
4
var.c
4
var.c
|
@ -28,7 +28,7 @@
|
|||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
|
||||
__RCSID("$MirOS: src/bin/mksh/var.c,v 1.216 2017/04/27 19:33:53 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/var.c,v 1.217 2017/04/29 22:04:31 tg Exp $");
|
||||
|
||||
/*-
|
||||
* Variables
|
||||
|
@ -464,7 +464,7 @@ setstr(struct tbl *vq, const char *s, int error_ok)
|
|||
#ifndef MKSH_SMALL
|
||||
/* debugging */
|
||||
if (s >= vq->val.s &&
|
||||
s <= vq->val.s + strlen(vq->val.s)) {
|
||||
s <= strnul(vq->val.s)) {
|
||||
internal_errorf(
|
||||
"setstr: %s=%s: assigning to self",
|
||||
vq->name, s);
|
||||
|
|
Loading…
Reference in New Issue