GitHub PushEvent at 2014-08-30 11:39:14
Repository: fish-shell
Actor: MarkGriffiths
Payload: {"shas":[["b92a09d5e7e3334312265cc718c2d4d4dc687bb7","ffb4761cba839470133bee36aeb139f58d7dbaa9@sb.org","Fix the assertion failure in expand_variables()\n\nexpand_variables() is slightly confused about how to handle last_idx. On\ninput, it expects it to be the index to start processing at, but when\ncalled recursively it always passes the current index. This means that\nit may sometimes pass an index 1 past the end of the input string.\nNotably, that happens when typing something like\n\n> echo \"$foo\n\n(where \"foo\" is any string that is not a prefix of some existing\nvariable name)\n\nFix this by explicitly defining last_idx as being the last processed\nindex, meaning the next index to process is actually last_idx-1. This\nmeans we should call it with next.size() instead of next.size()-1.","Kevin Ballard",false],["7638a7d53170b32fe9968066a6bead192732349d","b1c1d8736f20db3fb6c1c66bb1455ed43909f0d8@thehippo.de","Fix typo in German translation","Philipp Klose",false],["71ab40e53690cd89fcb013362404ef7578a5a6fe","0d4e8e76fbeede610596a49206de05c5fa93d1b6@o2.pl","Add Fossil command completions.","Konrad Borowski",false],["130619d6b07c691b1f34c56120020adaff09c49a","ffb4761cba839470133bee36aeb139f58d7dbaa9@sb.org","Fix $SHLVL\n\nDue to being read-only, SHLVL wasn't being incremented properly for\nrecursive invocations of fish.","Kevin Ballard",false],["24ac7d2698c06792cc78a82bb06f41fcdeb0934c","ffb4761cba839470133bee36aeb139f58d7dbaa9@sb.org","Fix `commandline` behavior in bind functions\n\nWhen a key is bound to a fish function, if that function invokes\n`commandline`, it gets a stale copy of the commandline. This is because\nany keys passed to `self-insert` (the default) don't actually get added\nto the commandline until a special character is processed, such as the\nR_NULL that gets returned after running a binding for a fish command.\n\nTo fix this, don't allow fish commands to be run for bindings if we're\nprocessing more than one key. When a key wants to invoke a fish command,\ninstead we push the invocation sequence back onto the input, followed by\nan R_NULL, and return. This causes the input loop to break out and\nupdate the commandline. When it starts up again, it will re-process the\nkeys and invoke the fish command.\n\nThis is primarily an issue with pasting text that includes bound keys in\nit. Typed text is slow enough that fish will update the commandline\nbetween each character.\n\n---\n\nI don't know of any way to write a test for this, but the issue can be\nreproduced as follows:\n\n    > bind _ 'commandline -i _'\n\nThis binds _ to a command that inserts _. Typing the following works:\n\n    > echo wat_is_it\n\nBut if you copy that line and paste it instead of typing it, the end\nresult looks like\n\n    > _echo wat_isit\n\nWith this fix in place, the pasted output correctly matches the typed\noutput.","Kevin Ballard",false],["cc52a59e1ac7155123a314067cc8ad9f3affe491","ffb4761cba839470133bee36aeb139f58d7dbaa9@sb.org","Rework how screen size is tracked\n\nThe screen size is fetched after a SIGWINCH is delivered. The current\nimplementation has two issues:\n\n* It calls ioctl() from the SIGWINCH signal handler, despite ioctl() not\n  being a function that is known to be safe to call.\n* It's not thread-safe.\n\nSignals can be delivered on arbitrary threads, so we don't know if it's\nactually safe to be modifying the cached winsize in response to a\nsignal. It's also plausible that the winsize may be requested from a\nbackground thread.\n\nTo solve the first issue, we twiddle a volatile boolean flag in the\nsignal handler and defer the ioctl() call until we actually request the\nscreen size.\n\nTo solve the second issue, we introduce a pthread rwlock around the\ncached winsize. A rwlock is used because it can be expected that there\nare likely to be far more window size reads than window size writes. If\nwe were using C++11 we could probably get away with atomics, but since\nwe don't have that (or boost), a rwlock should suffice.\n\nFixes #1613.","Kevin Ballard",false],["7fce9e2411b9e63d949ad519f1b6a36744d3df4c","ffb4761cba839470133bee36aeb139f58d7dbaa9@sb.org","Trim trailing newline on cmdsubst when IFS=''\n\nWhen $IFS is empty, command substitution no longer splits on newlines.\nHowever we still want to trim off a single trailing newline, as most\ncommands will emit a trailing newline and it makes it harder to work\nwith their output.","Kevin Ballard",false],["cb29350954fd3bb2fce0c7eeb23e2e1d26418985","86648a566df4d712cc02edcb5c4d90e33fddf42f@yandex.ru","Fix fish_vi_mode.fish","Nikolai Aleksandrovich Pavlov",false],["0f330d7226fc53bee22ab1fa6600106dd10383f4","6096cbad3be0ee31d102fc72d4d21e3e860611bc@yahoo.com","Fix small typo in documentation","Christos Kontas",false],["f8b21fe1993382a4e64d7d3f4ddcf04ed642f888","b8350404e61b794432cfe3e65da9115137452ef6@ridiculousfish.com","Merge pull request #1655 from xakon/master\n\nFix small typo in documentation","ridiculousfish",false],["1d0279eac5f37fd4ec453b0151274ab3300da817","0d4e8e76fbeede610596a49206de05c5fa93d1b6@o2.pl","Fix F1 binding to work with multiple tokens.","Konrad Borowski",false],["6068e85ef2b972f6b6143f835829c6b2ae6a6d7f","f1b5a91d4d6ad523f2610114591c007e75d15084@thebespokepixel.com","Merge branch 'master' into documentation-update","Mark Griffiths",true]],"size":12,"ref":"refs/heads/documentation-update","head":"6068e85ef2b972f6b6143f835829c6b2ae6a6d7f"}