annotate etc/LEDIT @ 31384:f6cb7dfe5e7c

(vc-cvs-show-log-entry): New function. (vc-cvs-stay-local): Allow it to be a hostname regexp as well. (vc-cvs-remote-p): Renamed to vc-cvs-stay-local-p. Handle hostname regexps. Updated all callers. (vc-cvs-responsible-p): Handle directories as well. (vc-cvs-could-register): New function. (vc-cvs-retrieve-snapshot): Parse "cvs update" output, keep file properties up-to-date. (vc-cvs-checkout): Do the right thing when the workfile does not exist. (vc-cvs-registered): Use new function vc-cvs-parse-entry to do the actual work. (vc-cvs-remote-p): Allow FILE to be a directory, too. (vc-cvs-dir-state): New function. (vc-cvs-dir-state-heuristic): New function, subroutine of the above. (vc-cvs-parse-entry): New function, also to be used in vc-cvs-registered. (vc-cvs-checkout): Slight restructuring to make the control-flow more clear and to avoid running `cvs' twice. (vc-cvs-workfile-version): Removed comment that this is not reached. It is. (vc-cvs-merge): Set state to 'edited after merge. (vc-cvs-merge-news): Set workfile version to nil if not known. (vc-cvs-latest-on-branch-p): Recommented. Candidate for removal. (vc-cvs-checkin): Raise the max-correct status from 0 to 1. Make sure to switch to *vc* before looking for an error message. Use vc-parse-buffer. (vc-cvs-create-snapshot): Swap DIR and NAME. (vc-cvs-retrieve-snapshot): New function (untested). (vc-cvs-stay-local): Default to t. (vc-cvs-remote-p): New function and property. (vc-cvs-state): Stay local only if the above is t. (vc-handle-cvs): Removed. (vc-cvs-registered): Don't check vc-handle-cvs -- it should all be done via vc-handled-backends now. (vc-cvs-header): Escape Id. (vc-cvs-state, vc-cvs-fetch-status): Use with-temp-file. Use the new BUFFER=t argument to vc-do-command. (vc-cvs-print-log, vc-cvs-diff): Insert in the current buffer. (vc-cvs-state): Use vc-do-command instead of vc-simple-command. (vc-cvs-diff): Remove unused and unsupported argument CMP. (vc-cvs-registered): Obey vc-handle-cvs. (vc-cvs-registered): Use with-temp-buffer. Reorder extraction of fields and call to file-attributes because of a temporary bug in rcp.el. (vc-cvs-fetch-status): Use with-current-buffer. Merge in code from vc-cvs-hooks.el. (proto vc-cvs-registered): Require 'vc-cvs instead of 'vc-cvs-hooks. Don't require 'vc anymore. (vc-cvs-responsible-p): Use expand-file-name instead of concat and file-directory-p instead of file-exists-p. (vc-cvs-create-snapshot): New function, replacing vc-cvs-assign-name. (vc-cvs-assign-name): Remove. (vc-cvs-header): New var. Update Copyright. (vc-cvs-diff): Remove unused `backend' variable. (vc-cvs-checkout): Only toggle read-only if the buffer is setup right. (tail): Provide vc-cvs. (vc-cvs-merge-news, vc-cvs-checkout): Removed call to vc-file-clear-masterprops. (vc-cvs-state): Typo. (vc-cvs-merge-news): Return the status code rather than the error msg. (vc-cvs-state): Don't overwrite a non-heuristic state with a heuristic one. (vc-cvs-merge-news): Just use 'edited for the case with conflicts. (vc-cvs-checkin): Do a trivial parse to set the state in case of error. That allows us to get to 'needs-merge even in the stay-local case. There's still no way to detect 'needs-patch in such a setup (or to force an update for that matter). (vc-cvs-logentry-check): Remove, the default works as well. (vc-cvs-print-log, vc-cvs-diff): Run cvs asynchronously. (vc-cvs-stay-local): Renamed from vc-cvs-simple-toggle. Redocumented. (vc-cvs-state): If locality is wanted, use vc-cvs-state-heuristic. (vc-cvs-toggle-read-only): Removed. (for compiler warnings). (vc-cvs-release, vc-cvs-system-release): Remove. (vc-cvs-use-edit, vc-cvs-simple-toggle): New config variables. (vc-cvs-dired-state-info): Use `cvs-state' and slightly different status symbols. (vc-cvs-parse-status, vc-cvs-state): Move from vc-cvs-hooks.el. (vc-cvs-toggle-read-only): First cut at a function to allow a cvs-status-free vc-toggle-read-only. (vc-cvs-merge-news): Move from cvs-merge-news in vc.el. (vc-cvs-checkin): Use vc-recompute-state+vc-state instead of vc-cvs-status. Also set vc-state rather than vc-locking-user. (vc-cvs-checkout): Modify access rights directly if the user requested not to use `cvs edit'. And refresh the mode line. (if workfile' that got lost when the code was extracted from vc.el. And merged the tail with the rest of the code (not possible in the old vc.el where the tail was shared among all backends). And explicitly set the state to 'edited if `writable' is set. (vc-cvs-revert,vc-cvs-checkout): References to `vc-checkout-model' updated to `vc-cvs-update-model'. (vc-cvs-logentry-check): Function added. (vc-cvs-revert,vc-cvs-checkout): Function calls to `vc-checkout-required' updated to `vc-cvs-uses-locking'. (vc-cvs-admin): Added the query-only option as required by the vc.el file. (vc-cvs-annotate-difference): Updated to handle beginning of annotate buffers correctly. Rename `vc-uses-locking' to `vc-checkout-required'. Rename the `locked' state to `reserved'. (vc-cvs-annotate-difference): Handle possible millenium problem (merged from mainline). Split the annotate feature into a BACKEND-specific part and moved the non-BACKEND stuff to vc.el. (vc-cvs-latest-on-branch-p): Function added. (vc-cvs-revert): Merged and adapted "unedit" patch from main line. (vc-cvs-diff): Function added. (vc-cvs-checkout): Function `vc-cvs-checkout' added. Require vc when compiling. (vc-cvs-register-switches): Doc fix. (vc-annotate-color-map, vc-annotate-menu-elements): Fix custom type. (vc-cvs-print-log, vc-cvs-assign-name, vc-cvs-merge) (vc-cvs-check-headers, vc-cvs-steal, vc-cvs-revert, vc-cvs-checkin): New functions (code from vc.el). (vc-annotate-display-default): Fix interactive spec. (vc-annotate-time-span): Doc fix. Moved the annotate functionality from vc.el. (vc-cvs-admin, vc-cvs-fetch-status): Added from vc.el. (vc-cvs-system-release): Renamed from vc-cvs-backend-release. (vc-cvs-release): Moved from vc.el. (vc-cvs-backend-release): New function. (vc-cvs-dired-state-info, vc-cvs-fetch-status): Moved from vc.el and renamed.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 04 Sep 2000 19:48:04 +0000
parents bd1d7d04426c
children 23a1cea22d13
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25928
Dave Love <fx@gnu.org>
parents:
diff changeset
1 Date: 17 Apr 85 15:45:42 EST (Wed)
Dave Love <fx@gnu.org>
parents:
diff changeset
2 From: Martin David Connor <mdc@MIT-HTVAX.ARPA>
Dave Love <fx@gnu.org>
parents:
diff changeset
3
Dave Love <fx@gnu.org>
parents:
diff changeset
4 Date: Sat, 13 Apr 85 16:28:15 est
Dave Love <fx@gnu.org>
parents:
diff changeset
5 From: Richard M. Stallman <rms@mit-prep>
Dave Love <fx@gnu.org>
parents:
diff changeset
6
Dave Love <fx@gnu.org>
parents:
diff changeset
7 Can you help this person? Also, can you give me the rest of ledit
Dave Love <fx@gnu.org>
parents:
diff changeset
8 to distribute, plus some info on how to use it?
Dave Love <fx@gnu.org>
parents:
diff changeset
9
Dave Love <fx@gnu.org>
parents:
diff changeset
10 I have put the files "ledit.l" and "leditcfns.c" on prep:~mdc.
Dave Love <fx@gnu.org>
parents:
diff changeset
11 Much to my disgust ledit.l relied on some bogus little package of
Dave Love <fx@gnu.org>
parents:
diff changeset
12 functions on HT, so I had to massage it a bit.
Dave Love <fx@gnu.org>
parents:
diff changeset
13
Dave Love <fx@gnu.org>
parents:
diff changeset
14 To get it to work, one must:
Dave Love <fx@gnu.org>
parents:
diff changeset
15
Dave Love <fx@gnu.org>
parents:
diff changeset
16 - Compile leditcfns.c with something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
17
Dave Love <fx@gnu.org>
parents:
diff changeset
18 cc leditcfns.c
Dave Love <fx@gnu.org>
parents:
diff changeset
19
Dave Love <fx@gnu.org>
parents:
diff changeset
20 - Edit ledit.l, changing the line beginning "(cfasl" to
Dave Love <fx@gnu.org>
parents:
diff changeset
21 have the right pathname for the cfns file you compiled in
Dave Love <fx@gnu.org>
parents:
diff changeset
22 the last step.
Dave Love <fx@gnu.org>
parents:
diff changeset
23
Dave Love <fx@gnu.org>
parents:
diff changeset
24 - Compile ledit.l with:
Dave Love <fx@gnu.org>
parents:
diff changeset
25
Dave Love <fx@gnu.org>
parents:
diff changeset
26 liszt ledit.l
Dave Love <fx@gnu.org>
parents:
diff changeset
27
Dave Love <fx@gnu.org>
parents:
diff changeset
28 Then put the following lines in your .lisprc file:
Dave Love <fx@gnu.org>
parents:
diff changeset
29
Dave Love <fx@gnu.org>
parents:
diff changeset
30 ;load in functions for emacs interface
Dave Love <fx@gnu.org>
parents:
diff changeset
31 (load "//src//mdc//ledit//ledit") ; Location of Ledit library
Dave Love <fx@gnu.org>
parents:
diff changeset
32 (set-proc-str "%gnumacs") ; Name of editor
Dave Love <fx@gnu.org>
parents:
diff changeset
33
Dave Love <fx@gnu.org>
parents:
diff changeset
34 Then you can use ^E <RETURN> to get from LISP back to gnumacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
35
Dave Love <fx@gnu.org>
parents:
diff changeset
36 Here is the part of my .emacs file that pertains to ledit.
Dave Love <fx@gnu.org>
parents:
diff changeset
37
Dave Love <fx@gnu.org>
parents:
diff changeset
38 ;;; Set up ledit mode
Dave Love <fx@gnu.org>
parents:
diff changeset
39 (setq ledit-go-to-lisp-string "%lisp")
Dave Love <fx@gnu.org>
parents:
diff changeset
40 (setq lisp-mode-hook 'ledit-from-lisp-mode)
Dave Love <fx@gnu.org>
parents:
diff changeset
41
Dave Love <fx@gnu.org>
parents:
diff changeset
42 Date: Sat, 13 Apr 85 11:26:32 cst
Dave Love <fx@gnu.org>
parents:
diff changeset
43 From: neves@wisc-ai.arpa (David Neves)
Dave Love <fx@gnu.org>
parents:
diff changeset
44
Dave Love <fx@gnu.org>
parents:
diff changeset
45 This is a documentation question.
Dave Love <fx@gnu.org>
parents:
diff changeset
46 I cannot figure out how to use Ledit. I suspect I need some
Dave Love <fx@gnu.org>
parents:
diff changeset
47 function on the Franz Lisp end of things to go to Emacs and read in
Dave Love <fx@gnu.org>
parents:
diff changeset
48 the temporary file. Is this true? Is the Lisp job started within
Dave Love <fx@gnu.org>
parents:
diff changeset
49 Emacs or outside of emacs? I'm just plain confused. Perhaps a couple
Dave Love <fx@gnu.org>
parents:
diff changeset
50 of words from someone in the know would help.
Dave Love <fx@gnu.org>
parents:
diff changeset
51
Dave Love <fx@gnu.org>
parents:
diff changeset
52 A related question. I have been using a shell buffer when interacting
Dave Love <fx@gnu.org>
parents:
diff changeset
53 with Lisp (ie. put a definition in the kill buffer and then yank it
Dave Love <fx@gnu.org>
parents:
diff changeset
54 into the shell buffer to redefine it). This is nice but tends to fill
Dave Love <fx@gnu.org>
parents:
diff changeset
55 up the shell buffer with lots of code (I'd rather keep calls to functions
Dave Love <fx@gnu.org>
parents:
diff changeset
56 in the shell and not the functions themselves).
Dave Love <fx@gnu.org>
parents:
diff changeset
57 My question: Is using the shell buffer "better" than ledit? Am I using
Dave Love <fx@gnu.org>
parents:
diff changeset
58 it in the best way (i.e. copying definitions from an edit buffer to the
Dave Love <fx@gnu.org>
parents:
diff changeset
59 shell buffer)? -Thanks, David Neves
Dave Love <fx@gnu.org>
parents:
diff changeset
60
Dave Love <fx@gnu.org>
parents:
diff changeset
61 I have found that ledit works well for doing programming development
Dave Love <fx@gnu.org>
parents:
diff changeset
62 when you are changing lots of little pieces of a file and don't wish
Dave Love <fx@gnu.org>
parents:
diff changeset
63 to recompile the whole file. Of course M-X Compile is very nice for
Dave Love <fx@gnu.org>
parents:
diff changeset
64 calling up a liszt on a buffer and watching it in the another window.
Dave Love <fx@gnu.org>
parents:
diff changeset
65 Of course the interface of something like NIL is even better because
Dave Love <fx@gnu.org>
parents:
diff changeset
66 you can compile your function directly into your lisp. But since NIL
Dave Love <fx@gnu.org>
parents:
diff changeset
67 doesn't run under Unix, this is probably the next best thing.
Dave Love <fx@gnu.org>
parents:
diff changeset
68
Dave Love <fx@gnu.org>
parents:
diff changeset
69 I have tried the 2 window method (shell in lower window, lisp code in
Dave Love <fx@gnu.org>
parents:
diff changeset
70 upper), and have found it a little awkward. It does have certain
Dave Love <fx@gnu.org>
parents:
diff changeset
71 advantages, but most of the time, I get be fine using M-C-D to save a
Dave Love <fx@gnu.org>
parents:
diff changeset
72 defun for lisp, and C-X Z to jump back to LISP. C-E RETURN from lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
73 is also mnemonic for getting back to gnumacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
74
Dave Love <fx@gnu.org>
parents:
diff changeset
75 I hope this helps somewhat.
Dave Love <fx@gnu.org>
parents:
diff changeset
76
Dave Love <fx@gnu.org>
parents:
diff changeset
77