[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs extras.c qe.c qe.h
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs extras.c qe.c qe.h |
Date: |
Wed, 12 Mar 2014 05:50:23 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 14/03/12 05:50:23
Modified files:
. : extras.c qe.c qe.h
Log message:
fix show-bindings for redefined bindings
* merge find_binding and find_binding1, export as qe_find_binding
* check if binding is rebound to another command
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/extras.c?cvsroot=qemacs&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.155&r2=1.156
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.149&r2=1.150
Patches:
Index: extras.c
===================================================================
RCS file: /sources/qemacs/qemacs/extras.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- extras.c 10 Mar 2014 01:56:16 -0000 1.22
+++ extras.c 12 Mar 2014 05:50:23 -0000 1.23
@@ -459,6 +459,8 @@
{
int pos;
buf_t outbuf, *out;
+ KeyDef *kd1 = mode ? mode->first_key : NULL;
+ KeyDef *kd2 = inherit ? qe_state.first_key : NULL;
out = buf_init(&outbuf, buf, size);
pos = 0;
@@ -466,7 +468,8 @@
KeyDef *kd = mode ? mode->first_key : qe_state.first_key;
for (; kd != NULL; kd = kd->next) {
- if (kd->cmd == d) {
+ if (kd->cmd == d
+ && qe_find_binding(kd->keys, kd->nb_keys, 2, kd1, kd2) == kd) {
if (out->len > pos)
buf_puts(out, ", ");
Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -b -r1.155 -r1.156
--- qe.c 6 Mar 2014 20:36:50 -0000 1.155
+++ qe.c 12 Mar 2014 05:50:23 -0000 1.156
@@ -4321,7 +4321,7 @@
c->buf[0] = '\0';
}
-static KeyDef *find_binding(unsigned int *keys, int nb_keys, int nroots, ...)
+KeyDef *qe_find_binding(unsigned int *keys, int nb_keys, int nroots, ...)
{
KeyDef *kd = NULL;
va_list ap;
@@ -4330,30 +4330,12 @@
while (nroots--) {
for (kd = va_arg(ap, KeyDef *); kd != NULL; kd = kd->next) {
if (kd->nb_keys >= nb_keys
- && !memcmp(kd->keys, keys, nb_keys * sizeof(keys[0])))
- {
- goto found;
- }
- }
+ && !memcmp(kd->keys, keys, nb_keys * sizeof(keys[0]))) {
+ nroots = 0;
+ break;
}
- found:
- va_end(ap);
- return kd;
-}
-
-static KeyDef *find_binding1(unsigned int key, int nroots, ...)
-{
- KeyDef *kd = NULL;
- va_list ap;
-
- va_start(ap, nroots);
- while (nroots--) {
- for (kd = va_arg(ap, KeyDef *); kd != NULL; kd = kd->next) {
- if (kd->nb_keys == 1 && kd->keys[0] == key)
- goto found;
}
}
- found:
va_end(ap);
return kd;
}
@@ -4410,10 +4392,12 @@
}
/* see if one command is found */
- if (!(kd = find_binding(c->keys, c->nb_keys, 2,
+ if (!(kd = qe_find_binding(c->keys, c->nb_keys, 2,
s->mode->first_key, qs->first_key)))
{
/* no key found */
+ unsigned int key_default = KEY_DEFAULT;
+
if (c->nb_keys == 1) {
if (!KEY_SPECIAL(key)) {
if (c->is_numeric_arg) {
@@ -4430,7 +4414,7 @@
goto next;
}
}
- kd = find_binding1(KEY_DEFAULT, 2,
+ kd = qe_find_binding(&key_default, 1, 2,
s->mode->first_key, qs->first_key);
if (kd) {
/* horrible kludge to pass key as intrinsic argument */
Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.149
retrieving revision 1.150
diff -u -b -r1.149 -r1.150
--- qe.h 10 Mar 2014 22:11:24 -0000 1.149
+++ qe.h 12 Mar 2014 05:50:23 -0000 1.150
@@ -720,6 +720,7 @@
/* CG: Should deal with opaque object life cycle */
void qe_grab_keys(void (*cb)(void *opaque, int key), void *opaque);
void qe_ungrab_keys(void);
+struct KeyDef *qe_find_binding(unsigned int *keys, int nb_keys, int nroots,
...);
/* buffer.c */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs extras.c qe.c qe.h,
Charlie Gordon <=