Mercurial > emacs
annotate oldXMenu/FindSel.c @ 110017:10e66ac64b61
Merge Finder and package-menu functionality.
* lisp/finder.el: Require `package'.
(finder-known-keywords): Tweak descriptions. Retire `oop' keyword.
(finder-package-info): Var deleted.
(finder-keywords-hash, finder--builtins-alist): New vars.
(finder-compile-keywords): Compute package--builtins and
finder-keywords-hash instead of finder-keywords-hash, respecting
the "Package" header.
(finder-unknown-keywords, finder-list-matches): Use
finder-keywords-hash and package--list-packages.
(finder-mode): Don't set font-lock-defaults.
(finder-exit): We don't use "*Finder-package*" and "*Finder
Category*" buffers anymore.
* lisp/info.el (Info-finder-find-node): Search package-alist instead of
finder-package-info.
* lisp/emacs-lisp/package.el (package--builtins-base): Var deleted.
(package--builtins): Set default value to nil.
(package-initialize): Load precomputed value of package--builtins
from finder-inf.el.
(package-alist, package-compute-transaction)
(package-download-transaction): Improve docstring.
(package-read-all-archive-contents): Do not change
package--builtins here.
(list-packages): Make package-list-packages an alias for this.
Sort by status by default.
(package--list-packages): Add optional PACKAGES arg.
(describe-package-1): Use font-lock-face property. For built-in
packages, insert file commentary.
(package--generate-package-list): Rename from
package-list-packages-internal; all callers changed. Add optional
PACKAGES arg. Add alphabetical sort fallbacks.
(package-menu--version-predicate, package-menu--status-predicate)
(package-menu--description-predicate)
(package-menu--name-predicate): New functions.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 29 Aug 2010 18:15:09 -0400 |
parents | 5cc91198ffb2 |
children | 417b1e4d63cd |
rev | line source |
---|---|
100952 | 1 /* Copyright Massachusetts Institute of Technology 1985 */ |
2 | |
25858 | 3 #include "copyright.h" |
4 | |
100952 | 5 /* |
6 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, | |
106815 | 7 2009, 2010 Free Software Foundation, Inc. |
100952 | 8 |
9 This program is free software: you can redistribute it and/or modify | |
10 it under the terms of the GNU General Public License as published by | |
11 the Free Software Foundation, either version 3 of the License, or | |
12 (at your option) any later version. | |
13 | |
14 This program is distributed in the hope that it will be useful, | |
15 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 GNU General Public License for more details. | |
18 | |
19 You should have received a copy of the GNU General Public License | |
20 along with this program. If not, see <http://www.gnu.org/licenses/>. | |
21 */ | |
25858 | 22 |
23 /* | |
24 * XMenu: MIT Project Athena, X Window system menu package | |
25 * | |
26 * XMenuFindSelection - Find the first selection in a pane who's | |
27 * label matches a particular string. | |
28 * | |
29 * Author: Tony Della Fera, DEC | |
30 * January 22, 1986 | |
31 * | |
32 */ | |
33 | |
34 #include "XMenuInt.h" | |
35 | |
36 int | |
109124
5cc91198ffb2
Convert function definitions in oldXMenu to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
37 XMenuFindSelection(register XMenu *menu, int p_num, register char *label) |
25858 | 38 { |
39 register XMPane *p_ptr; | |
40 register XMSelect *s_ptr; | |
41 register int i = 0; | |
42 | |
43 /* | |
44 * Check for NULL pointers! | |
45 */ | |
46 if (label == NULL) { | |
47 _XMErrorCode = XME_ARG_BOUNDS; | |
48 return(XM_FAILURE); | |
49 } | |
50 | |
51 /* | |
52 * Find the right pane. | |
53 */ | |
54 p_ptr = _XMGetPanePtr(menu, p_num); | |
55 if (p_ptr == NULL) return(XM_FAILURE); | |
56 | |
57 /* | |
58 * Find the right selection. | |
59 */ | |
60 for ( | |
61 s_ptr = p_ptr->s_list->next; | |
62 s_ptr != p_ptr->s_list; | |
63 s_ptr = s_ptr->next | |
64 ){ | |
65 if (s_ptr->label_length == 0) { | |
66 if (*label == '\0') { | |
67 _XMErrorCode = XME_NO_ERROR; | |
68 return (i); | |
69 } | |
70 } | |
71 else { | |
72 if (strncmp (label, s_ptr->label, s_ptr->label_length) == 0) { | |
73 _XMErrorCode = XME_NO_ERROR; | |
74 return (i); | |
75 } | |
76 } | |
77 i++; | |
78 } | |
79 | |
80 /* | |
81 * If we get here then we have not found | |
82 * a match. | |
83 */ | |
84 _XMErrorCode = XME_S_NOT_FOUND; | |
85 return (XM_FAILURE); | |
86 } | |
52401 | 87 |
88 /* arch-tag: 564a4a95-9ab0-4580-b05f-6970c4b25dd4 | |
89 (do not change this comment) */ |