;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/info.scm,v 1.106 1991/10/04 06:14:14 cph Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/info.scm,v 1.107 1991/10/18 16:02:39 arthur Exp $
;;;
;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology
;;;
(menu-item-name
(make-mark
(mark-group menu)
- (prompt-for-alist-value "Menu item" (collect-menu-items menu))))))))
+ (let ((current-item (current-menu-item (current-point))))
+ (if current-item
+ (prompt-for-alist-value "Menu item"
+ (collect-menu-items menu)
+ (menu-item-name current-item))
+ (prompt-for-alist-value "Menu item"
+ (collect-menu-items menu))))))))))
(define (nth-menu-item n)
(lambda ()
(and (re-search-forward menu-item-regexp mark (group-end mark) false)
(re-match-start 1)))
+(define (current-menu-item mark)
+ (let ((menu (find-menu))
+ (start (mark-1+ (line-start mark 0) 'LIMIT)))
+ (and menu
+ (mark> start menu)
+ (re-search-forward menu-item-regexp
+ (mark-1+ (line-start mark 0) 'LIMIT)
+ (line-end mark 0)
+ false)
+ (re-match-start 1))))
+
(define (menu-item-name item)
(let ((colon (char-search-forward #\: item (line-end item 0) false)))
(if (not colon)
;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/prompt.scm,v 1.148 1991/08/06 15:54:57 arthur Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/prompt.scm,v 1.149 1991/10/18 16:03:02 arthur Exp $
;;;
;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology
;;;
string-table
require-match?)))
-(define (prompt-for-alist-value prompt alist)
+(define (prompt-for-alist-value prompt alist #!optional default)
(fluid-let ((map-name/external->internal identity-procedure)
(map-name/internal->external identity-procedure))
- (prompt-for-string-table-value prompt
- false
- 'NO-DEFAULT
- (alist->string-table alist)
- true)))
+ (if (default-object? default)
+ (prompt-for-string-table-value prompt
+ false
+ 'NO-DEFAULT
+ (alist->string-table alist)
+ true)
+ (prompt-for-string-table-value prompt
+ default
+ 'VISIBLE-DEFAULT
+ (alist->string-table alist)
+ true))))
(define (prompt-for-command prompt)
(fluid-let ((map-name/external->internal editor-name/external->internal)