summaryrefslogtreecommitdiff
path: root/Src/prompt.c
AgeCommit message (Collapse)AuthorFilesLines
2025-01-3053332, 53334: Avoid strlen calls after sprintfOliver Kiddle1-22/+13
2024-12-2653257: use monotonic clock where appropriatedana1-1/+1
update the following features to use the monotonic clock for calculating time deltas and intervals: * MAILCHECK parameter * PERIOD parameter * SECONDS parameter * %(nS.t.f) prompt-expansion sequence * time built-in's elapsed time and cpu % values * zsh/zftp ZFTP_TMOUT parameter * zsh/zprof timings also use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC on macOS
2024-03-0552646: extend support for highlight groups to completion explanation strings ↵Oliver Kiddle1-3/+5
and WATCHFMT
2024-02-1552533: add module to provide alternate readonly views of the content of ↵Oliver Kiddle1-0/+28
.zle.hlgroups
2024-02-0452517: ensure that %H is followed by {Mikael Magnusson1-4/+6
The previous code would accept any character after %H assuming it was a {, which was probably also a buffer overrun sometimes.
2024-02-0452516: fix crash in %H when hlgroups is emptyMikael Magnusson1-1/+1
typeset -A .zle.hlgroups; print -P %H
2024-01-2852500: add layer token to zle attributesOliver Kiddle1-2/+11
This provide control over the precedence of highlighting where different regions overlap.
2024-01-2852499: support highlight groupsOliver Kiddle1-2/+48
These are defined in a .zle.hlgroups associative array and referenced using %H in prompt strings or hl= in zle_highlight/region_highlight.
2023-01-1051291: support for highlighting ellipses in the line editorOliver Kiddle1-0/+3
2023-01-1051289: don't disable non-colour attributes in prompts for SINGLE_LINE_ZLE ↵Oliver Kiddle1-2/+1
and remove superfluous extra escapes to disable attributes
2023-01-1051280: add support for italic and faint fonts in the line editorOliver Kiddle1-2/+37
2023-01-1051258, 51272: refactor handling of terminal attributes, removing OFF flags ↵Oliver Kiddle1-82/+172
in zattr
2022-12-1651212: remove STOUC() macroOliver Kiddle1-1/+1
This served as a workaround for ancient compilers where casts to unsigned char were broken.
2022-04-2550049: care with signed charactersPeter Stephenson1-1/+1
Some signed-to-unsigned casts needed for a couple of cases of pointers used as indices.
2022-02-12security/41: Don't perform PROMPT_SUBST evaluation on %F/%K argumentsOliver Kiddle1-0/+10
Mitigates CVE-2021-45444 (cherry picked from commit c187154f47697cdbf822c2f9d714d570ed4a0fd1)
2021-12-1349646: allow colors in WATCHFMT with %F/%KOliver Kiddle1-4/+5
2021-04-0347510: drop code that avoided termcap for named coloursOliver Kiddle1-36/+11
The inconsistency caused test failures where TERM is e.g. rxvt-unicode. This also makes a couple of bits available in zattr by removing flags indicating whether to use termcap which is not an attribute as such.
2020-09-1047352 (+ extra test cases): fix %<n>K prompt expansionStephane Chazelas1-1/+1
Fixed a regression introduced by workers/30496 (5.0.3) whereby %2K would no longer be the equivalent of %K{2} (%K{green}) in prompt expansion. That was one missing case where the is_fg flag was not passed along to match_colour() after code factorisation. Add tests for the different syntax variants, using echoti as a reference.
2020-06-2546068 (tweaked) (was: github #57): region_highlight: Add memo= support.Daniel Shahaf1-3/+6
This is useful when multiple plugins add region_highlight entries and subsequently want to remove only their own entries. Without this functionality, recognizing one's region_highlight entries is not trivial because the 'start' and 'end' offsets are modified by editing of $BUFFER and the highlight specification may not be unique or distinctive. The tweaks are as follows: - Change zfree() to zsfree() per workers/46070. - Remove the mem.c hunk, as it changed the signature of only one out of two alternative definitions of zsfree(). (The definition that hunk touched is the one that's not used by default.)
2019-12-1145004: Fix typos in commentsMartijn Dekker1-1/+1
2019-06-19fix multiple bugs in countpromptromkatv1-8/+27
1. Height off by one in the presence of meta characters at the end of the line. The following prompt has height 2 but countprompt used to return 3. PROMPT="${(pl.$COLUMNS..-.)}%f"$'\n' You can observe the effects of the bug with esc-x followed by reset-prompt. 2. Width off by one when a line is broken in the middle of a wide character. Assuming COLUMNS=79, the following prompt has width 2 but countprompt used to return 0. PROMPT="${(pl.40..\u3050.)}" zsh -df Press ctrl-r or type ls<tab> to observe the effects of the bug. 3. Width off by 1-7 when a line is broken in the middle of a tab. Assuming COLUMNS=79, the following prompt has width 1 but countprompt used to return 0. PROMPT="${(pl.10..\t.)}" zsh -df Press Ctrl-R or type ls<TAB> to observe the effects of the bug.
2019-04-1843288: fix line-broken promptsdana1-3/+8
Without re-breaking the case where a newline character lands in column 0.
2019-02-0344030: prompt: Return error for unrecognised colour namedana1-0/+2
2019-01-2344011: Only use fg_start_code for non-truecolorMikael Magnusson1-10/+23
The sequence for truecolor uses a different prefix from palette colors
2018-12-30users/23809: ZLE_HIGHLIGHT extensions.Peter Stephenson1-4/+26
Allow non-termcap use of colours > 7. Add tests.
2018-11-0843805: make nearcolor module use the default colour rather than black as a ↵Oliver Kiddle1-1/+3
fallback
2018-11-0843804: also need to be able to turn colour attributes back into hex triples ↵Oliver Kiddle1-4/+12
for region_highlight variable
2018-11-0543759: add support for true colour terminalsOliver Kiddle1-44/+60
2018-11-0543747: new module to map colours from hex triplets to the nearest matching ↵Oliver Kiddle1-1/+18
colour
2018-06-2043075: Support nanosecond-precision time formattingdana1-5/+4
* Teach ztrftime() %9. and %N for nanoseconds * Update prompt expansion to pass sub-second times for time formatting * Update zsh/stat to pass sub-second times for atime/mtime/ctime Patch heavily based on Oliver's earlier work @ workers/24059
2018-01-1642285: off by one fix in multiple promptsWarepire1-1/+1
2018-01-1442136: empty string check in %~ / %C prompt expansionsBarton E. Schaefer1-1/+1
2017-05-0941078: Empty psvar could cause bad dereference in prompt expansionPeter Stephenson1-1/+1
2017-01-0340260: zero new space allocated in prompt bufferPaulo Andrade1-0/+1
2016-10-0339545: Add some missing unqueue_signals().Peter Stephenson1-1/+3
All of these are added simply to fit existing logic in other branches.
2016-08-0138971: Start using the new arrlen_ge() / arrlen_le() helpers.Daniel Shahaf1-3/+3
2016-07-0838809: fix tracking of colour attributes and restore them when turning bold offOliver Kiddle1-4/+8
2016-02-0337868: add 'static' to file local variablesJun-ichi Takimoto1-1/+1
2015-08-1836227: attempt to fix metafication problem with ztrftime.Peter Stephenson1-3/+5
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-06-12Add non-metafied character length handling.Peter Stephenson1-1/+1
Use this in regex module and add test using $'\ua0'. Rename mb_metacharinit() to mb_charinit() as it does not involve metafied characters.
2015-01-1834322: bug with interface to parsestr() etc.Peter Stephenson1-1/+1
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.
2014-12-1133876: etc.: Separate errors and keyboards interruptsPeter Stephenson1-2/+5
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-09-2733256: fix prompttrunc() counting of %{ %} spansBarton E. Schaefer1-8/+6
2014-08-3033070: add %(e..) based on %eBarton E. Schaefer1-0/+11
2014-08-2933057: %e in prompts shows evaluation / execution depthPeter Stephenson1-0/+13
2014-08-0732971: negative argument with %(l..) and with %<< or %>> calculates space ↵Barton E. Schaefer1-3/+13
available before right margin
2014-07-3032918: add %. to ztrftime for use in promptsPeter Stephenson1-3/+5
2013-03-1030496: Parse argument to %F and %K as prompt sequencesMikael Magnusson1-14/+29
2012-03-0530307 plus tweak suggsted by Wayne: use %lld for zlong when long longPeter Stephenson1-0/+16
2011-05-0929165: use term.h globally if needed at all.Peter Stephenson1-3/+3