annotate oldXMenu/XDelAssoc.c @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 5cc91198ffb2
children 132f2dfd549f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
1 /* Copyright Massachusetts Institute of Technology 1985 */
Dave Love <fx@gnu.org>
parents:
diff changeset
2
76133
995b45abe69d Remove license text in favour of including copyright.h, as was done in
Glenn Morris <rgm@gnu.org>
parents: 75348
diff changeset
3 #include "copyright.h"
995b45abe69d Remove license text in favour of including copyright.h, as was done in
Glenn Morris <rgm@gnu.org>
parents: 75348
diff changeset
4
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
5
Dave Love <fx@gnu.org>
parents:
diff changeset
6 #include <X11/Xlib.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
7 #include "X10.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
8 struct qelem {
Dave Love <fx@gnu.org>
parents:
diff changeset
9 struct qelem *q_forw;
Dave Love <fx@gnu.org>
parents:
diff changeset
10 struct qelem *q_back;
Dave Love <fx@gnu.org>
parents:
diff changeset
11 char q_data[1];
Dave Love <fx@gnu.org>
parents:
diff changeset
12 };
109124
5cc91198ffb2 Convert function definitions in oldXMenu to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 76174
diff changeset
13 void emacs_remque(struct qelem*);
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
14
Dave Love <fx@gnu.org>
parents:
diff changeset
15 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
16 * XDeleteAssoc - Delete an association in an XAssocTable keyed on
Dave Love <fx@gnu.org>
parents:
diff changeset
17 * an XId. An association may be removed only once. Redundant
Dave Love <fx@gnu.org>
parents:
diff changeset
18 * deletes are meaningless (but cause no problems).
Dave Love <fx@gnu.org>
parents:
diff changeset
19 */
109124
5cc91198ffb2 Convert function definitions in oldXMenu to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 76174
diff changeset
20 XDeleteAssoc(register Display *dpy, register XAssocTable *table, register XID x_id)
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
21 {
Dave Love <fx@gnu.org>
parents:
diff changeset
22 int hash;
Dave Love <fx@gnu.org>
parents:
diff changeset
23 register XAssoc *bucket;
Dave Love <fx@gnu.org>
parents:
diff changeset
24 register XAssoc *Entry;
Dave Love <fx@gnu.org>
parents:
diff changeset
25
Dave Love <fx@gnu.org>
parents:
diff changeset
26 /* Hash the XId to get the bucket number. */
Dave Love <fx@gnu.org>
parents:
diff changeset
27 hash = x_id & (table->size - 1);
Dave Love <fx@gnu.org>
parents:
diff changeset
28 /* Look up the bucket to get the entries in that bucket. */
Dave Love <fx@gnu.org>
parents:
diff changeset
29 bucket = &table->buckets[hash];
Dave Love <fx@gnu.org>
parents:
diff changeset
30 /* Get the first entry in the bucket. */
Dave Love <fx@gnu.org>
parents:
diff changeset
31 Entry = bucket->next;
Dave Love <fx@gnu.org>
parents:
diff changeset
32
Dave Love <fx@gnu.org>
parents:
diff changeset
33 /* Scan through the entries in the bucket for the right XId. */
Dave Love <fx@gnu.org>
parents:
diff changeset
34 for (; Entry != bucket; Entry = Entry->next) {
Dave Love <fx@gnu.org>
parents:
diff changeset
35 if (Entry->x_id == x_id) {
Dave Love <fx@gnu.org>
parents:
diff changeset
36 /* We have the right XId. */
Dave Love <fx@gnu.org>
parents:
diff changeset
37 if (Entry->display == dpy) {
Dave Love <fx@gnu.org>
parents:
diff changeset
38 /* We have the right display. */
Dave Love <fx@gnu.org>
parents:
diff changeset
39 /* We have the right entry! */
Dave Love <fx@gnu.org>
parents:
diff changeset
40 /* Remove it from the queue and */
Dave Love <fx@gnu.org>
parents:
diff changeset
41 /* free the entry. */
Dave Love <fx@gnu.org>
parents:
diff changeset
42 emacs_remque((struct qelem *)Entry);
Dave Love <fx@gnu.org>
parents:
diff changeset
43 free((char *)Entry);
Dave Love <fx@gnu.org>
parents:
diff changeset
44 return;
Dave Love <fx@gnu.org>
parents:
diff changeset
45 }
Dave Love <fx@gnu.org>
parents:
diff changeset
46 /* Oops, identical XId's on different displays! */
Dave Love <fx@gnu.org>
parents:
diff changeset
47 continue;
Dave Love <fx@gnu.org>
parents:
diff changeset
48 }
Dave Love <fx@gnu.org>
parents:
diff changeset
49 if (Entry->x_id > x_id) {
Dave Love <fx@gnu.org>
parents:
diff changeset
50 /* We have gone past where it should be. */
Dave Love <fx@gnu.org>
parents:
diff changeset
51 /* It is apparently not in the table. */
Dave Love <fx@gnu.org>
parents:
diff changeset
52 return;
Dave Love <fx@gnu.org>
parents:
diff changeset
53 }
Dave Love <fx@gnu.org>
parents:
diff changeset
54 }
Dave Love <fx@gnu.org>
parents:
diff changeset
55 /* It is apparently not in the table. */
Dave Love <fx@gnu.org>
parents:
diff changeset
56 return;
Dave Love <fx@gnu.org>
parents:
diff changeset
57 }
Dave Love <fx@gnu.org>
parents:
diff changeset
58
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 25858
diff changeset
59 /* arch-tag: 90981a7e-601c-487a-b364-cdf55d6c475b
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 25858
diff changeset
60 (do not change this comment) */