* display-completion-list should not strip text properties @ 2007-01-22 17:23 Drew Adams 2007-01-22 18:56 ` Stefan Monnier 2007-01-23 2:07 ` Richard Stallman 0 siblings, 2 replies; 83+ messages in thread From: Drew Adams @ 2007-01-22 17:23 UTC (permalink / raw) You might want to consider this as a bug, albeit an old one. If not, you might want to consider it for TODO after the release. I mention it now in hopes of the former. It calls for a trivial code change. `display-completion-list' uses `princ', not `insert', which effectively strips all text properties from the completions it is passed. It has probably always done so, but it should no longer do so, IMO. The other functions involved in completing (`all-completions', `try-completions', etc.) already DTRT in this regard. A `princ'-to-`insert' substitution in `display-completion-list' is the only change needed to allow faces and other text properties in buffer *Completions*. Users could then pass propertized strings to, for example, `completing-read' and have them displayed as defined. For my own purposes, I transcribed the C-code definition of `display-completion-list' into Lisp and then substituted `insert' for `princ'. Here is one use of this feature (or bug fix): http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_Text_Properties_in_Completio ns. This example uses faces, but other text properties (e.g. `help-echo', `keymap', `display', `invisible') could also be usefully applied to individual completions for various purposes. I also wonder why `display-completion-list' is coded in C, not Lisp. The Lisp version is straightforward, and it doesn't seem slow. I don't think this code is critical in terms of time, anyway. Coding this in Lisp would give users (programmers) more flexibility. Also, I haven't yet done so for my own Lisp version, but I think that the measures 35 and 45 for the column width, which are currently hard-coded, could usefully be made into either parameters to the function or global variables. Different uses of a completion display might call for different column widths, and I see no reason to hard-code this choice. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-01-22 17:23 display-completion-list should not strip text properties Drew Adams @ 2007-01-22 18:56 ` Stefan Monnier 2007-01-23 2:07 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Stefan Monnier @ 2007-01-22 18:56 UTC (permalink / raw) Cc: Emacs-Devel > Also, I haven't yet done so for my own Lisp version, but I think that the > measures 35 and 45 for the column width, which are currently hard-coded, > could usefully be made into either parameters to the function or global > variables. Different uses of a completion display might call for different > column widths, and I see no reason to hard-code this choice. For what it's worth I use the code below (part of some other lib, so it wouldn't surprise me if it doesn't work as-is). It chooses the number of columns based on how many can fit. Stefan (defun complete-insert-strings (strings) "Insert a list of STRINGS into the current buffer. Uses columns to keep the listing readable but compact. It also eliminates runs of equal strings." (when (consp strings) (let* ((length (apply 'max (mapcar (lambda (s) (if (consp s) (+ (length (car s)) (length (cadr s))) (length s))) strings))) (window (get-buffer-window (current-buffer))) (wwidth (if window (1- (window-width window)) 79)) (columns (min ;; At least 2 columns; at least 2 spaces between columns. (max 2 (/ wwidth (+ 2 length))) ;; Don't allocate more columns than we can fill. ;; Windows can't show less than 3 lines anyway. (max 1 (/ (length strings) 2)))) (colwidth (/ wwidth columns)) (laststring nil)) ;; Use tab-width rather than indent-to. (setq tab-width colwidth) ;; The insertion should be "sensible" no matter what choices were made ;; for the parameters above. (dolist (str strings) (unless (equal laststring str) (setq laststring str) (unless (bolp) (insert " \t")) (when (< wwidth (+ (max colwidth (if (consp str) (+ (length (car str)) (length (cadr str))) (length str))) (current-column))) (delete-char -2) (insert "\n")) (if (not (consp str)) (put-text-property (point) (progn (insert str) (point)) 'mouse-face 'highlight) (put-text-property (point) (progn (insert (car str)) (point)) 'mouse-face 'highlight) (set-text-properties (point) (progn (insert (cadr str)) (point)) nil))))))) (defvar completion-common-substring) (defun display-completion-list (completions &optional common-substring) "Display the list of completions, COMPLETIONS, using `standard-output'. Each element may be just a symbol or string or may be a list of two strings to be printed as if concatenated. `standard-output' must be a buffer. The actual completion alternatives, as inserted, are given `mouse-face' properties of `highlight'. At the end, this runs the normal hook `completion-setup-hook'. It can find the completion buffer in `standard-output'." (if (not (bufferp standard-output)) ;; This *never* (ever) happens, so there's no point trying to be clever. (with-temp-buffer (let ((standard-output (current-buffer)) (completion-setup-hook nil)) (display-completion-list completions)) (princ (buffer-string))) (completion-setup-function) ;in simple.el (with-current-buffer standard-output (goto-char (point-max)) (if (null completions) (insert "There are no possible completions of what you have typed.") (insert "Possible completions are:\n") (complete-insert-strings completions)))) (let ((completion-common-substring common-substring)) (run-hooks 'completion-setup-hook)) nil) ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-01-22 17:23 display-completion-list should not strip text properties Drew Adams 2007-01-22 18:56 ` Stefan Monnier @ 2007-01-23 2:07 ` Richard Stallman 2007-01-23 5:10 ` Drew Adams 2007-01-24 7:07 ` Kevin Rodgers 1 sibling, 2 replies; 83+ messages in thread From: Richard Stallman @ 2007-01-23 2:07 UTC (permalink / raw) Cc: emacs-devel The other functions involved in completing (`all-completions', `try-completions', etc.) already DTRT in this regard. A `princ'-to-`insert' substitution in `display-completion-list' is the only change needed to allow faces and other text properties in buffer *Completions*. Users could then pass propertized strings to, for example, `completing-read' and have them displayed as defined. Is there a case where this is useful? ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-01-23 2:07 ` Richard Stallman @ 2007-01-23 5:10 ` Drew Adams 2007-01-23 21:32 ` Drew Adams 2007-01-24 8:22 ` Richard Stallman 2007-01-24 7:07 ` Kevin Rodgers 1 sibling, 2 replies; 83+ messages in thread From: Drew Adams @ 2007-01-23 5:10 UTC (permalink / raw) > Users could then pass propertized strings to, for example, > `completing-read' and have them displayed as defined. > > Is there a case where this is useful? I think the page I pointed to suggests a few uses. It's hard to know whether you didn't follow the URL or you didn't think the suggestions made there were useful. Just in case you didn't follow the URL, some possible uses of text properties in *Completions*: . 'face' - to make some completion candidates stand out in particular ways The screenshots show *Completions* with color names and their accompanying color swatches; that is, the individual completions have, as their backgrounds, the colors they name. Complete your input to a name or just click the color you want (WYSIWYG), without paying much attention to the name. Or, complete a face name: you see the faces whose names you can choose (like `list-faces-display', but with completion). WYSIWYG. . 'help-echo' - for help that is specific to a particular candidate or to a particular command that completes input Put your mouse over a candidate function name to see its first doc-string line (like `apropos' with completion). . 'keymap' - for individualized mouse or key treatment of candidates (or even of parts of candidates) For example, a mouse binding specific to a particular candidate or group of candidates (e.g. help, preview, or a mouse-3 menu). . 'display' - to include images in candidates or to add display artifacts For example, application icons next to file names, to show what program will apply if a particular file is chosen. Or thumbnails next to image-file names - choose an image file by completing its name, but also get a preview of it to help you choose. More generally, `display-completion-list' is a general function. It should be just as general as the other completion functions such as `all-completions'. Put another way, what is *gained* by stripping text properties from completions? If something is gained in some cases, then at the very least stripping should be an option (bind some variable or customize some user option to impose stripping). I would prefer to just get rid of stripping altogether, to open new possibilities. I would rather burden any programs that might need to strip properties with doing that themselves, before they call `display-completion-list'. And I would prefer to have the function coded in Lisp. What is the advantage of using C here? It just makes user tweaking more difficult, with no benefit that I can see. ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-01-23 5:10 ` Drew Adams @ 2007-01-23 21:32 ` Drew Adams 2007-01-24 8:22 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Drew Adams @ 2007-01-23 21:32 UTC (permalink / raw) [-- Attachment #1: Type: text/plain, Size: 480 bytes --] I suggested: > Or, complete a face name: you see the faces whose names you can > choose (like `list-faces-display', but with completion). WYSIWYG. Attached is a screenshot, to show what I meant. The only change needed was to make `read-face-name' apply the face to the face-name string. It might not look pretty, but the result conveys more info than do just the face names. The point is that *Completions* can usefully take advantage of text properties - this is one example. [-- Attachment #2: drew-emacs-face-name-completions.png --] [-- Type: image/png, Size: 212946 bytes --] [-- Attachment #3: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-01-23 5:10 ` Drew Adams 2007-01-23 21:32 ` Drew Adams @ 2007-01-24 8:22 ` Richard Stallman 2007-01-24 23:43 ` Johan Bockgård 2007-03-20 22:36 ` Drew Adams 1 sibling, 2 replies; 83+ messages in thread From: Richard Stallman @ 2007-01-24 8:22 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel I think the page I pointed to suggests a few uses. It's hard to know whether you didn't follow the URL or you didn't think the suggestions made there were useful. It is generally inconvenient for me to browse a web site. I only do so when it is really important. Your URL points to a code example. It would have taken a lot of extra time and concentration (hard when I am sleepy) to figure out how the code was using this feature. Your explanation made it much clearer. I agree that this is a good change, and since it is simple and safe, we can do it now. Would someone please do it? Thanks. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-01-24 8:22 ` Richard Stallman @ 2007-01-24 23:43 ` Johan Bockgård 2007-01-25 10:53 ` Richard Stallman 2007-03-20 22:36 ` Drew Adams 1 sibling, 1 reply; 83+ messages in thread From: Johan Bockgård @ 2007-01-24 23:43 UTC (permalink / raw) To: emacs-devel Richard Stallman <rms@gnu.org> writes: > I agree that this is a good change, and since it is simple and safe, > we can do it now. Here's a related, simple, change that I've been sitting on for a long time. By putting text properties on doc strings you can insert images and other fancy stuff in the *Help* buffer. This change makes describe-variable preserve text properties (describe-function already does so): 2007-01-24 Johan Bockgård <bojohan@dd.chalmers.se> * help-fns.el (describe-variable): Keep doc's text properties. Index: lisp/help-fns.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/help-fns.el,v retrieving revision 1.96 diff -u -r1.96 help-fns.el --- lisp/help-fns.el 23 Jan 2007 07:16:11 -0000 1.96 +++ lisp/help-fns.el 24 Jan 2007 23:15:35 -0000 @@ -596,7 +596,8 @@ "which is byte-compiled expression.\n" (format "`%s'.\n" safe-var)))) (princ "\nDocumentation:\n") - (princ (or doc "Not documented as a variable."))) + (with-current-buffer standard-output + (insert (or doc "Not documented as a variable.")))) ;; Make a link to customize if this variable can be customized. (if (custom-variable-p variable) (let ((customize-label "customize")) -- Johan Bockgård ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-01-24 23:43 ` Johan Bockgård @ 2007-01-25 10:53 ` Richard Stallman 2007-01-26 13:17 ` Vinicius Jose Latorre 2007-09-01 19:56 ` Drew Adams 0 siblings, 2 replies; 83+ messages in thread From: Richard Stallman @ 2007-01-25 10:53 UTC (permalink / raw) To: Johan Bockgård; +Cc: emacs-devel Here's a related, simple, change that I've been sitting on for a long time. By putting text properties on doc strings you can insert images and other fancy stuff in the *Help* buffer. This change makes describe-variable preserve text properties (describe-function already does so): There is no clean and easy way to put text properties on a doc string, so I think this is not very useful in the present context. If someone comes up with a clean way to do that, this would be a useful part of the combination. We could think then about installing it. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-01-25 10:53 ` Richard Stallman @ 2007-01-26 13:17 ` Vinicius Jose Latorre 2007-01-27 0:46 ` Richard Stallman 2007-09-01 19:56 ` Drew Adams 1 sibling, 1 reply; 83+ messages in thread From: Vinicius Jose Latorre @ 2007-01-26 13:17 UTC (permalink / raw) To: rms; +Cc: emacs-devel, Johan Bockgård Richard Stallman wrote: > Here's a related, simple, change that I've been sitting on for a long > time. By putting text properties on doc strings you can insert images > and other fancy stuff in the *Help* buffer. This change makes > describe-variable preserve text properties (describe-function already > does so): > > There is no clean and easy way to put text properties on a doc string, > so I think this is not very useful in the present context. > > If someone comes up with a clean way to do that, this would be a > useful part of the combination. We could think then about installing > it. > One way to "insert images and other fancy stuff" in doc string, could be to use a wiki-like language in the doc string. The doc string have some minimal special sequence substring like: \[COMMAND] \{MAPVAR} \<MAPVAR> \= Maybe these special sequences could be extended to have, for example: \==HEADER1== \===HEADER2=== \#image{SOME-REFERENCE-TO-AN-IMAGE} \#h1{HEADER1} \#h2{HEADER2} ...etc... and other doc stuff. Obviously, this should be done after the release. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-01-26 13:17 ` Vinicius Jose Latorre @ 2007-01-27 0:46 ` Richard Stallman 0 siblings, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-01-27 0:46 UTC (permalink / raw) To: Vinicius Jose Latorre; +Cc: emacs-devel, bojohan+news Maybe these special sequences could be extended to have, for example: \==HEADER1== \===HEADER2=== \#image{SOME-REFERENCE-TO-AN-IMAGE} \#h1{HEADER1} \#h2{HEADER2} ...etc... It could be a good idea. It would be useful for someone to experiment with this privately, for installation some time in the future. ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-01-25 10:53 ` Richard Stallman 2007-01-26 13:17 ` Vinicius Jose Latorre @ 2007-09-01 19:56 ` Drew Adams 2007-09-02 18:52 ` Juri Linkov 1 sibling, 1 reply; 83+ messages in thread From: Drew Adams @ 2007-09-01 19:56 UTC (permalink / raw) To: emacs-devel; +Cc: rms, Johan "Bockgård" This is from 2007-01-24: Johan>By putting text properties on doc strings you can insert > images and other fancy stuff in the *Help* buffer. This > change makes describe-variable preserve text properties > (describe-function already does so): > RMS> There is no clean and easy way to put text properties on a doc > string, so I think this is not very useful in the present > context. > If someone comes up with a clean way to do that, this would be > a useful part of the combination. We could think then about > installing it. I think this is a good idea. Can we make some progress on it? It seems that `defvar' and `defcustom' already let you pass a sexp to be evaled for the doc string, so you can already do things like this: (defvar foo 25 (propertize (make-string 5 ?P) 'face 'highlight)) With Johan's proposed fix to `describe-variable', this shows up fine in *Help* for `C-h v foo'. We should in any case implement his (one-line) enhancement - no reason not to, IMO. defun does not let you do something similar, however, presumably because it can't tell that the sexp is supposed to be a doc string instead of the first part of the body's implicit `progn' (with a missing doc string). This is perhaps part of what Richard had in mind when he wrote that there is no clean and easy way to put text properties on a doc string - in particular, defun doesn't facilitate doing so. Perhaps we could allow literal doc strings to contain special syntax that means "replace this sexp by its (string) value". This would be akin to \\[], \\<>, and \\{} for key bindings. Maybe use \\(...)? Then, you could write, for example: (defun foo () "mumble \\((propertize "toto" 'face 'highlight)) titi" whatever) As propertizing with a face would be a common use of \\(...), a convenience function `with-face' might be defined to abbreviate (propertize ... 'face ...). Then, you could write just: (defun foo () "mumble \\((with-face 'highlight "toto")) titi" whatever) As Johan mentioned, text properties could be used to insert images and do other things for *Help*, besides just adding faces. If it were thought that particular properties such as `face' would be used very often, then we might define syntax to abbreviate them. We might, for example, use \\#...# for \\(with-face...), with the convention that the face here would always be passed as a symbol that immediately follows \\#. You could then write, for instance: (defun foo () "mumble \\#highlight toto# titi" whatever) This syntax is not too inconvenient, and it doesn't interfere too much with source-code readability, IMO. Something similar might be done for image insertion using the `display' property. Such syntax might also prove useful in other contexts, besides doc strings - `substitute-command-keys', for instance. However, `substitute-command-keys' does not currently allow text properties, apparently. If `substitute-command-keys' didn't have this limitation, and if it had a shorter name (e.g. alias `doc'), then you could use it with these syntax enhancements as a shortcut for `format' or `concat' applications, in many cases. For example, instead of (concat "mumble " (propertize "toto" 'face 'highlight) "titi"), you could write (doc "mumble \\#highlight toto# titi"). In sum, I think we can find ways to make it convenient to add text properties to doc strings, and I think that could improve *Help* in some cases. In particular, it would be useful to have abbreviated syntax for inserting images and attaching faces to parts of doc strings. Anyway, I just wanted to open discussion on this - other ideas and implementations might be better. WDOT? Can we define a convenient way to let you use text properties in doc strings? Is it useful to do so? ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-01 19:56 ` Drew Adams @ 2007-09-02 18:52 ` Juri Linkov 2007-09-03 18:25 ` Richard Stallman 0 siblings, 1 reply; 83+ messages in thread From: Juri Linkov @ 2007-09-02 18:52 UTC (permalink / raw) To: Drew Adams; +Cc: Johan \"Bockgård\", rms, emacs-devel > Perhaps we could allow literal doc strings to contain special syntax that > means "replace this sexp by its (string) value". This would be akin to \\[], > \\<>, and \\{} for key bindings. Maybe use \\(...)? > > Then, you could write, for example: > > (defun foo () > "mumble \\((propertize "toto" 'face 'highlight)) titi" > whatever) Or using \, like in the query-replace string to eval part of the replacement string: (defun foo () "mumble \\,(propertize "toto" 'face 'highlight) titi" whatever) -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-02 18:52 ` Juri Linkov @ 2007-09-03 18:25 ` Richard Stallman 2007-09-03 23:48 ` Juri Linkov 0 siblings, 1 reply; 83+ messages in thread From: Richard Stallman @ 2007-09-03 18:25 UTC (permalink / raw) To: Juri Linkov; +Cc: bojohan+news, drew.adams, emacs-devel Or using \, like in the query-replace string to eval part of the replacement string: (defun foo () "mumble \\,(propertize "toto" 'face 'highlight) titi" whatever) That is a clean feature. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-03 18:25 ` Richard Stallman @ 2007-09-03 23:48 ` Juri Linkov 2007-09-04 5:59 ` David Kastrup ` (2 more replies) 0 siblings, 3 replies; 83+ messages in thread From: Juri Linkov @ 2007-09-03 23:48 UTC (permalink / raw) To: rms; +Cc: bojohan+news, drew.adams, emacs-devel > Or using \, like in the query-replace string to eval part of the > replacement string: > > (defun foo () > "mumble \\,(propertize "toto" 'face 'highlight) titi" > whatever) > > That is a clean feature. I proposed only a new syntax for this feature, but now after thinking more about the whole idea, I see that this feature is too ad-hoc. Allowing to eval arbitrary expressions while printing the doc string in the Help buffer is too fragile approach. There is no guarantee that after all interacting evaluations there will a readable result in the Help buffer. I think a better approach is to use a markup language in doc strings, be it XHTML or even TexinfoML. Then using a style sheet it can be formatted nicely in the Help buffer. Example of a doc string: (defun foo () "To create a file, just <emph>visit it</emph> with <kbd>C-x C-f</kbd>. See also <xref>find-file-literally</xref>." ) Another advantage is this approach is that instead of using heuristics for guessing the formatting of the doc string (highlighting the function arguments, and making references for quoted symbols) it is possible to specify this explicitly. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-03 23:48 ` Juri Linkov @ 2007-09-04 5:59 ` David Kastrup 2007-09-04 9:52 ` Juri Linkov 2007-09-04 8:49 ` tomas 2007-09-04 16:45 ` Richard Stallman 2 siblings, 1 reply; 83+ messages in thread From: David Kastrup @ 2007-09-04 5:59 UTC (permalink / raw) To: Juri Linkov; +Cc: emacs-devel, rms, drew.adams, bojohan+news Juri Linkov <juri@jurta.org> writes: >> Or using \, like in the query-replace string to eval part of the >> replacement string: >> >> (defun foo () >> "mumble \\,(propertize "toto" 'face 'highlight) titi" >> whatever) >> >> That is a clean feature. > > I proposed only a new syntax for this feature, but now after > thinking more about the whole idea, I see that this feature is too > ad-hoc. Allowing to eval arbitrary expressions while printing the > doc string in the Help buffer is too fragile approach. There is no > guarantee that after all interacting evaluations there will a > readable result in the Help buffer. Well, there never is such a guarantee to start with. (defun foo () "5sji [3q98y5ew9pnthy45wp9tvnhy45pnt5uvpwmthuvqptnhbewptb|" whatever) also has no readable result in the help buffer. > I think a better approach is to use a markup language in doc strings, > be it XHTML or even TexinfoML. Then using a style sheet it can be > formatted nicely in the Help buffer. Example of a doc string: > > (defun foo () > "To create a file, just <emph>visit it</emph> with <kbd>C-x C-f</kbd>. > See also <xref>find-file-literally</xref>." > ) That requires a whole new subsystem separate of Emacs and a rationale to call it for every string display. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-04 5:59 ` David Kastrup @ 2007-09-04 9:52 ` Juri Linkov 0 siblings, 0 replies; 83+ messages in thread From: Juri Linkov @ 2007-09-04 9:52 UTC (permalink / raw) To: David Kastrup; +Cc: rms, drew.adams, emacs-devel > Well, there never is such a guarantee to start with. > > (defun foo () > "5sji [3q98y5ew9pnthy45wp9tvnhy45pnt5uvpwmthuvqptnhbewptb|" > whatever) > > also has no readable result in the help buffer. I meant that even well-intended authors (that don't write deliberately unreadable or harmful expressions in doc strings) can write such expressions that won't play nicely with the default logic of the Help buffer formatting. For instance, authors might use `fill-paragraph' to fill a paragraph with a specific value of `fill-column' and `fill-prefix', but the default logic will later refill it with the default settings, possibly breaking the doc string horribly. >> (defun foo () >> "To create a file, just <emph>visit it</emph> with <kbd>C-x C-f</kbd>. >> See also <xref>find-file-literally</xref>." >> ) > > That requires a whole new subsystem separate of Emacs and a rationale > to call it for every string display. Not separate of Emacs, but a package implemented in Emacs Lisp. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-03 23:48 ` Juri Linkov 2007-09-04 5:59 ` David Kastrup @ 2007-09-04 8:49 ` tomas 2007-09-04 9:54 ` Juri Linkov 2007-09-04 16:45 ` Richard Stallman 2 siblings, 1 reply; 83+ messages in thread From: tomas @ 2007-09-04 8:49 UTC (permalink / raw) To: Juri Linkov; +Cc: emacs-devel, rms, drew.adams, bojohan+news -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tue, Sep 04, 2007 at 02:48:28AM +0300, Juri Linkov wrote: > > Or using \, like in the query-replace string to eval part of the > > replacement string: > > > > (defun foo () > > "mumble \\,(propertize "toto" 'face 'highlight) titi" > > whatever) > > > > That is a clean feature. > > I proposed only a new syntax for this feature, but now after thinking more > about the whole idea, I see that this feature is too ad-hoc. Allowing to > eval arbitrary expressions while printing the doc string in the Help > buffer is too fragile approach. There is no guarantee that after all > interacting evaluations there will a readable result in the Help buffer. Right, but it could be Limited By Convention (TM). And Lisp even makes it easy to check those limits... > I think a better approach is to use a markup language in doc strings, > be it XHTML or even TexinfoML. Then using a style sheet it can be > formatted nicely in the Help buffer. Example of a doc string: My gut reaction is "Oh, no. Not Yet Another *ML". It's not very constructive, but gut reactions ain't fair or constructive -- sorry for that :-( (maybe those angle brackets just hurt my tummy too much ;) Thanks - -- tomás -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFG3RwHBcgs9XrR2kYRAu5RAJ9C9ySJ6iTHrW5DDUkcqvBl2NftRQCfXbeT Zl2k6NCLHbDsArh+fHw1K40= =cS+V -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-04 8:49 ` tomas @ 2007-09-04 9:54 ` Juri Linkov 2007-09-04 10:56 ` Johan Bockgård 0 siblings, 1 reply; 83+ messages in thread From: Juri Linkov @ 2007-09-04 9:54 UTC (permalink / raw) To: tomas; +Cc: rms, drew.adams, emacs-devel >> I think a better approach is to use a markup language in doc strings, >> be it XHTML or even TexinfoML. Then using a style sheet it can be >> formatted nicely in the Help buffer. Example of a doc string: > > My gut reaction is "Oh, no. Not Yet Another *ML". It's not very > constructive, but gut reactions ain't fair or constructive -- sorry for > that :-( > > (maybe those angle brackets just hurt my tummy too much ;) Don't be afraid of using markup languages. Such languages provide a good common denominator that allows creating packages that will process doc strings in different ways, e.g. writing a package producing a printed reference manual from doc strings (especially useful for packages that don't have a separate Info manual). Using Lisp expressions inside the doc strings has other drawbacks: writing expressions inside strings is poorly supported. Just think that really every quote should be escaped with \: "mumble \\,(propertize \"toto\" 'face 'highlight) titi" Compare this with: "mumble <emph>toto</emph> titi" You can argue that this can be written as: "mumble \\,(docstring-emph \"toto\") titi" but it has too many toothpicks. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-04 9:54 ` Juri Linkov @ 2007-09-04 10:56 ` Johan Bockgård 2007-09-04 22:58 ` Richard Stallman 0 siblings, 1 reply; 83+ messages in thread From: Johan Bockgård @ 2007-09-04 10:56 UTC (permalink / raw) To: emacs-devel Juri Linkov <juri@jurta.org> writes: > Using Lisp expressions inside the doc strings has other drawbacks: writing > expressions inside strings is poorly supported. Just think that really > every quote should be escaped with \: > > "mumble \\,(propertize \"toto\" 'face 'highlight) titi" There are other self-evaluating Lisp objects besides strings, so the following idea occurred to me (defun foo () ;; (Optional) doc string for old emacsen. "mumble toto titi" ;; (Optional) doc vector for new emacsen, ["mumble " (propertize "toto" 'face 'highlight) " titi"] ;; ...or like this, [html "mumble <emph>toto</emph> titi"] ;; ...or this, [texi "mumble @emph{toto} titi"] ;; etc. BODY...) :) -- Johan Bockgård ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-04 10:56 ` Johan Bockgård @ 2007-09-04 22:58 ` Richard Stallman 0 siblings, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-09-04 22:58 UTC (permalink / raw) To: Johan Bockgård; +Cc: emacs-devel (defun foo () ;; (Optional) doc string for old emacsen. "mumble toto titi" ;; (Optional) doc vector for new emacsen, ["mumble " (propertize "toto" 'face 'highlight) " titi"] ;; ...or like this, [html "mumble <emph>toto</emph> titi"] ;; ...or this, [texi "mumble @emph{toto} titi"] ;; etc. BODY...) The idea of using a vector to concatenate doc strings seems interesting. It would be somewhat harder to implement, though, because it would require changes to the mechanisms that store doc strings. I reject the idea of having multiple versions of doc strings in different formats, because it would tempt people to put lots of time into using the feature by writing all the formats. We cannot afford that diversion of effort, so we should not open the temptation. My decision is we will not install that feature. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-03 23:48 ` Juri Linkov 2007-09-04 5:59 ` David Kastrup 2007-09-04 8:49 ` tomas @ 2007-09-04 16:45 ` Richard Stallman 2007-09-04 18:51 ` Drew Adams 2 siblings, 1 reply; 83+ messages in thread From: Richard Stallman @ 2007-09-04 16:45 UTC (permalink / raw) To: Juri Linkov; +Cc: bojohan+news, drew.adams, emacs-devel I think a better approach is to use a markup language in doc strings, be it XHTML or even TexinfoML. Then using a style sheet it can be formatted nicely in the Help buffer. Example of a doc string: (defun foo () "To create a file, just <emph>visit it</emph> with <kbd>C-x C-f</kbd>. See also <xref>find-file-literally</xref>." ) I don't want to go down that route. It is a lot of complexity, and an invitation to keep adding more. I would rather we work on other things (see etc/TODO). ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-09-04 16:45 ` Richard Stallman @ 2007-09-04 18:51 ` Drew Adams 2007-09-04 22:46 ` Davis Herring 2007-09-05 6:16 ` Richard Stallman 0 siblings, 2 replies; 83+ messages in thread From: Drew Adams @ 2007-09-04 18:51 UTC (permalink / raw) To: emacs-devel > I think a better approach is to use a markup language in doc strings, > be it XHTML or even TexinfoML. Then using a style sheet it can be > formatted nicely in the Help buffer. Example of a doc string: > > (defun foo () > "To create a file, just <emph>visit it</emph> with <kbd>C-x > C-f</kbd>. See also <xref>find-file-literally</xref>." > ) > > I don't want to go down that route. It is a lot of complexity, and an > invitation to keep adding more. So, coming back to the original topic (;-)), before the fork toward markup: It makes sense to let programmers apply text properties to doc strings. What is lacking is an easy way to do that. For functions, there is currently no way. For variables, there is a way, but it could be made less cumbersome. Before tackling the problem of finding an easy way to apply text properties, however, we need to accept Johan's proposed (trivial) fix to `describe-variable', so that variable doc strings with properties will in fact be displayed. (Nothing is needed for functions, apparently.) So, there were two proposals in my mail: 1. Let's accept Johan's fix for `describe-variable'. 2. Let's discuss ways to address the limitation that there is currently "no clean and easy way to put text properties on a doc string". #1 does not require #2, so let's take care of #1 first. Johan's fix is a one-liner. Wrt #2, I proposed an approach that (a) would allow propertizing doc strings for functions also and (b) would make propertizing doc strings more user-friendly for both functions and variables. The idea is to let literal doc strings contain special syntax to eval parts and replace them with their values. I proposed "mumble \\(...) titi". Juri proposed "mumble \\,... titi" instead, for consistency with query-replace. I have no problem with either syntax, and perhaps someone has another suggestion. I also proposed a shortcut for face application, which I expect will be a common use case for this feature: "mumble \\#highlight toto# titi" instead of "mumble \\,(propertize "toto" 'face 'highlight) titi" (using Juri's syntax). And I suggested that a similar shortcut might be added for image insertion. Other suggestions for #2 are welcome. But let's at least first agree on #1. ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-09-04 18:51 ` Drew Adams @ 2007-09-04 22:46 ` Davis Herring 2007-09-05 6:16 ` Richard Stallman 2007-09-05 6:16 ` Richard Stallman 1 sibling, 1 reply; 83+ messages in thread From: Davis Herring @ 2007-09-04 22:46 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel > 1. Let's accept Johan's fix for `describe-variable'. Of course. > I proposed "mumble \\(...) titi". Juri proposed "mumble \\,... titi" > instead, for consistency with query-replace. I have no problem with either > syntax, and perhaps someone has another suggestion. > > I also proposed a shortcut for face application, which I expect will be a > common use case for this feature: "mumble \\#highlight toto# titi" instead > of "mumble \\,(propertize "toto" 'face 'highlight) titi" (using Juri's > syntax). And I suggested that a similar shortcut might be added for image > insertion. I'd extend this \# syntax to support other text properties by having \#(prop value ...) text# mean (propertize "text" 'prop 'value '...), and of course have \#value text# imply \#(highlight value) text#. I think with that extension so much could be handled that perhaps the hairiness of general sexp-inclusion could be avoided, and no " need escaping. However, I am not sure whether it would be better to eval the values when they are given in an explicit plist: that might work better for tooltips and such. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-04 22:46 ` Davis Herring @ 2007-09-05 6:16 ` Richard Stallman 2007-09-05 14:21 ` Drew Adams 0 siblings, 1 reply; 83+ messages in thread From: Richard Stallman @ 2007-09-05 6:16 UTC (permalink / raw) To: herring; +Cc: drew.adams, emacs-devel I'd extend this \# syntax to support other text properties by having \#(prop value ...) text# mean (propertize "text" 'prop 'value '...), and of course have \#value text# imply \#(highlight value) text#. Why do we need to put properties other that the `face' property in doc strings? There are already ways to make links. ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-09-05 6:16 ` Richard Stallman @ 2007-09-05 14:21 ` Drew Adams 2007-09-06 4:59 ` Richard Stallman 0 siblings, 1 reply; 83+ messages in thread From: Drew Adams @ 2007-09-05 14:21 UTC (permalink / raw) To: emacs-devel > I'd extend this \# syntax to support other text properties by having > \#(prop value ...) text# mean (propertize "text" 'prop 'value '...), > and of course have \#value text# imply \#(highlight value) text#. > > Why do we need to put properties other that the `face' property > in doc strings? There are already ways to make links. To include graphics in Help, for one thing. Johan makes that point in his mail quoted below. > 1. Let's accept Johan's fix for `describe-variable'. > > Please send this fix again -- I don't remember it. Le voici : > From: Johan "Bockgård" Sent: Wednesday, January 24, 2007 3:43 PM > Subject: Re: display-completion-list should not strip text properties > > Richard Stallman <rms@gnu.org> writes: > > > I agree that this is a good change, and since it is simple and safe, > > we can do it now. > > Here's a related, simple, change that I've been sitting on for a long > time. By putting text properties on doc strings you can insert images > and other fancy stuff in the *Help* buffer. This change makes > describe-variable preserve text properties (describe-function already > does so): > > 2007-01-24 Johan Bockgård <bojohan@dd.chalmers.se> > > * help-fns.el (describe-variable): Keep doc's text properties. > > Index: lisp/help-fns.el > =================================================================== > RCS file: /cvsroot/emacs/emacs/lisp/help-fns.el,v > retrieving revision 1.96 > diff -u -r1.96 help-fns.el > --- lisp/help-fns.el 23 Jan 2007 07:16:11 -0000 1.96 > +++ lisp/help-fns.el 24 Jan 2007 23:15:35 -0000 > @@ -596,7 +596,8 @@ > "which is byte-compiled expression.\n" > (format "`%s'.\n" safe-var)))) > (princ "\nDocumentation:\n") > - (princ (or doc "Not documented as a variable."))) > + (with-current-buffer standard-output > + (insert (or doc "Not documented as a variable.")))) > ;; Make a link to customize if this variable can be customized. > (if (custom-variable-p variable) > (let ((customize-label "customize")) ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-05 14:21 ` Drew Adams @ 2007-09-06 4:59 ` Richard Stallman 2007-09-06 16:35 ` Drew Adams 0 siblings, 1 reply; 83+ messages in thread From: Richard Stallman @ 2007-09-06 4:59 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel > Why do we need to put properties other that the `face' property > in doc strings? There are already ways to make links. To include graphics in Help, for one thing. Is that really something we should get into? I think we should not. That doesn't mean I am opposed to including some feature that would make it possible. I would not be against that if it were clean, not a lot of work, etc. But it is not a goal. ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-09-06 4:59 ` Richard Stallman @ 2007-09-06 16:35 ` Drew Adams 2007-09-06 20:04 ` Edward O'Connor ` (2 more replies) 0 siblings, 3 replies; 83+ messages in thread From: Drew Adams @ 2007-09-06 16:35 UTC (permalink / raw) To: emacs-devel > > Why do we need to put properties other that the `face' property > > in doc strings? There are already ways to make links. > > To include graphics in Help, for one thing. > > Is that really something we should get into? > I think we should not. Why not? Help, and documentation generally, often call upon graphics to aid communication. Just having the possibility to include graphics does not, of course, mean that it's a good idea to stuff tons of screenshots, icons, and other graphics into help. But having the possibility means that when it is appropriate to add a graphic you can do so easily. > That doesn't mean I am opposed to including some feature that would > make it possible. I would not be against that if it were clean, not a > lot of work, etc. But it is not a goal. Johan's one-line fix (which you have now OK'd - thanks) makes it possible and easy to do so for variables. The same is not true for functions (defun), however. I think it would be worthwhile to ease doing this for both variables and functions by supporting some simplifying syntactic sugar (I proposed some). I have no idea how much work would be involved in implementing that support. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-06 16:35 ` Drew Adams @ 2007-09-06 20:04 ` Edward O'Connor 2007-09-06 20:16 ` Drew Adams 2007-09-06 20:06 ` David Kastrup 2007-09-07 6:31 ` Richard Stallman 2 siblings, 1 reply; 83+ messages in thread From: Edward O'Connor @ 2007-09-06 20:04 UTC (permalink / raw) To: emacs-devel >>> Why do we need to put properties other that the `face' property >>> in doc strings? There are already ways to make links. >> >> To include graphics in Help, for one thing. >> >> Is that really something we should get into? >> I think we should not. > Why not? > Help, and documentation generally, often call upon graphics to aid > communication. Manuals are often improved by graphics that help to illuminate the subject matter, but *docstrings*? This smells like feeping creaturism to me. -- Edward O'Connor hober0@gmail.com Ense petit placidam sub libertate quietem. ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-09-06 20:04 ` Edward O'Connor @ 2007-09-06 20:16 ` Drew Adams 2007-09-06 23:08 ` Robert J. Chassell 2007-09-07 19:53 ` Richard Stallman 0 siblings, 2 replies; 83+ messages in thread From: Drew Adams @ 2007-09-06 20:16 UTC (permalink / raw) To: emacs-devel > >>> Why do we need to put properties other that the `face' property > >>> in doc strings? There are already ways to make links. > >> > >> To include graphics in Help, for one thing. > >> > >> Is that really something we should get into? > >> I think we should not. > > > Why not? > > > Help, and documentation generally, often call upon graphics to aid > > communication. > > Manuals are often improved by graphics that help to illuminate the > subject matter, but *docstrings*? Why not? We're talking about the _possibility_ of adding a graphic, not the obligation to do so. Can you not imagine any doc string that might usefully take advantage of this? No use of an icon? Lack of imagination? ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-06 20:16 ` Drew Adams @ 2007-09-06 23:08 ` Robert J. Chassell 2007-09-06 23:42 ` Davis Herring 2007-09-07 19:53 ` Richard Stallman 1 sibling, 1 reply; 83+ messages in thread From: Robert J. Chassell @ 2007-09-06 23:08 UTC (permalink / raw) To: emacs-devel Can you not imagine any doc string that might usefully take advantage of this? No use of an icon? Lack of imagination? If a person is listening to Emacs (via Emacspeak) because they are driving a car, I do not want them on the same road as me if the docstring fails them. I can imagine all too well of someone else taking is eyes off the road to look at a graphic or icon on a computer screen. -- Robert J. Chassell GnuPG Key ID: 004B4AC8 bob@rattlesnake.com bob@gnu.org http://www.rattlesnake.com http://www.teak.cc ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-06 23:08 ` Robert J. Chassell @ 2007-09-06 23:42 ` Davis Herring 2007-09-07 12:30 ` Robert J. Chassell 0 siblings, 1 reply; 83+ messages in thread From: Davis Herring @ 2007-09-06 23:42 UTC (permalink / raw) To: bob; +Cc: emacs-devel > If a person is listening to Emacs (via Emacspeak) because they are > driving a car, I do not want them on the same road as me if the > docstring fails them. I can imagine all too well of someone else > taking is eyes off the road to look at a graphic or icon on a computer > screen. Er, what? I've never heard of anyone consulting Emacs docstrings while driving. I'm much more worried about people trying to watch movies or read (with their eyes, because they don't know about Emacs or Emacspeak) email while on the road. The possibility that we might tempt someone so foolish with a pretty picture in a manual or docstring is not worth considering. That said, there might of course be other reasons (stylistic, technical, or accessibility-oriented) to have text-only docstrings; this just isn't one as far as I can tell. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-06 23:42 ` Davis Herring @ 2007-09-07 12:30 ` Robert J. Chassell 2007-09-08 7:00 ` Richard Stallman 0 siblings, 1 reply; 83+ messages in thread From: Robert J. Chassell @ 2007-09-07 12:30 UTC (permalink / raw) To: emacs-devel ... I've never heard of anyone consulting Emacs docstrings while driving. Lack of imagination. You are precluding the possibility that in 23 years -- a duration that GNU Emacs has already existed -- sphinx or another voice-to-text program will become sufficiently good. A good voice-to-text program enables anyone driving a car (presuming that cars are still used) to interact with Emacs and seek a docstring. We have docstrings in GNU Emacs now because they became possible long ago. I am not against images as such. Most of the time most people will look at their interface. They will not be situationally or permanently blind. However, hand held mobile telephones have the hardware to run Emacspeak. Adding images to documentation strings work fails when many programmers resist writing. Primarily, people who write text more than code desire to provide the alternatives to images. I am not saying that programmers will not write alternatives; I am saying that their work load is already high. I'm much more worried about people trying to watch movies ... That is reasonable for the present. -- Robert J. Chassell GnuPG Key ID: 004B4AC8 bob@rattlesnake.com bob@gnu.org http://www.rattlesnake.com http://www.teak.cc ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-07 12:30 ` Robert J. Chassell @ 2007-09-08 7:00 ` Richard Stallman 0 siblings, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-09-08 7:00 UTC (permalink / raw) To: bob; +Cc: emacs-devel Lack of imagination. You are precluding the possibility that in 23 years -- a duration that GNU Emacs has already existed -- sphinx or another voice-to-text program will become sufficiently good. We don't need to make plans now for 23 years in the future. I've already said we will not make a practice of putting graphics in doc strings. Please consider this decided. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-06 20:16 ` Drew Adams 2007-09-06 23:08 ` Robert J. Chassell @ 2007-09-07 19:53 ` Richard Stallman 2007-09-07 22:07 ` Drew Adams 1 sibling, 1 reply; 83+ messages in thread From: Richard Stallman @ 2007-09-07 19:53 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel Why not? We're talking about the _possibility_ of adding a graphic, not the obligation to do so. Can you not imagine any doc string that might usefully take advantage of this? No use of an icon? Lack of imagination? I have rejected this path for Emacs development. The decision is made. Would people please stop arguing about it. ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-09-07 19:53 ` Richard Stallman @ 2007-09-07 22:07 ` Drew Adams 0 siblings, 0 replies; 83+ messages in thread From: Drew Adams @ 2007-09-07 22:07 UTC (permalink / raw) To: emacs-devel > Why not? We're talking about the _possibility_ of adding a > graphic, not the obligation to do so. > > I have rejected this path for Emacs development. > The decision is made. > > Would people please stop arguing about it. For the record - That was written _before_ you "rejected this path". The only thing you had written previous to that was the following, which hardly closes the topic. On the contrary, it opens the door to discussion, asking if this is something we should do and if there are clean ways to "make it possible". > Is that really something we should get into? > I think we should not. > > That doesn't mean I am opposed to including some feature that would > make it possible. I would not be against that if it were clean, not a > lot of work, etc. But it is not a goal. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-06 16:35 ` Drew Adams 2007-09-06 20:04 ` Edward O'Connor @ 2007-09-06 20:06 ` David Kastrup 2007-09-06 20:22 ` Drew Adams 2007-09-07 6:31 ` Richard Stallman 2 siblings, 1 reply; 83+ messages in thread From: David Kastrup @ 2007-09-06 20:06 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel "Drew Adams" <drew.adams@oracle.com> writes: >> > Why do we need to put properties other that the `face' property >> > in doc strings? There are already ways to make links. >> >> To include graphics in Help, for one thing. >> >> Is that really something we should get into? >> I think we should not. > > Why not? > > Help, and documentation generally, often call upon graphics to aid > communication. > > Just having the possibility to include graphics does not, of course, mean > that it's a good idea to stuff tons of screenshots, icons, and other > graphics into help. But having the possibility means that when it is > appropriate to add a graphic you can do so easily. Help should not be restricted to users of graphical terminals. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-09-06 20:06 ` David Kastrup @ 2007-09-06 20:22 ` Drew Adams 0 siblings, 0 replies; 83+ messages in thread From: Drew Adams @ 2007-09-06 20:22 UTC (permalink / raw) To: emacs-devel > >> > Why do we need to put properties other that the `face' property > >> > in doc strings? There are already ways to make links. > >> > >> To include graphics in Help, for one thing. > >> > >> Is that really something we should get into? > >> I think we should not. > > > > Why not? > > > > Help, and documentation generally, often call upon graphics to aid > > communication. > > > > Just having the possibility to include graphics does not, of > course, mean > > that it's a good idea to stuff tons of screenshots, icons, and other > > graphics into help. But having the possibility means that when it is > > appropriate to add a graphic you can do so easily. > > Help should not be restricted to users of graphical terminals. Nor should manuals. Typically, ways are devised to easily exclude graphics from contexts where they are not viewable or a user does not want to view them. In many cases, ways are devised to provide text that serves as a replacement for a graphic that cannot be displayed or is not viewed for accessibility reasons (sight difficulties and such). User preference in this regard could be handled. Inability to display graphics could also be handled. Not a problem. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-06 16:35 ` Drew Adams 2007-09-06 20:04 ` Edward O'Connor 2007-09-06 20:06 ` David Kastrup @ 2007-09-07 6:31 ` Richard Stallman 2 siblings, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-09-07 6:31 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel > To include graphics in Help, for one thing. > > Is that really something we should get into? > I think we should not. Why not? It would be a big time sink. I would rather we put our effort into other things. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-09-04 18:51 ` Drew Adams 2007-09-04 22:46 ` Davis Herring @ 2007-09-05 6:16 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-09-05 6:16 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel 1. Let's accept Johan's fix for `describe-variable'. Please send this fix again -- I don't remember it. ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-01-24 8:22 ` Richard Stallman 2007-01-24 23:43 ` Johan Bockgård @ 2007-03-20 22:36 ` Drew Adams 2007-04-02 16:55 ` Drew Adams 1 sibling, 1 reply; 83+ messages in thread From: Drew Adams @ 2007-03-20 22:36 UTC (permalink / raw) To: emacs-devel [-- Attachment #1: Type: text/plain, Size: 803 bytes --] I suggested we allow display-completion-list to not strip text properties, to which Richard said OK. Thanks. I also suggested that `read-face-name' take advantage of this by applying the face to the face-name string: > > Or, complete a face name: you see the faces whose names you can > > choose (like `list-faces-display', but with completion). WYSIWYG. > > Attached is a screenshot, to show what I meant. The only change > needed was to make `read-face-name' apply the face to the face-name > string. As Richard's OK came after that in the same thread, I was hoping that that too would be implemented, but I don't see it in a build of March 8. Any chance that could make it into the release? It is much easier and quicker to pick a face name from a list when you can see what the faces look like. [-- Attachment #2: drew-emacs-face-name-completions.png --] [-- Type: image/png, Size: 212946 bytes --] [-- Attachment #3: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 83+ messages in thread
* RE: display-completion-list should not strip text properties 2007-03-20 22:36 ` Drew Adams @ 2007-04-02 16:55 ` Drew Adams 2007-04-02 18:51 ` Kim F. Storm 2007-04-03 21:40 ` Richard Stallman 0 siblings, 2 replies; 83+ messages in thread From: Drew Adams @ 2007-04-02 16:55 UTC (permalink / raw) To: emacs-devel > Sent: March 20, 2007 > I suggested we allow display-completion-list to not strip text properties, > to which Richard said OK. Thanks. > I also suggested that `read-face-name' take advantage of this by applying > the face to the face-name string RMS> I agree that this is a good change, and since it is simple and safe, RMS> we can do it now. Would someone please do it? Thanks. > As Richard's OK came after [the read-face-name suggestion] > in the same thread, I was hoping that that > too would be implemented, but I don't see it in a build > of March 8. Any chance that could make it into the release? Any news on this? I don't know if Richard meant both `display-completion-list' not stripping properties and `read-face-name' showing candidates with their faces. It's a lot easier to pick out a face candidate when you can see what it looks like. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-02 16:55 ` Drew Adams @ 2007-04-02 18:51 ` Kim F. Storm 2007-04-03 21:40 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Kim F. Storm @ 2007-04-02 18:51 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel "Drew Adams" <drew.adams@oracle.com> writes: > Any news on this? I don't know if Richard meant both > `display-completion-list' not stripping properties and `read-face-name' > showing candidates with their faces. It's a lot easier to pick out a face > candidate when you can see what it looks like. This is a new feature, so IMO it is now too late for Emacs 22.1. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-02 16:55 ` Drew Adams 2007-04-02 18:51 ` Kim F. Storm @ 2007-04-03 21:40 ` Richard Stallman 2007-04-03 21:53 ` Juanma Barranquero ` (2 more replies) 1 sibling, 3 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-03 21:40 UTC (permalink / raw) To: Drew Adams; +Cc: emacs-devel If Kevin Rodgers' papers will be here soon (I asked a second time today), then we had better defer this. If we will be delayed waiting for them, we could install this now. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-03 21:40 ` Richard Stallman @ 2007-04-03 21:53 ` Juanma Barranquero 2007-04-04 14:03 ` Richard Stallman 2007-04-03 22:03 ` Nick Roberts 2007-04-04 14:03 ` Richard Stallman 2 siblings, 1 reply; 83+ messages in thread From: Juanma Barranquero @ 2007-04-03 21:53 UTC (permalink / raw) To: rms; +Cc: Drew Adams, emacs-devel On 4/3/07, Richard Stallman <rms@gnu.org> wrote: > If we will be delayed waiting for them, > we could install this now. Why? Why should waiting for a legal issue affect the "no new features until after the release" policy? Juanma ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-03 21:53 ` Juanma Barranquero @ 2007-04-04 14:03 ` Richard Stallman 0 siblings, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-04 14:03 UTC (permalink / raw) To: Juanma Barranquero; +Cc: drew.adams, emacs-devel > If we will be delayed waiting for them, > we could install this now. Why? Why should waiting for a legal issue affect the "no new features until after the release" policy? The change in display-completion-list is on the edge between a new feature and a bug fix. I would not delay the release for it, but since we have to wait anyway, I see no harm in making the change. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-03 21:40 ` Richard Stallman 2007-04-03 21:53 ` Juanma Barranquero @ 2007-04-03 22:03 ` Nick Roberts 2007-04-04 14:03 ` Richard Stallman 2 siblings, 0 replies; 83+ messages in thread From: Nick Roberts @ 2007-04-03 22:03 UTC (permalink / raw) To: rms; +Cc: Drew Adams, emacs-devel > If Kevin Rodgers' papers will be here soon (I asked a second time today), > then we had better defer this. If we will be delayed waiting for them, > we could install this now. He's had ten years in which he could have signed them. He appears to have gone off the radar just when his signature is needed. What's the plan if they don't arrive? -- Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-03 21:40 ` Richard Stallman 2007-04-03 21:53 ` Juanma Barranquero 2007-04-03 22:03 ` Nick Roberts @ 2007-04-04 14:03 ` Richard Stallman 2007-04-04 14:59 ` Chong Yidong 2007-04-04 17:45 ` Edward O'Connor 2 siblings, 2 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-04 14:03 UTC (permalink / raw) To: drew.adams, emacs-devel; +Cc: rms I got bad news: so far, Kevin Rodgers has not sent in the email to receive a copyright assignment. I sent him another message yesterday. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-04 14:03 ` Richard Stallman @ 2007-04-04 14:59 ` Chong Yidong 2007-04-05 23:11 ` Richard Stallman 2007-04-04 17:45 ` Edward O'Connor 1 sibling, 1 reply; 83+ messages in thread From: Chong Yidong @ 2007-04-04 14:59 UTC (permalink / raw) To: rms; +Cc: emacs-devel Richard Stallman <rms@gnu.org> writes: > I got bad news: so far, Kevin Rodgers has not sent in the email > to receive a copyright assignment. I sent him another message > yesterday. His most recent changes have been reverted, which means his oldest extant non-trivial change is from 1995---more than ten years ago. If necessary, we can even revert the trivial changes going back to 1995; they are mostly doc fixes so there will be no loss of functionality. The main purpose of copyright assignment is intended to ensure the FSF is able to enforce of the GPL for Emacs---which is definitely doable given that everyone else has assigned copyright. Given this, and the fact that we have already made an effort to secure a copyright assignment from him, why not release Emacs 22 while we continue to pursue copyright assignment? ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-04 14:59 ` Chong Yidong @ 2007-04-05 23:11 ` Richard Stallman 2007-04-05 23:20 ` Chong Yidong ` (2 more replies) 0 siblings, 3 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-05 23:11 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel The main purpose of copyright assignment is intended to ensure the FSF is able to enforce of the GPL for Emacs---which is definitely doable given that everyone else has assigned copyright. Given this, and the fact that we have already made an effort to secure a copyright assignment from him, why not release Emacs 22 while we continue to pursue copyright assignment? This is a serious problem, and I will not treat it as ignorable. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-05 23:11 ` Richard Stallman @ 2007-04-05 23:20 ` Chong Yidong 2007-04-06 19:47 ` Richard Stallman 2007-04-05 23:45 ` Nick Roberts 2007-04-06 8:42 ` Eli Zaretskii 2 siblings, 1 reply; 83+ messages in thread From: Chong Yidong @ 2007-04-05 23:20 UTC (permalink / raw) To: rms; +Cc: emacs-devel Richard Stallman <rms@gnu.org> writes: > The main purpose of copyright assignment is intended to ensure the FSF > is able to enforce of the GPL for Emacs---which is definitely doable > given that everyone else has assigned copyright. Given this, and the > fact that we have already made an effort to secure a copyright > assignment from him, why not release Emacs 22 while we continue to > pursue copyright assignment? > > This is a serious problem, and I will not treat it as ignorable. So if Kevin Rodgers drops off the net, that scuppers the GNU Emacs project? Wonderful. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-05 23:20 ` Chong Yidong @ 2007-04-06 19:47 ` Richard Stallman 0 siblings, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-06 19:47 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel So if Kevin Rodgers drops off the net, that scuppers the GNU Emacs project? Wonderful. Please don't be sarcastic, and please don't exaggerate. What this means is that we have work to do. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-05 23:11 ` Richard Stallman 2007-04-05 23:20 ` Chong Yidong @ 2007-04-05 23:45 ` Nick Roberts 2007-04-06 1:15 ` Glenn Morris 2007-04-06 19:47 ` Richard Stallman 2007-04-06 8:42 ` Eli Zaretskii 2 siblings, 2 replies; 83+ messages in thread From: Nick Roberts @ 2007-04-05 23:45 UTC (permalink / raw) To: rms; +Cc: Chong Yidong, emacs-devel > The main purpose of copyright assignment is intended to ensure the FSF > is able to enforce of the GPL for Emacs---which is definitely doable > given that everyone else has assigned copyright. Given this, and the > fact that we have already made an effort to secure a copyright > assignment from him, why not release Emacs 22 while we continue to > pursue copyright assignment? > > This is a serious problem, and I will not treat it as ignorable. But when I asked what the plan was if Kevin Rodgers doesn't assign copyright for his changes, which seems a distinct possibility (we just don't know why), that's just what you did -- ignored it. -- Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-05 23:45 ` Nick Roberts @ 2007-04-06 1:15 ` Glenn Morris 2007-04-06 1:59 ` Chong Yidong 2007-04-06 19:47 ` Richard Stallman 1 sibling, 1 reply; 83+ messages in thread From: Glenn Morris @ 2007-04-06 1:15 UTC (permalink / raw) To: Nick Roberts; +Cc: Chong Yidong, rms, emacs-devel Nick Roberts wrote: > But when I asked what the plan was if Kevin Rodgers doesn't assign > copyright for his changes, which seems a distinct possibility (we > just don't know why), that's just what you did -- ignored it. The plan would be to remove all his contributions. Where some essential functionality goes, I imagine the person doing the removing would have to describe what the removed code did in general terms, then someone else would have to re-implement it independently. Annoying, but not insurmountable. I wish KR would just tell us if he is unable to assign copyright, or if it is going to take a long time to do so (I can imagine some employment situations causing either of these scenarios). Then we could get on with plan B. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 1:15 ` Glenn Morris @ 2007-04-06 1:59 ` Chong Yidong 2007-04-06 2:22 ` David Kastrup ` (6 more replies) 0 siblings, 7 replies; 83+ messages in thread From: Chong Yidong @ 2007-04-06 1:59 UTC (permalink / raw) To: Glenn Morris; +Cc: Nick Roberts, rms, emacs-devel Glenn Morris <rgm@gnu.org> writes: > The plan would be to remove all his contributions. > > Where some essential functionality goes, I imagine the person doing > the removing would have to describe what the removed code did in > general terms, then someone else would have to re-implement it > independently. Annoying, but not insurmountable. I went back and checked his contributions more carefully. I now think it's not difficult to revert almost all his changes. There was a big change he made to compile.el, but it was subsequently obseleted by Daniel Pfeiffer's big revamp of compile.el on 2004-03-11, which deleted the variables and functions that Kevin Rodgers had introduced on 1996-11-04. If we revert all his doc/comment fixes, and reimplement two of his changes, we can bring the his remaining contributions to 9 small changes spread over a total of 27 lines. This will introduce a few minor typos into Emacs, but absolutely no loss of functionality. The two changes that we have to reimplement are the following: 1997-03-24 Kevin Rodgers <kevinr@ihs.com> * compile.el (grep-program): New variable. (grep-command): Use it, and test whether it supports the -e option; fix doc string (last command is stored in history variable). (grep-null-device): Declare before grep-program and grep-command. (grep-find-use-xargs, grep-find-command, grep-find-history): New variables. (grep-find): New command. (grep): Only concatenate grep-null-device to COMMAND when it's not nil (to support grep-find). 1996-09-12 Kevin Rodgers <kevinr@ihs.com> * loadhist.el (read-feature): New function. (unload-feature): Read FEATURE interactively with read-feature. I can probably do this in a day. Should I go ahead with the big revert? -------------------------------- These are Kevin Rodger's changes in src/ChangeLog* and lisp/ChangeLog*: 1994-06-17 mailabbrev.el (build-mail-abbrevs): 1 line fix. 1994-07-11 mailabbrev.el (define-mail-abbrev): 2 line fix. 1994-08-26 xfns.c (Fx_color_defined_p): Obsolete. (Fx_color_defined_p has been rewritten in Lisp.) 1995-03-23 print.c (temp_output_buffer_setup): 1 line change. Revertable. 1995-04-20 dired-x.el: 1 line fix. 2 line doc fix, revertable. 1995-05-19 mailalias.el (expand-mail-aliases): 2 line regexp fix. Revertable. 1995-05-19 sendmail.el (mail-mode, mail-text): 6 line doc fix. Revertable. 1995-06-30 mailabbrev.el (mail-resolve-all-aliases-1): 1 line fix. 1995-11-10 files.el (find-file-noselect): 3 line fix. 1995-12-13 ange-ftp.el (ange-ftp-load): 1 line fix. Plus 2 line fix in code that's been rewritten. 1996-09-12 loadhist.el (read-feature): New fun used only in unload-feature. Trivially re-implementable. 1996-10-20 (compilation-skip-to-next-location): New var, defaults to nil 5 line fix to use it. Revertable. 1996-11-04 compile.el (compile-highlight-display-limit): New var, since deleted (compilation-handle-exit): This function has been rewritten. (compile-reinitialize-errors): This function has been deleted. (compilation-forget-errors): This function has been rewritten. 1997-03-24 compile.el (grep-program): New variable. (grep-command): New command. (grep-find): New command. 1997-11-02 emacs-lisp/byte-opt.el (byte-optimize-concat): New function. Revertable. (It's an optional optimization.) 1997-12-22 simple.el (previous-matching-history-element): 5 line fix. 1998-06-03 replace.el (esc-map): 1 line keybinding. 1998-07-07 vc.el (vc-finish-logentry): 1 line fix. 2003-03-06 ffap.el (dired-at-point): 2 line change. Revertable. 2003-03-07 dired-x.el (dired-guess-shell-case-fold-search): New user option. (dired-guess-default): 1 line change to use it. Revertable. 2003-07-25 menu-bar.el (menu-bar-tools-menu): 2 line menu string change. Revertable. 2003-09-01 progmodes/compile.el (previous-error): 5 line change. 2004-11-12 desktop.el (desktop-create-buffer, desktop-save): Four line optimization. Revertable. 2005-08-20 progmodes/compile.el (compilation-disable-input) New defcustom, defaults to nil. (compilation-start): 2 line change to use it. Revertable. 2005-12-10 emacs-lisp/lisp.el (lisp-complete-symbol): 6 line fix. 2006-01-27 textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate): Two line doc fix. Revertable. 2006-12-22 progmodes/sh-script.el (sh-make-vars-local): 1 line typo in string. Revertable. 2006-12-30 files.el (backup-buffer): 1 line change. Revertable. 2007-03-04 diff-mode.el (diff-mode): 4 line doc fix. Revertable. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 1:59 ` Chong Yidong @ 2007-04-06 2:22 ` David Kastrup 2007-04-06 4:18 ` Glenn Morris ` (5 subsequent siblings) 6 siblings, 0 replies; 83+ messages in thread From: David Kastrup @ 2007-04-06 2:22 UTC (permalink / raw) To: Chong Yidong; +Cc: Glenn Morris, Nick Roberts, rms, emacs-devel Chong Yidong <cyd@stupidchicken.com> writes: > If we revert all his doc/comment fixes, and reimplement two of his > changes, we can bring the his remaining contributions to 9 small > changes spread over a total of 27 lines. This will introduce a few > minor typos into Emacs, but absolutely no loss of functionality. Type corrections are not copyrightable, not being expression of any creative content (assuming that there is just one way to fix a particular typo). You would not need to revert those. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 1:59 ` Chong Yidong 2007-04-06 2:22 ` David Kastrup @ 2007-04-06 4:18 ` Glenn Morris 2007-04-06 8:41 ` Eli Zaretskii ` (4 subsequent siblings) 6 siblings, 0 replies; 83+ messages in thread From: Glenn Morris @ 2007-04-06 4:18 UTC (permalink / raw) To: Chong Yidong; +Cc: Nick Roberts, rms, emacs-devel Chong Yidong wrote: > I can probably do this in a day. Should I go ahead with the big revert? I for one would be very grateful to you for taking on such a tedious job. It's rms's call as to when we give up and go down this route. Is this really the only thing stopping an otherwise speedy release? <mulder>I want to believe</mulder>, but <scully>I can't quite bring myself to do so</scully>... ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 1:59 ` Chong Yidong 2007-04-06 2:22 ` David Kastrup 2007-04-06 4:18 ` Glenn Morris @ 2007-04-06 8:41 ` Eli Zaretskii 2007-04-06 14:47 ` Chong Yidong 2007-04-06 16:26 ` Kim F. Storm ` (3 subsequent siblings) 6 siblings, 1 reply; 83+ messages in thread From: Eli Zaretskii @ 2007-04-06 8:41 UTC (permalink / raw) To: Chong Yidong; +Cc: rms, emacs-devel > From: Chong Yidong <cyd@stupidchicken.com> > Date: Thu, 05 Apr 2007 21:59:21 -0400 > Cc: Nick Roberts <nickrob@snap.net.nz>, rms@gnu.org, emacs-devel@gnu.org > > 1997-03-24 Kevin Rodgers <kevinr@ihs.com> > > * compile.el (grep-program): New variable. > (grep-command): Use it, and test whether it supports the -e > option; fix doc string (last command is stored in history variable). > (grep-null-device): Declare before grep-program and grep-command. > (grep-find-use-xargs, grep-find-command, grep-find-history): > New variables. > (grep-find): New command. > (grep): Only concatenate grep-null-device to COMMAND when it's > not nil (to support grep-find). > > 1996-09-12 Kevin Rodgers <kevinr@ihs.com> > > * loadhist.el (read-feature): New function. > (unload-feature): Read FEATURE interactively with read-feature. > > I can probably do this in a day. Should I go ahead with the big revert? If we go this way, it is better that the person who reimplements Kevin's changes is someone other than you, because you looked too close into his code and may inadvertently write identical or very similar code. To avoid possible legal complications, a better way is this: you describe here, in plain English, what the changes do, and someone else codes that in Lisp. That way, copyright-related claims will not hold, since the chances that the other person's implementation will be identical are virtually non-existent, and the ideas of the changes are not copyrightable. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 8:41 ` Eli Zaretskii @ 2007-04-06 14:47 ` Chong Yidong 0 siblings, 0 replies; 83+ messages in thread From: Chong Yidong @ 2007-04-06 14:47 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, emacs-devel > If we go this way, it is better that the person who reimplements > Kevin's changes is someone other than you, because you looked too > close into his code and may inadvertently write identical or very > similar code. To avoid possible legal complications, a better way is > this: you describe here, in plain English, what the changes do, and > someone else codes that in Lisp. That way, copyright-related claims > will not hold, since the chances that the other person's > implementation will be identical are virtually non-existent, and the > ideas of the changes are not copyrightable. True enough. Would anyone like to volunteer for task of reimplementing grep-find and read-feature? The latter ought to take all of five minutes, but the former may take up to an hour because it is more intricate. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 1:59 ` Chong Yidong ` (2 preceding siblings ...) 2007-04-06 8:41 ` Eli Zaretskii @ 2007-04-06 16:26 ` Kim F. Storm 2007-04-06 17:34 ` Eli Zaretskii 2007-04-07 12:40 ` Richard Stallman 2007-04-06 17:06 ` Kim F. Storm ` (2 subsequent siblings) 6 siblings, 2 replies; 83+ messages in thread From: Kim F. Storm @ 2007-04-06 16:26 UTC (permalink / raw) To: Chong Yidong; +Cc: Glenn Morris, Nick Roberts, rms, emacs-devel Chong Yidong <cyd@stupidchicken.com> writes: > The two changes that we have to reimplement are the following: > > 1997-03-24 Kevin Rodgers <kevinr@ihs.com> > > * compile.el (grep-program): New variable. > (grep-command): Use it, and test whether it supports the -e > option; fix doc string (last command is stored in history variable). > (grep-null-device): Declare before grep-program and grep-command. > (grep-find-use-xargs, grep-find-command, grep-find-history): > New variables. > (grep-find): New command. > (grep): Only concatenate grep-null-device to COMMAND when it's > not nil (to support grep-find). EXECUTIVE SUMMARY: ------------------ We don't have to do anything about this. ANALYSIS: --------- I (and others) have already modified the code introduced by those changes several times, so parts of it is no longer present -- or very different from the original code. However, there are still parts which are quite close to Kevin's original code. Let's go over those changes: Index: compile.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/progmodes/compile.el,v retrieving revision 1.158 retrieving revision 1.159 diff -c -r1.158 -r1.159 *** compile.el 21 Feb 1997 09:46:03 -0000 1.158 --- compile.el 24 Mar 1997 23:59:44 -0000 1.159 *************** *** 256,263 **** ! (defvar grep-command "grep -n " ! "Last grep command used in \\[grep]; default for next grep.") --- 256,307 ---- ! ;; Use zgrep if available, to work nicely with compressed files. ! ;; Otherwise, use ordinary grep. ! (defvar grep-program ! (if (equal (condition-case nil ; in case "zgrep" isn't in exec-path ! (call-process "zgrep" nil nil nil ! "foo" grep-null-device) ! (error nil)) ! 1) ! "zgrep" ! "grep") ! "The default grep program for `grep-command' and `grep-find-command'.") This change has been reverted - but Kevin's code is still included as a comment. We could just remove the comment. ! ;; Use -e if grep supports it, ! ;; because that avoids lossage if the pattern starts with `-'. ! (defvar grep-command ! (if (equal (condition-case nil ; in case "grep" isn't in exec-path ! (call-process grep-program nil nil nil ! "-e" "foo" grep-null-device) ! (error nil)) ! 1) ! (format "%s -n -e " grep-program) ! (format "%s -n " grep-program)) ! "The default grep command for \\[grep].") The variable still exists, but the code to initialize it has been reworked, and is no longer Kevin's work. ! (defvar grep-find-use-xargs ! (if (equal (call-process "find" nil nil nil ! grep-null-device "-print0") ! 0) ! 'gnu) ! "Whether \\[grep-find] uses the `xargs' utility by default. ! ! If nil, it uses `grep -exec'; if `gnu', it uses `find -print0' and `xargs -0'; ! if not nil and not `gnu', it uses `find -print' and `xargs'. ! ! This variable's value takes effect when `compile.el' is loaded ! by influencing the default value for the variable `grep-find-command'.") Ditto. The current doc string is 50% similar to Kevin's work. ! ! (defvar grep-find-command ! (cond ((eq grep-find-use-xargs 'gnu) ! (format "find . -type f -print0 | xargs -0 -e %s" grep-command)) ! (grep-find-use-xargs ! (format "find . -type f -print | xargs %s" grep-command)) ! (t (cons (format "find . -type f -exec %s {} /dev/null \\;" ! grep-command) ! (+ 22 (length grep-command))))) ! "The default find command for \\[grep-find].") The variable still exists, but otherwise, this part has been completely reworked. *************** *** 308,313 **** --- 352,358 ---- + (defvar grep-find-history nil) Still exists -- but that's a trivial change (how else would you define the var?) *************** *** 392,402 **** ;; Setting process-setup-function makes exit-message-function work ;; even when async processes aren't supported. (let* ((compilation-process-setup-function 'grep-process-setup) ! (buf (compile-internal (concat command-args " " grep-null-device) "No more grep hits" "grep" ;; Give it a simpler regexp to match. nil grep-regexp-alist))))) (defun compile-internal (command error-message &optional name-of-mode parser regexp-alist name-function) --- 437,464 ---- ;; Setting process-setup-function makes exit-message-function work ;; even when async processes aren't supported. (let* ((compilation-process-setup-function 'grep-process-setup) ! (buf (compile-internal (if grep-null-device ! (concat command-args " " grep-null-device) ! command-args) "No more grep hits" "grep" ;; Give it a simpler regexp to match. nil grep-regexp-alist))))) This part is also completely reworked. + + ;;;###autoload + (defun grep-find (command-args) + "Run grep via find, with user-specified args, and collect output in a buffer. + While find runs asynchronously, you can use the \\[next-error] command + to find the text that grep hits refer to. + + This command uses a special history list for its arguments, so you can + easily repeat a find command." + (interactive + (list (read-from-minibuffer "Run find (like this): " + grep-find-command nil nil 'grep-find-history))) + (let ((grep-null-device nil)) ; see grep + (grep command-args))) + The grep-find command is still present with the above code and doc string mostly intact (the code has been extended in various ways - but you can still find those 5 lines of code in the current version of the function. However, Kevin's code and doc string is clearly derived from the already existing grep defun: (defun grep (command-args) "Run grep, with user-specified args, and collect output in a buffer. While grep runs asynchronously, you can use the \\[next-error] command to find the text that grep hits refer to. This command uses a special history list for its arguments, so you can easily repeat a grep command." (interactive (list (read-from-minibuffer "Run grep (like this): " grep-command nil nil 'grep-history))) ;; Setting process-setup-function makes exit-message-function work ;; even when async processes aren't supported. (let* ((compilation-process-setup-function 'grep-process-setup) (buf (compile-internal (concat command-args " " grep-null-device) "No more grep hits" "grep" ;; Give it a simpler regexp to match. nil grep-regexp-alist))))) CONCLUSION: ----------- Except for the commentary about zgrep [which I have just removed], the relevant code has either been reworked already, or is trivially derived from existing code. To conclude, I don't think we need to do anything about the changes related to grep-find functionality. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 16:26 ` Kim F. Storm @ 2007-04-06 17:34 ` Eli Zaretskii 2007-04-07 12:40 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Eli Zaretskii @ 2007-04-06 17:34 UTC (permalink / raw) To: Kim F. Storm; +Cc: cyd, rms, emacs-devel > From: storm@cua.dk (Kim F. Storm) > Date: Fri, 06 Apr 2007 18:26:07 +0200 > Cc: Glenn Morris <rgm@gnu.org>, Nick Roberts <nickrob@snap.net.nz>, rms@gnu.org, > emacs-devel@gnu.org > > Chong Yidong <cyd@stupidchicken.com> writes: > > > The two changes that we have to reimplement are the following: > > > > 1997-03-24 Kevin Rodgers <kevinr@ihs.com> > > > > * compile.el (grep-program): New variable. > > (grep-command): Use it, and test whether it supports the -e > > option; fix doc string (last command is stored in history variable). > > (grep-null-device): Declare before grep-program and grep-command. > > (grep-find-use-xargs, grep-find-command, grep-find-history): > > New variables. > > (grep-find): New command. > > (grep): Only concatenate grep-null-device to COMMAND when it's > > not nil (to support grep-find). > > > EXECUTIVE SUMMARY: > ------------------ > > We don't have to do anything about this. Sounds about right to me. Richard, do you agree? If not, why not? ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 16:26 ` Kim F. Storm 2007-04-06 17:34 ` Eli Zaretskii @ 2007-04-07 12:40 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-07 12:40 UTC (permalink / raw) To: Kim F. Storm; +Cc: rgm, cyd, nickrob, emacs-devel ! (defvar grep-find-use-xargs ! (if (equal (call-process "find" nil nil nil ! grep-null-device "-print0") ! 0) ! 'gnu) ! "Whether \\[grep-find] uses the `xargs' utility by default. ! ! If nil, it uses `grep -exec'; if `gnu', it uses `find -print0' and `xargs -0'; ! if not nil and not `gnu', it uses `find -print' and `xargs'. ! ! This variable's value takes effect when `compile.el' is loaded ! by influencing the default value for the variable `grep-find-command'.") Ditto. The current doc string is 50% similar to Kevin's work. Can someone rewrite that? ;; Setting process-setup-function makes exit-message-function work ;; even when async processes aren't supported. (let* ((compilation-process-setup-function 'grep-process-setup) (buf (compile-internal (concat command-args " " grep-null-device) "No more grep hits" "grep" ;; Give it a simpler regexp to match. nil grep-regexp-alist))))) I think we're ok with that much. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 1:59 ` Chong Yidong ` (3 preceding siblings ...) 2007-04-06 16:26 ` Kim F. Storm @ 2007-04-06 17:06 ` Kim F. Storm 2007-04-06 19:23 ` Kevin Rodgers changes Chong Yidong 2007-04-11 16:38 ` display-completion-list should not strip text properties Markus Triska 6 siblings, 0 replies; 83+ messages in thread From: Kim F. Storm @ 2007-04-06 17:06 UTC (permalink / raw) To: Chong Yidong; +Cc: Glenn Morris, Nick Roberts, rms, emacs-devel Chong Yidong <cyd@stupidchicken.com> writes: > 1996-09-12 Kevin Rodgers <kevinr@ihs.com> > > * loadhist.el (read-feature): New function. > (unload-feature): Read FEATURE interactively with read-feature. > I have now reimplemented that change. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 83+ messages in thread
* Kevin Rodgers changes 2007-04-06 1:59 ` Chong Yidong ` (4 preceding siblings ...) 2007-04-06 17:06 ` Kim F. Storm @ 2007-04-06 19:23 ` Chong Yidong 2007-04-07 7:32 ` martin rudalics 2007-04-07 12:40 ` Richard Stallman 2007-04-11 16:38 ` display-completion-list should not strip text properties Markus Triska 6 siblings, 2 replies; 83+ messages in thread From: Chong Yidong @ 2007-04-06 19:23 UTC (permalink / raw) To: rms; +Cc: Glenn Morris, Nick Roberts, emacs-devel Currently, Kevin Rodger's unassigned extant Emacs contributions consist of 12 changes, totalling 26 lines. In addition, he has two small manual changes that should be rewritten: 2006-12-08 files.texi (Misc File Ops): Document insert-file-literally. 2006-12-23 killing.texi (Deletion): Describe M-\ prefix argument. Richard, can we proceed without Kevin's assignment if these manual changes are made? == Details: ========================================================== Here is an updated list of Kevin Rodger's changes to Emacs (apart from the above manual changes), divided into four categories. (1) Small but non-trivial changes currently in Emacs. (2) Changes we don't need to worry about (one-character typos etc). (3) Some unimportant changes that I went ahead and reverted. (4) Changes that were subsequently deleted or overwritten. I have not reverted any of his changes that would lead to loss of user functionality. If we do that, the number of items in category (1) can be further reduced. But 26 lines is surely safe enough. ===================================================================== (1) Existing changes: 1994-06-17 mailabbrev.el (1 line change) (build-mail-abbrevs): Pass a recursivep argument in recursive call. 1994-07-11 mailabbrev.el (1 line change) (define-mail-abbrev): Don't try to parse empty aliases. 1995-03-23 print.c (1 line change) (temp_output_buffer_setup): (Re)set the default directory of the temp buffer to that of the current buffer. 1995-05-19 mailalias.el (2 line change) (expand-mail-aliases): Expand aliases in From and Reply-to headers as well, plus the Resent- variants. 1995-06-30 mailabbrev.el (1 line change) (mail-resolve-all-aliases-1): Downcase address before recursive call. 1995-11-10 files.el (2 line change) (find-file-noselect): Respect the value of find-file-visit-truename when FILENAME is a directory and find-file-run-dired is non-nil. 1998-06-03 replace.el (1 line change) (esc-map): Bind C-M-% to query-replace-regexp. 1997-12-22 simple.el (5 line change) (previous-matching-history-element): Bind case-fold-search to nil if REGEXP contains an uppercase letter. 1996-10-20 compile.el (1 line change) (compilation-skip-to-next-location): Defined. 2003-03-06 ffap.el (1 line change) (dired-at-point): Check whether the user can create a directory before asking about creating it. 2005-08-20 progmodes/compile.el (9 line change) (compilation-disable-input): New defcustom. (compilation-start): If compilation-disable-input is non-nil, send EOF to the compilation process. 2006-12-30 files.el (1 line change) (backup-buffer): Show entire backup file name in msg. ===================================================================== (2) Existing changes that we don't have to worry about 1998-07-07 vc.el (KR has papers for VC) 2003-09-01 progmodes/compile.el (code copied from next-error) (previous-error): Accept a prefix argument, similarly to next-error. 2006-12-22 progmodes/sh-script.el (typo, noncreative) (sh-make-vars-local): Fix a typo in message string. ===================================================================== (3) Changes that have been reverted. 1995-05-19 sendmail.el (mail-mode): Clarify doc string. (mail-text): Ditto. 1997-11-02 emacs-lisp/byte-opt.el (byte-optimize-concat): New function. 1998-08-26 isearch.el (isearch-forward): Doc fix. 2003-03-07 dired-x.el (dired-guess-shell-case-fold-search): New user option. (dired-guess-default): Use it. 2004-11-12 desktop.el (desktop-create-buffer, desktop-save): Avoid some consing by using mapc instead of mapcar. 2003-07-25 menu-bar.el (menu-bar-tools-menu): Minor change in strings. 2007-03-04 diff-mode.el (diff-mode): Doc fix. 2006-01-27 textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate): Doc fix. ===================================================================== (4) Obsoleted changes (code that has been subsequently deleted from Emacs) 1994-08-26 xfns.c (Fx_color_defined_p has been deleted) (Fx_color_defined_p): Return list of RGB values, not just t. 1995-04-20 dired-x.el (dired-omit-files-p has been deleted) Change the instructions in the INSTALLATION comment block to set buffer-local variables like dired-omit-files-p in dired-mode-hook. (dired-omit-files-p): Make local to all buffers. (dired-omit-files): Fix doc string (not buffer-local). (dired-omit-startup): Don't need to make dired-omit-files-p local to buffer here. 1995-12-13 ange-ftp.el (code rewritten using new process functions) (ange-ftp-load): Added missing form to `cdr' down tryfiles in `while' loop. 1996-09-12 loadhist.el (reimplemented by KFS) (read-feature): New function. (unload-feature): Read FEATURE interactively with read-feature. 1996-11-04 compile.el (this code has been completely rewritten) (compile-highlight-display-limit): New variable. (compilation-handle-exit): Parse error messages here as specified by compile-highlight-display-limit. (compile-reinitialize-errors): Add highlighting to error messages once they are parsed. (compilation-forget-errors): Remove highlighting properties here. 1997-03-24 compile.el (this has been rewritten; see KFS's email) (grep-program): New variable. (grep-command): Use it, and test whether it supports the -e option; fix doc string (last command is stored in history variable). (grep-null-device): Declare before grep-program and grep-command. (grep-find-use-xargs, grep-find-command, grep-find-history): New variables. (grep-find): New command. (grep): Only concatenate grep-null-device to COMMAND when it's not nil (to support grep-find). 1997-12-22 simple.el (these doc fixes have been overwritten) (previous-matching-history-element, next-matching-history-element): Doc fixes. 1996-10-20 compile.el (this code has been completely rewritten) (compilation-next-error-locus, compilation-parse-errors): Respect compilation-skip-to-next-location. 2005-12-10 emacs-lisp/lisp.el (rewritten by Stefan Monnier on 2005-12-21) (lisp-complete-symbol): Regenerate the completion list, even after a partial completion has been inserted in the current buffer. If there are more than 1 completion, redisplay the *Completions* buffer; if the completion is unique, delete the *Completions* window. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-06 19:23 ` Kevin Rodgers changes Chong Yidong @ 2007-04-07 7:32 ` martin rudalics 2007-04-07 12:40 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: martin rudalics @ 2007-04-07 7:32 UTC (permalink / raw) To: Chong Yidong; +Cc: Glenn Morris, Nick Roberts, rms, emacs-devel [-- Attachment #1: Type: text/plain, Size: 1576 bytes --] > 2006-01-27 textmodes/flyspell.el > (flyspell-incorrect, flyspell-duplicate): Doc fix. Rather than reverting I'd propose to fix that as in the attached patch. That patch also simplifies the corresponding code and fixes a bug you should be able to reproduce as follows: (1) Set `flyspell-duplicate-distance' to 12 and enable `flyspell-mode'. (2) In an empty buffer insert the single line: worryin and worryin Both occurrences of "worryin" should get highlighted with `flyspell-duplicate' face. (3) Correct the second occurrence of "worryin" to "worrying". Thus your line should read as: worryin and worrying with the highlighting removed from the second occurrence. (4) Moving the cursor to the first "worryin" should get you now Error in post-command-hook: (error Invalid search bound (wrong side of point)) virtually disabling `flyspell-mode'. The bug is caused within (defun flyspell-word-search-forward (word bound) (save-excursion (let ((r '()) (inhibit-point-motion-hooks t) p) (while (and (not r) (setq p (search-forward word bound t))) (let ((lw (flyspell-get-word '()))) (if (and (consp lw) (string-equal (car lw) word)) (setq r p) (goto-char (1+ p))))) r))) Note that the string " and worryin" contains exactly 12 characters. `search-forward' stops after having found the second "worryin" but the subsequent conditional fails since "worrying is correct". `bound' still refers to the position after "worryin" but `point' gets set to the position after "worrying" raising the wrong side of point error. [-- Attachment #2: flyspell0704.patch --] [-- Type: text/plain, Size: 5174 bytes --] *** flyspell.el.~1.116.~ Mon Apr 2 07:45:14 2007 --- flyspell.el Sat Apr 7 08:37:24 2007 *************** *** 79,91 **** :type 'boolean) (defcustom flyspell-duplicate-distance -1 ! "The maximum distance for finding duplicates of unrecognized words. ! This applies to the feature that when a word is not found in the dictionary, ! if the same spelling occurs elsewhere in the buffer, ! Flyspell uses a different face (`flyspell-duplicate') to highlight it. ! This variable specifies how far to search to find such a duplicate. ! -1 means no limit (search the whole buffer). ! 0 means do not search for duplicate unrecognized spellings." :group 'flyspell :version "21.1" :type 'number) --- 79,92 ---- :type 'boolean) (defcustom flyspell-duplicate-distance -1 ! "Maximum distance of duplicate misspellings. ! By default Flyspell highlights single occurrences of a misspelled word ! with `flyspell-incorrect' face and multiple occurrences with ! `flyspell-duplicate' face. This variable specifies how far Flyspell may ! go to find multiple occurrences. -1 means no limit \(search the entire ! buffer). 0 means do not search at all \(that is, highlight every ! occurrence of a misspelled word with `flyspell-incorrect'). Any other ! non-negative number specifies the maximum number of characters to go." :group 'flyspell :version "21.1" :type 'number) *************** *** 431,437 **** (defface flyspell-incorrect '((((class color)) (:foreground "OrangeRed" :bold t :underline t)) (t (:bold t))) ! "Face used to display a misspelled word in Flyspell." :group 'flyspell) ;; backward-compatibility alias (put 'flyspell-incorrect-face 'face-alias 'flyspell-incorrect) --- 432,441 ---- (defface flyspell-incorrect '((((class color)) (:foreground "OrangeRed" :bold t :underline t)) (t (:bold t))) ! "Face for highlighting misspelled words. ! This face is used for highlighting single occurrences of misspelled ! words. Multiple occurrences are highlighted with `flyspell-duplicate' ! face." :group 'flyspell) ;; backward-compatibility alias (put 'flyspell-incorrect-face 'face-alias 'flyspell-incorrect) *************** *** 439,445 **** (defface flyspell-duplicate '((((class color)) (:foreground "Gold3" :bold t :underline t)) (t (:bold t))) ! "Face used to display subsequent occurrences of a misspelled word. See also `flyspell-duplicate-distance'." :group 'flyspell) ;; backward-compatibility alias --- 443,449 ---- (defface flyspell-duplicate '((((class color)) (:foreground "Gold3" :bold t :underline t)) (t (:bold t))) ! "Face for highlighting multiple occurrences of misspelled words. See also `flyspell-duplicate-distance'." :group 'flyspell) ;; backward-compatibility alias *************** *** 991,997 **** (let ((lw (flyspell-get-word '()))) (if (and (consp lw) (string-equal (car lw) word)) (setq r p) ! (goto-char (1+ p))))) r))) ;;*---------------------------------------------------------------------*/ --- 995,1001 ---- (let ((lw (flyspell-get-word '()))) (if (and (consp lw) (string-equal (car lw) word)) (setq r p) ! (goto-char p)))) r))) ;;*---------------------------------------------------------------------*/ *************** *** 1094,1123 **** (if (> end start) (flyspell-unhighlight-at (- end 1))) t) ! ((or (and (< flyspell-duplicate-distance 0) ! (or (save-excursion ! (goto-char start) ! (flyspell-word-search-backward ! word ! (point-min))) ! (save-excursion ! (goto-char end) ! (flyspell-word-search-forward ! word ! (point-max))))) ! (and (> flyspell-duplicate-distance 0) ! (or (save-excursion ! (goto-char start) ! (flyspell-word-search-backward ! word ! (- start ! flyspell-duplicate-distance))) ! (save-excursion ! (goto-char end) ! (flyspell-word-search-forward ! word ! (+ end ! flyspell-duplicate-distance)))))) ;; This is a misspelled word which occurs ;; twice within flyspell-duplicate-distance. (setq flyspell-word-cache-result nil) --- 1098,1120 ---- (if (> end start) (flyspell-unhighlight-at (- end 1))) t) ! ((and (not (zerop flyspell-duplicate-distance)) ! (or (save-excursion ! (goto-char start) ! (flyspell-word-search-backward ! word ! (if (< flyspell-duplicate-distance 0) ! (point-min) ! (- start ! flyspell-duplicate-distance)))) ! (save-excursion ! (goto-char end) ! (flyspell-word-search-forward ! word ! (if (< flyspell-duplicate-distance 0) ! (point-max) ! (+ end ! flyspell-duplicate-distance)))))) ;; This is a misspelled word which occurs ;; twice within flyspell-duplicate-distance. (setq flyspell-word-cache-result nil) [-- Attachment #3: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-06 19:23 ` Kevin Rodgers changes Chong Yidong 2007-04-07 7:32 ` martin rudalics @ 2007-04-07 12:40 ` Richard Stallman 2007-04-07 16:57 ` Chong Yidong 2007-04-07 17:34 ` Eli Zaretskii 1 sibling, 2 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-07 12:40 UTC (permalink / raw) To: Chong Yidong; +Cc: rgm, nickrob, emacs-devel Currently, Kevin Rodger's unassigned extant Emacs contributions consist of 12 changes, totalling 26 lines. In addition, he has two small manual changes that should be rewritten: 2006-12-08 files.texi (Misc File Ops): Document insert-file-literally. 2006-12-23 killing.texi (Deletion): Describe M-\ prefix argument. Richard, can we proceed without Kevin's assignment if these manual changes are made? Yes, plus rewriting the compile.el doc string that I mentioned in a previous message. So please do rewrite these two manual changes. With those two gone, this item is done. (And just yesterday people in a frantic hurry were arguing that this would be so hard that we should not try to deal with it.) ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-07 12:40 ` Richard Stallman @ 2007-04-07 16:57 ` Chong Yidong 2007-04-07 17:34 ` Eli Zaretskii 1 sibling, 0 replies; 83+ messages in thread From: Chong Yidong @ 2007-04-07 16:57 UTC (permalink / raw) To: rms; +Cc: rgm, nickrob, emacs-devel Richard Stallman <rms@gnu.org> writes: > Currently, Kevin Rodger's unassigned extant Emacs contributions > consist of 12 changes, totalling 26 lines. > > In addition, he has two small manual changes that should be rewritten: > > 2006-12-08 files.texi (Misc File Ops): Document insert-file-literally. > 2006-12-23 killing.texi (Deletion): Describe M-\ prefix argument. > > Richard, can we proceed without Kevin's assignment if these manual > changes are made? > > Yes, plus rewriting the compile.el doc string that I mentioned > in a previous message. Done. > So please do rewrite these two manual changes. > With those two gone, this item is done. Done. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-07 12:40 ` Richard Stallman 2007-04-07 16:57 ` Chong Yidong @ 2007-04-07 17:34 ` Eli Zaretskii 2007-04-08 12:28 ` Richard Stallman 1 sibling, 1 reply; 83+ messages in thread From: Eli Zaretskii @ 2007-04-07 17:34 UTC (permalink / raw) To: rms; +Cc: rgm, cyd, nickrob, emacs-devel > From: Richard Stallman <rms@gnu.org> > Date: Sat, 07 Apr 2007 08:40:51 -0400 > Cc: rgm@gnu.org, nickrob@snap.net.nz, emacs-devel@gnu.org > > (And just yesterday people in a frantic hurry were arguing that this > would be so hard that we should not try to deal with it.) No, people were arguing that we should find a way (like this one) to solve this problem without waiting indefinitely. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-07 17:34 ` Eli Zaretskii @ 2007-04-08 12:28 ` Richard Stallman 2007-04-08 21:07 ` Eli Zaretskii 2007-04-08 21:30 ` Chong Yidong 0 siblings, 2 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-08 12:28 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rgm, cyd, nickrob, emacs-devel > (And just yesterday people in a frantic hurry were arguing that this > would be so hard that we should not try to deal with it.) No, people were arguing that we should find a way (like this one) to solve this problem without waiting indefinitely. Maybe some people were, but I remember messages demanding specifically that I make a release without fixing the problem. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-08 12:28 ` Richard Stallman @ 2007-04-08 21:07 ` Eli Zaretskii 2007-04-09 14:33 ` Daniel Brockman 2007-04-09 15:42 ` Richard Stallman 2007-04-08 21:30 ` Chong Yidong 1 sibling, 2 replies; 83+ messages in thread From: Eli Zaretskii @ 2007-04-08 21:07 UTC (permalink / raw) To: rms; +Cc: rgm, cyd, nickrob, emacs-devel > From: Richard Stallman <rms@gnu.org> > Date: Sun, 08 Apr 2007 08:28:19 -0400 > Cc: rgm@gnu.org, cyd@stupidchicken.com, nickrob@snap.net.nz, > emacs-devel@gnu.org > > > (And just yesterday people in a frantic hurry were arguing that this > > would be so hard that we should not try to deal with it.) > > No, people were arguing that we should find a way (like this one) to > solve this problem without waiting indefinitely. > > Maybe some people were, but I remember messages demanding specifically > that I make a release without fixing the problem. I don't think anyone has ever suggested that. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-08 21:07 ` Eli Zaretskii @ 2007-04-09 14:33 ` Daniel Brockman 2007-04-09 15:42 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Daniel Brockman @ 2007-04-09 14:33 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >>>> (And just yesterday people in a frantic hurry were arguing that >>>> this would be so hard that we should not try to deal with it.) >>> >>> No, people were arguing that we should find a way (like this one) >>> to solve this problem without waiting indefinitely. >> >> Maybe some people were, but I remember messages demanding >> specifically that I make a release without fixing the problem. > > I don't think anyone has ever suggested that. The main purpose of copyright assignment is intended to ensure the FSF is able to enforce of the GPL for Emacs---which is definitely doable given that everyone else has assigned copyright. Given this, and the fact that we have already made an effort to secure a copyright assignment from him, why not release Emacs 22 while we continue to pursue copyright assignment? That's pretty far from a `demand', but it's definitely a `suggestion'. So you are both equally right. :-) -- Daniel Brockman <daniel@brockman.se> ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-08 21:07 ` Eli Zaretskii 2007-04-09 14:33 ` Daniel Brockman @ 2007-04-09 15:42 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-09 15:42 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rgm, cyd, nickrob, emacs-devel > Maybe some people were, but I remember messages demanding specifically > that I make a release without fixing the problem. I don't think anyone has ever suggested that. It was in an emacs-devel message a day or two before we figured out how to deal with this. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-08 12:28 ` Richard Stallman 2007-04-08 21:07 ` Eli Zaretskii @ 2007-04-08 21:30 ` Chong Yidong 2007-04-09 15:42 ` Richard Stallman 1 sibling, 1 reply; 83+ messages in thread From: Chong Yidong @ 2007-04-08 21:30 UTC (permalink / raw) To: rms; +Cc: rgm, Eli Zaretskii, nickrob, emacs-devel Richard Stallman <rms@gnu.org> writes: > > (And just yesterday people in a frantic hurry were arguing that this > > would be so hard that we should not try to deal with it.) > > No, people were arguing that we should find a way (like this one) to > solve this problem without waiting indefinitely. > > Maybe some people were, but I remember messages demanding specifically > that I make a release without fixing the problem. "Demanding"? Maybe you, also, should refrain from exaggerating. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: Kevin Rodgers changes 2007-04-08 21:30 ` Chong Yidong @ 2007-04-09 15:42 ` Richard Stallman 0 siblings, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-09 15:42 UTC (permalink / raw) To: Chong Yidong; +Cc: rgm, eliz, nickrob, emacs-devel > Maybe some people were, but I remember messages demanding specifically > that I make a release without fixing the problem. "Demanding"? Maybe you, also, should refrain from exaggerating. Would you prefer "clamoring and insisting"? ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 1:59 ` Chong Yidong ` (5 preceding siblings ...) 2007-04-06 19:23 ` Kevin Rodgers changes Chong Yidong @ 2007-04-11 16:38 ` Markus Triska 2007-04-11 17:13 ` Chong Yidong 6 siblings, 1 reply; 83+ messages in thread From: Markus Triska @ 2007-04-11 16:38 UTC (permalink / raw) To: Chong Yidong; +Cc: Glenn Morris, Nick Roberts, rms, emacs-devel Chong Yidong <cyd@stupidchicken.com> writes: > 1997-11-02 emacs-lisp/byte-opt.el (byte-optimize-concat): New function. > Revertable. (It's an optional optimization.) This had evolved into a more general and worthwhile optimisation for several pure functions. Here's an independent implementation: 2007-04-11 Markus Triska <markus.triska@gmx.at> * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): evaluate pure function calls if possible (byte-optimize-all-constp): new function Index: byte-opt.el =================================================================== RCS file: /sources/emacs/emacs/lisp/emacs-lisp/byte-opt.el,v retrieving revision 1.93 diff -c -r1.93 byte-opt.el *** byte-opt.el 11 Apr 2007 03:57:11 -0000 1.93 --- byte-opt.el 11 Apr 2007 15:43:41 -0000 *************** *** 557,564 **** ;; Otherwise, no args can be considered to be for-effect, ;; even if the called function is for-effect, because we ;; don't know anything about that function. ! (cons fn (mapcar 'byte-optimize-form (cdr form))))))) ! (defun byte-optimize-form (form &optional for-effect) "The source-level pass of the optimizer." --- 557,576 ---- ;; Otherwise, no args can be considered to be for-effect, ;; even if the called function is for-effect, because we ;; don't know anything about that function. ! (let ((args (mapcar #'byte-optimize-form (cdr form)))) ! (if (and (get fn 'pure) ! (byte-optimize-all-constp args)) ! (list 'quote (apply fn (mapcar #'eval args))) ! (cons fn args))))))) ! ! (defun byte-optimize-all-constp (list) ! "Non-nil iff all elements of LIST satisfy `byte-compile-constp'." ! (let ((constant t)) ! (while (and list constant) ! (unless (byte-compile-constp (car list)) ! (setq constant nil)) ! (setq list (cdr list))) ! constant)) (defun byte-optimize-form (form &optional for-effect) "The source-level pass of the optimizer." *************** *** 1241,1246 **** --- 1253,1270 ---- (setq side-effect-and-error-free-fns (cdr side-effect-and-error-free-fns))) nil) + \f + ;; pure functions are side-effect free functions whose values depend + ;; only on their arguments. For these functions, calls with constant + ;; arguments can be evaluated at compile time. This may shift run time + ;; errors to compile time. + + (let ((pure-fns + '(concat symbol-name regexp-opt regexp-quote string-to-syntax))) + (while pure-fns + (put (car pure-fns) 'pure t) + (setq pure-fns (cdr pure-fns))) + nil) (defun byte-compile-splice-in-already-compiled-code (form) ;; form is (byte-code "..." [...] n) ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-11 16:38 ` display-completion-list should not strip text properties Markus Triska @ 2007-04-11 17:13 ` Chong Yidong 0 siblings, 0 replies; 83+ messages in thread From: Chong Yidong @ 2007-04-11 17:13 UTC (permalink / raw) To: Markus Triska; +Cc: Glenn Morris, Nick Roberts, rms, emacs-devel Markus Triska <markus.triska@gmx.at> writes: >> 1997-11-02 emacs-lisp/byte-opt.el (byte-optimize-concat): New function. >> Revertable. (It's an optional optimization.) > > This had evolved into a more general and worthwhile optimisation for > several pure functions. Here's an independent implementation: Thanks very much. I checked this in. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-05 23:45 ` Nick Roberts 2007-04-06 1:15 ` Glenn Morris @ 2007-04-06 19:47 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-06 19:47 UTC (permalink / raw) To: Nick Roberts; +Cc: cyd, emacs-devel But when I asked what the plan was if Kevin Rodgers doesn't assign copyright for his changes, which seems a distinct possibility (we just don't know why), that's just what you did -- ignored it. Maybe I ignored your question, or maybe I did not see it. Whichever, that is a side issue. The issue that is important, and must not be ignored, is the problem of the code that is copyright Kevin Rodgers. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-05 23:11 ` Richard Stallman 2007-04-05 23:20 ` Chong Yidong 2007-04-05 23:45 ` Nick Roberts @ 2007-04-06 8:42 ` Eli Zaretskii 2007-04-06 19:47 ` Richard Stallman 2 siblings, 1 reply; 83+ messages in thread From: Eli Zaretskii @ 2007-04-06 8:42 UTC (permalink / raw) To: rms; +Cc: cyd, emacs-devel > From: Richard Stallman <rms@gnu.org> > Date: Thu, 05 Apr 2007 19:11:30 -0400 > Cc: emacs-devel@gnu.org > > The main purpose of copyright assignment is intended to ensure the FSF > is able to enforce of the GPL for Emacs---which is definitely doable > given that everyone else has assigned copyright. Given this, and the > fact that we have already made an effort to secure a copyright > assignment from him, why not release Emacs 22 while we continue to > pursue copyright assignment? > > This is a serious problem, and I will not treat it as ignorable. He didn't say to ignore it, he said we should find a way around it to go for a release. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-06 8:42 ` Eli Zaretskii @ 2007-04-06 19:47 ` Richard Stallman 0 siblings, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-06 19:47 UTC (permalink / raw) To: Eli Zaretskii; +Cc: cyd, emacs-devel He didn't say to ignore it, he said we should find a way around it to go for a release. That would be effectively ignoring the problem. If we put it off now, we would be likely to put it off indefinitely. I don't want to take that path. Fortunately Glenn listened to my concern, and found a feasible way to solve the problem. Glenn, would you please remove the code that you've identified as needing removal? There is no need to un-fix the typos. I agree with Eli that it is better if someone else reimplements the code based on a description from you. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-04 14:03 ` Richard Stallman 2007-04-04 14:59 ` Chong Yidong @ 2007-04-04 17:45 ` Edward O'Connor 2007-04-05 14:36 ` Chong Yidong 2007-04-05 23:11 ` Richard Stallman 1 sibling, 2 replies; 83+ messages in thread From: Edward O'Connor @ 2007-04-04 17:45 UTC (permalink / raw) To: emacs-devel RMS wrote: > I got bad news: so far, Kevin Rodgers has not sent in the email to > receive a copyright assignment. I sent him another message yesterday. It's possible that you're using an out-of-date email address for him -- he just posted to gnu.emacs.help yesterday: From: Kevin Rodgers <kevin.d.rodgers@gmail.com> Subject: Re: `dispatch table` Archived-At: <http://article.gmane.org/gmane.emacs.help/42403> Ted -- Edward O'Connor hober0@gmail.com Ense petit placidam sub libertate quietem. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-04 17:45 ` Edward O'Connor @ 2007-04-05 14:36 ` Chong Yidong 2007-04-05 15:02 ` Juanma Barranquero 2007-04-05 23:11 ` Richard Stallman 1 sibling, 1 reply; 83+ messages in thread From: Chong Yidong @ 2007-04-05 14:36 UTC (permalink / raw) To: Edward O'Connor; +Cc: emacs-devel "Edward O'Connor" <hober0@gmail.com> writes: > RMS wrote: > >> I got bad news: so far, Kevin Rodgers has not sent in the email to >> receive a copyright assignment. I sent him another message yesterday. > > It's possible that you're using an out-of-date email address for him -- > he just posted to gnu.emacs.help yesterday: > > From: Kevin Rodgers <kevin.d.rodgers@gmail.com> > Subject: Re: `dispatch table` > Archived-At: <http://article.gmane.org/gmane.emacs.help/42403> He sends emails, but apparently does not respond to them (except once in a very long while). ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-05 14:36 ` Chong Yidong @ 2007-04-05 15:02 ` Juanma Barranquero 0 siblings, 0 replies; 83+ messages in thread From: Juanma Barranquero @ 2007-04-05 15:02 UTC (permalink / raw) To: Chong Yidong; +Cc: Edward O'Connor, emacs-devel On 4/5/07, Chong Yidong <cyd@stupidchicken.com> wrote: > He sends emails, but apparently does not respond to them (except once > in a very long while). Did you try to write him a public message in gnu.emacs.help saying something like: "Kevin, we're very interested in contacting with you ASAP, could you please write to us to such-and-such address or give us another way to contact you?" (with better wording, of course :). Juanma ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-04-04 17:45 ` Edward O'Connor 2007-04-05 14:36 ` Chong Yidong @ 2007-04-05 23:11 ` Richard Stallman 1 sibling, 0 replies; 83+ messages in thread From: Richard Stallman @ 2007-04-05 23:11 UTC (permalink / raw) To: Edward O'Connor; +Cc: emacs-devel It's possible that you're using an out-of-date email address for him -- he just posted to gnu.emacs.help yesterday: From: Kevin Rodgers <kevin.d.rodgers@gmail.com> That is the address I used. ^ permalink raw reply [flat|nested] 83+ messages in thread
* Re: display-completion-list should not strip text properties 2007-01-23 2:07 ` Richard Stallman 2007-01-23 5:10 ` Drew Adams @ 2007-01-24 7:07 ` Kevin Rodgers 1 sibling, 0 replies; 83+ messages in thread From: Kevin Rodgers @ 2007-01-24 7:07 UTC (permalink / raw) To: emacs-devel Richard Stallman wrote: > The other functions involved in completing (`all-completions', > `try-completions', etc.) already DTRT in this regard. A `princ'-to-`insert' > substitution in `display-completion-list' is the only change needed to allow > faces and other text properties in buffer *Completions*. Users could then > pass propertized strings to, for example, `completing-read' and have them > displayed as defined. > > Is there a case where this is useful? I can't remember the exact context, but I once tried to solve a problem by attaching a non-special text property to completion strings, which would be used by the caller to map the completed string to another object. That can be done other ways, like making the completion strings keys in an alist or an obarray; but since the completion list was dynamically generated, it seemed cleaner to me to avoid creating the additional data structure. -- Kevin Rodgers Denver, Colorado, USA ^ permalink raw reply [flat|nested] 83+ messages in thread
end of thread, other threads:[~2007-09-08 7:00 UTC | newest] Thread overview: 83+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-01-22 17:23 display-completion-list should not strip text properties Drew Adams 2007-01-22 18:56 ` Stefan Monnier 2007-01-23 2:07 ` Richard Stallman 2007-01-23 5:10 ` Drew Adams 2007-01-23 21:32 ` Drew Adams 2007-01-24 8:22 ` Richard Stallman 2007-01-24 23:43 ` Johan Bockgård 2007-01-25 10:53 ` Richard Stallman 2007-01-26 13:17 ` Vinicius Jose Latorre 2007-01-27 0:46 ` Richard Stallman 2007-09-01 19:56 ` Drew Adams 2007-09-02 18:52 ` Juri Linkov 2007-09-03 18:25 ` Richard Stallman 2007-09-03 23:48 ` Juri Linkov 2007-09-04 5:59 ` David Kastrup 2007-09-04 9:52 ` Juri Linkov 2007-09-04 8:49 ` tomas 2007-09-04 9:54 ` Juri Linkov 2007-09-04 10:56 ` Johan Bockgård 2007-09-04 22:58 ` Richard Stallman 2007-09-04 16:45 ` Richard Stallman 2007-09-04 18:51 ` Drew Adams 2007-09-04 22:46 ` Davis Herring 2007-09-05 6:16 ` Richard Stallman 2007-09-05 14:21 ` Drew Adams 2007-09-06 4:59 ` Richard Stallman 2007-09-06 16:35 ` Drew Adams 2007-09-06 20:04 ` Edward O'Connor 2007-09-06 20:16 ` Drew Adams 2007-09-06 23:08 ` Robert J. Chassell 2007-09-06 23:42 ` Davis Herring 2007-09-07 12:30 ` Robert J. Chassell 2007-09-08 7:00 ` Richard Stallman 2007-09-07 19:53 ` Richard Stallman 2007-09-07 22:07 ` Drew Adams 2007-09-06 20:06 ` David Kastrup 2007-09-06 20:22 ` Drew Adams 2007-09-07 6:31 ` Richard Stallman 2007-09-05 6:16 ` Richard Stallman 2007-03-20 22:36 ` Drew Adams 2007-04-02 16:55 ` Drew Adams 2007-04-02 18:51 ` Kim F. Storm 2007-04-03 21:40 ` Richard Stallman 2007-04-03 21:53 ` Juanma Barranquero 2007-04-04 14:03 ` Richard Stallman 2007-04-03 22:03 ` Nick Roberts 2007-04-04 14:03 ` Richard Stallman 2007-04-04 14:59 ` Chong Yidong 2007-04-05 23:11 ` Richard Stallman 2007-04-05 23:20 ` Chong Yidong 2007-04-06 19:47 ` Richard Stallman 2007-04-05 23:45 ` Nick Roberts 2007-04-06 1:15 ` Glenn Morris 2007-04-06 1:59 ` Chong Yidong 2007-04-06 2:22 ` David Kastrup 2007-04-06 4:18 ` Glenn Morris 2007-04-06 8:41 ` Eli Zaretskii 2007-04-06 14:47 ` Chong Yidong 2007-04-06 16:26 ` Kim F. Storm 2007-04-06 17:34 ` Eli Zaretskii 2007-04-07 12:40 ` Richard Stallman 2007-04-06 17:06 ` Kim F. Storm 2007-04-06 19:23 ` Kevin Rodgers changes Chong Yidong 2007-04-07 7:32 ` martin rudalics 2007-04-07 12:40 ` Richard Stallman 2007-04-07 16:57 ` Chong Yidong 2007-04-07 17:34 ` Eli Zaretskii 2007-04-08 12:28 ` Richard Stallman 2007-04-08 21:07 ` Eli Zaretskii 2007-04-09 14:33 ` Daniel Brockman 2007-04-09 15:42 ` Richard Stallman 2007-04-08 21:30 ` Chong Yidong 2007-04-09 15:42 ` Richard Stallman 2007-04-11 16:38 ` display-completion-list should not strip text properties Markus Triska 2007-04-11 17:13 ` Chong Yidong 2007-04-06 19:47 ` Richard Stallman 2007-04-06 8:42 ` Eli Zaretskii 2007-04-06 19:47 ` Richard Stallman 2007-04-04 17:45 ` Edward O'Connor 2007-04-05 14:36 ` Chong Yidong 2007-04-05 15:02 ` Juanma Barranquero 2007-04-05 23:11 ` Richard Stallman 2007-01-24 7:07 ` Kevin Rodgers
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.