Mercurial > emacs
annotate lib-src/=etags-vmslib.c @ 31382:cde9770b21e0
Minor doc fixes.
(vc-default-mode-line-string): Show state
`needs-patch' as a `-' too.
(vc-after-save): Call vc-dired-resynch-file.
(vc-file-not-found-hook): Ask the user whether to
check out a non-existing file.
(vc-find-backend-function): If function doesn't
exist, return nil instead of error.
(vc-call-backend): Doc fix.
(vc-prefix-map): Move the autoload from vc.el.
(vc-simple-command): Removed.
(vc-handled-backends): Docstring change.
(vc-ignore-vc-files): Mark obsolete.
(vc-registered): Check vc-ignore-vc-files.
(vc-find-file-hook, vc-file-not-found-hook): Don't check
vc-ignore-vc-files.
(vc-parse-buffer): Lobotomize the monster.
(vc-simple-command): Docstring fix.
(vc-registered): Align the way the file-handler is called with the
way the function itself works.
(vc-file-owner): Remove.
(vc-header-alist): Move the dummy def from vc.el.
(vc-backend-hook-functions): Remove.
(vc-find-backend-function): Don't try to load vc-X-hooks anymore.
(vc-backend): Reintroduce the test for `file = nil' now that I
know why it was there (and added a comment to better remember).
Update Copyright.
(vc-backend): Don't accept a nil argument any more.
(vc-up-to-date-p): Turn into a defsubst.
(vc-possible-master): New function.
(vc-check-master-templates): Use `vc-possible-master' and allow
funs in vc-X-master-templates to return a non-existent file.
(vc-loadup): Remove.
(vc-find-backend-function): Use `require'. Also, handle the case
where vc-BACKEND-hooks.el doesn't exist.
(vc-call-backend): Cleanup.
(vc-find-backend-function): Return a cons cell if
using the default function.
(vc-call-backend): If calling the default function, pass it the
backend as first argument. Update the docstring accordingly.
(vc-default-state-heuristic, vc-default-mode-line-string): Update
for the new backend argument.
(vc-make-backend-sym): Renamed from vc-make-backend-function.
(vc-find-backend-function): Use the new name.
(vc-default-registered): New function.
(vc-backend-functions): Remove.
(vc-loadup): Don't setup 'vc-functions.
(vc-find-backend-function): New function.
(vc-call-backend): Use above fun and populate 'vc-functions
lazily.
(vc-backend-defines): Remove.
(vc-backend-hook-functions, vc-backend-functions)
(vc-make-backend-function, vc-call): Pass names without leading
`vc-' to vc-call-backend so we can blindly prefix them with
vc-BACKEND.
(vc-loadup): Don't load vc-X-hooks if vc-X is requested.
(vc-call-backend): Always try to load vc-X-hooks.
(vc-registered): Remove vc- in call to vc-call-backend.
(vc-default-back-end, vc-buffer-backend): Remove.
(vc-kill-buffer-hook): Remove `vc-buffer-backend' handling.
(vc-loadup): Load files quietly.
(vc-call-backend): Oops, brain fart.
(vc-locking-user): If locked by the calling user,
return that name. Redocumented.
(vc-user-login-name): Simplify the code a tiny bit.
(vc-state): Don't use 'reserved any more. Just use the same
convention as the one used for vc-<backend>-state where the
locking user (as a string) is returned.
(vc-locking-user): Update, based on the above convention. The
'vc-locking-user property has disappeared.
(vc-mode-line, vc-default-mode-line-string): Adapt to new
`vc-state'.
(vc-backend-functions): Removed vc-toggle-read-only.
(vc-toggle-read-only): Undid prev change.
(vc-master-templates): Def the obsolete var.
(vc-file-prop-obarray): Use `make-vector'.
(vc-backend-functions): Add new hookable functions
vc-toggle-read-only, vc-record-rename and vc-merge-news.
(vc-loadup): If neither backend nor default functions exist, use
the backend function rather than nil.
(vc-call-backend): If the function if not bound yet, try to load
the non-hook file to see if it provides it.
(vc-call): New macro plus use it wherever possible.
(vc-backend-subdirectory-name): Use neither `vc-default-back-end'
nor `vc-find-binary' since it's only called from
vc-mistrust-permission which is only used once the backend is
known.
(vc-checkout-model): Fix parenthesis.
(vc-recompute-state, vc-prefix-map): Move to vc.el.
(vc-backend-functions): Renamed `vc-steal' to
`vc-steal-lock'.
(vc-call-backend): Changed error message.
(vc-state): Added description of state `unlocked-changes'.
(vc-backend-hook-functions, vc-backend-functions):
Updated function lists.
(vc-call-backend): Fixed typo.
(vc-backend-hook-functions): Renamed vc-uses-locking
to vc-checkout-model.
(vc-checkout-required): Renamed to vc-checkout-model.
Re-implemented and re-commented.
(vc-after-save): Use vc-checkout-model.
(vc-backend-functions): Added `vc-diff' to the list
of functions possibly implemented in a vc-BACKEND library.
(vc-checkout-required): Bug fixed that caused an error to be
signaled during `vc-after-save'.
(vc-backend-hook-functions): `vc-checkout-required'
updated to `vc-uses-locking'.
(vc-checkout-required): Call to backend function
`vc-checkout-required' updated to `vc-uses-locking' instead.
(vc-parse-buffer): Bug found and fixed.
(vc-backend-functions): `vc-annotate-command',
`vc-annotate-difference' added to supported backend functions.
vc-state-heuristic added to
vc-backend-hook-functions.
Implemented new state model.
(vc-state, vc-state-heuristic, vc-default-state-heuristic): New
functions.
(vc-locking-user): Simplified. Now only needed if the file is
locked by somebody else.
(vc-lock-from-permissions): Removed. Functionality is in
vc-sccs-hooks.el and vc-rcs-hooks.el now.
(vc-mode-line-string): New name for former vc-status. Adapted.
(vc-mode-line): Adapted to use the above. Removed optional
parameter.
(vc-master-templates): Is really obsolete.
Commented out the definition for now. What is the right procedure
to get rid of it?
(vc-registered, vc-backend, vc-buffer-backend, vc-name): Largely
rewritten.
(vc-default-registered): Removed.
(vc-check-master-templates): New function; does mostly what the
above did before.
(vc-locking-user): Don't rely on the backend to set the property.
(vc-latest-version, vc-your-latest-version): Removed.
(vc-backend-hook-functions): Removed them from this list, too.
(vc-fetch-properties): Removed.
(vc-workfile-version): Doc fix.
(vc-consult-rcs-headers):
Moved into vc-rcs-hooks.el, under the name
vc-rcs-consult-headers.
(vc-master-locks, vc-master-locking-user):
Moved into both
vc-rcs-hooks.el and vc-sccs-hooks.el. These properties and access
functions are implementation details of those two backends.
(vc-parse-locks, vc-fetch-master-properties): Split
into back-end specific parts and removed. Callers not updated
yet; because I guess these callers will disappear into back-end
specific files anyway.
(vc-checkout-model): Renamed to vc-uses-locking.
Store yes/no in the property, and return t/nil. Updated all
callers.
(vc-checkout-model): Punt to backends.
(vc-default-locking-user): New function.
(vc-locking-user, vc-workfile-version): Punt to backends.
(vc-rcsdiff-knows-brief, vc-rcs-lock-from-diff)
(vc-master-workfile-version): Moved from vc-hooks.
(vc-lock-file): Moved to vc-sccs-hooks and renamed.
(vc-handle-cvs, vc-cvs-parse-status, vc-cvs-status):
Moved to vc-cvs-hooks.
Add doc strings in various places. Simplify the
minor mode setup.
(vc-handled-backends): New user variable.
(vc-parse-buffer, vc-insert-file, vc-default-registered): Minor
simplification.
(vc-backend-hook-functions, vc-backend-functions):
New variable.
(vc-make-backend-function, vc-loadup, vc-call-backend)
(vc-backend-defines): New functions.
Various doc fixes.
(vc-default-back-end, vc-follow-symlinks): Custom fix.
(vc-match-substring): Function removed. Callers changed to use
match-string.
(vc-lock-file, vc-consult-rcs-headers, vc-kill-buffer-hook):
Simplify.
vc-registered has been renamed
vc-default-registered. Some functions have been moved to the
backend specific files. they all support the
vc-BACKEND-registered functions.
This is 1.113 from the emacs sources
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Mon, 04 Sep 2000 19:47:25 +0000 |
parents | 4df2f432697b |
children |
rev | line source |
---|---|
15 | 1 /* File name wild card expansion for VMS. |
2 This file is part of the etags program. | |
6113 | 3 Copyright (C) 1987 Free Software Foundation, Inc. |
15 | 4 |
6113 | 5 This program is free software; you can redistribute it and/or modify |
6 it under the terms of the GNU General Public License as published by | |
7 the Free Software Foundation; either version 2, or (at your option) | |
8 any later version. | |
9 | |
10 This program is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 GNU General Public License for more details. | |
14 | |
15 You should have received a copy of the GNU General Public License | |
16 along with this program; if not, write to the Free Software | |
17 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
15 | 18 |
19 #include <stdio.h> | |
20 typedef char tbool; | |
21 | |
22 /* This is a BUG! ANY arbitrary limit is a BUG! | |
23 Won't someone please fix this? */ | |
24 #define MAX_FILE_SPEC_LEN 255 | |
25 typedef struct { | |
26 short curlen; | |
27 char body[MAX_FILE_SPEC_LEN + 1]; | |
28 } vspec; | |
29 #define EOS '\0' | |
30 #define NO 0 | |
31 #define YES 1 | |
32 #define NULL 0 | |
33 | |
6113 | 34 /* gfnames - return in successive calls the |
15 | 35 name of each file specified by all the remaining args in the command-line |
36 expanding wild cards and | |
37 stepping over arguments when they have been processed completely | |
38 */ | |
39 char* | |
40 gfnames(pac, pav, p_error) | |
41 int *pac; | |
42 char **pav[]; | |
43 tbool *p_error; | |
44 { | |
45 static vspec filename = {MAX_FILE_SPEC_LEN, "\0"}; | |
46 short fn_exp(); | |
47 | |
48 while (1) | |
49 if (*pac == 0) | |
50 { | |
51 *p_error = NO; | |
52 return(NULL); | |
53 } | |
54 else switch(fn_exp(&filename, **pav)) | |
55 { | |
56 case 1: | |
57 *p_error = NO; | |
58 return(filename.body); | |
59 break; | |
60 case 0: | |
61 --*pac; | |
62 ++*pav; | |
63 break; | |
64 default: | |
65 *p_error = YES; | |
66 return(filename.body); | |
67 break; | |
68 } | |
69 | |
70 } | |
71 | |
6113 | 72 /* fn_exp - expand specification of list of file names |
15 | 73 returning in each successive call the next filename matching the input |
74 spec. The function expects that each in_spec passed | |
75 to it will be processed to completion; in particular, up to and | |
76 including the call following that in which the last matching name | |
77 is returned, the function ignores the value of in_spec, and will | |
78 only start processing a new spec with the following call. | |
79 If an error occurs, on return out_spec contains the value | |
80 of in_spec when the error occurred. | |
81 | |
82 With each successive filename returned in out_spec, the | |
83 function's return value is one. When there are no more matching | |
84 names the function returns zero. If on the first call no file | |
85 matches in_spec, or there is any other error, -1 is returned. | |
86 */ | |
87 | |
88 #include <rmsdef.h> | |
89 #include <descrip.h> | |
90 #define OUTSIZE MAX_FILE_SPEC_LEN | |
91 short | |
92 fn_exp(out, in) | |
93 vspec *out; | |
94 char *in; | |
95 { | |
96 static long context = 0; | |
97 static struct dsc$descriptor_s o; | |
98 static struct dsc$descriptor_s i; | |
99 static tbool pass1 = YES; | |
100 long status; | |
101 short retval; | |
102 | |
103 if (pass1) | |
104 { | |
105 pass1 = NO; | |
615 | 106 o.dsc$a_pointer = (char *) out; |
15 | 107 o.dsc$w_length = (short)OUTSIZE; |
108 i.dsc$a_pointer = in; | |
109 i.dsc$w_length = (short)strlen(in); | |
110 i.dsc$b_dtype = DSC$K_DTYPE_T; | |
111 i.dsc$b_class = DSC$K_CLASS_S; | |
112 o.dsc$b_dtype = DSC$K_DTYPE_VT; | |
113 o.dsc$b_class = DSC$K_CLASS_VS; | |
114 } | |
115 if ( (status = lib$find_file(&i, &o, &context, 0, 0)) == RMS$_NORMAL) | |
116 { | |
117 out->body[out->curlen] = EOS; | |
118 return(1); | |
119 } | |
120 else if (status == RMS$_NMF) | |
121 retval = 0; | |
122 else | |
123 { | |
124 strcpy(out->body, in); | |
125 retval = -1; | |
126 } | |
127 lib$find_file_end(&context); | |
128 pass1 = YES; | |
129 return(retval); | |
130 } | |
131 | |
132 #ifndef OLD /* Newer versions of VMS do provide `system'. */ | |
133 system(cmd) | |
134 char *cmd; | |
135 { | |
136 fprintf(stderr, "system() function not implemented under VMS\n"); | |
137 } | |
138 #endif | |
139 | |
140 #define VERSION_DELIM ';' | |
141 char *massage_name(s) | |
142 char *s; | |
143 { | |
144 char *start = s; | |
145 | |
146 for ( ; *s; s++) | |
147 if (*s == VERSION_DELIM) | |
148 { | |
149 *s = EOS; | |
150 break; | |
151 } | |
152 else | |
153 *s = tolower(*s); | |
154 return(start); | |
155 } |