diff options
| author | Eli Zaretskii | 2022-03-19 17:19:19 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2022-03-19 17:19:19 +0200 |
| commit | 6887bf555f12e2059f237862159e19deddf596e1 (patch) | |
| tree | 465582b2ac45db1de297a6a80fa13b7bc2f9ea16 /src/comp.c | |
| parent | 9c68894399e928220192fd44efbd71a1ca116028 (diff) | |
| parent | 71b8f1fc635d9bbe00ca89457065e0c83456ac43 (diff) | |
| download | emacs-6887bf555f12e2059f237862159e19deddf596e1.tar.gz emacs-6887bf555f12e2059f237862159e19deddf596e1.zip | |
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Diffstat (limited to 'src/comp.c')
| -rw-r--r-- | src/comp.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/comp.c b/src/comp.c index 6449eedb278..499eee7e709 100644 --- a/src/comp.c +++ b/src/comp.c | |||
| @@ -5411,7 +5411,7 @@ native_function_doc (Lisp_Object function) | |||
| 5411 | static Lisp_Object | 5411 | static Lisp_Object |
| 5412 | make_subr (Lisp_Object symbol_name, Lisp_Object minarg, Lisp_Object maxarg, | 5412 | make_subr (Lisp_Object symbol_name, Lisp_Object minarg, Lisp_Object maxarg, |
| 5413 | Lisp_Object c_name, Lisp_Object type, Lisp_Object doc_idx, | 5413 | Lisp_Object c_name, Lisp_Object type, Lisp_Object doc_idx, |
| 5414 | Lisp_Object intspec, Lisp_Object comp_u) | 5414 | Lisp_Object intspec, Lisp_Object command_modes, Lisp_Object comp_u) |
| 5415 | { | 5415 | { |
| 5416 | struct Lisp_Native_Comp_Unit *cu = XNATIVE_COMP_UNIT (comp_u); | 5416 | struct Lisp_Native_Comp_Unit *cu = XNATIVE_COMP_UNIT (comp_u); |
| 5417 | dynlib_handle_ptr handle = cu->handle; | 5417 | dynlib_handle_ptr handle = cu->handle; |
| @@ -5445,6 +5445,7 @@ make_subr (Lisp_Object symbol_name, Lisp_Object minarg, Lisp_Object maxarg, | |||
| 5445 | x->s.max_args = FIXNUMP (maxarg) ? XFIXNUM (maxarg) : MANY; | 5445 | x->s.max_args = FIXNUMP (maxarg) ? XFIXNUM (maxarg) : MANY; |
| 5446 | x->s.symbol_name = xstrdup (SSDATA (symbol_name)); | 5446 | x->s.symbol_name = xstrdup (SSDATA (symbol_name)); |
| 5447 | x->s.native_intspec = intspec; | 5447 | x->s.native_intspec = intspec; |
| 5448 | x->s.command_modes = command_modes; | ||
| 5448 | x->s.doc = XFIXNUM (doc_idx); | 5449 | x->s.doc = XFIXNUM (doc_idx); |
| 5449 | #ifdef HAVE_NATIVE_COMP | 5450 | #ifdef HAVE_NATIVE_COMP |
| 5450 | x->s.native_comp_u = comp_u; | 5451 | x->s.native_comp_u = comp_u; |
| @@ -5467,12 +5468,17 @@ This gets called by top_level_run during the load phase. */) | |||
| 5467 | { | 5468 | { |
| 5468 | Lisp_Object doc_idx = FIRST (rest); | 5469 | Lisp_Object doc_idx = FIRST (rest); |
| 5469 | Lisp_Object intspec = SECOND (rest); | 5470 | Lisp_Object intspec = SECOND (rest); |
| 5471 | Lisp_Object command_modes = Qnil; | ||
| 5472 | if (!NILP (XCDR (XCDR (rest)))) | ||
| 5473 | command_modes = THIRD (rest); | ||
| 5474 | |||
| 5470 | struct Lisp_Native_Comp_Unit *cu = XNATIVE_COMP_UNIT (comp_u); | 5475 | struct Lisp_Native_Comp_Unit *cu = XNATIVE_COMP_UNIT (comp_u); |
| 5471 | if (cu->loaded_once) | 5476 | if (cu->loaded_once) |
| 5472 | return Qnil; | 5477 | return Qnil; |
| 5473 | 5478 | ||
| 5474 | Lisp_Object tem = | 5479 | Lisp_Object tem = |
| 5475 | make_subr (c_name, minarg, maxarg, c_name, type, doc_idx, intspec, comp_u); | 5480 | make_subr (c_name, minarg, maxarg, c_name, type, doc_idx, intspec, |
| 5481 | command_modes, comp_u); | ||
| 5476 | 5482 | ||
| 5477 | /* We must protect it against GC because the function is not | 5483 | /* We must protect it against GC because the function is not |
| 5478 | reachable through symbols. */ | 5484 | reachable through symbols. */ |
| @@ -5497,9 +5503,13 @@ This gets called by top_level_run during the load phase. */) | |||
| 5497 | { | 5503 | { |
| 5498 | Lisp_Object doc_idx = FIRST (rest); | 5504 | Lisp_Object doc_idx = FIRST (rest); |
| 5499 | Lisp_Object intspec = SECOND (rest); | 5505 | Lisp_Object intspec = SECOND (rest); |
| 5506 | Lisp_Object command_modes = Qnil; | ||
| 5507 | if (!NILP (XCDR (XCDR (rest)))) | ||
| 5508 | command_modes = THIRD (rest); | ||
| 5509 | |||
| 5500 | Lisp_Object tem = | 5510 | Lisp_Object tem = |
| 5501 | make_subr (SYMBOL_NAME (name), minarg, maxarg, c_name, type, doc_idx, | 5511 | make_subr (SYMBOL_NAME (name), minarg, maxarg, c_name, type, doc_idx, |
| 5502 | intspec, comp_u); | 5512 | intspec, command_modes, comp_u); |
| 5503 | 5513 | ||
| 5504 | defalias (name, tem); | 5514 | defalias (name, tem); |
| 5505 | 5515 | ||