Am Sat, 05 Jun 2010 09:24:54 -0500 schrieb Jeremy Hankins <[email protected]>:
> Teika Kazura <[email protected]> writes: > > On Sat, 29 May 2010 09:06:42 -0500, Jeremy Hankins wrote: > > >> The unfinished part has nothing to do with prompt.jl; I can apply > >> that anytime we decide it's time. In fact, the sawfish that I run > >> myself has this patch applied and has for months. The problem is > >> that it breaks backward-compatibility since it changes the way the > >> prompt code is called. > > > > We're not in hurry at all, but if you could do it, I'd appreciate it > > deeply. Is it easy for you to write a rough documentation on the > > usage? If it's supplied, then it's easy to update existent codes, so > > there'll be no problem. > > Hmm.. Currently there is no documentation for prompt, only the source. > I've been meaning to write up some more thorough docs on using the > prompt module, maybe in the form of a tutorial. But here's very rough > documentation of the changes: > > In the past prompt has worked by allowing a variety of helper functions > and variables to be over-ridden by let statements at the time that > prompt is called. With my changes in place these things are not passed > implicitly via let statements, but passed explicitly in the call to > prompt. Here's an example from prompt-extras.jl that I think captures > all the changes: the prompt-for-file function presented as a diff > against the old way of doing things. > > > +(define filename-history (prompt-make-history)) > (define (prompt-for-file #!optional title existing start default) > "Prompt for a file, if EXISTING is t only files which exist are > allowed to be entered." > @@ -90,14 +100,17 @@ allowed to be entered." > (setq start (if (stringp start) > (expand-file-name start) > (file-name-as-directory default-directory))) > - (let* ((prompt-completion-fun prompt-complete-filename) > - (prompt-validation-fun (and existing prompt-validate-filename)) > - (prompt-abbrev-fun prompt-abbreviate-filename) > - (str (prompt title start))) > + (let ((str (prompt #:title title > + #:start start > + #:completion-fun prompt-complete-filename > + #:validation-fun (and existing prompt-validate-filename) > + #:abbrev-fun prompt-abbreviate-filename > + #:history filename-history))) > (when (and (string= str "") default) > (setq str default)) > str)) > > > The prompt-make-history function is new; it creates a data structure > suitable for holding prompt history. By creating a new history value > specifically for prompt-for-file the prompt history for files is kept > separately from, e.g., the history of prompts for sawfish commands. > It's a fluid rather than a special variable (in C terms, it's more like > a pointer than a global variable), so the reference must be passed to > prompt when prompt is called. There is a default history defined in > prompt.jl so it's not necessary to supply a new history if you don't > want to. > > The other big difference is the let*/let statement. The > prompt-complete-filename, prompt-validate-filename, and > prompt-abbreviate-filename are helper functions defined elsewhere in > prompt-extras.jl, they haven't changed. But in the new version they're > passed explicitly to prompt, along with title (the message prompting for > input, e.g., "Enter filename:"), start (any initial text, e.g., "~/") > and history (which holds the history of filename input). > Do you have a full patch (in your git?), as this looks interesting. Ah… and yes… I'm b.a.c.k™ :D Chris -- Re: Schöner abstürzen mit Kernel-Modul provoke_crash Score: 3 Von Cyril am Sa, 30. Januar 2010 um 09:15 Ich bin mir sicher, Microsoft hat noch aus den Windows 9x-Zeiten ein Patent auf solche Abstürze, das gibt bestimmt eine Klage. :-D
