version 1.15, 2004/02/01 22:26:40 |
version 1.16, 2005/04/03 02:09:28 |
|
|
else |
else |
use_metakey = !use_metakey; |
use_metakey = !use_metakey; |
ewprintf("Meta keys %sabled", use_metakey ? "en" : "dis"); |
ewprintf("Meta keys %sabled", use_metakey ? "en" : "dis"); |
return TRUE; |
return (TRUE); |
} |
} |
#endif /* DO_METAKEY */ |
#endif /* DO_METAKEY */ |
|
|
|
|
else |
else |
bs_map = !bs_map; |
bs_map = !bs_map; |
ewprintf("Backspace mapping %sabled", bs_map ? "en" : "dis"); |
ewprintf("Backspace mapping %sabled", bs_map ? "en" : "dis"); |
return TRUE; |
return (TRUE); |
} |
} |
#endif /* BSMAP */ |
#endif /* BSMAP */ |
|
|
|
|
*promptp = '\0'; |
*promptp = '\0'; |
} |
} |
#endif /* !NO_DPROMPT */ |
#endif /* !NO_DPROMPT */ |
return c; |
return (c); |
} |
} |
|
|
/* |
/* |
|
|
{ |
{ |
MAP_ELEMENT *elec = &map->map_element[0]; |
MAP_ELEMENT *elec = &map->map_element[0]; |
MAP_ELEMENT *last = &map->map_element[map->map_num]; |
MAP_ELEMENT *last = &map->map_element[map->map_num]; |
PF ret; |
PF ret; |
|
|
while (elec < last && c > elec->k_num) |
while (elec < last && c > elec->k_num) |
elec++; |
elec++; |
|
|
if (ret == NULL && newmap != NULL) |
if (ret == NULL && newmap != NULL) |
*newmap = elec->k_prefmap; |
*newmap = elec->k_prefmap; |
|
|
return ret; |
return (ret); |
} |
} |
|
|
int |
int |
|
|
key.k_count = 0; |
key.k_count = 0; |
while ((funct = doscan(curmap, (key.k_chars[key.k_count++] = |
while ((funct = doscan(curmap, (key.k_chars[key.k_count++] = |
getkey(TRUE)), &curmap)) == NULL) |
getkey(TRUE)), &curmap)) == NULL) |
/*nothing*/; |
/* nothing */; |
#ifndef NO_MACRO |
#ifndef NO_MACRO |
if (macrodef && macrocount < MAXMACRO) |
if (macrodef && macrocount < MAXMACRO) |
macro[macrocount++].m_funct = funct; |
macro[macrocount++].m_funct = funct; |
#endif /* !NO_MACRO */ |
#endif /* !NO_MACRO */ |
return (*funct)(0, 1); |
return ((*funct)(0, 1)); |
} |
} |
|
|
int |
int |
|
|
while ((fp = doscan(curmap, |
while ((fp = doscan(curmap, |
key.k_chars[key.k_count++] = |
key.k_chars[key.k_count++] = |
getkey(TRUE), &curmap)) == NULL) |
getkey(TRUE), &curmap)) == NULL) |
/*nothing*/; |
/* nothing */; |
if (fp != rescan) { |
if (fp != rescan) { |
#ifndef NO_MACRO |
#ifndef NO_MACRO |
if (macrodef && macrocount <= MAXMACRO) |
if (macrodef && macrocount <= MAXMACRO) |
macro[macrocount - 1].m_funct |
macro[macrocount - 1].m_funct |
= fp; |
= fp; |
#endif /* !NO_MACRO */ |
#endif /* !NO_MACRO */ |
return (*fp)(f, n); |
return ((*fp)(f, n)); |
} |
} |
} |
} |
} |
} |
/* try previous mode */ |
/* try previous mode */ |
if (--mode < 0) |
if (--mode < 0) |
return ABORT; |
return (ABORT); |
curmap = curbp->b_modes[mode]->p_map; |
curmap = curbp->b_modes[mode]->p_map; |
for (i = 0; i < key.k_count; i++) { |
for (i = 0; i < key.k_count; i++) { |
if ((fp = doscan(curmap, (key.k_chars[i]), &curmap)) != NULL) |
if ((fp = doscan(curmap, (key.k_chars[i]), &curmap)) != NULL) |
|
|
if (fp == NULL) { |
if (fp == NULL) { |
while ((fp = doscan(curmap, key.k_chars[i++] = |
while ((fp = doscan(curmap, key.k_chars[i++] = |
getkey(TRUE), &curmap)) == NULL) |
getkey(TRUE), &curmap)) == NULL) |
/*nothing*/; |
/* nothing */; |
key.k_count = i; |
key.k_count = i; |
} |
} |
if (fp != rescan && i >= key.k_count - 1) { |
if (fp != rescan && i >= key.k_count - 1) { |
|
|
if (macrodef && macrocount <= MAXMACRO) |
if (macrodef && macrocount <= MAXMACRO) |
macro[macrocount - 1].m_funct = fp; |
macro[macrocount - 1].m_funct = fp; |
#endif /* !NO_MACRO */ |
#endif /* !NO_MACRO */ |
return (*fp)(f, n); |
return ((*fp)(f, n)); |
} |
} |
} |
} |
} |
} |
|
|
{ |
{ |
KEYMAP *curmap; |
KEYMAP *curmap; |
PF funct; |
PF funct; |
int c; |
int c, nn = 4; |
int nn = 4; |
|
|
|
if (f & FFUNIV) |
if (f & FFUNIV) |
nn *= n; |
nn *= n; |
|
|
key.k_chars[0] = c = getkey(TRUE); |
key.k_chars[0] = c = getkey(TRUE); |
key.k_count = 1; |
key.k_count = 1; |
if (c == '-') |
if (c == '-') |
return negative_argument(f, nn); |
return (negative_argument(f, nn)); |
if (c >= '0' && c <= '9') |
if (c >= '0' && c <= '9') |
return digit_argument(f, nn); |
return (digit_argument(f, nn)); |
curmap = curbp->b_modes[curbp->b_nmodes]->p_map; |
curmap = curbp->b_modes[curbp->b_nmodes]->p_map; |
while ((funct = doscan(curmap, c, &curmap)) == NULL) { |
while ((funct = doscan(curmap, c, &curmap)) == NULL) { |
key.k_chars[key.k_count++] = c = getkey(TRUE); |
key.k_chars[key.k_count++] = c = getkey(TRUE); |
|
|
macro[macrocount++].m_funct = funct; |
macro[macrocount++].m_funct = funct; |
} |
} |
#endif /* !NO_MACRO */ |
#endif /* !NO_MACRO */ |
return (*funct)(FFUNIV, nn); |
return ((*funct)(FFUNIV, nn)); |
} |
} |
nn <<= 2; |
nn <<= 2; |
} |
} |
|
|
macro[macrocount++].m_funct = funct; |
macro[macrocount++].m_funct = funct; |
} |
} |
#endif /* !NO_MACRO */ |
#endif /* !NO_MACRO */ |
return (*funct)(FFOTHARG, nn); |
return ((*funct)(FFOTHARG, nn)); |
} |
} |
|
|
int |
int |
|
|
macro[macrocount++].m_funct = funct; |
macro[macrocount++].m_funct = funct; |
} |
} |
#endif /* !NO_MACRO */ |
#endif /* !NO_MACRO */ |
return (*funct)(FFNEGARG, nn); |
return ((*funct)(FFNEGARG, nn)); |
} |
} |
|
|
/* |
/* |
|
|
int count; |
int count; |
|
|
if (n < 0) |
if (n < 0) |
return FALSE; |
return (FALSE); |
if (n == 0) |
if (n == 0) |
return TRUE; |
return (TRUE); |
c = key.k_chars[key.k_count - 1]; |
c = key.k_chars[key.k_count - 1]; |
#ifndef NO_MACRO |
#ifndef NO_MACRO |
if (macrodef && macrocount < MAXMACRO) { |
if (macrodef && macrocount < MAXMACRO) { |
|
|
if (maclcur->l_size < maclcur->l_used + n) { |
if (maclcur->l_size < maclcur->l_used + n) { |
if (lrealloc(maclcur, maclcur->l_used + n) == |
if (lrealloc(maclcur, maclcur->l_used + n) == |
FALSE) |
FALSE) |
return FALSE; |
return (FALSE); |
} |
} |
maclcur->l_used += n; |
maclcur->l_used += n; |
/* Copy in the new data */ |
/* Copy in the new data */ |
|
|
} else { |
} else { |
macro[macrocount - 1].m_funct = insert; |
macro[macrocount - 1].m_funct = insert; |
if ((lp = lalloc(n)) == NULL) |
if ((lp = lalloc(n)) == NULL) |
return FALSE; |
return (FALSE); |
lp->l_bp = maclcur; |
lp->l_bp = maclcur; |
lp->l_fp = maclcur->l_fp; |
lp->l_fp = maclcur->l_fp; |
maclcur->l_fp = lp; |
maclcur->l_fp = lp; |
|
|
do { |
do { |
count = lnewline(); |
count = lnewline(); |
} while (--n && count == TRUE); |
} while (--n && count == TRUE); |
return count; |
return (count); |
} |
} |
|
|
/* overwrite mode */ |
/* overwrite mode */ |
|
|
while (curwp->w_doto < llength(curwp->w_dotp) && n--) |
while (curwp->w_doto < llength(curwp->w_dotp) && n--) |
lputc(curwp->w_dotp, curwp->w_doto++, c); |
lputc(curwp->w_dotp, curwp->w_doto++, c); |
if (n <= 0) |
if (n <= 0) |
return TRUE; |
return (TRUE); |
} |
} |
return linsert(n, c); |
return (linsert(n, c)); |
} |
} |
|
|
/* |
/* |
* This could be implemented as a keymap with everthing defined as self-insert. |
* This could be implemented as a keymap with everything defined as self-insert. |
*/ |
*/ |
int |
int |
quote(int f, int n) |
quote(int f, int n) |
|
|
} else |
} else |
ungetkey(c); |
ungetkey(c); |
} |
} |
return selfinsert(f, n); |
return (selfinsert(f, n)); |
} |
} |