summary refs log tree commit diff
Commit message (Collapse)AuthorAge
...
* chruby to ruby-2.0.0June McEnroe2013-09-05
|
* Add nvmJune McEnroe2013-08-14
|
* Add title commandJune McEnroe2013-07-09
|
* Use default client keysJune McEnroe2013-06-09
|
* Run games in separate X serverJune McEnroe2013-06-09
|
* Add game wrapper to kill/restart unclutterJune McEnroe2013-06-08
|
* Add git configJune McEnroe2013-06-08
|
* Ignore effuse backup filesJune McEnroe2013-06-07
|
* Autochruby and default to ruby-2.0.0-p195June McEnroe2013-06-07
|
* Tweak ncmpcpp configJune McEnroe2013-06-07
|
* Update terminal configurationJune McEnroe2013-05-30
|
* Update ncmpcpp configurationJune McEnroe2013-05-30
|
* Do not force update, just notifyJune McEnroe2013-05-20
|
* Require pp in IRBJune McEnroe2013-05-15
|
* Only run pacman on zsh start if it existsJune McEnroe2013-05-12
|
* Add mplayer configurationJune McEnroe2013-05-09
|
* Float mplayer2 windowsJune McEnroe2013-05-08
|
* Update awesome themeJune McEnroe2013-05-04
|
* Update terminal colors with proper base16 paletteJune McEnroe2013-04-27
|
* Update location of Xfce4-Terminal configurationJune McEnroe2013-04-27
|
* Update system configurationsJune McEnroe2013-04-24
|
* Fix terminal colorsJune McEnroe2013-04-23
|
* Start xcompmgrJune McEnroe2013-04-14
|
* Drop pacman-color, regular pacman now has colorJune McEnroe2013-04-06
|
* Restore wallpaper automaticallyJune McEnroe2013-04-06
|
* Simplify autostartJune McEnroe2013-03-22
|
* Default to Ruby 2.0June McEnroe2013-02-24
|
* Make pretty riplrcJune McEnroe2013-01-26
|
* Default to awesome sessionJune McEnroe2013-01-26
|
* Add git promptJune McEnroe2013-01-26
|
* Actually port awesome config to 3.5June McEnroe2013-01-26
|
* Make pretty zshrcJune McEnroe2013-01-26
|
* Port awesome config to 3.5June McEnroe2013-01-26
|
* Replace RVM with chrubyJune McEnroe2013-01-26
|
* Add PulseAudio configurationJune McEnroe2012-12-19
|
* Remove rc.confJune McEnroe2012-12-19
|
* Simplify Greek compose keysJune McEnroe2012-11-26
|
* Add custom compose key sequencesJune McEnroe2012-11-25
|
* Add zJune McEnroe2012-11-11
|
* No more consolekitJune McEnroe2012-11-04
|
* Float feh windowsJune McEnroe2012-11-04
|
* Add MPD configurationJune McEnroe2012-10-13
|
* Use transparent backgrounds in awesomeJune McEnroe2012-10-07
|
* Add cpupower configurationJune McEnroe2012-10-06
|
* Add system-wide configuration filesJune McEnroe2012-10-06
|
* Remove gnome-keyringJune McEnroe2012-10-06
| | | | Was useless.
* Use Base16 colors in TerminalJune McEnroe2012-10-05
|
* Add dropboxJune McEnroe2012-09-04
|
* Use real pacman for update checkingJune McEnroe2012-08-31
|
* Rewrote zshrcJune McEnroe2012-08-31
|
id=42b730b034eebd0e9da4aa014785a3ee5de436be&follow=1'>builtin: Fix echo performance regressionHerbert Xu The commit d6c0e1e2ffbf7913ab69d51cc794d48d41c8fcb1 ("[BUILTIN] Handle embedded NULs correctly in printf") caused a performance regression in the echo built-in because every echo call now goes through the printf %b slow path where the string is always printed twice to ensure the space padding is correct in the presence of NUL characters. In fact this regression applies to printf %b as well. This is easily fixed by making printf %b take the fast path when no precision/field width modifiers are present. This patch also changes the second strchurnul call to strspn which generates slightly better code. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> 2018-04-02expand: Fix ghost fields with unquoted $@/$*Herbert Xu Harald van Dijk <harald@gigawatt.nl> wrote: > On 22/03/2018 22:38, Martijn Dekker wrote: >> Op 22-03-18 om 20:28 schreef Harald van Dijk: >>> On 22/03/2018 03:40, Martijn Dekker wrote: >>>> This patch fixes the bug that, given no positional parameters, unquoted >>>> $@ and $* incorrectly generate one empty field (they should generate no >>>> fields). Apparently that was a side effect of the above. >>> >>> This seems weird though. If you want to remove the recording of empty >>> regions because they are pointless, then how does removing them fix a >>> bug? Doesn't this show that empty regions do have an effect? Perhaps >>> they're not supposed to have any effect, perhaps it's a specific >>> combination of empty regions and something else that triggers some bug, >>> and perhaps that combination can no longer occur with your patch. >> >> The latter is my guess, but I haven't had time to investigate it. > > Looking into it again: > > When IFS is set to an empty string, sepc is set to '\0' in varvalue(). > This then causes *quotedp to be set to true, meaning evalvar()'s quoted > variable is turned on. quoted is then passed to recordregion() as the > nulonly parameter. > > ifsp->nulonly has a bigger effect than merely selecting whether to use > $IFS or whether to only split on null bytes: in ifsbreakup(), nulonly > also causes string termination to be suppressed. That's correct: that > special treatment is required to preserve empty fields in "$@" > expansion. But it should *only* be used when $@ is quoted: ifsbreakup() > takes nulonly from the last IFS region, even if it's empty, so having an > additional zero-length region with nulonly enabled causes confusion. > > Passing quoted by value to varvalue() and not attempting to modify it > should therefore, and in my quick testing does, also work to fix the > original $@ bug. You're right. The proper fix to this is to ensure that nulonly is not set in varvalue for $*. It should only be set for $@ when it's inside double quotes. In fact there is another bug while we're playing with $@/$*. When IFS is set to a non-whitespace character such as :, $* outside quotes won't remove empty fields as it should. This patch fixes both problems. Reported-by: Martijn Dekker <martijn@inlv.org> Suggested-by: Harald van Dijk <harald@gigawatt.nl> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> 2018-04-02parser: Allow newlines within parameter substitutionHerbert Xu On Fri, Mar 16, 2018 at 11:27:22AM +0800, Herbert Xu wrote: > On Thu, Mar 15, 2018 at 10:49:15PM +0100, Harald van Dijk wrote: > > > > Okay, it can be trivially modified to something that does work in other > > shells (even if it were actually executed), but gets rejected at parse time > > by dash: > > > > if false; then > > : ${$+ > > } > > fi > > That's just a bug in dash's parser with ${} in general, because > it bombs out without the if clause too: > > : ${$+ > } This patch fixes the parsing of newlines with parameter substitution. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> 2018-04-02expand: Fix bugs with words connected to the right of $@Herbert Xu On Sun, Mar 04, 2018 at 12:44:59PM +0100, Harald van Dijk wrote: > > command: set -- a ""; space=" "; printf "<%s>" "$@"$space > bash: <a><> > dash 0.5.8: <a>< > > dash 0.5.9.1: <a>< > > dash patched: <a><> This is actually composed of two bugs. First of all our tracking of quotemark is wrong so anything after "$@" becomes quoted. Once we fix that then the problem is that the first space character after "$@" is not recognised as an IFS. This patch fixes both. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> 2018-03-25Revert "[BUILTIN] Remove unnecessary restoration of format string in printf"Herbert Xu This reverts commit 7bb413255368e94395237d789f522891093c5774. The commit breaks printf with more than argument. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> 2018-03-22parser: Fix backquote support in here-document EOF markHerbert Xu