annotate oldXMenu/InsSel.c @ 49506:ac9e2eeeb03d

New format of AUTHORS file; list each author name once followed by contributed and changed files. Improve selection of entries to include in list, and generate list of unrecognized entries indicating syntax errors in ChangeLog files. (authors-coding-system): New variable. (authors-many-files): Update doc string. (authors-aliases): Change format. Now one entry with multiple aliases per author. (authors-valid-file-names, authors-renamed-files-alist) (authors-renamed-files-regexps): New variables. (authors-canonical-file-name): New function. Validates that file exists or occurs in one of the above lists. Record unrecognized file names in global authors-invalid-file-names list. (authors-add): Change to record per-change counts. (authors-canonical-author-name): Handle new format of authors-aliases list. (authors-scan-change-log): Rename FILE arg to LOG-FILE. Change doc string to describe new entry format. Only add author entries for valid file names. (authors-print): Replace by authors-add-to-author-list. (authors-add-to-author-list): New function which reorders per-file entries and adds them to global authors-author-list. (authors): Instead of authors-print to insert in *Authors* buffer, use authors-add-to-author-list to reorder the list and then insert result in *Authors* buffer with new format. Generate *Authors Errors* compilation-mode buffer listing unrecognized ChangeLog entries.
author Kim F. Storm <storm@cua.dk>
date Wed, 29 Jan 2003 00:13:11 +0000
parents bbce331da1be
children 23a1cea22d13
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
1 #include "copyright.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
2
Dave Love <fx@gnu.org>
parents:
diff changeset
3 /* $Header: /u/src/emacs/19.0/oldXMenu/RCS/InsSel.c,v 1.1 1992/04/11 22:10:19 jimb Exp $ */
Dave Love <fx@gnu.org>
parents:
diff changeset
4 /* Copyright Massachusetts Institute of Technology 1985 */
Dave Love <fx@gnu.org>
parents:
diff changeset
5
Dave Love <fx@gnu.org>
parents:
diff changeset
6 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
7 * XMenu: MIT Project Athena, X Window system menu package
Dave Love <fx@gnu.org>
parents:
diff changeset
8 *
Dave Love <fx@gnu.org>
parents:
diff changeset
9 * XMenuInsertSelection - Inserts a selection into an XMenu object
Dave Love <fx@gnu.org>
parents:
diff changeset
10 *
Dave Love <fx@gnu.org>
parents:
diff changeset
11 * Author: Tony Della Fera, DEC
Dave Love <fx@gnu.org>
parents:
diff changeset
12 * 20-Nov-85
Dave Love <fx@gnu.org>
parents:
diff changeset
13 *
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 #include <config.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
17 #include "XMenuInt.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
18
Dave Love <fx@gnu.org>
parents:
diff changeset
19 int
Dave Love <fx@gnu.org>
parents:
diff changeset
20 XMenuInsertSelection(menu, p_num, s_num, data, label, active)
Dave Love <fx@gnu.org>
parents:
diff changeset
21 register XMenu *menu; /* Menu object to be modified. */
Dave Love <fx@gnu.org>
parents:
diff changeset
22 register int p_num; /* Pane number to be modified. */
Dave Love <fx@gnu.org>
parents:
diff changeset
23 register int s_num; /* Selection number of new selection. */
Dave Love <fx@gnu.org>
parents:
diff changeset
24 char *data; /* Data value. */
Dave Love <fx@gnu.org>
parents:
diff changeset
25 char *label; /* Selection label. */
Dave Love <fx@gnu.org>
parents:
diff changeset
26 int active; /* Make selection active? */
Dave Love <fx@gnu.org>
parents:
diff changeset
27 {
Dave Love <fx@gnu.org>
parents:
diff changeset
28 register XMPane *p_ptr; /* XMPane pointer. */
Dave Love <fx@gnu.org>
parents:
diff changeset
29 register XMSelect *s_ptr; /* XMSelect pointer. */
Dave Love <fx@gnu.org>
parents:
diff changeset
30
Dave Love <fx@gnu.org>
parents:
diff changeset
31 XMSelect *select; /* Newly created selection. */
Dave Love <fx@gnu.org>
parents:
diff changeset
32
Dave Love <fx@gnu.org>
parents:
diff changeset
33 int label_length; /* Label length in characters. */
Dave Love <fx@gnu.org>
parents:
diff changeset
34 int label_width; /* Label width in pixels. */
Dave Love <fx@gnu.org>
parents:
diff changeset
35
Dave Love <fx@gnu.org>
parents:
diff changeset
36 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
37 * Check for NULL pointers!
Dave Love <fx@gnu.org>
parents:
diff changeset
38 */
Dave Love <fx@gnu.org>
parents:
diff changeset
39 if (label == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
40 _XMErrorCode = XME_ARG_BOUNDS;
Dave Love <fx@gnu.org>
parents:
diff changeset
41 return(XM_FAILURE);
Dave Love <fx@gnu.org>
parents:
diff changeset
42 }
Dave Love <fx@gnu.org>
parents:
diff changeset
43
Dave Love <fx@gnu.org>
parents:
diff changeset
44 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
45 * Find the right pane.
Dave Love <fx@gnu.org>
parents:
diff changeset
46 */
Dave Love <fx@gnu.org>
parents:
diff changeset
47 p_ptr = _XMGetPanePtr(menu, p_num);
Dave Love <fx@gnu.org>
parents:
diff changeset
48 if (p_ptr == NULL) return(XM_FAILURE);
Dave Love <fx@gnu.org>
parents:
diff changeset
49
Dave Love <fx@gnu.org>
parents:
diff changeset
50 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
51 * Find the selection number one less than the one specified since that
Dave Love <fx@gnu.org>
parents:
diff changeset
52 * is the selection after which the insertion will occur.
Dave Love <fx@gnu.org>
parents:
diff changeset
53 */
Dave Love <fx@gnu.org>
parents:
diff changeset
54 s_ptr = _XMGetSelectionPtr(p_ptr, (s_num - 1));
Dave Love <fx@gnu.org>
parents:
diff changeset
55 if (s_ptr == NULL) return(XM_FAILURE);
Dave Love <fx@gnu.org>
parents:
diff changeset
56
Dave Love <fx@gnu.org>
parents:
diff changeset
57 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
58 * Calloc the XMSelect structure.
Dave Love <fx@gnu.org>
parents:
diff changeset
59 */
Dave Love <fx@gnu.org>
parents:
diff changeset
60 select = (XMSelect *)calloc(1, sizeof(XMSelect));
Dave Love <fx@gnu.org>
parents:
diff changeset
61 if (select == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
62 _XMErrorCode = XME_CALLOC;
Dave Love <fx@gnu.org>
parents:
diff changeset
63 return(XM_FAILURE);
Dave Love <fx@gnu.org>
parents:
diff changeset
64 }
Dave Love <fx@gnu.org>
parents:
diff changeset
65
Dave Love <fx@gnu.org>
parents:
diff changeset
66 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
67 * Determine label size.
Dave Love <fx@gnu.org>
parents:
diff changeset
68 */
Dave Love <fx@gnu.org>
parents:
diff changeset
69 label_length = strlen(label);
Dave Love <fx@gnu.org>
parents:
diff changeset
70 label_width = XTextWidth(menu->s_fnt_info, label, label_length);
Dave Love <fx@gnu.org>
parents:
diff changeset
71
Dave Love <fx@gnu.org>
parents:
diff changeset
72
Dave Love <fx@gnu.org>
parents:
diff changeset
73 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
74 * Fill the XMSelect structure.
Dave Love <fx@gnu.org>
parents:
diff changeset
75 */
Dave Love <fx@gnu.org>
parents:
diff changeset
76 if (!strcmp (label, "--") || !strcmp (label, "---"))
Dave Love <fx@gnu.org>
parents:
diff changeset
77 {
Dave Love <fx@gnu.org>
parents:
diff changeset
78 select->type = SEPARATOR;
Dave Love <fx@gnu.org>
parents:
diff changeset
79 select->active = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
80 }
Dave Love <fx@gnu.org>
parents:
diff changeset
81 else
Dave Love <fx@gnu.org>
parents:
diff changeset
82 {
Dave Love <fx@gnu.org>
parents:
diff changeset
83 select->type = SELECTION;
Dave Love <fx@gnu.org>
parents:
diff changeset
84 select->active = active;
Dave Love <fx@gnu.org>
parents:
diff changeset
85 }
Dave Love <fx@gnu.org>
parents:
diff changeset
86
Dave Love <fx@gnu.org>
parents:
diff changeset
87 select->active = active;
Dave Love <fx@gnu.org>
parents:
diff changeset
88 select->serial = -1;
Dave Love <fx@gnu.org>
parents:
diff changeset
89 select->label = label;
Dave Love <fx@gnu.org>
parents:
diff changeset
90 select->label_width = label_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
91 select->label_length = label_length;
Dave Love <fx@gnu.org>
parents:
diff changeset
92 select->data = data;
Dave Love <fx@gnu.org>
parents:
diff changeset
93 select->parent_p = p_ptr;
Dave Love <fx@gnu.org>
parents:
diff changeset
94
Dave Love <fx@gnu.org>
parents:
diff changeset
95 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
96 * Insert the selection after the selection with the selection
Dave Love <fx@gnu.org>
parents:
diff changeset
97 * number one less than the desired number for the new selection.
Dave Love <fx@gnu.org>
parents:
diff changeset
98 */
Dave Love <fx@gnu.org>
parents:
diff changeset
99 emacs_insque(select, s_ptr);
Dave Love <fx@gnu.org>
parents:
diff changeset
100
Dave Love <fx@gnu.org>
parents:
diff changeset
101 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
102 * Update the selection count.
Dave Love <fx@gnu.org>
parents:
diff changeset
103 */
Dave Love <fx@gnu.org>
parents:
diff changeset
104 p_ptr->s_count++;
Dave Love <fx@gnu.org>
parents:
diff changeset
105
Dave Love <fx@gnu.org>
parents:
diff changeset
106 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
107 * Schedule a recompute.
Dave Love <fx@gnu.org>
parents:
diff changeset
108 */
Dave Love <fx@gnu.org>
parents:
diff changeset
109 menu->recompute = 1;
Dave Love <fx@gnu.org>
parents:
diff changeset
110
Dave Love <fx@gnu.org>
parents:
diff changeset
111 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
112 * Return the selection number just inserted.
Dave Love <fx@gnu.org>
parents:
diff changeset
113 */
Dave Love <fx@gnu.org>
parents:
diff changeset
114 _XMErrorCode = XME_NO_ERROR;
Dave Love <fx@gnu.org>
parents:
diff changeset
115 return(s_num);
Dave Love <fx@gnu.org>
parents:
diff changeset
116 }