bug#26412: 26.0.50; Minibuffer completion for "C-h f" probes unrelated stuff

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#26412: 26.0.50; Minibuffer completion for "C-h f" probes unrelated stuff

Eli Zaretskii
It seems minibuffer completion, via its subroutine
help--load-prefixes, is too eager to probe unrelated stuff, for some
reason.  Here's one example:

  emacs -Q
  C-h f default-font-height RET

Observe in the echo area the message "No MH variant found on the
system" (also logged in "*Messages*") before the doc string of
default-font-height is shown and the usual "Type C-x 1 to delete the
help window." message is displayed in the echo area.  (If you do have
MH installed, the message will state its variant instead.)

Recompiling all the *.el files doesn't help.

Why would minibuffer completion of a symbol want to know whether I
have MH installed??

As another example, why would the same "C-h f" command need to know
what kind of movemail program I have?  But it does, see the second
backtrace below, obtained by setting a breakpoint at call-process and
repeating the same recipe above.

I see this both on MS-Windows (details below) and on GNU/Linux, with
today's master branch.

Here's the backtrace from the call to Fmessage:

  Thread 1 hit Breakpoint 4, Fmessage (nargs=1, args=0x8293f0) at editfns.c:3755
  3755      if (NILP (args[0])
  (gdb) pp args[0]
  "No MH variant found on the system"
  (gdb) bt
  #0  Fmessage (nargs=1, args=0x8293f0) at editfns.c:3755
  #1  0x0122a13c in funcall_subr (subr=0x167c260 <Smessage>, numargs=1,
      args=0x8293f0) at eval.c:2798
  #2  0x01229c9e in Ffuncall (nargs=2, args=0x8293e8) at eval.c:2743
  #3  0x0128cf6c in exec_byte_code (bytestr=-9223372036743230024,
      vector=-6917529027527996568, maxdepth=4611686018427387911,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #4  0x0122b5a5 in funcall_lambda (fun=-6917529027609201480, nargs=1,
      arg_vector=0x829910) at eval.c:3021
  #5  0x01229ce2 in Ffuncall (nargs=2, args=0x829908) at eval.c:2745
  #6  0x0128cf6c in exec_byte_code (bytestr=-9223372036743273424,
      vector=-6917529027528024440, maxdepth=4611686018427387907,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #7  0x0122b5a5 in funcall_lambda (fun=-6917529027527981832, nargs=2,
      arg_vector=0x829d90) at eval.c:3021
  #8  0x01229ce2 in Ffuncall (nargs=3, args=0x829d88) at eval.c:2745
  #9  0x0128cf6c in exec_byte_code (bytestr=-9223372036834225968,
      vector=-6917529027620532000, maxdepth=4611686018427387910,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #10 0x0122b5a5 in funcall_lambda (fun=-6917529027620532064, nargs=2,
      arg_vector=0x82a250) at eval.c:3021
  #11 0x01229ce2 in Ffuncall (nargs=3, args=0x82a248) at eval.c:2745
  #12 0x0128cf6c in exec_byte_code (bytestr=-9223372036834225032,
      vector=-6917529027620531064, maxdepth=4611686018427387910,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #13 0x0122b5a5 in funcall_lambda (fun=-6917529027620531160, nargs=11,
      arg_vector=0x82a7e0) at eval.c:3021
  #14 0x01229ce2 in Ffuncall (nargs=12, args=0x82a7d8) at eval.c:2745
  #15 0x0128cf6c in exec_byte_code (bytestr=-9223372036743226488,
      vector=-6917529027528361288, maxdepth=4611686018427387916,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #16 0x0128c080 in Fbyte_code (bytestr=-9223372036743226488,
      vector=-6917529027528361288, maxdepth=4611686018427387916)
      at bytecode.c:321
  #17 0x01227c78 in eval_sub (form=-4611686018315110544) at eval.c:2225
  #18 0x0126cf92 in readevalloop (readcharfun=28280,
      stream=0x77c5fce0 <msvcrt!_iob+96>, sourcename=-9223372036742031152,
      printflag=false, unibyte=0, readfun=0, start=0, end=0) at lread.c:1927
  #19 0x0126ab80 in Fload (file=-9223372036833819840, noerror=691512,
      nomessage=691568, nosuffix=0, must_suffix=0) at lread.c:1332
  #20 0x0122a3ab in funcall_subr (subr=0x167dd10 <Sload>, numargs=3,
      args=0x82b588) at eval.c:2830
  #21 0x01229c9e in Ffuncall (nargs=4, args=0x82b580) at eval.c:2743
  #22 0x0128cf6c in exec_byte_code (bytestr=-9223372036743270768,
      vector=-6917529027615487408, maxdepth=4611686018427387917,
      args_template=4611686018427388161, nargs=1, args=0x82ba68)
      at bytecode.c:641
  #23 0x0122af15 in funcall_lambda (fun=-6917529027615488544, nargs=1,
      arg_vector=0x82ba60) at eval.c:2943
  #24 0x01229ce2 in Ffuncall (nargs=2, args=0x82ba58) at eval.c:2745
  #25 0x0128cf6c in exec_byte_code (bytestr=-9223372036743270592,
      vector=-6917529027615488864, maxdepth=4611686018427387919,
      args_template=4611686018427388675, nargs=3, args=0x82bf60)
      at bytecode.c:641
  #26 0x0122af15 in funcall_lambda (fun=-6917529027615488496, nargs=3,
      arg_vector=0x82bf48) at eval.c:2943
  #27 0x01229ce2 in Ffuncall (nargs=4, args=0x82bf40) at eval.c:2745
  #28 0x01229411 in call3 (fn=87023144, arg1=-9223372036742592512,
      arg2=-6917529027615489184, arg3=35784) at eval.c:2621
  #29 0x011b0900 in Ftest_completion (string=-9223372036742592512,
      collection=87023144, predicate=-6917529027615489184) at minibuf.c:1762
  #30 0x0122a29a in funcall_subr (subr=0x137df00 <Stest_completion>, numargs=3,
      args=0x82c1e0) at eval.c:2823
  #31 0x01229c9e in Ffuncall (nargs=4, args=0x82c1d8) at eval.c:2743
  #32 0x0128cf6c in exec_byte_code (bytestr=-9223372036833667512,
      vector=-6917529027619973544, maxdepth=4611686018427387914,
      args_template=4611686018427388932, nargs=4, args=0x82c708)
      at bytecode.c:641
  #33 0x0122af15 in funcall_lambda (fun=-6917529027619973608, nargs=4,
      arg_vector=0x82c6e8) at eval.c:2943
  #34 0x01229ce2 in Ffuncall (nargs=5, args=0x82c6e0) at eval.c:2745
  #35 0x0128cf6c in exec_byte_code (bytestr=-9223372036833667784,
      vector=-6917529027619973816, maxdepth=4611686018427387919,
      args_template=4611686018427388675, nargs=3, args=0x82cbd8)
      at bytecode.c:641
  #36 0x0122af15 in funcall_lambda (fun=-6917529027619973880, nargs=3,
      arg_vector=0x82cbc0) at eval.c:2943
  #37 0x01229ce2 in Ffuncall (nargs=4, args=0x82cbb8) at eval.c:2745
  #38 0x0128cf6c in exec_byte_code (bytestr=-9223372036833667896,
      vector=-6917529027619973928, maxdepth=4611686018427387908,
      args_template=4611686018427387904, nargs=0, args=0x82d2b8)
      at bytecode.c:641
  #39 0x0122af15 in funcall_lambda (fun=-6917529027619974000, nargs=0,
      arg_vector=0x82d2b8) at eval.c:2943
  #40 0x01229ce2 in Ffuncall (nargs=1, args=0x82d2b0) at eval.c:2745
  #41 0x0121bec6 in Ffuncall_interactively (nargs=1, args=0x82d2b0)
      at callint.c:252
  #42 0x0122a13c in funcall_subr (subr=0x167c3c0 <Sfuncall_interactively>,
      numargs=1, args=0x82d2b0) at eval.c:2798
  #43 0x01229c9e in Ffuncall (nargs=2, args=0x82d2a8) at eval.c:2743
  #44 0x012285a1 in Fapply (nargs=3, args=0x82d2a8) at eval.c:2327
  #45 0x0121c67c in Fcall_interactively (function=1411376, record_flag=0,
      keys=-6917529027616290416) at callint.c:389
  #46 0x0122a29a in funcall_subr (subr=0x167c3e0 <Scall_interactively>,
      numargs=3, args=0x82d5a0) at eval.c:2823
  #47 0x01229c9e in Ffuncall (nargs=4, args=0x82d598) at eval.c:2743
  #48 0x0128cf6c in exec_byte_code (bytestr=-9223372036833619680,
      vector=-6917529027619925712, maxdepth=4611686018427387917,
      args_template=4611686018427388929, nargs=1, args=0x82dae0)
      at bytecode.c:641
  #49 0x0122af15 in funcall_lambda (fun=-6917529027619925776, nargs=1,
      arg_vector=0x82dad8) at eval.c:2943
  #50 0x01229ce2 in Ffuncall (nargs=2, args=0x82dad0) at eval.c:2745
  #51 0x01229333 in call1 (fn=16240, arg1=1411376) at eval.c:2605
  #52 0x01157899 in command_loop_1 () at keyboard.c:1484
  #53 0x0122487b in internal_condition_case (bfun=0x1156e10 <command_loop_1>,
      handlers=21840, hfun=0x115608c <cmd_error>) at eval.c:1324
  #54 0x011568a6 in command_loop_2 (ignore=0) at keyboard.c:1112
  #55 0x0122399b in internal_catch (tag=22680, func=0x115686a <command_loop_2>,
      arg=0) at eval.c:1091
  #56 0x0115678d in command_loop () at keyboard.c:1083
  #57 0x01155ab8 in recursive_edit_1 () at keyboard.c:697
  #58 0x011acbe1 in read_minibuf (map=-4611686018401819296, initial=0,
      prompt=-9223372036743269616, expflag=false, histvar=40824,
      histpos=4611686018427387904, defalt=0, allow_props=false,
      inherit_input_method=false) at minibuf.c:683
  #59 0x011adac5 in Fread_from_minibuffer (prompt=-9223372036743269616,
      initial_contents=0, keymap=-4611686018401819296, sys_read=0, hist=0,
      default_value=0, inherit_input_method=0) at minibuf.c:961
  #60 0x0122a5a8 in funcall_subr (subr=0x137dde0 <Sread_from_minibuffer>,
      numargs=7, args=0x82e1c0) at eval.c:2838
  #61 0x01229c9e in Ffuncall (nargs=8, args=0x82e1b8) at eval.c:2743
  #62 0x0128cf6c in exec_byte_code (bytestr=-9223372036833650152,
      vector=-6917529027619956184, maxdepth=4611686018427387922,
      args_template=4611686018427389954, nargs=8, args=0x82e730)
      at bytecode.c:641
  #63 0x0122af15 in funcall_lambda (fun=-6917529027619956248, nargs=8,
      arg_vector=0x82e6f0) at eval.c:2943
  #64 0x01229ce2 in Ffuncall (nargs=9, args=0x82e6e8) at eval.c:2745
  #65 0x011b0226 in Fcompleting_read (prompt=-9223372036743269616,
      collection=87023144, predicate=-6917529027615489184, require_match=56168,
      initial_input=0, hist=0, def=0, inherit_input_method=0) at minibuf.c:1665
  #66 0x0122a6cb in funcall_subr (subr=0x137dee0 <Scompleting_read>, numargs=7,
      args=0x82e8c8) at eval.c:2843
  #67 0x01229c9e in Ffuncall (nargs=8, args=0x82e8c0) at eval.c:2743
  #68 0x0128cf6c in exec_byte_code (bytestr=-9223372036743269728,
      vector=-6917529027611417552, maxdepth=4611686018427387914,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #69 0x0128c080 in Fbyte_code (bytestr=-9223372036743269728,
      vector=-6917529027611417552, maxdepth=4611686018427387914)
      at bytecode.c:321
  #70 0x01227c78 in eval_sub (form=-4611686018317986448) at eval.c:2225
  #71 0x01226ecd in Feval (form=-4611686018317986448, lexical=0) at eval.c:2041
  #72 0x0121c3b4 in Fcall_interactively (function=1244168, record_flag=0,
      keys=-6917529027616290416) at callint.c:357
  #73 0x0122a29a in funcall_subr (subr=0x167c3e0 <Scall_interactively>,
      numargs=3, args=0x82f220) at eval.c:2823
  #74 0x01229c9e in Ffuncall (nargs=4, args=0x82f218) at eval.c:2743
  #75 0x0128cf6c in exec_byte_code (bytestr=-9223372036833619680,
      vector=-6917529027619925712, maxdepth=4611686018427387917,
      args_template=4611686018427388929, nargs=1, args=0x82f760)
      at bytecode.c:641
  #76 0x0122af15 in funcall_lambda (fun=-6917529027619925776, nargs=1,
      arg_vector=0x82f758) at eval.c:2943
  #77 0x01229ce2 in Ffuncall (nargs=2, args=0x82f750) at eval.c:2745
  #78 0x01229333 in call1 (fn=16240, arg1=1244168) at eval.c:2605
  #79 0x01157899 in command_loop_1 () at keyboard.c:1484
  #80 0x0122487b in internal_condition_case (bfun=0x1156e10 <command_loop_1>,
      handlers=21840, hfun=0x115608c <cmd_error>) at eval.c:1324
  #81 0x011568a6 in command_loop_2 (ignore=0) at keyboard.c:1112
  #82 0x0122399b in internal_catch (tag=58520, func=0x115686a <command_loop_2>,
      arg=0) at eval.c:1091
  #83 0x01156825 in command_loop () at keyboard.c:1091
  #84 0x01155ab8 in recursive_edit_1 () at keyboard.c:697
  #85 0x01155d56 in Frecursive_edit () at keyboard.c:768
  #86 0x011534ff in main (argc=2, argv=0xa428d8) at emacs.c:1687

  Lisp Backtrace:
  "message" (0x8293f0)
  "mh-variant-set" (0x829910)
  0x6bdc4f8 PVEC_COMPILED
  "custom-initialize-reset" (0x82a250)
  "custom-declare-variable" (0x82a7e0)
  "byte-code" (0x82ac60)
  "load" (0x82b588)
  "help--load-prefixes" (0x82ba60)
  "help--symbol-completion-table" (0x82bf48)
  "test-completion" (0x82c1e0)
  "completion--complete-and-exit" (0x82c6e8)
  "completion-complete-and-exit" (0x82cbc0)
  "minibuffer-complete-and-exit" (0x82d2b8)
  "funcall-interactively" (0x82d2b0)
  "call-interactively" (0x82d5a0)
  "command-execute" (0x82dad8)
  "read-from-minibuffer" (0x82e1c0)
  "completing-read-default" (0x82e6f0)
  "completing-read" (0x82e8c8)
  "byte-code" (0x82ed70)
  "call-interactively" (0x82f220)
  "command-execute" (0x82f758)

And here's the backtrace from the call to call-process:

  Thread 1 hit Breakpoint 3, Fcall_process (nargs=5, args=0x827508)
      at callproc.c:248
  248       ptrdiff_t count = SPECPDL_INDEX ();
  (gdb) pp args[0]
  "d:/gnu/git/emacs/trunk/lib-src/movemail.exe"
  (gdb) pp args[1]
  nil
  (gdb) pp args[2]
  #<buffer  *temp*>
  (gdb) pp args[3]
  nil
  (gdb) pp args[4]
  "--version"
  (gdb) bt
  #0  Fcall_process (nargs=5, args=0x827508) at callproc.c:248
  #1  0x0122a13c in funcall_subr (subr=0x167e9f0 <Scall_process>, numargs=5,
      args=0x827508) at eval.c:2798
  #2  0x01229c9e in Ffuncall (nargs=6, args=0x827500) at eval.c:2743
  #3  0x0128cf6c in exec_byte_code (bytestr=-9223372036742095528,
      vector=-6917529027611249000, maxdepth=4611686018427387913,
      args_template=4611686018427388161, nargs=1, args=0x827a00)
      at bytecode.c:641
  #4  0x0122af15 in funcall_lambda (fun=-6917529027611245672, nargs=1,
      arg_vector=0x8279f8) at eval.c:2943
  #5  0x01229ce2 in Ffuncall (nargs=2, args=0x8279f0) at eval.c:2745
  #6  0x0128cf6c in exec_byte_code (bytestr=-9223372036742095192,
      vector=-6917529027611245624, maxdepth=4611686018427387911,
      args_template=4611686018427387904, nargs=0, args=0x827ed8)
      at bytecode.c:641
  #7  0x0122af15 in funcall_lambda (fun=-6917529027611245488, nargs=0,
      arg_vector=0x827ed8) at eval.c:2943
  #8  0x01229ce2 in Ffuncall (nargs=1, args=0x827ed0) at eval.c:2745
  #9  0x0128cf6c in exec_byte_code (bytestr=-9223372036742093752,
      vector=-6917529027611096992, maxdepth=4611686018427387907,
      args_template=4611686018427388032, nargs=0, args=0x828350)
      at bytecode.c:641
  #10 0x0122af15 in funcall_lambda (fun=-6917529027611245440, nargs=0,
      arg_vector=0x828350) at eval.c:2943
  #11 0x01229ce2 in Ffuncall (nargs=1, args=0x828348) at eval.c:2745
  #12 0x0128cf6c in exec_byte_code (bytestr=-9223372036742093688,
      vector=-6917529027611245392, maxdepth=4611686018427387914,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #13 0x0128c080 in Fbyte_code (bytestr=-9223372036742093688,
      vector=-6917529027611245392, maxdepth=4611686018427387914)
      at bytecode.c:321
  #14 0x01227c78 in eval_sub (form=-4611686018315182304) at eval.c:2225
  #15 0x0126cf92 in readevalloop (readcharfun=28280,
      stream=0x77c5fd40 <msvcrt!_iob+192>, sourcename=-9223372036742210664,
      printflag=false, unibyte=0, readfun=0, start=0, end=0) at lread.c:1927
  #16 0x0126ab80 in Fload (file=-9223372036833785992, noerror=0,
      nomessage=56168, nosuffix=0, must_suffix=56168) at lread.c:1332
  #17 0x0123cac0 in Frequire (feature=1287888, filename=0, noerror=0)
      at fns.c:2792
  #18 0x0122a29a in funcall_subr (subr=0x167d440 <Srequire>, numargs=1,
      args=0x829170) at eval.c:2823
  #19 0x01229c9e in Ffuncall (nargs=2, args=0x829168) at eval.c:2743
  #20 0x0128cf6c in exec_byte_code (bytestr=-9223372036742222968,
      vector=-6917529027611092984, maxdepth=4611686018427387907,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #21 0x0128c080 in Fbyte_code (bytestr=-9223372036742222968,
      vector=-6917529027611092984, maxdepth=4611686018427387907)
      at bytecode.c:321
  #22 0x01227c78 in eval_sub (form=-4611686018315233232) at eval.c:2225
  #23 0x0126cf92 in readevalloop (readcharfun=28280,
      stream=0x77c5fd20 <msvcrt!_iob+160>, sourcename=-9223372036742264688,
      printflag=false, unibyte=0, readfun=0, start=0, end=0) at lread.c:1927
  #24 0x0126ab80 in Fload (file=-9223372036745837232, noerror=0,
      nomessage=56168, nosuffix=0, must_suffix=56168) at lread.c:1332
  #25 0x0123cac0 in Frequire (feature=84539560, filename=0, noerror=0)
      at fns.c:2792
  #26 0x0122a29a in funcall_subr (subr=0x167d440 <Srequire>, numargs=1,
      args=0x829f20) at eval.c:2823
  #27 0x01229c9e in Ffuncall (nargs=2, args=0x829f18) at eval.c:2743
  #28 0x0128cf6c in exec_byte_code (bytestr=-9223372036746226464,
      vector=-6917529027611126184, maxdepth=4611686018427387912,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #29 0x0128c080 in Fbyte_code (bytestr=-9223372036746226464,
      vector=-6917529027611126184, maxdepth=4611686018427387912)
      at bytecode.c:321
  #30 0x01227c78 in eval_sub (form=-4611686018315294448) at eval.c:2225
  #31 0x0126cf92 in readevalloop (readcharfun=28280,
      stream=0x77c5fd00 <msvcrt!_iob+128>, sourcename=-9223372036746226192,
      printflag=false, unibyte=0, readfun=0, start=0, end=0) at lread.c:1927
  #32 0x0126ab80 in Fload (file=-9223372036742888568, noerror=0,
      nomessage=56168, nosuffix=0, must_suffix=56168) at lread.c:1332
  #33 0x0123cac0 in Frequire (feature=84539392, filename=0, noerror=0)
      at fns.c:2792
  #34 0x01227c78 in eval_sub (form=-4611686018315293792) at eval.c:2225
  #35 0x0126cf92 in readevalloop (readcharfun=28280,
      stream=0x77c5fce0 <msvcrt!_iob+96>, sourcename=-9223372036742888392,
      printflag=false, unibyte=0, readfun=0, start=0, end=0) at lread.c:1927
  #36 0x0126ab80 in Fload (file=-9223372036833737736, noerror=691512,
      nomessage=691568, nosuffix=0, must_suffix=0) at lread.c:1332
  #37 0x0122a3ab in funcall_subr (subr=0x167dd10 <Sload>, numargs=3,
      args=0x82b588) at eval.c:2830
  #38 0x01229c9e in Ffuncall (nargs=4, args=0x82b580) at eval.c:2743
  #39 0x0128cf6c in exec_byte_code (bytestr=-9223372036746181704,
      vector=-6917529027612643480, maxdepth=4611686018427387917,
      args_template=4611686018427388161, nargs=1, args=0x82ba68)
      at bytecode.c:641
  #40 0x0122af15 in funcall_lambda (fun=-6917529027611852432, nargs=1,
      arg_vector=0x82ba60) at eval.c:2943
  #41 0x01229ce2 in Ffuncall (nargs=2, args=0x82ba58) at eval.c:2745
  #42 0x0128cf6c in exec_byte_code (bytestr=-9223372036746057320,
      vector=-6917529027616260872, maxdepth=4611686018427387919,
      args_template=4611686018427388675, nargs=3, args=0x82bf60)
      at bytecode.c:641
  #43 0x0122af15 in funcall_lambda (fun=-6917529027611848696, nargs=3,
      arg_vector=0x82bf48) at eval.c:2943
  #44 0x01229ce2 in Ffuncall (nargs=4, args=0x82bf40) at eval.c:2745
  #45 0x01229411 in call3 (fn=4287051424, arg1=-9223372036823485048,
      arg2=-6917529027611835976, arg3=35784) at eval.c:2621
  #46 0x011b0900 in Ftest_completion (string=-9223372036823485048,
      collection=4287051424, predicate=-6917529027611835976) at minibuf.c:1762
  #47 0x0122a29a in funcall_subr (subr=0x137df00 <Stest_completion>, numargs=3,
      args=0x82c1e0) at eval.c:2823
  #48 0x01229c9e in Ffuncall (nargs=4, args=0x82c1d8) at eval.c:2743
  #49 0x0128cf6c in exec_byte_code (bytestr=-9223372036833667512,
      vector=-6917529027619973544, maxdepth=4611686018427387914,
      args_template=4611686018427388932, nargs=4, args=0x82c708)
      at bytecode.c:641
  #50 0x0122af15 in funcall_lambda (fun=-6917529027619973608, nargs=4,
      arg_vector=0x82c6e8) at eval.c:2943
  #51 0x01229ce2 in Ffuncall (nargs=5, args=0x82c6e0) at eval.c:2745
  #52 0x0128cf6c in exec_byte_code (bytestr=-9223372036833667784,
      vector=-6917529027619973816, maxdepth=4611686018427387919,
      args_template=4611686018427388675, nargs=3, args=0x82cbd8)
      at bytecode.c:641
  #53 0x0122af15 in funcall_lambda (fun=-6917529027619973880, nargs=3,
      arg_vector=0x82cbc0) at eval.c:2943
  #54 0x01229ce2 in Ffuncall (nargs=4, args=0x82cbb8) at eval.c:2745
  #55 0x0128cf6c in exec_byte_code (bytestr=-9223372036833667896,
      vector=-6917529027619973928, maxdepth=4611686018427387908,
      args_template=4611686018427387904, nargs=0, args=0x82d2b8)
      at bytecode.c:641
  #56 0x0122af15 in funcall_lambda (fun=-6917529027619974000, nargs=0,
      arg_vector=0x82d2b8) at eval.c:2943
  #57 0x01229ce2 in Ffuncall (nargs=1, args=0x82d2b0) at eval.c:2745
  #58 0x0121bec6 in Ffuncall_interactively (nargs=1, args=0x82d2b0)
      at callint.c:252
  #59 0x0122a13c in funcall_subr (subr=0x167c3c0 <Sfuncall_interactively>,
      numargs=1, args=0x82d2b0) at eval.c:2798
  #60 0x01229c9e in Ffuncall (nargs=2, args=0x82d2a8) at eval.c:2743
  #61 0x012285a1 in Fapply (nargs=3, args=0x82d2a8) at eval.c:2327
  #62 0x0121c67c in Fcall_interactively (function=1411376, record_flag=0,
      keys=-6917529027616290416) at callint.c:389
  #63 0x0122a29a in funcall_subr (subr=0x167c3e0 <Scall_interactively>,
      numargs=3, args=0x82d5a0) at eval.c:2823
  #64 0x01229c9e in Ffuncall (nargs=4, args=0x82d598) at eval.c:2743
  #65 0x0128cf6c in exec_byte_code (bytestr=-9223372036833619680,
      vector=-6917529027619925712, maxdepth=4611686018427387917,
      args_template=4611686018427388929, nargs=1, args=0x82dae0)
      at bytecode.c:641
  #66 0x0122af15 in funcall_lambda (fun=-6917529027619925776, nargs=1,
      arg_vector=0x82dad8) at eval.c:2943
  #67 0x01229ce2 in Ffuncall (nargs=2, args=0x82dad0) at eval.c:2745
  #68 0x01229333 in call1 (fn=16240, arg1=1411376) at eval.c:2605
  #69 0x01157899 in command_loop_1 () at keyboard.c:1484
  #70 0x0122487b in internal_condition_case (bfun=0x1156e10 <command_loop_1>,
      handlers=21840, hfun=0x115608c <cmd_error>) at eval.c:1324
  #71 0x011568a6 in command_loop_2 (ignore=0) at keyboard.c:1112
  #72 0x0122399b in internal_catch (tag=22680, func=0x115686a <command_loop_2>,
      arg=0) at eval.c:1091
  #73 0x0115678d in command_loop () at keyboard.c:1083
  #74 0x01155ab8 in recursive_edit_1 () at keyboard.c:697
  #75 0x011acbe1 in read_minibuf (map=-4611686018401819296, initial=0,
      prompt=-9223372036838313256, expflag=false, histvar=40824,
      histpos=4611686018427387904, defalt=0, allow_props=false,
      inherit_input_method=false) at minibuf.c:683
  #76 0x011adac5 in Fread_from_minibuffer (prompt=-9223372036838313256,
      initial_contents=0, keymap=-4611686018401819296, sys_read=0, hist=0,
      default_value=0, inherit_input_method=0) at minibuf.c:961
  #77 0x0122a5a8 in funcall_subr (subr=0x137dde0 <Sread_from_minibuffer>,
      numargs=7, args=0x82e1c0) at eval.c:2838
  #78 0x01229c9e in Ffuncall (nargs=8, args=0x82e1b8) at eval.c:2743
  #79 0x0128cf6c in exec_byte_code (bytestr=-9223372036833650152,
      vector=-6917529027619956184, maxdepth=4611686018427387922,
      args_template=4611686018427389954, nargs=8, args=0x82e730)
      at bytecode.c:641
  #80 0x0122af15 in funcall_lambda (fun=-6917529027619956248, nargs=8,
      arg_vector=0x82e6f0) at eval.c:2943
  #81 0x01229ce2 in Ffuncall (nargs=9, args=0x82e6e8) at eval.c:2745
  #82 0x011b0226 in Fcompleting_read (prompt=-9223372036838313256,
      collection=4287051424, predicate=-6917529027611835976,
      require_match=56168, initial_input=0, hist=0, def=0,
      inherit_input_method=0) at minibuf.c:1665
  #83 0x0122a6cb in funcall_subr (subr=0x137dee0 <Scompleting_read>, numargs=7,
      args=0x82e8c8) at eval.c:2843
  #84 0x01229c9e in Ffuncall (nargs=8, args=0x82e8c0) at eval.c:2743
  #85 0x0128cf6c in exec_byte_code (bytestr=-9223372036838312776,
      vector=-6917529027616195816, maxdepth=4611686018427387914,
      args_template=0, nargs=0, args=0x0) at bytecode.c:641
  #86 0x0128c080 in Fbyte_code (bytestr=-9223372036838312776,
      vector=-6917529027616195816, maxdepth=4611686018427387914)
      at bytecode.c:321
  #87 0x01227c78 in eval_sub (form=-4611686018401786000) at eval.c:2225
  #88 0x01226ecd in Feval (form=-4611686018401786000, lexical=0) at eval.c:2041
  #89 0x0121c3b4 in Fcall_interactively (function=1244168, record_flag=0,
      keys=-6917529027616290416) at callint.c:357
  #90 0x0122a29a in funcall_subr (subr=0x167c3e0 <Scall_interactively>,
      numargs=3, args=0x82f220) at eval.c:2823
  #91 0x01229c9e in Ffuncall (nargs=4, args=0x82f218) at eval.c:2743
  #92 0x0128cf6c in exec_byte_code (bytestr=-9223372036833619680,
      vector=-6917529027619925712, maxdepth=4611686018427387917,
      args_template=4611686018427388929, nargs=1, args=0x82f760)
      at bytecode.c:641
  #93 0x0122af15 in funcall_lambda (fun=-6917529027619925776, nargs=1,
      arg_vector=0x82f758) at eval.c:2943
  #94 0x01229ce2 in Ffuncall (nargs=2, args=0x82f750) at eval.c:2745
  #95 0x01229333 in call1 (fn=16240, arg1=1244168) at eval.c:2605
  #96 0x01157899 in command_loop_1 () at keyboard.c:1484
  #97 0x0122487b in internal_condition_case (bfun=0x1156e10 <command_loop_1>,
      handlers=21840, hfun=0x115608c <cmd_error>) at eval.c:1324
  #98 0x011568a6 in command_loop_2 (ignore=0) at keyboard.c:1112
  #99 0x0122399b in internal_catch (tag=58520, func=0x115686a <command_loop_2>,
      arg=0) at eval.c:1091
  #100 0x01156825 in command_loop () at keyboard.c:1091
  #101 0x01155ab8 in recursive_edit_1 () at keyboard.c:697
  #102 0x01155d56 in Frecursive_edit () at keyboard.c:768
  #103 0x011534ff in main (argc=2, argv=0xa428d8) at emacs.c:1687

  Lisp Backtrace:
  "call-process" (0x827508)
  "rmail-probe" (0x8279f8)
  "rmail-autodetect" (0x827ed8)
  "rmail-movemail-variant-p" (0x828350)
  "byte-code" (0x8287f0)
  "require" (0x829170)
  "byte-code" (0x8295a0)
  "require" (0x829f20)
  "byte-code" (0x82a3d0)
  "require" (0x82ac60)
  "load" (0x82b588)
  "help--load-prefixes" (0x82ba60)
  "help--symbol-completion-table" (0x82bf48)
  "test-completion" (0x82c1e0)
  "completion--complete-and-exit" (0x82c6e8)
  "completion-complete-and-exit" (0x82cbc0)
  "minibuffer-complete-and-exit" (0x82d2b8)
  "funcall-interactively" (0x82d2b0)
  "call-interactively" (0x82d5a0)
  "command-execute" (0x82dad8)
  "read-from-minibuffer" (0x82e1c0)
  "completing-read-default" (0x82e6f0)
  "completing-read" (0x82e8c8)
  "byte-code" (0x82ed70)
  "call-interactively" (0x82f220)
  "command-execute" (0x82f758)


In GNU Emacs 26.0.50 (build 395, i686-pc-mingw32)
 of 2017-04-09 built on HOME-C4E4A596F7
Repository revision: 43bc45ba1697b60c4589cb0c8e30cf1618275582
Windowing system distributor 'Microsoft Corp.', version 5.1.2600
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
No MH variant found on the system
Type C-x 1 to delete the help window.

Configured using:
 'configure --prefix=/d/usr --enable-checking=yes,glyphs --with-wide-int
 --with-modules 'CFLAGS=-O0 -gdwarf-4 -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS MODULES

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-config
mm-decode mm-bodies mm-encode mail-parse rfc2231 gmm-utils mailheader
sendmail mh-e mh-compat mailabbrev mh-acros cl-macs cl mh-buffers
mh-loaddefs mode-local find-func seq byte-opt gv bytecomp byte-compile
cl-extra cconv nnoo nnheader subr-x gnus-util rmail rmail-loaddefs
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils thingatpt
help-fns radix-tree help-mode easymenu cl-loaddefs pcase cl-lib
time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win
w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript case-table epa-hook jka-cmpr-hook help
simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote w32notify w32 multi-tty make-network-process emacs)

Memory information:
((conses 16 122643 8391)
 (symbols 56 22578 1)
 (miscs 48 38 109)
 (strings 16 27259 5438)
 (string-bytes 1 825367)
 (vectors 16 15769)
 (vector-slots 8 489174 2907)
 (floats 8 53 251)
 (intervals 40 292 109)
 (buffers 864 13))



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#26412: 26.0.50; Minibuffer completion for "C-h f" probes unrelated stuff

npostavs
Eli Zaretskii <[hidden email]> writes:

> It seems minibuffer completion, via its subroutine
> help--load-prefixes, is too eager to probe unrelated stuff, for some
> reason.

Similar report for C-h v at
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25552.

> Recompiling all the *.el files doesn't help.

> Why would minibuffer completion of a symbol want to know whether I
> have MH installed??
>
> As another example, why would the same "C-h f" command need to know
> what kind of movemail program I have?

The mh-e files have some strange compile vs runtime setup.  Several are
marked with no-byte-compile, and they make some checks for installed MH
program inside macros.  So you get these "NO MH variant" messages every
time the file is loaded, no matter what.

Below is a backtrace from doing

    emacs -Q -l help-fns.el -l minibuffer.el --eval '(progn (setq print-circle t print-gensym t) (debug-on-load (quote load)))'

then C-h f default-font-height RET

The essential problem seems to be that

(radix-tree-prefixes (help-definition-prefixes) "default-font-height")
;=> (("def" "nnoo" "mode-local" "mh-e" "mh-acros" "cl"))

Actually, (radix-tree-prefixes (help-definition-prefixes) "default")
produces the same as result, and C-h f default SPC triggers this as
well.  I can't find any definitions starting with "default" in
lisp/mh-e/*.el though.

Debugger entered--entering a function:
* load("nnoo" noerror nomessage)
  (if (help--loaded-p file) nil (load file (quote noerror) (quote nomessage)))
  (let ((file (car --dolist-tail--))) (if (help--loaded-p file) nil (load file (quote noerror) (quote nomessage))) (setq --dolist-tail-- (cdr --dolist-tail--)))
  (while --dolist-tail-- (let ((file (car --dolist-tail--))) (if (help--loaded-p file) nil (load file (quote noerror) (quote nomessage))) (setq --dolist-tail-- (cdr --dolist-tail--))))
  (let ((--dolist-tail-- files)) (while --dolist-tail-- (let ((file (car --dolist-tail--))) (if (help--loaded-p file) nil (load file (quote noerror) (quote nomessage))) (setq --dolist-tail-- (cdr --dolist-tail--)))))
  (progn (setq help-definition-prefixes (radix-tree-insert help-definition-prefixes prefix nil)) (let ((--dolist-tail-- files)) (while --dolist-tail-- (let ((file (car --dolist-tail--))) (if (help--loaded-p file) nil (load file (quote noerror) (quote nomessage))) (setq --dolist-tail-- (cdr --dolist-tail--))))))
  (let ((files #:x) (prefix #:x)) (progn (setq help-definition-prefixes (radix-tree-insert help-definition-prefixes prefix nil)) (let ((--dolist-tail-- files)) (while --dolist-tail-- (let ((file (car --dolist-tail--))) (if (help--loaded-p file) nil (load file (quote noerror) (quote nomessage))) (setq --dolist-tail-- (cdr --dolist-tail--)))))))
  (let* ((#3=#:x (car #1=#:x)) (#2=#:x (cdr #1#))) (let ((files #2#) (prefix #3#)) (progn (setq help-definition-prefixes (radix-tree-insert help-definition-prefixes prefix nil)) (let ((--dolist-tail-- files)) (while --dolist-tail-- (let ((file ...)) (if (help--loaded-p file) nil (load file ... ...)) (setq --dolist-tail-- (cdr --dolist-tail--))))))))
  (let ((#1=#:x (car --dolist-tail--))) (let* ((#3=#:x (car #1#)) (#2=#:x (cdr #1#))) (let ((files #2#) (prefix #3#)) (progn (setq help-definition-prefixes (radix-tree-insert help-definition-prefixes prefix nil)) (let ((--dolist-tail-- files)) (while --dolist-tail-- (let (...) (if ... nil ...) (setq --dolist-tail-- ...))))))) (setq --dolist-tail-- (cdr --dolist-tail--)))
  (while --dolist-tail-- (let ((#1=#:x (car --dolist-tail--))) (let* ((#3=#:x (car #1#)) (#2=#:x (cdr #1#))) (let ((files #2#) (prefix #3#)) (progn (setq help-definition-prefixes (radix-tree-insert help-definition-prefixes prefix nil)) (let ((--dolist-tail-- files)) (while --dolist-tail-- (let ... ... ...)))))) (setq --dolist-tail-- (cdr --dolist-tail--))))
  (let ((--dolist-tail-- prefixes)) (while --dolist-tail-- (let ((#1=#:x (car --dolist-tail--))) (let* ((#3=#:x (car #1#)) (#2=#:x (cdr #1#))) (let ((files #2#) (prefix #3#)) (progn (setq help-definition-prefixes (radix-tree-insert help-definition-prefixes prefix nil)) (let (...) (while --dolist-tail-- ...))))) (setq --dolist-tail-- (cdr --dolist-tail--)))))
  help--load-prefixes((("def" "nnoo" "mode-local" "mh-e" "mh-acros" "cl")))
  (let ((prefixes (radix-tree-prefixes (help-definition-prefixes) string))) (help--load-prefixes prefixes))
  help--symbol-completion-table("default-font-height" (closure ((fn) t) (f) (or (fboundp f) (get f (quote function-documentation)))) lambda)
  test-completion("default-font-height" help--symbol-completion-table (closure ((fn) t) (f) (or (fboundp f) (get f (quote function-documentation)))))
  (cond ((= beg end) (funcall exit-function)) ((test-completion (buffer-substring beg end) minibuffer-completion-table minibuffer-completion-predicate) (if completion-ignore-case (progn (let* ((string (buffer-substring beg end)) (compl (try-completion string minibuffer-completion-table minibuffer-completion-predicate))) (if (and (stringp compl) (not ...) (= ... ...)) (progn (completion--replace beg end compl)))))) (funcall exit-function)) ((memq minibuffer-completion-confirm (quote (confirm confirm-after-completion))) (if (or (eq last-command this-command) (and (eq minibuffer-completion-confirm (quote confirm-after-completion)) (not (memq last-command minibuffer-confirm-exit-commands)))) (funcall exit-function) (minibuffer-message "Confirm") nil)) (t (funcall completion-function)))
  completion--complete-and-exit(20 39 exit-minibuffer (closure ((exit-function . exit-minibuffer) (end . 39) (beg . 20) t) nil (let* ((#1=#:val (condition-case nil (completion--do-completion beg end nil (quote expect-exact)) (error 1)))) (cond ((memq #1# (quote (3 1))) (funcall exit-function)) ((eq #1# 7) (if (not minibuffer-completion-confirm) (funcall exit-function) (minibuffer-message "Confirm") nil)) (t nil)))))
  completion-complete-and-exit(20 39 exit-minibuffer)
  minibuffer-complete-and-exit()



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#26412: 26.0.50; Minibuffer completion for "C-h f" probes unrelated stuff

Eli Zaretskii
> From: [hidden email]
> Cc: [hidden email]
> Date: Sun, 09 Apr 2017 07:56:47 -0400
>
> The essential problem seems to be that
>
> (radix-tree-prefixes (help-definition-prefixes) "default-font-height")
> ;=> (("def" "nnoo" "mode-local" "mh-e" "mh-acros" "cl"))
>
> Actually, (radix-tree-prefixes (help-definition-prefixes) "default")
> produces the same as result, and C-h f default SPC triggers this as
> well.  I can't find any definitions starting with "default" in
> lisp/mh-e/*.el though.

Indeed, strange.



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#26412: 26.0.50; Minibuffer completion for "C-h f" probes unrelated stuff

npostavs
In reply to this post by npostavs
[hidden email] writes:

> The essential problem seems to be that
>
> (radix-tree-prefixes (help-definition-prefixes) "default-font-height")
> ;=> (("def" "nnoo" "mode-local" "mh-e" "mh-acros" "cl"))
>
> Actually, (radix-tree-prefixes (help-definition-prefixes) "default")
> produces the same as result, and C-h f default SPC triggers this as
> well.  I can't find any definitions starting with "default" in
> lisp/mh-e/*.el though.

Oh, it's "def" not "default", loaddefs.el has

    ;;;### (autoloads nil "mh-acros" "mh-e/mh-acros.el" (0 0 0 0))
    ;;; Generated autoloads from mh-e/mh-acros.el

    (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mh-acros" '("mh-" "with-mh-folder-updating" "def")))
                                                                                                                           ^^^^^
Which comes from these macros in lisp/mh/mh-acros.el:

    (defmacro defun-mh (name function arg-list &rest body)

    (defmacro defmacro-mh (name macro arg-list &rest body)

 




Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#26412: 26.0.50; Minibuffer completion for "C-h f" probes unrelated stuff

Eli Zaretskii
> From: [hidden email]
> Cc: [hidden email]
> Date: Mon, 10 Apr 2017 09:24:05 -0400
>
> Oh, it's "def" not "default", loaddefs.el has
>
>     ;;;### (autoloads nil "mh-acros" "mh-e/mh-acros.el" (0 0 0 0))
>     ;;; Generated autoloads from mh-e/mh-acros.el
>
>     (if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mh-acros" '("mh-" "with-mh-folder-updating" "def")))
>                                                                                                                            ^^^^^
> Which comes from these macros in lisp/mh/mh-acros.el:
>
>     (defmacro defun-mh (name function arg-list &rest body)
>
>     (defmacro defmacro-mh (name macro arg-list &rest body)

Can we modify autoloads such that "def" is not collected here?  It
could collect defun-mh and defmacro-mh instead, couldn't it?

Thanks.



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#26412: 26.0.50; Minibuffer completion for "C-h f" probes unrelated stuff

npostavs
Eli Zaretskii <[hidden email]> writes:

>> Which comes from these macros in lisp/mh/mh-acros.el:
>>
>>     (defmacro defun-mh (name function arg-list &rest body)
>>
>>     (defmacro defmacro-mh (name macro arg-list &rest body)
>
> Can we modify autoloads such that "def" is not collected here?  It
> could collect defun-mh and defmacro-mh instead, couldn't it?

This seems to work.

--- i/lisp/emacs-lisp/autoload.el
+++ w/lisp/emacs-lisp/autoload.el
@@ -546,9 +546,10 @@ autoload--make-defs-autoload
     ;; "cc-helper" and "c-mode", you'll get "c" in the root prefixes.
     (dolist (pair (prog1 prefixes (setq prefixes nil)))
       (let ((s (car pair)))
-        (if (or (> (length s) 2)                  ;Long enough!
-                (string-match ".[[:punct:]]\\'" s) ;A real (tho short) prefix?
-                (radix-tree-lookup (cdr pair) "")) ;Nothing to expand!
+        (if (and (not (string= "def" s)) ; Don't use "def" in deffoo-pkg-thing.
+                 (or (> (length s) 2)    ;Long enough!
+                     (string-match ".[[:punct:]]\\'" s) ;A real (tho short) prefix?
+                     (radix-tree-lookup (cdr pair) ""))) ;Nothing to expand!
             (push pair prefixes) ;Keep it as is.
           (radix-tree-iter-subtrees
            (cdr pair) (lambda (prefix subtree)

Here is the resulting diff for loaddefs:

--- loaddefs.el    2017-04-10 13:26:10.404737000 -0400
+++ loaddefs-nodef.el    2017-04-10 13:24:32.000000000 -0400
@@ -4732,7 +4732,7 @@
 ;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (0 0 0 0))
 ;;; Generated autoloads from emacs-lisp/cl.el
 
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "cl" '("cl-" "def" "lexical-let" "labels" "flet")))
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "cl" '("cl-" "defsetf" "define-" "lexical-let" "labels" "flet")))
 
 ;;;***
 
@@ -20261,7 +20261,7 @@
 ;;;### (autoloads nil "mh-acros" "mh-e/mh-acros.el" (0 0 0 0))
 ;;; Generated autoloads from mh-e/mh-acros.el
 
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mh-acros" '("mh-" "with-mh-folder-updating" "def")))
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mh-acros" '("mh-" "with-mh-folder-updating" "defun-mh" "defmacro-mh")))
 
 ;;;***
 
@@ -20393,7 +20393,7 @@
 
 \(fn)" t nil)
 
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mh-e" '("mh-" "def")))
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "mh-e" '("mh-" "defgroup-mh" "defcustom-mh" "defface-mh")))
 
 ;;;***
 
@@ -22035,7 +22035,7 @@
 ;;;### (autoloads nil "nnoo" "gnus/nnoo.el" (0 0 0 0))
 ;;; Generated autoloads from gnus/nnoo.el
 
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "nnoo" '("nnoo-" "def")))
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "nnoo" '("nnoo-" "defvoo" "deffoo")))
 
 ;;;***



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#26412: 26.0.50; Minibuffer completion for "C-h f" probes unrelated stuff

Eli Zaretskii
> From: [hidden email]
> Cc: [hidden email]
> Date: Tue, 11 Apr 2017 10:13:34 -0400
>
> Eli Zaretskii <[hidden email]> writes:
>
> >> Which comes from these macros in lisp/mh/mh-acros.el:
> >>
> >>     (defmacro defun-mh (name function arg-list &rest body)
> >>
> >>     (defmacro defmacro-mh (name macro arg-list &rest body)
> >
> > Can we modify autoloads such that "def" is not collected here?  It
> > could collect defun-mh and defmacro-mh instead, couldn't it?
>
> This seems to work.
>
> --- i/lisp/emacs-lisp/autoload.el
> +++ w/lisp/emacs-lisp/autoload.el
> @@ -546,9 +546,10 @@ autoload--make-defs-autoload
>      ;; "cc-helper" and "c-mode", you'll get "c" in the root prefixes.
>      (dolist (pair (prog1 prefixes (setq prefixes nil)))
>        (let ((s (car pair)))
> -        (if (or (> (length s) 2)                  ;Long enough!
> -                (string-match ".[[:punct:]]\\'" s) ;A real (tho short) prefix?
> -                (radix-tree-lookup (cdr pair) "")) ;Nothing to expand!
> +        (if (and (not (string= "def" s)) ; Don't use "def" in deffoo-pkg-thing.
> +                 (or (> (length s) 2)    ;Long enough!
> +                     (string-match ".[[:punct:]]\\'" s) ;A real (tho short) prefix?
> +                     (radix-tree-lookup (cdr pair) ""))) ;Nothing to expand!
>              (push pair prefixes) ;Keep it as is.
>            (radix-tree-iter-subtrees
>             (cdr pair) (lambda (prefix subtree)
>
> Here is the resulting diff for loaddefs:

LGTM, let's wait for a few days for comments, and please push if
nothing comes up.

Thanks.



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

bug#26412: 26.0.50; Minibuffer completion for "C-h f" probes unrelated stuff

npostavs
Eli Zaretskii <[hidden email]> writes:

> LGTM, let's wait for a few days for comments, and please push if
> nothing comes up.

Pushed to master [1: 4364a769b4].

1: 2017-04-19 23:11:44 -0400 4364a769b489c044c4e9eeac6cfbabcc844ab332
  Don't register "def" as an autoload prefix (Bug#26412)



Loading...