Commit Graph

3174 Commits

Author SHA1 Message Date
tg d96229b205 make command() not trash the global source variable
removes local save/restore around it in two of three callers;
the third one is in runtrap() which… probably *cough* ought
to have danced the same…
2016-08-04 20:31:01 +00:00
tg 3e8165b9cd fix groff issue pointed out by lintian
surprisingly enough, no changes needed for the gcc6 switch in Debian sid…
2016-08-04 09:27:59 +00:00
tg a99bb8baa0 quote the &, for POSIX:
An  ordinary  character  is  a  pattern  that  shall  match itself. It can be any
   character  in  the  supported  character  set except for NUL, those special shell
   characters  in [199]Quoting that require quoting, and the following three special
			⇓
   The  application  shall  quote  the following characters if they are to represent
   themselves:

|  &  ;  <  >  (  )  $  `  \  "  '  <space>  <tab>  <newline>
2016-08-03 17:34:12 +00:00
tg 757e25fb21 implement $KSH_MATCH and, to make it usable, ${foo@/bar/baz};
add a real-life example (for slagtc’s programmable tab completion)
to the manpage
2016-08-01 21:38:07 +00:00
tg 8f135b3904 mark some tests as !need-pass due to Perl dependencies 2016-08-01 21:29:05 +00:00
tg e5a54ebb6b fix the occasional issue printing \xFF from a string 2016-08-01 20:23:15 +00:00
tg 6551fd5a86 move EPOCHREALTIME to correct location, drop ERRNO (wtf?) 2016-08-01 19:40:00 +00:00
tg 984894f093 >>> is not needed (LP#1608505) 2016-08-01 19:11:27 +00:00
tg cc6857dfb6 clean up chtypes use 2016-08-01 18:42:42 +00:00
tg 59619ee2ab fix sign comparison warning pointed out by Debian’s GCC
this commit sponsored by ⮡ tarent
2016-08-01 14:25:39 +00:00
tg 5c8f42c841 fix missing Xcheck leading to overflow for strings > 127 array elements 2016-08-01 14:23:24 +00:00
tg f21d6a3ffd fix (POSIX) errorlevel of ‘.’ when sourced file has no commands; issue discovered by Natureshadow 2016-07-28 21:39:19 +00:00
tg b8180fba1f fix two int→size_t; reduce edchar struct size 2016-07-28 21:39:04 +00:00
tg 92370ec355 shave off 12 bytes (with fixed gcc) by making the definitions more legible
(and dropping struct padding, tbh)
2016-07-27 00:55:27 +00:00
tg b330976689 this hack from commitid 1004651F21443013C37 is no longer necessary (thought so) 2016-07-26 22:55:35 +00:00
tg 3c6fec1db3 missed a function (due to it being POSIX, not Korn, probably) 2016-07-26 22:03:41 +00:00
tg dd281c52ec defer to external rename(1) too 2016-07-26 21:50:46 +00:00
tg c8942b719d oops, !MKSH_SMALL 2016-07-26 21:50:30 +00:00
tg 9dbd643504 implement new evaluate-region editing command (!MKSH_SMALL)
while here, fixup x_redraw refactoring x_clrtoeol, x_pprompt, and x_lastpos
2016-07-26 21:37:26 +00:00
tg 04454868ff the limit parameter to x_redraw was completely bogus, drop it for now 2016-07-26 20:43:14 +00:00
tg 644536732b eek, forgot some conditions 2016-07-26 20:13:40 +00:00
tg f9d131133e remove fd>9 support in favour of upcoming named file descriptors; bump 2016-07-25 21:05:25 +00:00
tg 5edb355336 oops… 2016-07-25 21:02:13 +00:00
tg 4310e75f75 make tmux hack workable for now (libtermcap is… ugly)
• track $TERM for the types tmux uses /^screen(-.*)?$/
• when tmux is in use (or GNU screen, really), use the, now
  hardcoded, clear-to-EOL string; otherwise, use the old behaviour
• drop unnecessary x_e_rebuildline()

carefully tested to behave no worse than R52b
2016-07-25 20:43:54 +00:00
tg 2364bb5f22 use ^< and ^> for ROL and ROR in R53, schedule >>> as SAR for R54
cf. http://david.tribble.com/text/c0xrot.htm
2016-07-25 20:41:23 +00:00
tg 54a8067fd2 add print -A for R53 2016-07-25 20:38:04 +00:00
tg aa9fa0ebfe add a testcase as documentation (why POSIX isn’t everything); fix comments 2016-07-25 20:36:28 +00:00
tg c3e794c4d0 rework string pooling; disable our own (rely on compiler’s)…
• if HAVE_STRING_POOLING is set to 1
• if HAVE_STRING_POOLING is set to 2 and not GCC < 4 is used
• if HAVE_STRING_POOLING is not set to 0 and LLVM or GCC >= 4 is used

Closes: LP#1580348
2016-07-25 00:04:48 +00:00
tg 816614d3ce re-add realpath to prefer-external-if-argument, needed by Debian 2016-07-24 23:11:51 +00:00
tg e8bbf79d8c invent builtin flags instead of special-casing cat and printf for prefer-external-over-builtin stuff 2016-07-24 23:10:04 +00:00
tg 5401a55a98 optimise away code for a case that’s almost unlikely to happen; fix pasto(?) 2016-07-24 23:07:19 +00:00
tg e0e63c65e6 fix issues with home directory replacement, from Torsten Sillke:
• if $PWD = ${HOME}foo, no longer show as ~foo in PS1
• simplify ~, ~+, and ~- exactly as $PWD is upon shell entry
  (fixes HOME=/home/./foo but PWD=/home/foo)
2016-07-24 23:05:52 +00:00
tg 8370c0dd4d experimentally use MKSH_CLRTOEOL_STRING instead of lots of spaces followed
by lots of backspaces for many clearing scenarios; requested by tmux user
slagtc on IRC
2016-07-12 23:07:10 +00:00
tg 353108cb25 move MIN_{COL,LIN}S here, only user left (edit.c has its own sanity checks)
and lower them (no need to respect edit.c’s, this is only sanity against OS)
2016-07-12 23:06:26 +00:00
KO Myung-Hun 0d730e1ad9 Merge remote-tracking branch 'mksh/master' 2016-06-29 08:17:29 +09:00
tg a41a62dad7 efficient $(<<<foo) and $(<<EOF … ) implementation, requested by izabera 2016-06-26 00:44:59 +00:00
tg 582e745958 since we already support XSI test -a/-o, they better behave 2016-06-26 00:44:25 +00:00
tg 97d1d5e4fe fix var=<< implementation 2016-06-26 00:09:35 +00:00
tg c52133cc4e emit QCHAR '\n' reentrancy-safe 2016-06-26 00:07:31 +00:00
tg a3cc4ffacb testcases contributed by carstenh 2016-06-26 00:06:43 +00:00
tg e4f55499c0 hexdump the NUL away 2016-06-26 00:04:30 +00:00
tg df1d7339be I hate our patch(1), it’s not NUL-safe… 2016-06-26 00:00:53 +00:00
tg 262ae5a436 fix most of the ambiguous ${[prefix] var [op [word]]} corner cases
prodded by izabera and carstenh; resolution is:
• you can’t trim a vector in mksh, still (consider ${@:-1})
• future POSIX will require non-empty “word” for most “op”s
• dissolve in order of standard → extension
• dissolve to prefer “op” over “prefix” where still necessary, mostly
2016-06-25 23:55:00 +00:00
tg 1563b70658 abort read builtin in case of read(2) errors
noticed by arekm, persuaded by jilles, compared with other equivalent
pieces of code reading in mksh
2016-06-25 23:52:46 +00:00
tg 2dde57ab54 document ^U key binding advice
this is “GNU bash mode”, for bleb via IRC
2016-06-25 23:52:06 +00:00
tg 8a93f7d1dd improve description of default Emacs mode keybindings 2016-06-25 23:51:21 +00:00
tg 58f36a9f3a increase default input line, from PLD Linux
(for as long as we still have the size static, and !MKSH_SMALL)
2016-06-25 23:49:50 +00:00
tg b5127b03be deprecate *not* using MKSH_CONSERVATIVE_FDS; named fds coming soon
partially reverts commitid 10048752E6271CABA24 (the manpage, mostly)
and adds a deprecation warning at build time; suggested by izabera
2016-06-25 23:49:13 +00:00
tg f555d1d524 premark <<< for deletion, >>> for SAR, ^< and ^> for ROL/ROR
cf. http://david.tribble.com/text/c0xrot.htm

noted by izabera
2016-06-25 23:48:10 +00:00
tg 8d811d19d4 typo, found by Joerg Schilling 2016-05-31 19:59:53 +00:00