Peter Stephenson
a62e1640bc
39958: Add extra byte to PATH_MAX allocations.
...
This ensures we've got enough space for a null, although this
isn't always needed.
2016-11-17 19:49:17 +00:00
Barton E. Schaefer
98b7960c78
39943: no need to compute arrlen() in arrdup_max() when max == 0.
2016-11-15 10:04:14 -08:00
Peter Stephenson
921b39ac6b
39949: Special case for "-" in directory names.
...
It can be sh-tokenized to Dash to allow for appearing in ranges
after substitution, so needs to be turned back to "-" in that case.
2016-11-15 18:01:32 +00:00
Peter Stephenson
99acd1e7f4
39906: More multibyte optimisations for US-ASCII.
...
This treats characters 0 to 0x7f as single byte US-ASCII along
the lines we already do in other places in the code.
2016-11-14 10:12:04 +00:00
Peter Stephenson
a1633e09a7
39886 based on 39877: Optimise arrdup to arrdup_max.
...
Only duplicate as much of the array as is needed.
2016-11-09 11:54:57 +00:00
Peter Stephenson
1683371fa5
unposted: follow up to 39867: don't need test against zero
2016-11-08 10:51:03 +00:00
Peter Stephenson
39521515c3
39867, tweaked: Use cast to unsigned char to test character.
...
We want the unsigned variant to be <= 0x7f. Use the normal STOUC()
macro and turn this into a single test.
2016-11-08 10:09:26 +00:00
Peter Stephenson
9c68ef083b
39825: optimise mb_metastrlenend() for 7-bit character.
...
As the shell relies intimately on US-ASCII as a subset we can
skip the multibyte functions if we are dealing with a complete
7-bit character.
2016-11-04 09:56:51 +00:00
Barton E. Schaefer
e61ed2b80d
39470: failure to open a supposedly unique temp file name should result in an error
...
Also band-aid for signal-related race conditions in temp file name generation
2016-09-29 11:16:24 -07:00
Daniel Shahaf
f368720b8b
39252: internal: quotestring: Drop the 'e' parameter, which no caller uses.
2016-09-11 09:22:18 +00:00
Jun-ichi Takimoto
acad0620ef
39087: fix 'conditionally uninitialized' variables
2016-08-23 18:18:50 +09:00
Daniel Shahaf
7154052ebe
39046 + 39061: New :P history modifier.
2016-08-22 03:34:30 +00:00
Daniel Shahaf
f9b1703511
38971: Start using the new arrlen_ge() / arrlen_le() helpers.
2016-08-01 08:01:29 +00:00
Daniel Shahaf
1a368bf31f
38973: Optimize indexing array parameters.
...
% () { for 1 in $prefix/zsh/bin/zsh Src/zsh; do $1 -f -c 'a=( {1..1000000} ); repeat 3 time ( repeat 300 : $a[1] )'; done }
( repeat 300; do; : $a[1]; done; ) 1.68s user 0.01s system 98% cpu 1.718 total
( repeat 300; do; : $a[1]; done; ) 1.69s user 0.01s system 99% cpu 1.710 total
( repeat 300; do; : $a[1]; done; ) 1.69s user 0.01s system 99% cpu 1.714 total
( repeat 300; do; : $a[1]; done; ) 0.00s user 0.01s system 72% cpu 0.022 total
( repeat 300; do; : $a[1]; done; ) 0.00s user 0.01s system 72% cpu 0.022 total
( repeat 300; do; : $a[1]; done; ) 0.01s user 0.01s system 69% cpu 0.023 total
2016-08-01 08:01:28 +00:00
Peter Stephenson
8cf68f05ab
21603: Make read_poll more interruptible.
...
If we interrupted the first read we still did the fallback read.
This is wrong.
2016-06-02 11:01:39 +01:00
Peter Stephenson
6d82ce161a
37946: make rm * warnings more informative.
...
Now count files that would be deleted up to 100.
2016-02-11 15:23:57 +00:00
Jun-ichi Takimoto
a4020e10a3
37868: add 'static' to file local variables
2016-02-03 01:25:33 +09:00
Kamil Dudka
69c86cd2c3
37780: Care printing error if nothing to print.
2016-01-25 17:15:23 +00:00
Peter Stephenson
be32864e6f
37776: Set errflag before calls to zwarning().
...
This avoids an attempt to call zerr() or zerrnam() recusrively.
2016-01-25 15:43:06 +00:00
Peter Stephenson
8eb9070d67
37678: Now possible to quote "-" in pattern range
2016-01-19 09:55:46 +00:00
Daniel Shahaf
69379369da
unposted: Extend docstring of callhookfunc().
2016-01-15 06:30:12 +00:00
Peter Stephenson
7f5b2f5709
37348: Tests and fix for ${(q+)...}.
...
Needs dupstring() for empty string case.
2015-12-08 15:08:24 +00:00
Peter Stephenson
f5b8efa7e0
37344: restore old printable quoting, add ${(q+)...}.
...
The \C- form is only used inside quotedzputs().
${(q+)...} outputs a quotedzputs() representation.
2015-12-07 21:49:07 +00:00
Peter Stephenson
9fb30cf572
37331: Use a single chracter to represent an MB_INCOMPLETE.
...
This is as it is likely to appear as a single character in output
even if it has multiple octets.
2015-12-07 18:54:03 +00:00
Peter Stephenson
87670fb011
37326: comment only: multibyte string lenght/width counting
2015-12-06 16:39:57 +00:00
Peter Stephenson
5a76a5d34e
37314: upgrade quotedzputs() for non-printable output.
...
Use nicechar with $'..' quoting; upgrade nicechar() etc. to
use suitable output.
2015-12-06 15:33:02 +00:00
Daniel Shahaf
7154b8314d
37296: Avoid needless calloc().
2015-12-03 23:47:24 +00:00
Peter Stephenson
acbd2ca701
37191: fix strftime() expansion issue with %p and %P.
...
In some locales the output from this can validly be empty, so
we need to treat them specially.
2015-11-22 18:14:13 +00:00
Peter Stephenson
272119b774
unposted: small typo again
2015-10-24 21:00:30 +01:00
Peter Stephenson
c8c42d6ed5
unposted: small typo
2015-10-24 20:59:48 +01:00
Peter Stephenson
15490398d7
36944: extend fd management to zsocket
2015-10-24 20:48:47 +01:00
Peter Stephenson
1f6dcf9bcd
36941: Mark file descripors in ztcp as used.
...
Allow such file descriptors to be either internal and closed on exec
or external and so managed explicitly by module.
2015-10-24 20:24:35 +01:00
Barton E. Schaefer
3f96063335
36773: limit CORRECT / CORRECT_ALL to directory names in cases where it is obvious that a directory is expected
2015-10-04 14:01:08 -07:00
Barton E. Schaefer
4375d7b905
36562: sanitize $PWD on import, per POSIX
2015-09-19 23:03:39 -07:00
Barton E. Schaefer
07796811b0
cf. 36554: remove unnecessary pointer dereference
2015-09-19 09:34:05 -07:00
Barton E. Schaefer
18130bed7f
36552 plus test: fix Nularg string in quotestring(QT_DOLLARS)
2015-09-17 21:44:14 -07:00
Mikael Magnusson
cbe00216fe
36380: Avoid gcc case syntax
2015-09-01 23:18:17 +02:00
Barton E. Schaefer
3747f6b6ab
36376: handle signals during read1char() so it is possible to interrupt correct/correctall prompts
2015-09-01 11:26:06 -07:00
Peter Stephenson
61afb8dc8d
36262: Replace fix for missing unmeta in chdir().
...
It was needed in the argument to one of a pair of lchdir()s rather
than within zchdir().
Add tests for the case of a character with 0x83 within it.
2015-08-21 10:04:13 +01:00
Peter Stephenson
f8164fb647
36227: attempt to fix metafication problem with ztrftime.
...
fmt is treated as metafied on entry; use returned length to ensure
we metafy or output the correct length if there are embedded nulls.
2015-08-18 16:20:48 +01:00
Jun-ichi Takimoto
d09dc4562a
35928: '%-m' should work even if not supported by strftime(3)
...
Also clarify document.
2015-08-08 03:39:51 +09:00
Peter Stephenson
dd8079e041
35809: fix $((...)) completion by _expand widget.
...
This changes internal quoting of the form still including tokens
not to add unnecessary internal backslashes.
2015-07-25 21:36:54 +01:00
Peter Stephenson
bbd4cae6ad
35872: protect against NULL pointers in unmeta
2015-07-23 10:04:09 +01:00
Barton E. Schaefer
a1f8d4ffc7
35826: add getsparam_u() to return unmetafied string, use it for a number of references to non-special params
2015-07-22 12:52:24 -07:00
Mikael Magnusson
e402747dd6
35745: ztrftime: Pass everything unhandled to the system strftime()
2015-07-09 15:32:55 +02:00
Peter Stephenson
f1923bdfa6
Add non-metafied character length handling.
...
Use this in regex module and add test using $'\ua0'.
Rename mb_metacharinit() to mb_charinit() as it does not involve
metafied characters.
2015-06-12 09:30:39 +01:00
Peter Stephenson
2abba7243a
35386: expand tabs where useful in builtins outputing function.
...
Also add to zed -f.
Option is -x <numm>.
2015-06-05 11:21:22 +01:00
Peter Stephenson
93e72ed1e9
35353: print -x and print -X expand tabs
2015-06-02 09:17:04 +01:00
Peter Stephenson
6269db883a
35067: Add (b) parameter flag for pattern char backslashing.
...
Doc tweak from Daniel in 35071.
Includes test.
2015-05-10 19:19:34 +01:00
Jun-ichi Takimoto
a6db0b41ca
35064: rename ISPRINT to ZISPRINT to avoid conflict
2015-05-09 16:02:37 +09:00
Jun-ichi Takimoto
4bc554bb8b
34636: replace broken isprint() on Mac OS X
2015-03-05 01:48:34 +09:00
Peter Stephenson
b237ba0a8e
34587: ensure multibyte characters don't overflow.
...
They could start incorporating tokens, with bad karma.
Add test.
2015-02-20 16:25:54 +00:00
Mikael Magnusson
dfbb5e4853
34466: Fix double unmeta in rm verification
2015-02-09 05:13:34 +01:00
Barton E. Schaefer
5751de7975
34403: refine 34399 to avoid settyinfo() when the input descriptor is not a TTY
2015-01-26 18:48:25 -08:00
Barton E. Schaefer
494c251cb0
34399: fix polltty thinko from 34365
...
Also add missing ChangeLog entry for 34365.
2015-01-25 16:07:49 -08:00
Peter Stephenson
4688de1677
34365: History lockfile backoff: randomised time.
...
Time doubles on each lock failure.
zsleep() provides microsecond resolution for sleep; uses nanosleep() if
available, else select via means of existing tty poll function.
2015-01-25 20:29:18 +00:00
Daniel Shahaf
f7a2fba534
34369: document error and warning codes
2015-01-25 18:08:29 +00:00
Peter Stephenson
ccd3663d4e
34383: ztrdup() should be dupstring() in new cd code
2015-01-25 18:03:20 +00:00
Peter Stephenson
12b813b589
34331: better handling of NULL in cd.
...
Problem was return from symbolic link expander in weird cases
where there file system isn't behaving itself properly.
2015-01-22 20:20:15 +00:00
Peter Stephenson
c6c9f5daf2
34322: bug with interface to parsestr() etc.
...
Was showing up in places like ${(e)...} where command substitution
could reallocate the token string, but actually there was never any
guarantee that the lexer wouldn't do that, so this was always
a bit iffy.
2015-01-18 22:38:57 +00:00
Mikael Magnusson
4701b05cf7
34138: wcs_nicechar: only deref widthp if it was given
2015-01-06 23:51:18 +01:00
Mikael Magnusson
c425cc9632
34108: Don't leak ifs stuff
...
Found by Coverity (Issue 1255785).
2015-01-06 23:51:00 +01:00
Peter Stephenson
98f465c09f
34092: fix miscount of symlink resolution for "..".
...
This caused problems with expanding a path with ".." in "whence -S".
2015-01-04 19:42:45 +00:00
Peter Stephenson
f9cba834cd
34091: typo with "whence -s" expansions
2015-01-04 19:05:39 +00:00
Peter Stephenson
33d1439fdb
users/19667: whence -S shows intermediate steps in symlink expansion
2015-01-02 21:32:51 +00:00
Peter Stephenson
d067ebcacd
33876: etc.: Separate errors and keyboards interrupts
...
Combination of 12 commits from interrupt_abort branch.
Basic strategy is to introduce bits to errflag and to set and
reset them separately.
Remove interrupt status on return to main keymap.
Turn off ERRFLAG_INT for always block.
Restore bit thereafter: we probably need a new variable in order
to allow user interrupts to be reset in the always block.
Add TRY_BLOCK_INTERRUPT
This works the same as TRY_BLOCK_ERROR, but for a SIGINT, too.
Ensure propagation of SIGINT from exited job.
If received by foreground job, shell uses ERRFLAG_INT, not
ERRFLAG_ERROR, to set the new state.
Reset errflag before precmd()
Add always block in _main_completion to fix ZLS_COLORS
Ensures we get the right state of $ZLS_COLORS at the end of _main_complete
even if there's an interrupt. However, the "right state" is a bit messy
as it depends on styles.
2014-12-11 09:41:17 +00:00
Jun-ichi Takimoto
0a07ffd47c
33932: revise boundary check in unmeta()
2014-12-09 02:41:01 +09:00
Barton E. Schaefer
48cd1b6c3b
33894: boundary conditions in unmeta(), unmetafy()
...
Check that we aren't running off the end of the string when converting the
next byte after a Meta byte. This is just defensive programming in case
of bad metafied strings coming through from gettokstr(), some repairs
there are likely still needed.
2014-12-07 11:20:01 -08:00
Oliver Kiddle
0d4b548d1e
33818: fix types passed to sizeof detected by coverity as being wrong
2014-11-30 23:19:55 +01:00
Peter Stephenson
a8927bf27b
33793: add 0b binary interpretation to integer constants
2014-11-26 17:26:58 +00:00
Peter Stephenson
c01a178ece
Marc Finet: problems with working directory rationalisation.
...
Ensure the length of the directory is kept up to date.
Abort following symlinks as soon as there's an error.
2014-11-13 19:44:01 +00:00
Barton E. Schaefer
57252dc1e0
33320 (cf. PWS 33311): revert 33069, fix lexing of bangchar during completion
...
add typtab_flags bits (replaces specialcomma boolean) to record any unusual handling of typtab entries; signal safety; make bangchar non-special during completion lexing of the command line.
2014-10-02 08:39:43 -07:00
Barton E. Schaefer
4ba08eef7e
Increase size of xbuf2 in xsymlinks to make gcc FORTIFY_SOURCE=2 happy.
2014-08-17 10:32:02 -07:00
Barton E. Schaefer
47d91c5fba
33012: add an error return value (-1) to xsymlinks()
2014-08-15 10:19:54 -07:00
Peter Stephenson
b79ef8caaf
32932: add hmkarray() and use to fix leak
2014-08-01 16:15:13 +01:00
Peter Stephenson
d3d0910293
32918: add %. to ztrftime for use in prompts
2014-07-30 12:10:15 +01:00
Nikolas Garofil
4f4d2b8247
32737, 32736 (32741), 32735, 32734, 32733, 32732 (32739): Strict compilation
...
fixes
Src/utils.c: properly ifdef declarations
Src/zsh_system.h: memmove() should return its dest argument
Src/signals.c: define ret before use
Src/mem.c: remove unused pointers
Src/prototypes.h: use size_t in bcopy()
Src/compat.c: fix const declaration inconsistency
2014-06-07 13:48:40 -07:00
Barton E. Schaefer
c41287b318
32716: properly test iconv return values for error conditions
2014-06-05 08:57:40 -07:00
Barton E. Schaefer
b3e5284f13
36526: when __APPLE__ is defined at compile, normalize Unicode filenames in zreaddir()
2014-06-02 07:26:50 -07:00
Tomoki Sekiyama
0da28f323d
32592: add CORRECT_IGNORE_FILE variable
2014-04-29 10:44:09 +01:00
Barton E. Schaefer
3e06aeabd8
32294: prevent buffer overflow when scanning very long directory paths for symbolic links
2014-01-19 19:39:31 -08:00
Barton E. Schaefer
5618116020
32061: Fix "use of uninitialized memory" in metafy
2013-11-27 22:09:48 -08:00
Barton E. Schaefer
b514fbe110
32023: better interrupt handling at RM_STAR_WAIT
2013-11-19 08:30:10 -08:00
Peter Stephenson
40a881569f
31650: use zlong for mailcheck parameters to ensure range
2013-08-11 20:19:53 +01:00
joe M
b9e16ac818
31648: fix timing errors in mailcheck
2013-08-10 19:48:13 +01:00
Bart Schaefer
d19e18c68d
31350: block SIGWINCH nearly all the time, except
...
when about to calculate prompts or do synchronous read, so
syscalls are not interrupted by window size changes.
2013-04-30 00:08:49 -07:00
Peter Stephenson
f73d92f5dc
add missing mod_export
2012-12-16 18:43:24 +00:00
Peter Stephenson
e550c98d69
30647, 30649: allow underscores in numeric constants
2012-09-11 16:02:41 +00:00
Bart Schaefer
9af1cd4722
30530,30533: fix problems with COLUMNS or LINES < 1, and related issues
2012-06-27 07:10:29 +00:00
Peter Stephenson
cd1b5d86e0
users/17046: don't count too many elements when splitting quoted parameter
...
substitution on null parameter
2012-05-01 19:43:44 +00:00
Peter Stephenson
4f142f2794
30413: (q-) parameter flag should quote null string
...
(q-q) etc. should be treated as errors
2012-04-16 11:26:09 +00:00
Peter Stephenson
a76c8de44c
30351 + 30352: metafy strings on import into zsh variables
2012-03-13 09:47:01 +00:00
Peter Stephenson
86f8e8de69
30307 plus tweak suggsted by Wayne: use %lld for zlong when long long
2012-03-05 10:06:28 +00:00
Peter Stephenson
74eed99c31
29940: metafy() added null termination even if buffer was not modifiable
2011-12-03 23:15:37 +00:00
Bart Schaefer
7c5173ba0f
users/16581: skip correction shortcut based on command table search when
...
the word is not in command position; on rejected command correction,
reset incremental path hashing.
2011-11-15 15:08:56 +00:00
Bart Schaefer
188abdd708
29799: swap order of RESET_PROMPT / REFRESH in adjustwinsize().
2011-10-02 01:10:11 +00:00
Peter Stephenson
815e52cdbf
users/16253, users/16255: a nulstring should be split like an empty string
2011-08-17 19:00:08 +00:00
Peter Stephenson
a3ae9f5d12
29643: set incompfunc to zero when executing hook or trap function
2011-08-04 08:30:50 +00:00
Peter Stephenson
45913f43e5
29561: Allow closing of fd's not recorded by the shell
2011-07-25 10:20:09 +00:00
Peter Stephenson
962624e8c3
29491: remove some variables set but not used
2011-06-19 16:26:10 +00:00