diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2004-04-06 09:16:57 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2004-04-06 09:16:57 +0000 |
commit | 4688564c0a891a2e3fa73255cf907dd269a62a2e (patch) | |
tree | 58b7565400d484cfeb1ffd30784ad98b6daf0f9a /Src/Zle/zle_keymap.c | |
parent | 294ce1cd6a605a96d92aa270c7bcb47a30fadc1f (diff) | |
download | zsh-4688564c0a891a2e3fa73255cf907dd269a62a2e.tar.gz zsh-4688564c0a891a2e3fa73255cf907dd269a62a2e.tar.xz zsh-4688564c0a891a2e3fa73255cf907dd269a62a2e.zip |
19733 with docs tweaked: keymaps for vared and zed
Diffstat (limited to 'Src/Zle/zle_keymap.c')
-rw-r--r-- | Src/Zle/zle_keymap.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/Src/Zle/zle_keymap.c b/Src/Zle/zle_keymap.c index f28dec775..7e5fd02ee 100644 --- a/Src/Zle/zle_keymap.c +++ b/Src/Zle/zle_keymap.c @@ -169,8 +169,7 @@ freekeymapnamnode(HashNode hn) KeymapName kmn = (KeymapName) hn; zsfree(kmn->nam); - if(!--kmn->keymap->rc) - deletekeymap(kmn->keymap); + unrefkeymap(kmn->keymap); zfree(kmn, sizeof(*kmn)); } @@ -355,8 +354,7 @@ linkkeymap(Keymap km, char *name, int imm) return 1; if(n->keymap == km) return 0; - if(!--n->keymap->rc) - deletekeymap(n->keymap); + unrefkeymap(n->keymap); n->keymap = km; } else { n = makekeymapnamnode(km); @@ -364,10 +362,23 @@ linkkeymap(Keymap km, char *name, int imm) n->flags |= KMN_IMMORTAL; keymapnamtab->addnode(keymapnamtab, ztrdup(name), n); } - km->rc++; + refkeymap(km); return 0; } +/**/ +void refkeymap(Keymap km) +{ + km->rc++; +} + +/**/ +void unrefkeymap(Keymap km) +{ + if (!--km->rc) + deletekeymap(km); +} + /* Select a keymap as the current ZLE keymap. Can optionally fall back * * on the guaranteed safe keymap if it fails. */ |