1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-06-18 21:38:03 +02:00

users/29175: Don't need to forget zle edits if none

This commit is contained in:
Nojus Gudinavičius 2023-08-21 15:48:06 +03:00 committed by Peter Stephenson
parent d36b9ae0dc
commit 094f230e36
2 changed files with 18 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2023-08-22 Peter Stephenson <p.stephenson@samsung.com>
* Nojus Gudinavičius: users/29175: Src/Zle/zle_hist.c: don't
need to forget edits if none were made, avoiding loop over
entire history.
2023-08-21 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
* Shohei YOSHIDA: 52059 (+52070): Completion/Unix/Command/_scons:

View file

@ -68,6 +68,13 @@ Keymap isearch_keymap;
*/
#define GETZLETEXT(ent) ((ent)->zle_text ? (ent)->zle_text : (ent)->node.nam)
/*
* Flag that edits have been made to a zle line.
* If not set, nothing to forget.
*/
/**/
int have_edits = 0;
/**/
void
remember_edits(void)
@ -81,6 +88,7 @@ remember_edits(void)
if (ent->zle_text)
free(ent->zle_text);
ent->zle_text = zlemetaline ? ztrdup(line) : line;
have_edits = 1;
} else if (!zlemetaline)
free(line);
}
@ -90,6 +98,10 @@ remember_edits(void)
void
forget_edits(void)
{
if (!have_edits) {
return;
}
have_edits = 0;
Histent he;
for (he = hist_ring; he; he = up_histent(he)) {