From ab657e36b68f4a7e9ddb0f36c455c98d1c069a2c Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Wed, 8 Oct 2014 20:09:56 +0800 Subject: [EXPAND] Optimise nulonly away and just use quoted as before This patch makes a small optimisation by using the same value for quoted between evalvar and varvalue by eliminating nulonly and passing along quoted instead. Signed-off-by: Herbert Xu --- src/expand.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/expand.c b/src/expand.c index dc8ae47..dfb3f0e 100644 --- a/src/expand.c +++ b/src/expand.c @@ -722,7 +722,6 @@ evalvar(char *p, int flag) ssize_t varlen; int easy; int quoted; - int nulonly; varflags = *p++; subtype = varflags & VSTYPE; @@ -733,12 +732,11 @@ evalvar(char *p, int flag) quoted = flag & EXP_QUOTED; var = p; easy = (!quoted || (*var == '@' && shellparam.nparam)); - nulonly = easy; startloc = expdest - (char *)stackblock(); p = strchr(p, '=') + 1; again: - varlen = varvalue(var, varflags, flag, &nulonly); + varlen = varvalue(var, varflags, flag, "ed); if (varflags & VSNUL) varlen--; @@ -783,7 +781,7 @@ vsplus: record: if (!easy) goto end; - recordregion(startloc, expdest - (char *)stackblock(), nulonly); + recordregion(startloc, expdest - (char *)stackblock(), quoted); goto end; } @@ -888,7 +886,7 @@ strtodest(p, syntax, quotes) */ STATIC ssize_t -varvalue(char *name, int varflags, int flags, int *nulonly) +varvalue(char *name, int varflags, int flags, int *quotedp) { int num; char *p; @@ -897,14 +895,12 @@ varvalue(char *name, int varflags, int flags, int *nulonly) char sepc; char **ap; char const *syntax; - int quoted = flags & EXP_QUOTED; + int quoted = *quotedp; int subtype = varflags & VSTYPE; int discard = subtype == VSPLUS || subtype == VSLENGTH; int quotes = (discard ? 0 : (flags & QUOTES_ESC)) | QUOTES_KEEPNUL; ssize_t len = 0; - sep = *nulonly ? (flags & EXP_FULL) << CHAR_BIT : 0; - *nulonly = 0; syntax = quoted ? DQSYNTAX : BASESYNTAX; switch (*name) { @@ -935,16 +931,20 @@ numvar: expdest = p; break; case '@': + sep = 0; if (quoted) goto param; /* fall through */ case '*': - sep |= ifsset() ? ifsval()[0] : ' '; + sep = ifsset() ? ifsval()[0] : ' '; + if (!quoted) { param: + sep |= (flags & EXP_FULL) << CHAR_BIT; + } + sepc = sep; + *quotedp = !sepc; if (!(ap = shellparam.p)) return -1; - sepc = sep; - *nulonly = !sepc; while ((p = *ap++)) { len += strtodest(p, syntax, quotes); -- cgit 1.4.1 msg=1'>unfollow)
Commit message (Collapse)Author
2021-02-09Fix adding /usr/games to PATHJune McEnroe
I forgot that my own function only takes one parameter oops.
2021-02-09Show battery level while charging, time while dischargingJune McEnroe
Also fix initial sleep calculation when seconds has a leading zero, and limit the length of time left for when it initially says "unknown".
2021-02-09Install sctJune McEnroe
My eyes are so much happier with sct 4500 oh my god.
2021-02-09Show minutes left instead of battery percentageJune McEnroe
2021-02-09Set antialiasing and unhinting globallyJune McEnroe
2021-02-09Open youtube and twitch with mpvJune McEnroe
2021-02-09Add volume control bindings to cwmJune McEnroe
sndioctl is nice and easy.
2021-02-09Use w3m to open other URLsJune McEnroe
2021-02-09Disable mouse mode in xtermJune McEnroe
I do not ever want to use this feature.
2021-02-09Add pbcopy, pbpaste, open dispatch scriptsJune McEnroe
2021-02-09Use flags for pbd client behaviourJune McEnroe
2021-02-08Add macOS-like copy and paste to xtermJune McEnroe
2021-02-08Only update clock script every minuteJune McEnroe
2021-02-08Use 4M- for window resizing in cwmJune McEnroe
2021-02-08Tweak trackpad scaling, mouse accelerationJune McEnroe
This feels more comfortable.
2021-02-08Use xsel in up and add it do install.shJune McEnroe
2021-02-07Swap root window coloursJune McEnroe
2021-02-07Add -X flag to install X stuff on OpenBSDJune McEnroe
2021-02-07Adjust brightness by smaller incrementsJune McEnroe
2021-02-07Fix cwm window cycling, move big by defaultJune McEnroe
2021-02-07Use class names for Foreground, Background, BorderColorJune McEnroe
I'm not really sure what difference this makes, but it seems like the right thing to do to be generic?
2021-02-07Add simple battery status and clock to xsessionJune McEnroe
I love how simple this is.
2021-02-07Set cursor theme and sizeJune McEnroe
2021-02-07Use scrot for up -s if no screencaptureJune McEnroe
Still missing putting the URL in an X selection.
2021-02-07Enable mouse acceleration in XJune McEnroe
2021-02-07Set colours for Xt and cwmJune McEnroe
And increase XTerm internalBorder.
2021-02-07Set urgency on bell in xtermJune McEnroe
2021-02-07Add bindings for brightness controlJune McEnroe
Weirdly the Fn key doesn't change how the F row registers... I wonder if I can do something about that.
2021-02-07Set X key repeat rateJune McEnroe
2021-02-07Bump font size to 12June McEnroe
11 is what I use on macOS, but I feel like my eyes are working harder here.
2021-02-07Fully configure and rebind cwmJune McEnroe
This is sort of a mix of trying to emulate macOS somewhat for my muscle memory and just rebinding some of the cwm defaults to use 4- rather than M-.
2021-02-07Add BintiJune McEnroe
2021-02-07Finish configuring xtermJune McEnroe
2021-02-06Enable tapping, reverse scroll, set scaling in wsconsctlJune McEnroe
2021-02-06Set root window to black on purple snowJune McEnroe
2021-02-06Add xmodmap configurationJune McEnroe
2021-02-06Add initial OpenBSD X configurationJune McEnroe
cwm still needs a lot more rebinding, and I need to actually look at its other options. xterm definitely still needs some configuration, but I at least managed to get it to use a decent looking font. Very happy that OpenBSD includes Luxi Mono, which is what my usual font, Go Mono, is based on anyway. Still missing is xmodmap and such.
2021-02-06Add xterm output to schemeJune McEnroe