Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
4e323265
Commit
4e323265
authored
Jun 23, 2011
by
Leo Liu
Browse files
Move completing-read-function and completing-read-default to elisp
parent
5c62d133
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
81 deletions
+45
-81
lisp/ChangeLog
lisp/ChangeLog
+5
-0
lisp/minibuffer.el
lisp/minibuffer.el
+34
-1
src/ChangeLog
src/ChangeLog
+5
-0
src/minibuf.c
src/minibuf.c
+1
-80
No files found.
lisp/ChangeLog
View file @
4e323265
2011-06-22 Leo Liu <sdl.web@gmail.com>
* minibuffer.el (completing-read-function)
(completing-read-default): Move from minibuf.c
2011-06-22 Richard Stallman <rms@gnu.org>
2011-06-22 Richard Stallman <rms@gnu.org>
* mail/sendmail.el (mail-bury): If Rmail is in use, return nicely
* mail/sendmail.el (mail-bury): If Rmail is in use, return nicely
...
...
lisp/minibuffer.el
View file @
4e323265
...
@@ -2710,7 +2710,40 @@ filter out additional entries (because TABLE migth not obey PRED)."
...
@@ -2710,7 +2710,40 @@ filter out additional entries (because TABLE migth not obey PRED)."
(let ((newstr (completion-initials-expand string table pred)))
(let ((newstr (completion-initials-expand string table pred)))
(when newstr
(when newstr
(completion-pcm-try-completion newstr table pred (length newstr)))))
(completion-pcm-try-completion newstr table pred (length newstr)))))
(defvar completing-read-function 'completing-read-default
"The function called by `completing-read' to do its work.
It should accept the same arguments as `completing-read'.")
(defun completing-read-default (prompt collection &optional predicate
require-match initial-input
hist def inherit-input-method)
"Default method for reading from the minibuffer with completion.
See `completing-read' for the meaning of the arguments."
(when (consp initial-input)
(setq initial-input
(cons (car initial-input)
;; `completing-read' uses 0-based index while
;; `read-from-minibuffer' uses 1-based index.
(1+ (cdr initial-input)))))
(let* ((minibuffer-completion-table collection)
(minibuffer-completion-predicate predicate)
(minibuffer-completion-confirm (unless (eq require-match t)
require-match))
(keymap (if require-match
(if (memq minibuffer-completing-file-name '(nil lambda))
minibuffer-local-must-match-map
minibuffer-local-filename-must-match-map)
(if (memq minibuffer-completing-file-name '(nil lambda))
minibuffer-local-completion-map
minibuffer-local-filename-completion-map)))
(result (read-from-minibuffer prompt initial-input keymap
nil hist def inherit-input-method)))
(when (and (equal result "") def)
(setq result (if (consp def) (car def) def)))
result))
;; Miscellaneous
;; Miscellaneous
...
...
src/ChangeLog
View file @
4e323265
2011-06-22 Leo Liu <sdl.web@gmail.com>
* minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
Move to minibuffer.el.
2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
...
...
src/minibuf.c
View file @
4e323265
...
@@ -72,7 +72,6 @@ Lisp_Object Qcompletion_ignore_case;
...
@@ -72,7 +72,6 @@ Lisp_Object Qcompletion_ignore_case;
static
Lisp_Object
Qminibuffer_completion_table
;
static
Lisp_Object
Qminibuffer_completion_table
;
static
Lisp_Object
Qminibuffer_completion_predicate
;
static
Lisp_Object
Qminibuffer_completion_predicate
;
static
Lisp_Object
Qminibuffer_completion_confirm
;
static
Lisp_Object
Qminibuffer_completion_confirm
;
static
Lisp_Object
Qcompleting_read_default
;
static
Lisp_Object
Quser_variable_p
;
static
Lisp_Object
Quser_variable_p
;
static
Lisp_Object
Qminibuffer_default
;
static
Lisp_Object
Qminibuffer_default
;
...
@@ -1694,7 +1693,7 @@ See also `completing-read-function'. */)
...
@@ -1694,7 +1693,7 @@ See also `completing-read-function'. */)
(
Lisp_Object
prompt
,
Lisp_Object
collection
,
Lisp_Object
predicate
,
Lisp_Object
require_match
,
Lisp_Object
initial_input
,
Lisp_Object
hist
,
Lisp_Object
def
,
Lisp_Object
inherit_input_method
)
(
Lisp_Object
prompt
,
Lisp_Object
collection
,
Lisp_Object
predicate
,
Lisp_Object
require_match
,
Lisp_Object
initial_input
,
Lisp_Object
hist
,
Lisp_Object
def
,
Lisp_Object
inherit_input_method
)
{
{
Lisp_Object
args
[
9
];
Lisp_Object
args
[
9
];
args
[
0
]
=
V
completing
_
read
_
function
;
args
[
0
]
=
Fsymbol_value
(
intern
(
"
completing
-
read
-
function
"
))
;
args
[
1
]
=
prompt
;
args
[
1
]
=
prompt
;
args
[
2
]
=
collection
;
args
[
2
]
=
collection
;
args
[
3
]
=
predicate
;
args
[
3
]
=
predicate
;
...
@@ -1705,76 +1704,6 @@ See also `completing-read-function'. */)
...
@@ -1705,76 +1704,6 @@ See also `completing-read-function'. */)
args
[
8
]
=
inherit_input_method
;
args
[
8
]
=
inherit_input_method
;
return
Ffuncall
(
9
,
args
);
return
Ffuncall
(
9
,
args
);
}
}
DEFUN
(
"completing-read-default"
,
Fcompleting_read_default
,
Scompleting_read_default
,
2
,
8
,
0
,
doc
:
/* Default method for reading from the minibuffer with completion.
See `completing-read' for the meaning of the arguments. */
)
(
Lisp_Object
prompt
,
Lisp_Object
collection
,
Lisp_Object
predicate
,
Lisp_Object
require_match
,
Lisp_Object
initial_input
,
Lisp_Object
hist
,
Lisp_Object
def
,
Lisp_Object
inherit_input_method
)
{
Lisp_Object
val
,
histvar
,
histpos
,
position
;
Lisp_Object
init
;
int
pos
=
0
;
int
count
=
SPECPDL_INDEX
();
struct
gcpro
gcpro1
;
init
=
initial_input
;
GCPRO1
(
def
);
specbind
(
Qminibuffer_completion_table
,
collection
);
specbind
(
Qminibuffer_completion_predicate
,
predicate
);
specbind
(
Qminibuffer_completion_confirm
,
EQ
(
require_match
,
Qt
)
?
Qnil
:
require_match
);
position
=
Qnil
;
if
(
!
NILP
(
init
))
{
if
(
CONSP
(
init
))
{
position
=
Fcdr
(
init
);
init
=
Fcar
(
init
);
}
CHECK_STRING
(
init
);
if
(
!
NILP
(
position
))
{
CHECK_NUMBER
(
position
);
/* Convert to distance from end of input. */
pos
=
XINT
(
position
)
-
SCHARS
(
init
);
}
}
if
(
SYMBOLP
(
hist
))
{
histvar
=
hist
;
histpos
=
Qnil
;
}
else
{
histvar
=
Fcar_safe
(
hist
);
histpos
=
Fcdr_safe
(
hist
);
}
if
(
NILP
(
histvar
))
histvar
=
Qminibuffer_history
;
if
(
NILP
(
histpos
))
XSETFASTINT
(
histpos
,
0
);
val
=
read_minibuf
(
NILP
(
require_match
)
?
(
NILP
(
Vminibuffer_completing_file_name
)
||
EQ
(
Vminibuffer_completing_file_name
,
Qlambda
)
?
Vminibuffer_local_completion_map
:
Vminibuffer_local_filename_completion_map
)
:
(
NILP
(
Vminibuffer_completing_file_name
)
||
EQ
(
Vminibuffer_completing_file_name
,
Qlambda
)
?
Vminibuffer_local_must_match_map
:
Vminibuffer_local_filename_must_match_map
),
init
,
prompt
,
make_number
(
pos
),
0
,
histvar
,
histpos
,
def
,
0
,
!
NILP
(
inherit_input_method
));
if
(
STRINGP
(
val
)
&&
SCHARS
(
val
)
==
0
&&
!
NILP
(
def
))
val
=
CONSP
(
def
)
?
XCAR
(
def
)
:
def
;
RETURN_UNGCPRO
(
unbind_to
(
count
,
val
));
}
Lisp_Object
Fassoc_string
(
register
Lisp_Object
key
,
Lisp_Object
list
,
Lisp_Object
case_fold
);
Lisp_Object
Fassoc_string
(
register
Lisp_Object
key
,
Lisp_Object
list
,
Lisp_Object
case_fold
);
...
@@ -2013,7 +1942,6 @@ syms_of_minibuf (void)
...
@@ -2013,7 +1942,6 @@ syms_of_minibuf (void)
minibuf_save_list
=
Qnil
;
minibuf_save_list
=
Qnil
;
staticpro
(
&
minibuf_save_list
);
staticpro
(
&
minibuf_save_list
);
DEFSYM
(
Qcompleting_read_default
,
"completing-read-default"
);
DEFSYM
(
Qcompletion_ignore_case
,
"completion-ignore-case"
);
DEFSYM
(
Qcompletion_ignore_case
,
"completion-ignore-case"
);
DEFSYM
(
Qread_file_name_internal
,
"read-file-name-internal"
);
DEFSYM
(
Qread_file_name_internal
,
"read-file-name-internal"
);
DEFSYM
(
Qminibuffer_default
,
"minibuffer-default"
);
DEFSYM
(
Qminibuffer_default
,
"minibuffer-default"
);
...
@@ -2132,12 +2060,6 @@ If the value is `confirm-after-completion', the user may exit with an
...
@@ -2132,12 +2060,6 @@ If the value is `confirm-after-completion', the user may exit with an
doc:
/* Non-nil means completing file names. */
);
doc:
/* Non-nil means completing file names. */
);
Vminibuffer_completing_file_name
=
Qnil
;
Vminibuffer_completing_file_name
=
Qnil
;
DEFVAR_LISP
(
"completing-read-function"
,
Vcompleting_read_function
,
doc:
/* The function called by `completing-read' to do the work.
It should accept the same arguments as `completing-read'. */
);
Vcompleting_read_function
=
Qcompleting_read_default
;
DEFVAR_LISP
(
"minibuffer-help-form"
,
Vminibuffer_help_form
,
DEFVAR_LISP
(
"minibuffer-help-form"
,
Vminibuffer_help_form
,
doc:
/* Value that `help-form' takes on inside the minibuffer. */
);
doc:
/* Value that `help-form' takes on inside the minibuffer. */
);
Vminibuffer_help_form
=
Qnil
;
Vminibuffer_help_form
=
Qnil
;
...
@@ -2214,5 +2136,4 @@ properties. */);
...
@@ -2214,5 +2136,4 @@ properties. */);
defsubr
(
&
Stest_completion
);
defsubr
(
&
Stest_completion
);
defsubr
(
&
Sassoc_string
);
defsubr
(
&
Sassoc_string
);
defsubr
(
&
Scompleting_read
);
defsubr
(
&
Scompleting_read
);
defsubr
(
&
Scompleting_read_default
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment