1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-14 01:51:22 +02:00
Commit graph

408 commits

Author SHA1 Message Date
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