Mercurial > emacs
view oldXMenu/XDelAssoc.c @ 108211:73a1ddc06d0e
Use a mode-line spec rather than a static string in Semantic.
* cedet/semantic/util-modes.el:
(semantic-minor-modes-format): New var to replace...
(semantic-minor-modes-status): Remove.
(semantic-mode-line-update): Construct a mode-line spec rather than
a static string so that mouse buttons can be used on individual minor
modes and so that semantic-mode-line-update only needs to be called
when global settings are changed.
(semantic-add-minor-mode, semantic-toggle-minor-mode-globally):
Call semantic-mode-line-update.
(semantic-toggle-minor-mode-globally): Don't assume mode is on
minor-mode-alist, check semantic-minor-mode-alist as well.
(semantic-stickyfunc-mode, semantic-show-parser-state-auto-marker)
(semantic-show-parser-state-marker, semantic-show-parser-state-mode)
(semantic-show-unmatched-syntax-mode, semantic-highlight-edits-mode):
* cedet/semantic/mru-bookmark.el (semantic-mru-bookmark-mode):
* cedet/semantic/idle.el (semantic-idle-scheduler-mode)
(define-semantic-idle-service, semantic-idle-summary-mode):
* cedet/semantic/decorate/mode.el (semantic-decoration-mode):
Don't call semantic-mode-line-update any more.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sun, 02 May 2010 01:06:53 -0400 |
parents | fec5e03aaf59 |
children | ec58e5c426ef 5cc91198ffb2 a63dbe9548aa |
line wrap: on
line source
/* Copyright Massachusetts Institute of Technology 1985 */ #include "copyright.h" #include <X11/Xlib.h> #include "X10.h" void emacs_remque(); struct qelem { struct qelem *q_forw; struct qelem *q_back; char q_data[1]; }; /* * XDeleteAssoc - Delete an association in an XAssocTable keyed on * an XId. An association may be removed only once. Redundant * deletes are meaningless (but cause no problems). */ XDeleteAssoc(dpy, table, x_id) register Display *dpy; register XAssocTable *table; register XID x_id; { int hash; register XAssoc *bucket; register XAssoc *Entry; /* Hash the XId to get the bucket number. */ hash = x_id & (table->size - 1); /* Look up the bucket to get the entries in that bucket. */ bucket = &table->buckets[hash]; /* Get the first entry in the bucket. */ Entry = bucket->next; /* Scan through the entries in the bucket for the right XId. */ for (; Entry != bucket; Entry = Entry->next) { if (Entry->x_id == x_id) { /* We have the right XId. */ if (Entry->display == dpy) { /* We have the right display. */ /* We have the right entry! */ /* Remove it from the queue and */ /* free the entry. */ emacs_remque((struct qelem *)Entry); free((char *)Entry); return; } /* Oops, identical XId's on different displays! */ continue; } if (Entry->x_id > x_id) { /* We have gone past where it should be. */ /* It is apparently not in the table. */ return; } } /* It is apparently not in the table. */ return; } /* arch-tag: 90981a7e-601c-487a-b364-cdf55d6c475b (do not change this comment) */