diff --git a/ChangeLog b/ChangeLog index fa855028..1f1db7fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,55 @@ +2023-11-06 Bob Weiner + +* hui.el (hui:link-possible-types): Fix CI/CD build error where + ilink was inserted when pathname was expected due to batch + diff when referent is in dired-mode. Fix to skip button type + clauses it this case. + test/hui-tests.el (hui--ibut-link-directly-to-dired): Check that + looking at a string before trying to (read (current-buffer)); + otherwise, 'read' will fail. + +2023-11-05 Bob Weiner + +* test/hyrolo-tests.el (hyrolo-demo-show-overview): Fix by adding + needed (forward-line 1) before testing for a collapsed node. + +* test/kexport-tests.el (kexport:koutline-calls-kexport:html): Fix to + have proper file suffixes, now required. + +* kotl/kexport.el (kexport:koutline): Trigger proper error if called + outside of .kotl file. + +* hyrolo.el (hyrolo-google-contacts-grep, hyrolo-grep-file): Ignore case. + +2023-11-04 Bob Weiner + +* hui.el (hui:link-possible-types): At end of any line in a dired buffer, + return (link-to-directory default-directory). + +2023-11-01 Bob Weiner + +* test/hui-tests.el (hui--ibut-link-directly-to-dired): Fix to be + compatible with Emacs 27.1 and dependable regardless of what + is in the dired buffer. + +* hpath.el (hpath:substitute-var-name): Fix to not elide variable name + from path unless path contains an Emacs loadable file name suffix. + +* hui-mouse.el (smart-dired): If hit default cond clause and no filename + on the current line, run dired on the current directory rather than + triggering an error with a null filename value. + (smart-dired-pathname-up-to-point): Always return dir + as a full path ending in a forward slash. Add optional 'no-default' + arg and use in 'hargs:at-p' when reading a directory and in 'dired-mode'. + +* hui.el (hui:link-possible-types): Fix so when checking if a file ref + at point, link to the file without any position arg and don't default + to the current 'buffer-file-name', instead drop through to further + conditional clauses. + +* hbut.el (ibut:insert-text): Fix 'actypes::link-to-file' to shorten arg1 + path relative to source dir, not referent dir. + 2023-10-30 Mats Lidell * hversion.el (hyperb:mouse-buttons): diff --git a/FAST-DEMO b/FAST-DEMO index 010df27b..8b9388f9 100644 --- a/FAST-DEMO +++ b/FAST-DEMO @@ -308,7 +308,7 @@ pspell-config(1) - prints information about a libpspell installation All three of the above do essentially the same thing, displaying the file. - + Display a Hyperbole Koutline starting from cell 3b10 with lines per cell clipped to 2. diff --git a/HY-NEWS b/HY-NEWS index ba6b5a54..02b5be92 100644 --- a/HY-NEWS +++ b/HY-NEWS @@ -488,6 +488,11 @@ *** (kotl-mode:goto-heading): Added to go to a string heading at the beginning of a cell. Must end with a colon or a newline. + *** (hui:link-possible-types): At end of any line in a dired buffer, + return (link-to-directory default-directory), so when using any + link-directly command, always have a way to link to the dired buffer + itself. + ** ORG MODE INTEGRATION (See "(hyperbole)Smart Key - Org Mode"). diff --git a/TAGS b/TAGS index 7b8cceb2..fec404cf 100644 --- a/TAGS +++ b/TAGS @@ -94,34 +94,34 @@ hactypes.el,1276 (defact text-toc 741,30271 hargs.el,994 -(defvar hargs:defaults 70,2628 -(defvar hargs:reading-type 73,2735 -(defvar hargs:reading-symbol 83,3163 -(defvar hargs:string-to-complete 86,3238 -(defalias 'hargs:find-tag-default hargs:find-tag-default93,3535 -(defun hargs:action-get 95,3591 -(defun hargs:buffer-substring 107,4129 -(defun hargs:delimited 117,4682 -(defmacro hargs:make-iform-vector 240,9700 -(defconst hargs:iform-extensions-vector267,10805 -(defconst hargs:iform-vector313,12572 -(defun hargs:get 419,16089 -(defun hargs:match-p 457,17716 -(defun hargs:prompt 468,18251 -(defun hargs:select-event-window 477,18566 -(defun hargs:set-string-to-complete 487,19007 -(defun hargs:unset-string-to-complete 494,19344 -(defun hargs:sexpression-p 498,19479 -(defun hargs:actype-get 526,20662 -(defun hargs:at-p 533,20967 -(defun hargs:completion 714,28102 -(defun hargs:iform-read 788,30647 -(defun hargs:read 863,33486 -(defun hargs:read-buffer-name 905,35117 -(defun hargs:read-match 910,35304 -(defun hargs:select-p 944,36702 - -hbdata.el,881 +(defvar hargs:defaults 70,2661 +(defvar hargs:reading-type 73,2768 +(defvar hargs:reading-symbol 83,3196 +(defvar hargs:string-to-complete 86,3271 +(defalias 'hargs:find-tag-default hargs:find-tag-default93,3568 +(defun hargs:action-get 95,3624 +(defun hargs:buffer-substring 107,4162 +(defun hargs:delimited 117,4715 +(defmacro hargs:make-iform-vector 240,9733 +(defconst hargs:iform-extensions-vector267,10838 +(defconst hargs:iform-vector313,12605 +(defun hargs:get 419,16122 +(defun hargs:match-p 457,17749 +(defun hargs:prompt 468,18284 +(defun hargs:select-event-window 477,18599 +(defun hargs:set-string-to-complete 487,19040 +(defun hargs:unset-string-to-complete 494,19377 +(defun hargs:sexpression-p 498,19512 +(defun hargs:actype-get 526,20695 +(defun hargs:at-p 533,21000 +(defun hargs:completion 715,28187 +(defun hargs:iform-read 789,30732 +(defun hargs:read 864,33571 +(defun hargs:read-buffer-name 906,35202 +(defun hargs:read-match 911,35389 +(defun hargs:select-p 945,36787 + +hbdata.el,1021 (defun hbdata:action 90,3694 (defun hbdata:actype 94,3810 (defun hbdata:args 108,4343 @@ -144,9 +144,12 @@ hbdata.el,881 (defun hbdata:instance-next 333,13026 (defun hbdata:to-entry 351,13630 (defun hbdata:apply-entry 374,14592 -(defun hbdata:to-entry-buf 446,17015 -(defun hbdata:to-hbdata-buffer 493,18845 -(defun hbdata:write 517,19869 +(defun hbdata:is-but-data-stored-in-buffer 446,17015 +(defun hbdata:to-entry-in-buffer 457,17517 +(defun hbdata:to-entry-in-file 470,18011 +(defun hbdata:to-entry-buf 501,19184 +(defun hbdata:to-hbdata-buffer 512,19766 +(defun hbdata:write 536,20790 hbmap.el,258 (defvar hbmap:filename 22,642 @@ -209,105 +212,105 @@ hbut.el,5794 (defun gbut:to 815,32069 (defun gbut:key-list 833,32726 (defun gbut:ebut-key-list 837,32852 -(defun gbut:ibut-key-list 851,33313 -(defun hattr:attributes 864,33822 -(defun hattr:clear 874,34127 -(defun hattr:copy 885,34503 -(defun hattr:emacs-button-attributes 896,34893 -(defun hattr:emacs-button-is-p 909,35386 -(defun hattr:get 916,35675 -(defun hattr:list 920,35809 -(defun hattr:memq 928,36086 -(defun hattr:report 940,36517 -(defun hattr:save 968,37543 -(defun hattr:set 986,38395 -(defalias 'hattr:summarize hattr:summarize990,38574 -(defun hbut:act 996,38799 -(defun hbut:action 1058,41496 -(defun hbut:at-p 1069,41832 -(defun hbut:comment 1082,42232 -(defvar hbut:fill-prefix-regexps1115,43459 -(defun hbut:fill-prefix-remove 1139,44307 -(defun hbut:delete 1149,44699 -(defun hbut:funcall 1164,45332 -(defun hbut:get 1194,46554 -(defun hbut:get-key-src 1205,47082 -(defun hbut:is-p 1263,49369 -(defun hbut:key 1268,49528 -(defun hbut:to-key-src 1275,49748 -(defun hbut:key-src-fmt 1282,50067 -(defun hbut:key-src-set-buffer 1298,50717 -(defun hbut:key-to-label 1320,51416 -(defun hbut:label 1341,52100 -(defun hbut:label-list 1348,52346 -(defun hbut:label-p 1352,52500 -(defun hbut:label-regexp 1365,53275 -(defun hbut:label-instances-regexp 1395,54304 -(defun hbut:label-to-key 1430,55543 -(defun hbut:map 1443,56133 -(defvar hbut:syntax-table 1501,58334 -(defun hbut:modify-syntax 1507,58604 -(defun hbut:outside-comment-p 1522,59231 -(defun hbut:rename 1530,59591 -(defun hbut:report 1541,59997 -(defun hbut:source 1600,61931 -(defalias 'hbut:summarize hbut:summarize1615,62504 -(defun hbut:to 1617,62546 -(defvar hbut:current 1624,62874 -(defun hbut:key-list 1629,63057 -(defun hbut:ebut-key-list 1633,63222 -(defun hbut:ibut-key-list 1648,63747 -(defun ibut:act 1662,64290 -(defun ibut:alist 1673,64696 -(defun ibut:at-p 1679,64925 -(defun ibut:at-type-p 1698,65742 -(defun ibut:set-name-and-label-key-p 1712,66352 -(cl-defun ibut:create 1806,69866 -(def-edebug-spec cl-defun1991,76208 -(def-edebug-spec lambda-key-list1996,76355 -(defun ibut:delete 2005,76578 -(defun ibut:delete-occurrence 2037,77750 -(defun ibut:delimit 2046,78077 -(defun ibut:get 2076,79269 -(defun ibut:is-p 2098,80086 -(defun ibut:label-map 2106,80379 -(defun ibut:label-key-match 2118,80968 -(defun ibut:label-p 2129,81397 -(defun ibut:label-regexp 2174,83402 -(defun ibut:label-instances-regexp 2180,83693 -(defun ibut:label-set 2186,84021 -(defun ibut:label-sort-keys 2210,85112 -(defun ibut:list 2229,85742 -(defun ibut:key 2251,86593 -(defalias 'ibut:to-key-src ibut:to-key-src2258,86836 -(defalias 'ibut:key-to-label ibut:key-to-label2259,86884 -(defalias 'ibut:label-to-key ibut:label-to-key2260,86934 -(defalias 'map-ibut map-ibut2261,86984 -(defun ibut:map 2263,87026 -(defun ibut:next-occurrence 2275,87517 -(defun ibut:operate 2290,88262 -(defun ibut:insert-text 2497,97790 -(defun ibut:previous-occurrence 2581,101162 -(defun ibut:program 2596,101893 -(defun ibut:rename 2640,103996 -(defalias 'ibut:summarize ibut:summarize2662,105015 -(defun ibut:to 2664,105057 -(defun ibut:at-to-name-p 2712,106858 -(defun ibut:to-name 2736,107656 -(defun ibut:to-text 2769,108968 -(defconst ibut:label-start 2820,111021 -(defconst ibut:label-end 2822,111122 -(defmacro defib 2829,111418 -(def-edebug-spec defib2864,113055 -(def-edebug-spec lambda-list2869,113195 -(defalias 'ibtype:create ibtype:create2874,113313 -(defun ibtype:activate-link 2876,113348 -(defmacro defil 2888,113800 -(defmacro defal 2985,118138 -(defalias 'ibtype:create-action-link-type ibtype:create-action-link-type3041,120307 -(defalias 'ibtype:create-regexp-link-type ibtype:create-regexp-link-type3042,120358 -(defun ibtype:def-symbol 3044,120410 -(defun ibtype:delete 3054,120767 +(defun gbut:ibut-key-list 851,33317 +(defun hattr:attributes 864,33826 +(defun hattr:clear 874,34131 +(defun hattr:copy 885,34507 +(defun hattr:emacs-button-attributes 896,34897 +(defun hattr:emacs-button-is-p 909,35390 +(defun hattr:get 916,35679 +(defun hattr:list 920,35813 +(defun hattr:memq 928,36090 +(defun hattr:report 940,36521 +(defun hattr:save 968,37547 +(defun hattr:set 986,38399 +(defalias 'hattr:summarize hattr:summarize990,38578 +(defun hbut:act 996,38803 +(defun hbut:action 1058,41500 +(defun hbut:at-p 1069,41836 +(defun hbut:comment 1082,42236 +(defvar hbut:fill-prefix-regexps1115,43463 +(defun hbut:fill-prefix-remove 1139,44311 +(defun hbut:delete 1149,44703 +(defun hbut:funcall 1164,45336 +(defun hbut:get 1194,46558 +(defun hbut:get-key-src 1205,47086 +(defun hbut:is-p 1263,49373 +(defun hbut:key 1268,49532 +(defun hbut:to-key-src 1275,49752 +(defun hbut:key-src-fmt 1282,50071 +(defun hbut:key-src-set-buffer 1298,50721 +(defun hbut:key-to-label 1320,51420 +(defun hbut:label 1341,52104 +(defun hbut:label-list 1348,52350 +(defun hbut:label-p 1352,52504 +(defun hbut:label-regexp 1365,53279 +(defun hbut:label-instances-regexp 1395,54308 +(defun hbut:label-to-key 1430,55547 +(defun hbut:map 1443,56137 +(defvar hbut:syntax-table 1501,58338 +(defun hbut:modify-syntax 1507,58608 +(defun hbut:outside-comment-p 1522,59235 +(defun hbut:rename 1530,59595 +(defun hbut:report 1541,60001 +(defun hbut:source 1600,61935 +(defalias 'hbut:summarize hbut:summarize1615,62508 +(defun hbut:to 1617,62550 +(defvar hbut:current 1624,62878 +(defun hbut:key-list 1629,63061 +(defun hbut:ebut-key-list 1633,63226 +(defun hbut:ibut-key-list 1648,63751 +(defun ibut:act 1662,64294 +(defun ibut:alist 1673,64700 +(defun ibut:at-p 1679,64929 +(defun ibut:at-type-p 1698,65746 +(defun ibut:set-name-and-label-key-p 1712,66356 +(cl-defun ibut:create 1806,69870 +(def-edebug-spec cl-defun1991,76212 +(def-edebug-spec lambda-key-list1996,76359 +(defun ibut:delete 2005,76582 +(defun ibut:delete-occurrence 2037,77754 +(defun ibut:delimit 2046,78081 +(defun ibut:get 2076,79273 +(defun ibut:is-p 2098,80090 +(defun ibut:label-map 2106,80383 +(defun ibut:label-key-match 2118,80972 +(defun ibut:label-p 2129,81401 +(defun ibut:label-regexp 2174,83406 +(defun ibut:label-instances-regexp 2180,83697 +(defun ibut:label-set 2186,84025 +(defun ibut:label-sort-keys 2210,85116 +(defun ibut:list 2229,85746 +(defun ibut:key 2251,86597 +(defalias 'ibut:to-key-src ibut:to-key-src2258,86840 +(defalias 'ibut:key-to-label ibut:key-to-label2259,86888 +(defalias 'ibut:label-to-key ibut:label-to-key2260,86938 +(defalias 'map-ibut map-ibut2261,86988 +(defun ibut:map 2263,87030 +(defun ibut:next-occurrence 2275,87521 +(defun ibut:operate 2290,88266 +(defun ibut:insert-text 2497,97794 +(defun ibut:previous-occurrence 2581,101124 +(defun ibut:program 2596,101855 +(defun ibut:rename 2640,103958 +(defalias 'ibut:summarize ibut:summarize2662,104977 +(defun ibut:to 2664,105019 +(defun ibut:at-to-name-p 2712,106820 +(defun ibut:to-name 2736,107618 +(defun ibut:to-text 2769,108930 +(defconst ibut:label-start 2820,110983 +(defconst ibut:label-end 2822,111084 +(defmacro defib 2829,111380 +(def-edebug-spec defib2864,113017 +(def-edebug-spec lambda-list2869,113157 +(defalias 'ibtype:create ibtype:create2874,113275 +(defun ibtype:activate-link 2876,113310 +(defmacro defil 2888,113762 +(defmacro defal 2985,118100 +(defalias 'ibtype:create-action-link-type ibtype:create-action-link-type3041,120269 +(defalias 'ibtype:create-regexp-link-type ibtype:create-regexp-link-type3042,120320 +(defun ibtype:def-symbol 3044,120372 +(defun ibtype:delete 3054,120729 hgnus.el,110 (defun Gnus-init 54,1683 @@ -867,46 +870,46 @@ hpath.el,5638 (defun hpath:find-other-frame 1644,73011 (defun hpath:find-other-window 1659,73489 (defun hpath:get-external-display-alist 1669,73984 -(defun hpath:is-p 1688,74973 -(defun hpath:push-tag-mark 1790,79813 -(defun hpath:relative-arguments 1804,80325 -(defun hpath:relative-to 1814,80755 -(defun hpath:rfc 1846,82043 -(defun hpath:start-end 1851,82216 -(defun hpath:return-one-value 1880,83420 -(defun hpath:shorten 1918,85101 -(defun hpath:substitute-value 1926,85423 -(defun hpath:substitute-var 1970,87078 -(defun hpath:symlink-referent 2008,88544 -(defun hpath:symlink-expand 2023,89139 -(defun hpath:to-line 2058,90778 -(defun hpath:trim 2075,91415 -(defun hpath:normalize 2084,91753 -(defun hpath:validate 2094,92249 -(defun hpath:find-file-urls-p 2117,93156 -(defun hpath:handle-urls 2123,93415 -(defalias 'hyperb:substitute-in-file-namehyperb:substitute-in-file-name2140,94157 -(defun substitute-in-file-name 2143,94248 -(defun hpath:enable-find-file-urls 2156,94890 -(defun hpath:disable-find-file-urls 2187,96020 -(defun hpath:find-file-urls-mode 2216,97055 -(defun hpath:url-at-p 2228,97542 -(defun hpath:url-p 2239,98033 -(defun hpath:www-at-p 2250,98428 -(defun hpath:www-p 2266,99125 -(defun hpath:command-string 2274,99448 -(defun hpath:display-where-function 2283,99855 -(defun hpath:remote-available-p 2293,100325 -(defun hpath:remote-default-user 2312,101172 -(defun hpath:delete-trailer 2326,101628 -(defun hpath:exists-p 2334,101912 -(defun hpath:find-file-mailcap 2365,102909 -(defun hpath:find-program 2381,103425 -(defun hpath:match 2402,104296 -(defun hpath:get-single-string-variable-value 2416,104896 -(defun hpath:substitute-dir 2446,105990 -(defun hpath:substitute-match-value 2512,109073 -(defun hpath:substitute-var-name 2574,111289 +(defun hpath:is-p 1688,74977 +(defun hpath:push-tag-mark 1790,79817 +(defun hpath:relative-arguments 1804,80329 +(defun hpath:relative-to 1814,80759 +(defun hpath:rfc 1846,82047 +(defun hpath:start-end 1851,82220 +(defun hpath:return-one-value 1880,83424 +(defun hpath:shorten 1918,85105 +(defun hpath:substitute-value 1926,85427 +(defun hpath:substitute-var 1970,87082 +(defun hpath:symlink-referent 2008,88548 +(defun hpath:symlink-expand 2023,89143 +(defun hpath:to-line 2058,90782 +(defun hpath:trim 2075,91419 +(defun hpath:normalize 2084,91757 +(defun hpath:validate 2094,92253 +(defun hpath:find-file-urls-p 2117,93160 +(defun hpath:handle-urls 2123,93419 +(defalias 'hyperb:substitute-in-file-namehyperb:substitute-in-file-name2140,94161 +(defun substitute-in-file-name 2143,94252 +(defun hpath:enable-find-file-urls 2156,94894 +(defun hpath:disable-find-file-urls 2187,96024 +(defun hpath:find-file-urls-mode 2216,97059 +(defun hpath:url-at-p 2228,97546 +(defun hpath:url-p 2239,98037 +(defun hpath:www-at-p 2250,98432 +(defun hpath:www-p 2266,99129 +(defun hpath:command-string 2274,99452 +(defun hpath:display-where-function 2283,99859 +(defun hpath:remote-available-p 2293,100329 +(defun hpath:remote-default-user 2312,101176 +(defun hpath:delete-trailer 2326,101632 +(defun hpath:exists-p 2334,101916 +(defun hpath:find-file-mailcap 2365,102913 +(defun hpath:find-program 2381,103429 +(defun hpath:match 2402,104300 +(defun hpath:get-single-string-variable-value 2416,104900 +(defun hpath:substitute-dir 2446,105994 +(defun hpath:substitute-match-value 2512,109077 +(defun hpath:substitute-var-name 2574,111293 hrmail.el,722 (defun Rmail-init 45,1392 @@ -1276,88 +1279,88 @@ hui-mini.el,1489 (defcustom hui:menu-to971,44107 (defcustom hui:doc-a-z1010,45630 -hui-mouse.el,3115 -(defvar hmouse-set-point-command 87,3191 -(defun action-key-error 90,3289 -(defun assist-key-error 98,3639 -(defcustom action-key-default-function 106,3990 -(defcustom assist-key-default-function 112,4235 -(defcustom action-key-modeline-buffer-id-function 119,4487 -(defcustom action-key-eol-function 126,4800 -(defcustom assist-key-eol-function 133,5035 -(defvar hkey-value 207,8161 -(defvar hkey-alist210,8258 -(defvar hmouse-alist 546,21715 -(defun first-line-p 580,23047 -(defun last-line-p 584,23179 -(defun smart-completion-help 588,23309 -(defun smart-buffer-menu-no-marks 597,23707 -(defun smart-buffer-menu 610,24179 -(defun smart-buffer-menu-assist 639,25249 -(defun smart-ibuffer-menu-no-marks 667,26343 -(defun smart-ibuffer-menu 680,26818 -(defun smart-ibuffer-menu-assist 707,27829 -(defun smart-custom 737,29002 -(defun smart-custom-assist 758,29847 -(defun smart-calendar 786,30897 -(defun smart-calendar-assist 807,31720 -(defun smart-company-to-definition 836,32923 -(defun smart-company-help 844,33242 -(defun smart-dired-pathname-up-to-point 857,33738 -(defun smart-dired 874,34304 -(defun smart-dired-assist 919,36228 -(defun smart-gnus-group 952,37507 -(defun smart-gnus-group-assist 974,38426 -(defun smart-gnus-summary 996,39404 -(defun smart-gnus-summary-assist 1026,40661 -(defun smart-gnus-article 1048,41607 -(defun smart-gnus-article-assist 1071,42611 -(defun smart-helm-at-header 1099,43831 -(defun smart-helm-get-current-action 1108,44172 -(defun smart-helm-line-has-action 1118,44653 -(defun smart-helm-alive-p 1136,45444 -(defun smart-helm-resume-helm 1144,45750 -(defun smart-helm-at 1153,46085 -(defun smart-helm-to-minibuffer 1185,47202 -(defun smart-helm(1190,47361 -(defun smart-helm-assist(1241,49610 -(defun smart-hmail 1305,52401 -(defun smart-hmail-assist 1338,53611 -(defun smart-hyrolo 1376,55033 -(defalias 'smart-hyrolo-assist smart-hyrolo-assist1386,55376 -(defun smart-image-dired-thumbnail 1392,55611 -(defun smart-image-dired-thumbnail-assist 1397,55841 -(defun smart-imenu-display-item-where 1407,56297 -(defun smart-imenu-item-at-p 1413,56605 -(defun smart-imenu-item-p 1427,57358 -(defun smart-magit-display-file 1475,59524 -(defun smart-magit 1484,59936 -(defun smart-magit-assist 1509,60920 -(defun smart-magit-tab 1545,62406 -(defun smart-apropos 1581,63917 -(defun smart-apropos-assist 1601,64631 -(defun smart-man-display 1621,65408 -(defun smart-man-entry-ref 1625,65548 -(defun smart-man-c-routine-ref 1667,67070 -(defun smart-man-file-ref 1688,67929 -(defun smart-org 1712,68712 -(defvar smart-outline-cut 1869,74426 -(defun smart-outline-level 1881,74857 -(defun smart-outline 1890,75111 -(defun smart-outline-assist 1929,76498 -(defun smart-outline-to-entry-end 1965,77941 -(defun smart-outline-subtree-hidden-p 1975,78296 -(defun smart-outline-char-invisible-p 1981,78551 -(defun smart-todotxt 1997,79231 -(defun smart-todotxt-assist 2007,79510 -(defun smart-eobp 2019,79821 -(defun smart-eolp 2029,80185 -(defun smart-push-button 2042,80772 -(defun smart-push-button-help 2054,81392 -(defun smart-tar 2072,82141 -(defun smart-tar-assist 2097,82955 - -hui-select.el,2784 +hui-mouse.el,3116 +(defvar hmouse-set-point-command 87,3190 +(defun action-key-error 90,3288 +(defun assist-key-error 98,3638 +(defcustom action-key-default-function 106,3989 +(defcustom assist-key-default-function 112,4234 +(defcustom action-key-modeline-buffer-id-function 119,4486 +(defcustom action-key-eol-function 126,4799 +(defcustom assist-key-eol-function 133,5034 +(defvar hkey-value 207,8160 +(defvar hkey-alist210,8257 +(defvar hmouse-alist 546,21714 +(defun first-line-p 580,23046 +(defun last-line-p 584,23178 +(defun smart-completion-help 588,23308 +(defun smart-buffer-menu-no-marks 597,23706 +(defun smart-buffer-menu 610,24178 +(defun smart-buffer-menu-assist 639,25248 +(defun smart-ibuffer-menu-no-marks 667,26342 +(defun smart-ibuffer-menu 680,26817 +(defun smart-ibuffer-menu-assist 707,27828 +(defun smart-custom 737,29001 +(defun smart-custom-assist 758,29846 +(defun smart-calendar 786,30896 +(defun smart-calendar-assist 807,31719 +(defun smart-company-to-definition 836,32922 +(defun smart-company-help 844,33241 +(defun smart-dired-pathname-up-to-point 857,33737 +(defun smart-dired 881,34620 +(defun smart-dired-assist 926,36552 +(defun smart-gnus-group 959,37831 +(defun smart-gnus-group-assist 981,38750 +(defun smart-gnus-summary 1003,39728 +(defun smart-gnus-summary-assist 1033,40985 +(defun smart-gnus-article 1055,41931 +(defun smart-gnus-article-assist 1078,42935 +(defun smart-helm-at-header 1106,44155 +(defun smart-helm-get-current-action 1115,44496 +(defun smart-helm-line-has-action 1125,44977 +(defun smart-helm-alive-p 1143,45768 +(defun smart-helm-resume-helm 1151,46074 +(defun smart-helm-at 1160,46409 +(defun smart-helm-to-minibuffer 1192,47526 +(defun smart-helm(1197,47685 +(defun smart-helm-assist(1248,49934 +(defun smart-hmail 1312,52725 +(defun smart-hmail-assist 1345,53935 +(defun smart-hyrolo 1383,55357 +(defalias 'smart-hyrolo-assist smart-hyrolo-assist1393,55700 +(defun smart-image-dired-thumbnail 1399,55935 +(defun smart-image-dired-thumbnail-assist 1404,56165 +(defun smart-imenu-display-item-where 1414,56621 +(defun smart-imenu-item-at-p 1420,56929 +(defun smart-imenu-item-p 1434,57682 +(defun smart-magit-display-file 1482,59848 +(defun smart-magit 1491,60260 +(defun smart-magit-assist 1516,61244 +(defun smart-magit-tab 1552,62730 +(defun smart-apropos 1588,64241 +(defun smart-apropos-assist 1608,64955 +(defun smart-man-display 1628,65732 +(defun smart-man-entry-ref 1632,65872 +(defun smart-man-c-routine-ref 1674,67394 +(defun smart-man-file-ref 1695,68253 +(defun smart-org 1719,69036 +(defvar smart-outline-cut 1876,74750 +(defun smart-outline-level 1888,75181 +(defun smart-outline 1897,75435 +(defun smart-outline-assist 1936,76822 +(defun smart-outline-to-entry-end 1972,78265 +(defun smart-outline-subtree-hidden-p 1982,78620 +(defun smart-outline-char-invisible-p 1988,78875 +(defun smart-todotxt 2004,79555 +(defun smart-todotxt-assist 2014,79834 +(defun smart-eobp 2026,80145 +(defun smart-eolp 2036,80509 +(defun smart-push-button 2049,81096 +(defun smart-push-button-help 2061,81716 +(defun smart-tar 2079,82465 +(defun smart-tar-assist 2104,83279 + +hui-select.el,2836 (defcustom hui-select-brace-modes121,5692 (defcustom hui-select-markup-modes127,5935 (defcustom hui-select-text-modes133,6172 @@ -1368,61 +1371,62 @@ hui-select.el,2784 (defcustom hui-select-char-p 191,8443 (defcustom hui-select-display-type 196,8591 (defcustom hui-select-whitespace 201,8737 -(defvar hui-select-previous 206,8878 -(defvar hui-select-prior-point 207,8911 -(defvar hui-select-prior-buffer 208,8947 -(defconst hui-select-syntax-table230,9863 -(defvar hui-select-bigger-alist238,10160 -(defvar hui-select-prior-buffer 266,11253 -(defvar hui-select-prior-point 267,11290 -(defvar hui-select-previous 269,11327 -(defvar hui-select-region 272,11440 -(defvar hui-select-old-region 276,11604 -(defcustom hui-select-syntax-alist279,11711 -(defun hui-select-at-p 307,12638 -(defun hui-select-goto-matching-delimiter 325,13438 -(defun hui-select-initialize 347,14345 -(defun hui-select-get-region-boundaries 413,18749 -(defun hui-select-get-thing 420,19000 -(defun hui-select-thing 427,19281 -(defun hui-select-thing-with-mouse 466,20699 -(defun hui-select-goto-matching-tag 489,21706 -(defun hui-select-and-copy-thing 595,25257 -(defun hui-select-and-kill-thing 603,25529 -(defun hui-select-boundaries 615,25786 -(defun hui-select-double-click-hook 676,28009 -(defun hui-select-syntactical-region 686,28488 -(defun hui-select-at-delimited-thing-p 718,29782 -(defun hui-select-delimited-thing 737,30612 -(defun hui-select-at-delimited-sexp-p 754,31229 -(defun hui-select-mark-delimited-sexp 762,31619 -(defun hui-select-at-blank-line-or-comment 790,32645 -(defun hui-select-back-to-indentation 812,33414 -(defun hui-select-bigger-thing 822,33833 -(defun hui-select-delimited-thing-call 828,34005 -(defun hui-select-region-bigger-p 850,34955 -(defun hui-select-reset 868,35800 -(defun hui-select-set-region 875,36004 -(defun hui-select-string-p 891,36659 -(defun hui-select-brace-def-or-declaration 938,38457 -(defun hui-select-indent-def 1039,42166 -(defun hui-select-symbol 1094,44285 -(defun hui-select-sexp-start 1110,44896 -(defun hui-select-sexp-end 1118,45194 -(defun hui-select-sexp 1125,45462 -(defun hui-select-sexp-up 1134,45752 -(defun hui-select-preprocessor-def 1146,46251 -(defun hui-select-punctuation 1171,47467 -(defun hui-select-comment 1189,48270 -(defun hui-select-word 1264,50566 -(defun hui-select-string 1276,50930 -(defun hui-select-sentence 1297,51660 -(defun hui-select-whitespace 1306,51951 -(defun hui-select-markup-pair 1322,52565 -(defun hui-select-line 1430,56603 -(defun hui-select-paragraph 1440,56946 -(defun hui-select-page 1450,57284 -(defun hui-select-buffer 1458,57538 +(defconst hui-java-defun-prompt-regexp206,8878 +(defvar hui-select-previous 236,10212 +(defvar hui-select-prior-point 237,10245 +(defvar hui-select-prior-buffer 238,10281 +(defconst hui-select-syntax-table260,11197 +(defvar hui-select-bigger-alist268,11494 +(defvar hui-select-prior-buffer 296,12587 +(defvar hui-select-prior-point 297,12624 +(defvar hui-select-previous 299,12661 +(defvar hui-select-region 302,12774 +(defvar hui-select-old-region 306,12938 +(defcustom hui-select-syntax-alist309,13045 +(defun hui-select-at-p 337,13972 +(defun hui-select-goto-matching-delimiter 355,14772 +(defun hui-select-initialize 377,15679 +(defun hui-select-get-region-boundaries 442,19627 +(defun hui-select-get-thing 449,19878 +(defun hui-select-thing 456,20159 +(defun hui-select-thing-with-mouse 495,21577 +(defun hui-select-goto-matching-tag 518,22584 +(defun hui-select-and-copy-thing 624,26135 +(defun hui-select-and-kill-thing 632,26407 +(defun hui-select-boundaries 644,26664 +(defun hui-select-double-click-hook 705,28887 +(defun hui-select-syntactical-region 715,29366 +(defun hui-select-at-delimited-thing-p 747,30660 +(defun hui-select-delimited-thing 766,31490 +(defun hui-select-at-delimited-sexp-p 783,32107 +(defun hui-select-mark-delimited-sexp 791,32497 +(defun hui-select-at-blank-line-or-comment 819,33523 +(defun hui-select-back-to-indentation 841,34292 +(defun hui-select-bigger-thing 851,34711 +(defun hui-select-delimited-thing-call 857,34883 +(defun hui-select-region-bigger-p 879,35833 +(defun hui-select-reset 897,36678 +(defun hui-select-set-region 904,36882 +(defun hui-select-string-p 920,37537 +(defun hui-select-brace-def-or-declaration 967,39335 +(defun hui-select-indent-def 1068,43044 +(defun hui-select-symbol 1123,45163 +(defun hui-select-sexp-start 1139,45774 +(defun hui-select-sexp-end 1147,46072 +(defun hui-select-sexp 1154,46340 +(defun hui-select-sexp-up 1163,46630 +(defun hui-select-preprocessor-def 1175,47129 +(defun hui-select-punctuation 1200,48345 +(defun hui-select-comment 1218,49148 +(defun hui-select-word 1293,51444 +(defun hui-select-string 1305,51808 +(defun hui-select-sentence 1326,52538 +(defun hui-select-whitespace 1335,52829 +(defun hui-select-markup-pair 1351,53443 +(defun hui-select-line 1459,57481 +(defun hui-select-paragraph 1469,57824 +(defun hui-select-page 1479,58162 +(defun hui-select-buffer 1487,58416 hui-treemacs.el,72 (defun smart-treemacs 72,2739 @@ -1569,7 +1573,7 @@ hui.el,2336 (defun hui:ebut-link-create 1742,69541 (defun hui:ibut-link-create 1765,70740 (defun hui:link-possible-types 1802,72367 -(defun hui:list-remove-text-properties 1938,77883 +(defun hui:list-remove-text-properties 1942,78040 hvar.el,272 (defvar var::append-list 34,1095 @@ -1584,15 +1588,15 @@ hvar.el,272 hversion.el,410 (defconst hyperb:version 38,1236 (defvar hyperb:mouse-buttons40,1307 -(defvar hyperb:automount-prefixes48,1596 -(defun hyperb:stack-frame 59,2015 -(defun hyperb:window-sys-term 99,3559 -(defun hyperb:window-system 121,4523 -(defalias 'id-browse-file id-browse-file141,5430 -(defun id-info 144,5497 -(defun id-info-item 160,6111 -(defalias 'id-tool-quit id-tool-quit188,7359 -(defun id-tool-invoke 191,7427 +(defvar hyperb:automount-prefixes48,1600 +(defun hyperb:stack-frame 59,2019 +(defun hyperb:window-sys-term 99,3563 +(defun hyperb:window-system 121,4527 +(defalias 'id-browse-file id-browse-file141,5434 +(defun id-info 144,5501 +(defun id-info-item 160,6115 +(defalias 'id-tool-quit id-tool-quit188,7363 +(defun id-tool-invoke 191,7431 hypb.el,2757 (defconst hypb:help-buf-prefix 65,2223 @@ -1781,62 +1785,62 @@ hyrolo.el,4988 (defun hyrolo-bbdb-entry-format 1111,45862 (defun hyrolo-google-contacts-fgrep 1120,46201 (defun hyrolo-google-contacts-grep 1127,46491 -(defun hyrolo-google-contacts-grep-file 1152,47486 -(defun hyrolo-google-contacts-insert-data 1165,48283 -(defun hyrolo-google-contacts-insert-generic-list 1261,54090 -(defun hyrolo-retrieve-google-contacts 1276,54691 -(defun hyrolo-helm-org-rifle 1300,55764 -(defun hyrolo-helm-org-rifle-directory 1323,56728 -(defun hyrolo-helm-org-rifle-directories 1342,57508 -(defun hyrolo-org 1352,58010 -(defun hyrolo-org-roam 1366,58640 -(defun hyrolo-back-to-visible-point 1387,59630 -(defun hyrolo-backward-same-level 1395,59992 -(defun hyrolo-consult-grep 1402,60260 -(defun hyrolo-fgrep-directories 1438,61856 -(defun hyrolo-fgrep-file 1442,62067 -(defun hyrolo-forward-same-level 1456,62779 -(defun hyrolo-grep-directories 1463,63043 -(defun hyrolo-next-regexp-match 1467,63244 -(defun hyrolo-grep-file 1474,63505 -(defun hyrolo-map-level 1574,67407 -(defun hyrolo-map-single-subtree 1611,69185 -(defun hyrolo-mode 1640,70220 -(defun hyrolo-next-visible-heading 1663,71020 -(defun hyrolo-previous-visible-heading 1671,71318 -(defun hyrolo-to 1679,71620 -(defun hyrolo-to-entry-beginning 1731,73728 -(defun hyrolo-to-entry-end 1746,74306 -(defun hyrolo-up-heading 1771,75128 -(defun hyrolo-add-match 1782,75618 -(defun hyrolo-buffer-exists-p 1794,76162 -(defun hyrolo-current-date 1802,76444 -(defun hyrolo-display-to-entry-end 1806,76598 -(defun hyrolo-format-name 1815,76882 -(defun hyrolo-get-consult-version 1822,77196 -(defun hyrolo-highlight-matches 1833,77664 -(defun hyrolo-isearch-for-regexp 1844,78067 -(defun hyrolo-kill-buffer 1855,78559 -(defun hyrolo-name-and-email 1862,78881 -(defun hyrolo-name-at 1897,80076 -(defun hyrolo-save-buffer 1910,80560 -(defun hyrolo-set-date 1918,80945 -(defun hyrolo-min-matched-level 1937,81664 -(defun hyrolo-search-directories 1945,81962 -(defun hyrolo-show-levels 1952,82319 -(defun hyrolo-shrink-window 1989,83723 -(defun hyrolo-to-buffer 2002,84168 -(defun hyrolo-move-backward 2006,84300 -(defun hyrolo-move-forward 2018,84744 -(defun hyrolo-mode-outline-level 2033,85202 -(defvar hyrolo-entry-group-number 2054,86076 -(defvar hyrolo-entry-trailing-space-group-number 2058,86213 -(defconst hyrolo-hdr-format2061,86339 -(defconst hyrolo-hdr-regexp 2069,86698 -(defconst hyrolo-match-regexp 2074,86909 -(defvar hyrolo--wconfig 2079,87133 -(defvar hyrolo-mode-syntax-table 2082,87226 -(defvar hyrolo-mode-map 2092,87612 +(defun hyrolo-google-contacts-grep-file 1152,47490 +(defun hyrolo-google-contacts-insert-data 1165,48287 +(defun hyrolo-google-contacts-insert-generic-list 1261,54094 +(defun hyrolo-retrieve-google-contacts 1276,54695 +(defun hyrolo-helm-org-rifle 1300,55768 +(defun hyrolo-helm-org-rifle-directory 1323,56732 +(defun hyrolo-helm-org-rifle-directories 1342,57512 +(defun hyrolo-org 1352,58014 +(defun hyrolo-org-roam 1366,58644 +(defun hyrolo-back-to-visible-point 1387,59634 +(defun hyrolo-backward-same-level 1395,59996 +(defun hyrolo-consult-grep 1402,60264 +(defun hyrolo-fgrep-directories 1438,61860 +(defun hyrolo-fgrep-file 1442,62071 +(defun hyrolo-forward-same-level 1456,62783 +(defun hyrolo-grep-directories 1463,63047 +(defun hyrolo-next-regexp-match 1467,63248 +(defun hyrolo-grep-file 1474,63509 +(defun hyrolo-map-level 1574,67415 +(defun hyrolo-map-single-subtree 1611,69193 +(defun hyrolo-mode 1640,70228 +(defun hyrolo-next-visible-heading 1663,71028 +(defun hyrolo-previous-visible-heading 1671,71326 +(defun hyrolo-to 1679,71628 +(defun hyrolo-to-entry-beginning 1731,73736 +(defun hyrolo-to-entry-end 1746,74314 +(defun hyrolo-up-heading 1771,75136 +(defun hyrolo-add-match 1782,75626 +(defun hyrolo-buffer-exists-p 1794,76170 +(defun hyrolo-current-date 1802,76452 +(defun hyrolo-display-to-entry-end 1806,76606 +(defun hyrolo-format-name 1815,76890 +(defun hyrolo-get-consult-version 1822,77204 +(defun hyrolo-highlight-matches 1833,77672 +(defun hyrolo-isearch-for-regexp 1844,78075 +(defun hyrolo-kill-buffer 1855,78567 +(defun hyrolo-name-and-email 1862,78889 +(defun hyrolo-name-at 1897,80084 +(defun hyrolo-save-buffer 1910,80568 +(defun hyrolo-set-date 1918,80953 +(defun hyrolo-min-matched-level 1937,81672 +(defun hyrolo-search-directories 1945,81970 +(defun hyrolo-show-levels 1952,82327 +(defun hyrolo-shrink-window 1989,83731 +(defun hyrolo-to-buffer 2002,84176 +(defun hyrolo-move-backward 2006,84308 +(defun hyrolo-move-forward 2018,84752 +(defun hyrolo-mode-outline-level 2033,85210 +(defvar hyrolo-entry-group-number 2054,86084 +(defvar hyrolo-entry-trailing-space-group-number 2058,86221 +(defconst hyrolo-hdr-format2061,86347 +(defconst hyrolo-hdr-regexp 2069,86706 +(defconst hyrolo-match-regexp 2074,86917 +(defvar hyrolo--wconfig 2079,87141 +(defvar hyrolo-mode-syntax-table 2082,87234 +(defvar hyrolo-mode-map 2092,87620 hywconfig.el,642 (define-obsolete-variable-alias 'wconfig-ring-max wconfig-ring-max61,2094 @@ -1970,24 +1974,24 @@ hvm.el,874 (defvar Vm-msg-start-regexp 537,19555 kotl/kexport.el,796 -(defvar kexport:input-filename 40,1318 -(defvar kexport:output-filename 43,1428 -(defcustom kexport:html-description46,1539 -(defcustom kexport:html-keywords 53,1830 -(defvar kexport:kcell-reference-regexp61,2050 -(defvar kexport:kcell-partial-reference-regexp64,2140 -(defvar kexport:html-replacement-alist67,2225 -(defconst kexport:font-awesome-css-url111,4017 -(defconst kexport:font-awesome-css-include116,4243 -(defconst kexport:font-awesome-css-include-with-menus190,5133 -(defconst kexport:font-awesome-collapsible-javascript-btn325,7732 -(defun kexport:koutline 369,8968 -(defun kexport:display 383,9571 -(defun kexport:html 397,10165 -(defun kexport:princ-cell 535,15226 -(defun kexport:html-file-klink 562,16520 -(defun kexport:html-markup 576,17069 -(defun kexport:html-url 584,17332 +(defvar kexport:input-filename 40,1317 +(defvar kexport:output-filename 43,1427 +(defcustom kexport:html-description46,1538 +(defcustom kexport:html-keywords 53,1829 +(defvar kexport:kcell-reference-regexp61,2049 +(defvar kexport:kcell-partial-reference-regexp64,2139 +(defvar kexport:html-replacement-alist67,2224 +(defconst kexport:font-awesome-css-url111,4016 +(defconst kexport:font-awesome-css-include116,4242 +(defconst kexport:font-awesome-css-include-with-menus190,5132 +(defconst kexport:font-awesome-collapsible-javascript-btn325,7731 +(defun kexport:koutline 369,8967 +(defun kexport:display 385,9726 +(defun kexport:html 399,10320 +(defun kexport:princ-cell 537,15381 +(defun kexport:html-file-klink 564,16675 +(defun kexport:html-markup 578,17224 +(defun kexport:html-url 586,17487 kotl/kfile.el,623 (defconst kfile:version 28,873 @@ -2722,49 +2726,57 @@ test/hui-select-tests.el,286 (ert-deftest hui-select--thing 83,2412 (ert-deftest hui-select--thing-interactive-prints-type-of-match 113,3624 -test/hui-tests.el,2720 +test/hui-tests.el,3218 (ert-deftest hui-gbut-edit-link-to-file-button 36,921 -(ert-deftest hui-ibut-label-create 87,3138 -(ert-deftest hui-ibut-label-create-fails-if-label-exists 96,3417 -(ert-deftest hui-ebut-create-link-to-directory 109,3887 -(ert-deftest hui-ebut-create-link-to-www-url 121,4430 -(ert-deftest hui-ebut-edit-link-to-www-url-keeping-all-values-should-not-modify-buffer-or-ebut 131,4882 -(ert-deftest hui-ebut-use-region-as-label 146,5764 -(ert-deftest hui-ebut-www-link 160,6357 -(ert-deftest hui-ebut-create-exec-shell-cmd 172,6883 -(ert-deftest hui-ebut-create-link-to-info-index-using-completion 185,7463 -(ert-deftest hui-gibut-create-link-to-file 200,8190 -(ert-deftest hui-gibut-create-link-to-file-line 215,8852 -(ert-deftest hui-gibut-create-link-to-file-line-and-column 231,9592 -(ert-deftest hui-gibut-create-info-node 248,10396 -(ert-deftest hui--delimited-selectable-thing--in-cell-return-ref 263,11121 -(ert-deftest hui--delimited-selectable-thing--in-ibut-return-ibut-text 274,11572 -(ert-deftest hui--delimited-selectable-thing--ibut-label-return-ibut-text 285,11946 -(ert-deftest hui--delimited-selectable-thing--in-ebut-return-ebut-text 296,12368 -(ert-deftest hui--delimited-selectable-thing--start-of-paired-delimiter 307,12793 -(ert-deftest hui--delimited-selectable-thing--in-kcell-link-return-link 319,13244 -(ert-deftest hui--kill-ring-save--yank-in-same-kotl 342,14075 -(ert-deftest hui--kill-ring-save--yank-in-other-kotl 363,14758 -(ert-deftest hui--kill-ring-save--yank-in-other-file 386,15594 -(ert-deftest hui--kill-ring-save--yank-in-other-file-other-dir 409,16416 -(ert-deftest hui--copy-to-register--yank-in-same-kotl 435,17353 -(ert-deftest hui--copy-to-register--yank-in-other-kotl 458,18160 -(ert-deftest hui--copy-to-register--yank-in-other-file 484,19137 -(ert-deftest hui--copy-to-register--yank-in-other-file-other-dir 509,20084 -(ert-deftest hui--kill-ring-save-in-kotl-mode-copies-region 537,21145 -(ert-deftest hui--kill-ring-save-in-kotl-mode-between-cells-fails 551,21662 -(ert-deftest hui--ibut-create-interactive 564,22151 -(ert-deftest hui--ibut-create-interactive-label-using-region 575,22586 -(ert-deftest hui--ibut-create-interactive-add-comment-char 589,23151 -(ert-deftest hui--ibut-create-interactive-create-label 602,23698 -(ert-deftest hui--ibut-rename-label-at-point 615,24198 -(ert-deftest hui--ibut-rename-label 629,24750 -(ert-deftest hui--ibut-rename-label-not-in-buffer-errors 642,25263 -(ert-deftest hui--ebut-rename 654,25703 -(ert-deftest hui--ebut-rename-only-button-with-that-label 662,26012 -(ert-deftest hui--ebut-rename-nonumbered-label 675,26577 -(ert-deftest hui--ebut-rename-numbered-label 688,27116 -(ert-deftest hui--ebut-rename-all-copies 701,27662 +(ert-deftest hui-gbut-number-of-gbuts-with-no-buttons 87,3138 +(ert-deftest hui-gbut-number-of-gibuts-when-one-button 96,3511 +(ert-deftest hui-gbut-number-of-gebuts-when-one-button 107,3909 +(ert-deftest hui-gbut-number-of-gibuts-from-mail-mode 118,4435 +(ert-deftest hui-gbut-number-of-gebuts-from-mail-mode 132,5053 +(ert-deftest hui-ibut-label-create 147,5770 +(ert-deftest hui-ibut-label-create-fails-if-label-exists 156,6049 +(ert-deftest hui-ebut-create-link-to-directory 169,6519 +(ert-deftest hui-ebut-create-link-to-www-url 181,7062 +(ert-deftest hui-ebut-edit-link-to-www-url-keeping-all-values-should-not-modify-buffer-or-ebut 191,7514 +(ert-deftest hui-ebut-use-region-as-label 206,8396 +(ert-deftest hui-ebut-www-link 220,8989 +(ert-deftest hui-ebut-create-exec-shell-cmd 232,9515 +(ert-deftest hui-ebut-create-link-to-info-index-using-completion 245,10095 +(ert-deftest hui-gibut-create-link-to-file 260,10822 +(ert-deftest hui-gibut-create-link-to-file-line 275,11484 +(ert-deftest hui-gibut-create-link-to-file-line-and-column 291,12224 +(ert-deftest hui-gibut-create-info-node 308,13028 +(ert-deftest hui--delimited-selectable-thing--in-cell-return-ref 323,13753 +(ert-deftest hui--delimited-selectable-thing--in-ibut-return-ibut-text 334,14204 +(ert-deftest hui--delimited-selectable-thing--ibut-label-return-ibut-text 345,14578 +(ert-deftest hui--delimited-selectable-thing--in-ebut-return-ebut-text 356,15000 +(ert-deftest hui--delimited-selectable-thing--start-of-paired-delimiter 367,15425 +(ert-deftest hui--delimited-selectable-thing--in-kcell-link-return-link 379,15876 +(ert-deftest hui--kill-ring-save--yank-in-same-kotl 402,16707 +(ert-deftest hui--kill-ring-save--yank-in-other-kotl 423,17390 +(ert-deftest hui--kill-ring-save--yank-in-other-file 446,18226 +(ert-deftest hui--kill-ring-save--yank-in-other-file-other-dir 469,19048 +(ert-deftest hui--copy-to-register--yank-in-same-kotl 495,19985 +(ert-deftest hui--copy-to-register--yank-in-other-kotl 518,20792 +(ert-deftest hui--copy-to-register--yank-in-other-file 544,21769 +(ert-deftest hui--copy-to-register--yank-in-other-file-other-dir 569,22716 +(ert-deftest hui--kill-ring-save-in-kotl-mode-copies-region 597,23777 +(ert-deftest hui--kill-ring-save-in-kotl-mode-between-cells-fails 611,24294 +(ert-deftest hui--ibut-create-interactive 624,24783 +(ert-deftest hui--ibut-create-interactive-label-using-region 635,25218 +(ert-deftest hui--ibut-create-interactive-add-comment-char 649,25783 +(ert-deftest hui--ibut-create-interactive-create-label 662,26330 +(ert-deftest hui--ibut-rename-label-at-point 675,26830 +(ert-deftest hui--ibut-rename-label 689,27382 +(ert-deftest hui--ibut-rename-label-not-in-buffer-errors 702,27895 +(ert-deftest hui--ebut-rename 714,28335 +(ert-deftest hui--ebut-rename-only-button-with-that-label 722,28644 +(ert-deftest hui--ebut-rename-nonumbered-label 735,29209 +(ert-deftest hui--ebut-rename-numbered-label 748,29748 +(ert-deftest hui--ebut-rename-all-copies 761,30294 +(ert-deftest hui--ibut-link-directly-to-file 774,30718 +(ert-deftest hui--ibut-link-directly-to-dired 791,31371 +(ert-deftest hui--ibut-link-directly-with-label 812,32165 test/hypb-tests.el,88 (ert-deftest hypb:installation-type-test 26,562 @@ -2782,11 +2794,11 @@ test/hyrolo-tests.el,570 (ert-deftest hyrolo-demo-tab-jump-to-first-match 60,1835 (ert-deftest hyrolo-demo-toggle-visibility 72,2253 (ert-deftest hyrolo-demo-show-overview 98,3102 -(ert-deftest hyrolo-demo-move-to-beginning-and-end-of-file 124,3956 -(ert-deftest hyrolo-demo-move-between-entries-on-same-level 151,4929 -(ert-deftest hyrolo-demo-no-following-same-level-heading 175,5785 -(ert-deftest hyrolo-sort-test 203,6747 -(ert-deftest hyrolo-sort-records-at-different-levels 234,7905 +(ert-deftest hyrolo-demo-move-to-beginning-and-end-of-file 125,3974 +(ert-deftest hyrolo-demo-move-between-entries-on-same-level 152,4947 +(ert-deftest hyrolo-demo-no-following-same-level-heading 176,5803 +(ert-deftest hyrolo-sort-test 204,6765 +(ert-deftest hyrolo-sort-records-at-different-levels 235,7923 test/kcell-tests.el,136 (defconst kcell-tests--ref-to-id-tests31,800 @@ -2794,13 +2806,13 @@ test/kcell-tests.el,136 (ert-deftest kcell-tests--ref-to-id 81,2083 test/kexport-tests.el,407 -(ert-deftest kexport:html-creates-html-file 26,633 -(ert-deftest kexport:html-sets-title-and-header 43,1231 -(ert-deftest kexport:html-contains-each-cell 64,2080 -(ert-deftest kexport:html-creates-hierarchy 84,2791 -(ert-deftest kexport:html-creates-list-hierarchy 110,3778 -(ert-deftest kexport:display-creates-html-file-and-displays-it 133,4743 -(ert-deftest kexport:koutline-calls-kexport:html 152,5509 +(ert-deftest kexport:html-creates-html-file 26,632 +(ert-deftest kexport:html-sets-title-and-header 43,1230 +(ert-deftest kexport:html-contains-each-cell 64,2079 +(ert-deftest kexport:html-creates-hierarchy 84,2790 +(ert-deftest kexport:html-creates-list-hierarchy 110,3777 +(ert-deftest kexport:display-creates-html-file-and-displays-it 133,4742 +(ert-deftest kexport:koutline-calls-kexport:html 152,5508 test/kimport-tests.el,327 (ert-deftest kimport--aug-post-outline 23,492 diff --git a/hargs.el b/hargs.el index e6053c43..82c3b66d 100644 --- a/hargs.el +++ b/hargs.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 31-Oct-91 at 23:17:35 -;; Last-Mod: 3-Oct-23 at 23:28:59 by Mats Lidell +;; Last-Mod: 2-Nov-23 at 00:03:43 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -33,7 +33,7 @@ (require 'hypb) (require 'set) (require 'info) -(require 'hmouse-drv) +(require 'hmouse-drv) ;; loads hui-mouse and hmouse-key ;;; ************************************************************************ ;;; Public declarations @@ -657,7 +657,8 @@ Handles all of the interactive argument types that `hargs:iform-read' does." ((buffer-file-name)))) ((eq hargs:reading-type 'directory) (cond ((derived-mode-p 'dired-mode) - (let ((dir (dired-get-filename nil t))) + (let ((dir (or (smart-dired-pathname-up-to-point t) + (dired-get-filename nil t)))) (and dir (setq dir (hpath:absolute-to dir)) (file-directory-p dir) dir))) ;; Delimited directory name. diff --git a/hbut.el b/hbut.el index 67015976..2e8a64e4 100644 --- a/hbut.el +++ b/hbut.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 18-Sep-91 at 02:57:09 -;; Last-Mod: 30-Oct-23 at 22:13:56 by Bob Weiner +;; Last-Mod: 5-Nov-23 at 17:15:31 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -2552,22 +2552,22 @@ Summary of operations based on inputs (name arg comes from \\='hbut:current attr (if (eq arg3 0) (insert (format "\"%s:%d\"" (hpath:shorten arg1) arg2)) (insert (format "\"%s:%d:%d\"" (hpath:shorten arg1) arg2 arg3)))) - ('actypes::link-to-file (insert - (if (/= (length args) 2) - ;; filename only - (format "\"%s\"" (hpath:shorten arg1)) - ;; includes buffer pos that we translate to line:col - (with-current-buffer (find-file-noselect arg1) - (save-excursion - (goto-char arg2) - (if (zerop (current-column)) - (format "\"%s:%d\"" - (hpath:shorten arg1) - (line-number-at-pos (point) t)) - (format "\"%s:%d:%d\"" - (hpath:shorten arg1) - (line-number-at-pos (point) t) - (current-column)))))))) + ('actypes::link-to-file + (let ((short-path (hpath:shorten arg1))) + (insert + (if (/= (length args) 2) + ;; filename only + (format "\"%s\"" short-path) + ;; includes buffer pos that we translate to line:col + (with-current-buffer (find-file-noselect arg1) + (save-excursion + (goto-char arg2) + (if (zerop (current-column)) + (format "\"%s:%d\"" short-path (line-number-at-pos (point) t)) + (format "\"%s:%d:%d\"" + short-path + (line-number-at-pos (point) t) + (current-column))))))))) ('actypes::link-to-string-match (insert (format "<%s \"%s\" %d \"%s\">" (actype:def-symbol actype) arg1 arg2 (hpath:shorten arg3)))) diff --git a/hpath.el b/hpath.el index 73d173c9..a75846ed 100644 --- a/hpath.el +++ b/hpath.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 1-Nov-91 at 00:44:23 -;; Last-Mod: 30-Oct-23 at 22:13:11 by Bob Weiner +;; Last-Mod: 5-Nov-23 at 17:16:31 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -2586,10 +2586,12 @@ If PATH is modified, return PATH, otherwise return nil." (or var-dir-val default-directory))) ;; Remove matching path rather than adding the ;; variable to the path when the variable is one - ;; for Elisp files. These can be resolved - ;; without the variable being included in the - ;; path. - (if (memq var-symbol '(hyperb:dir load-path)) + ;; for Elisp file paths and path is to an Elisp + ;; file. These can be resolved without the + ;; variable being included in the path. + (if (and (memq var-symbol '(hyperb:dir load-path)) + (delq nil (mapcar (lambda (suffix) (string-suffix-p suffix path)) + (get-load-suffixes)))) "" (concat "$\{" (symbol-name var-symbol) "\}/")) path t t))) diff --git a/hui-mouse.el b/hui-mouse.el index 1d69879e..f75e5463 100644 --- a/hui-mouse.el +++ b/hui-mouse.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 04-Feb-89 -;; Last-Mod: 6-Oct-23 at 16:13:42 by Mats Lidell +;; Last-Mod: 2-Nov-23 at 00:09:22 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -854,22 +854,29 @@ Use left mouse key, RET or TAB key to select a completion and exit." ;;; smart-dired functions ;;; ************************************************************************ -(defun smart-dired-pathname-up-to-point () +(defun smart-dired-pathname-up-to-point (&optional no-default) "Return the part of the pathname up through point, else current directory path. -Assume point is on the first line of a Dired buffer. Use for -direct selection of an ancestor directory of this directory." +Use for direct selection of an ancestor directory of the +dired directory at point, if any. + +With optional NO-DEFAULT, do not default to current directory +path; instead return nil." (interactive) - (if (not (looking-at "\\s-*$")) + (when (not (derived-mode-p 'dired-mode)) + (error "(smart-dired-pathname-up-to-point): Called from non-dired buffer, '%s'" + (buffer-name))) + (if (dired-get-subdir) ;; On a dired directory line (save-excursion - (re-search-forward "[/:\n]" nil t) + (re-search-forward "[/:\n\r\t\f]" (line-end-position) t) (buffer-substring-no-properties - (if (and (not (bobp)) (= (preceding-char) ?/)) - (point) - (1- (point))) - (progn (beginning-of-line) - (skip-syntax-forward "-") - (point)))) - default-directory)) + (if (and (not (bobp)) (= (preceding-char) ?/)) + (point) + (1- (point))) + (progn (beginning-of-line) + (skip-syntax-forward "-") + (point)))) + (unless no-default + (expand-file-name default-directory)))) (defun smart-dired () "Use a single key or mouse key to manipulate directory entries. @@ -914,7 +921,7 @@ If key is pressed: (t (error "(smart-dired): No Dired expunge function"))))) (t (hpath:find (smart-dired-pathname-up-to-point))))) ((last-line-p) (quit-window)) - (t (hpath:find (dired-get-filename nil t))))) + (t (hpath:find (or (dired-get-filename nil t) ""))))) (defun smart-dired-assist () "Use a single assist-key or mouse assist-key to manipulate directory entries. diff --git a/hui.el b/hui.el index 6219628e..b3c6de33 100644 --- a/hui.el +++ b/hui.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 19-Sep-91 at 21:42:03 -;; Last-Mod: 22-Oct-23 at 08:46:02 by Bob Weiner +;; Last-Mod: 6-Nov-23 at 19:36:33 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -1824,9 +1824,10 @@ File Name link-to-file Koutline Cell link-to-kcell Outline Heading link-to-string-match Buffer attached to File link-to-file +EOL in Dired Buffer link-to-directory (dired dir) Buffer without File link-to-buffer-tmp" - ;; Elisp Buffer at Start - ;; or End of Sexpression eval-elisp +;; Elisp Buffer at Start +;; or End of Sexpression eval-elisp (let (val hbut-sym @@ -1851,14 +1852,17 @@ Buffer without File link-to-buffer-tmp" ;; Next clause forces use of any ibut name in the link ;; and sets hbut:current button attributes. - (t (cond ((and (prog1 (setq hbut-sym (hbut:at-p)) + (t (cond ((and (not (derived-mode-p 'dired-mode)) + (prog1 (setq hbut-sym (hbut:at-p)) (save-excursion (ibut:at-to-name-p hbut-sym))) (setq lbl-key (hattr:get hbut-sym 'lbl-key)) (eq (current-buffer) (get-file-buffer (gbut:file)))) (list 'link-to-gbut lbl-key)) - ((and hbut-sym (eq (hattr:get hbut-sym 'categ) 'explicit)) + ((and hbut-sym lbl-key (eq (hattr:get hbut-sym 'categ) 'explicit)) (list 'link-to-ebut lbl-key)) - (hbut-sym + ((and hbut-sym lbl-key) + ;; On an implicit button, so link to it + ;; (message "%S" (hattr:list hbut-sym)) (list 'link-to-ibut lbl-key (or buffer-file-name (buffer-name)))) ((and (require 'bookmark) (derived-mode-p 'bookmark-bmenu-mode) @@ -1889,8 +1893,8 @@ Buffer without File link-to-buffer-tmp" (setq val (hargs:at-p t))) (list 'link-to-directory val)) ((let ((hargs:reading-type 'file)) - (setq val (hargs:at-p t))) - (list 'link-to-file val (point))) + (setq val (hargs:at-p))) + (list 'link-to-file val)) ((derived-mode-p #'kotl-mode) (list 'link-to-kcell buffer-file-name (kcell-view:idstamp))) ;; If link is within an outline-regexp prefix, use @@ -1918,6 +1922,9 @@ Buffer without File link-to-buffer-tmp" heading occur buffer-file-name)))) (buffer-file-name (list 'link-to-file buffer-file-name (point))) + ((derived-mode-p 'dired-mode) + (list 'link-to-directory + (expand-file-name default-directory))) (t (list 'link-to-buffer-tmp (buffer-name))))) ;; ;; Deleted link to elisp possibility as it can embed diff --git a/hyrolo.el b/hyrolo.el index 8185900d..c0dcd024 100644 --- a/hyrolo.el +++ b/hyrolo.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 7-Jun-89 at 22:08:29 -;; Last-Mod: 29-Oct-23 at 16:27:08 by Bob Weiner +;; Last-Mod: 5-Nov-23 at 10:08:50 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -1143,7 +1143,7 @@ Output looks like so: (current-prefix-arg)) (call-interactively (if arg 'hyrolo-fgrep 'hyrolo-grep)) (read-only-mode 0) - (let (case-fold-search) + (let ((case-fold-search t)) (re-search-forward hyrolo-entry-regexp nil t)) (beginning-of-line) (set-buffer-modified-p nil) @@ -1524,7 +1524,7 @@ Return number of matching entries found." (when (re-search-forward hyrolo-hdr-regexp nil t 2) (forward-line) (setq hdr-pos (cons (point-min) (point)))) - (let (case-fold-search + (let ((case-fold-search t) opoint) (re-search-forward hyrolo-entry-regexp nil t) (while (and (or (null max-matches) (< num-found max-matches)) diff --git a/kotl/EXAMPLE.kotl b/kotl/EXAMPLE.kotl index a4fe3b56..9b3214ca 100644 --- a/kotl/EXAMPLE.kotl +++ b/kotl/EXAMPLE.kotl @@ -1,564 +1,564 @@ ;; -*- Mode: kotl -*- "Kotl-4.0" ;; file-format  - 1. The Koutliner is a part of the Hyperbole information management system. - - 2. The Koutliner produces hierarchically structured files consisting of - trees of cells. - - 2a. A cell is an element of the outline which has its own display label - and unique, permanent identifier (idstamp). - - 2b. Idstamps support the creation of hyperlinks to cells which are - maintained as the structure of an outline changes. - - 3. Features implemented include: - - 3a. Full on screen editing (just like a Macintosh). Click to type in a - node (we call them cells) and just enter text. Structure is - automatically maintained for you. All of the standard Emacs editor - command set is supported both through keyboard, menu and mouse - interaction. Menu usage is documented in the Hyperbole Manual; this - document discusses features and their associated keyboard commands - only. - - 3b. Advanced outline processing - - 3b1. Autonumbering: Full auto-numbering in Augment (1a2) or legal - (1.1.2) formats. Augment style is the default. Use {C-c C-l ?} - to see the full set of label types and to select a different - label type. - - 3b2. Label Separators: By default, the Koutliner separates labels from - cell contents by two spaces. If you want to change the separator - for the current outline, use {C-c M-l}. {C-u C-c M-l} will - additionally change the default separator value used when new - outlines are created. For example, use the value ". " to get a - trailing period after each cell label. The separator must be at - least two characters long. - - 3b3. Cell Creation: {C-j} adds a new cell as a sibling following the - current cell. A non-negative prefix argument, {C-u C-j} or {C-c - a} adds the cell as a child of the current cell. {C-c p} adds the - cell as the sibling of the current cell's parent. - - 3b4. Cell and Tree Deletion: {C-c C-k} kills the current cell and its - entire subtree. {C-c k} kills the contents of a cell from point - through the end of the cell. {C-u C-c k} kills the entire - contents of the cell regardless of the location of point. You may - then yank the contents into another cell with {C-y}. - - 3b5. Tree Demotion and Promotion: Trees may be demoted pressing {TAB} - or promoted by pressing {M-TAB}. {M-0 TAB} and {M-0 M-TAB} will - demote and promote trees and will additionally refill each cell - that has not been specially marked to prevent refilling. - - {M-1 TAB} behaves specially. It toggles the function of {TAB} and - {M-TAB} so that they insert a tab character and remove the - previous character, respectively. Use {M-1 TAB} to toggle them - back to promoting and demoting trees. - - To insert a literal tab character, use {C-q TAB}. - - 3b6. Cell and Tree Filling: {M-q} or {M-j} refills a paragraph within a - cell so that its lines wrap within the current margin settings. - {C-c M-q} or {C-c M-j} refills all paragraphs within a cell. - {C-M-q} or {C-M-j} refills all cells within a tree. - - Set the variable, kotl-mode:refill-flag, to t if you want moving, - promoting, demoting, exchanging, splitting and appending cells to - also automatically refill each cell. - - 3b7. Cursor Movement: In addition to normal Emacs movement commands, - you can move within a cell or from one cell or tree to another. - - {C-c ,} - Move to the beginning of the current cell. - {C-c .} - Move to the end of the current cell. - - {C-c C-n} - Move to the next visible cell, regardless of level. - {C-c C-p} - Move to the prev visible cell, regardless of level. - - {C-c C-f} - Move forward to this cell's successor, if any. - {C-c C-b} - Move backward to this cell's predecessor, if any. - - {C-c C-d} - Move to first child of current cell, if any. - - {C-c C-u} - Move to parent cell of current cell, if any. - - {C-c <} - Move to the first sibling at the current level. - {C-c >} - Move to the last sibling at the current level. - - {C-c ^} - Move to the level 1 root of the current tree. - {C-c $} - Move to the last cell in the tree rooted at point. - - 3b8. Tree Movement and Copying: Entire outline trees can be moved or - copied within an outline with single commands. Simply invoke - the desired command and then double click/press with the Action - Key on the desired root cell for each argument for which you are - prompted. - - Copying and moving only work within a single outline right now, so - don't try to move or copy trees to another Koutline file. - - {M-} - Move current tree past prefix arg same level trees. - {M-} - Move current tree back prefix arg same level trees. - - {C-c c} - Copy to follow as sibling of . - {C-u C-c c} - Copy to follow as first child of . - - {C-c C-c} - Copy to precede . - {C-u C-c C-c} - Copy as first child of the parent of . - - {C-c m} - Move to follow as sibling of . - {C-u C-c m} - Move to follow as first child of . - - {C-c C-m} - Move to precede . - {C-u C-c C-m} - Move as first child of the parent of . - - If you have mouse support under Hyperbole, you can move entire - trees with mouse clicks. Simply click the Assist Key within the - indentation to the left of a cell text and you will be prompted - for a tree to move. Double click the Action Key within the body - of the root cell of the tree to move and then double click within - the body of the root cell of the tree you want it to follow. - - 3b9. Tree Text or Region Copying to a Non-Koutline Buffer: - {C-c M-c} - Copy text or active region to a non-Koutline buffer. - {C-c C-@} - Copy text to an outgoing mail message. - - Each above command prompts for whether or not to include - hidden/invisible text when copying. If yes, all invisible text - is expanded before copying. - - 3b10. Cell Transposition: The move and copy commands rearrange entire - trees. The following two commands exchange the locations of two - cells. - - 3b10a. {C-c e} prompts for two cell addresses and exchanges the cells. - - 3b10b. {C-c t} does not prompt. It exchanges the current and - preceding cells. If there is no preceding cell it exchanges - the current and next cell. - - {C-c t} with a prefix argument of zero exchanges the cells in - which point and mark fall. - - {C-c t} with a non-zero numeric prefix argument, N, moves - the current tree past maximally the next N visible cells. If - there are fewer visible, it makes the current cell the last - cell in the outline. - - 3b11. Cell Splitting: You can split one cell into two adjacent cells - with {C-c s}. This leaves the cell contents preceding point in - the current cell, minus any trailing whitespace, and moves the - contents following point to a new sibling cell which is inserted - into the outline. {C-u C-c s} adds the new cell as the first - child of the original cell, rather than as its sibling. - - All cell attributes in the original cell are propagated to the new - one. - - 3b12. Cell Appending: {C-c +} appends the contents of a specified cell - to the end of another cell. - - 3b13. Hiding and Showing: Individual cells, branches, or particular - levels in the outline may be hidden or shown. These commands work - even when an outline buffer is read-only, e.g. when its file is - not checked out of a version control system yet. - - 3b13a. {C-c C-h} - Hide (collapse) tree rooted at point. - {C-c C-s} - Show (expand) tree rooted at point. - - {C-c C-a} - Show (expand) all cells in the outline. - {C-x $} - Show all cells down to a particular level. The - user is prompted for the level or a prefix - argument may be given. - - {C-M-h} - Hide subtree at point, excluding root. - {M-x kotl-mode:show-subtree RET} - Show subtree at point. - - {C-c C-o} - Overview, show only first line of outline - cells. - {C-c C-t} - Top-level, hide all cells below level 1 and show - only the first line of each level 1 cell. - Give a prefix argument to either of the above two commands to - toggle display of blank lines between cells as well, - e.g. {C-u C-c C-o}. Try it now. - - 3b13b. A click or press of the Action Key within a cell's body, but - not on a button, toggles between hiding and showing the tree - rooted at point. - - 3b14. Cell Identifiers: Permanent ids are associated with each cell - and can be used in hyperlinks that are maintained as cells are - reordered in a file. (These ids may also be displayed in place - of the outline level relative ids. Use {C-c C-l id RET}). - Permanent ids are numbered from 0, where 0 is the root node of - the entire outline. This node is never visible within the - outline. Permanent ids always begin with a 0, as in 012, to - distinguish them from relative ids. - - 3b15. Cell Attributes: Each cell has its own attribute list. The - attribute lists for the cells in the tree rooted at point can be - displayed by pressing the Assist Key. {C-c h} prompts for a kcell - id and displays its attributes. {C-u C-c h} prompts for a kcell - id and displays the attributes for it and its subtree; use 0 as - the kcell id to see attributes for all visible cells in the - outline, including the invisible 0 cell that is the root of - all first-level cells. - - {C-c C-i} sets an attribute of the cell at point. - {C-u C-c C-i} removes an attribute of the cell at point. - {C-0 C-c C-i} sets an attribute of the invisible 0 root cell. - {C--1 C-c C-i} removes an attribute of the invisible 0 root cell. - - 3b16. File Insertion: The elements of another buffer or file may be - inserted into a koutline as a set of cells by using the {C-x i} - command. When prompted, you may use a buffer name or file name - from which to insert. - - 3b16a. The cells will be inserted as the successors of the current - cell unless {C-u C-x i} is used and then they are inserted as - the initial children of the current cell. - - 3b16b. See the documentation for the variables, kimport:mode-alist and - kimport:suffix-alist, for information on mode and - suffix-specific conversions performed on files before they are - inserted. This same conversion process applies if you invoke - {M-x kotl-mode RET} in a non-koutline buffer or if you perform - a generic file import as described in <@ 3b16=063>. - - 3b16c. Use {M-x kimport:insert-file-contents RET} to insert the - entire contents of a file into the current cell at the - location of point. {M-x kimport:insert-buffer RET} does the - same for an existing buffer. {C-x r i} does the same with the - contents of a text register that you specify. - - 3b17. File Importing: The Koutliner supports conversion of three - types of files into koutline files. You can choose to - import a file into an existing koutline, following the tree - at point, or to create a new koutline of the imported file - contents. {M-x kimport:file RET} will select the - importation type based on the buffer or file name suffix of - the file to import. Use one of the following commands if - you want to control the type of importation explicitly. - - 3b17a. Text Files - - 3b17a1. In a text buffer, use {M-x kotl-mode RET} to convert the - buffer into a koutline in-place. You will lose the old - format of the buffer when you do this. - - 3b17a2. Use {M-x kimport:text RET} and you will be prompted for a - text buffer or file to import and the new koutline buffer or - file to create from its text. It will also import the - contents, attributes and level structure of cells from a - koutline. - - With this command, your original file remains intact. - - 3b17b. Star Outline Files: Star outlines are standard Emacs outlines - where each entry begins with one or more asterisk characters. - Use {M-x kimport:star-outline RET} and you will be prompted - for the star outline buffer or file to import and the new - koutline buffer or file to create. - - 3b17c. Augment Files Numbered on the Right-Side: (Skip this if you are - unfamiliar with this sort of file). Files exported from the - Augment system as text often have alphanumeric statement - identifiers on the right side. - - Use {M-x kimport:aug-post-outline RET} and you will be prompted - for the augment buffer or file to import and the koutline to - create. - - 3b18. File Exporting: The Koutliner can produce a nicely indented HTML - version of an outline with hyperlinks and hyperlink anchors - intact. Use {M-x kexport:html RET} to export a koutline file or - existing buffer. - - 3b19. View Specification: Flexible views of outlines may be specified - with succinct single character codes. - - 3b19a. The current view spec is shown in the modeline after the buffer - name, delimited by <|>. - - 3b19b. The current view spec is saved whenever the outline is saved. - The next time the outline is read in, this will be the initial - view. The standard initial viewspec is <|ben>. - - 3b19c. {C-c C-v} prompts for a view spec string in which the following - codes are valid. Any invalid characters in a view spec are - ignored. - - 3b19c1. a: Show all cell levels and all lines in cells. - - 3b19c2. b: Turn on blank lines between cells. Without this code, - blank lines will be turned off. You can also use the {C-c - b} key binding to toggle line numbers on and off - independent of any other view settings. - - 3b19c3. cN: Hide any lines greater than N in each cell. 0 means - don't cutoff any lines. - - 3b19c4. e: Show ellipses when some content is hidden (This is - always on in modern versions of Emacs; it cannot be - turned off). - - 3b19c5. lN: Hide cells at levels deeper than N. 0 means don't hide - any cells. - - 3b19c6. n: Turn on the default label type. - n0: Display idstamps. - n1: Display alpha labels. - n.: Display legal labels. - - 3b19d. Press the Action Key on this view spec of <|c2l1> to turn off - blank lines, to clip each cell after its second line, and to - hide all cells below level one. Use {C-u C-c C-a} to restore a - view of all cells. - - 3c. Klinks: Hyperlinks may be embedded in cells and may refer to other - cells. Explicit Hyperbole buttons may be created as usual via - mouse drags, see "(hyperbole)By Dragging". A klink is a special - implicit link button that jumps to a specific outline cell. - - 3c1. Here are three klink examples: - - 3c1a. <#3b=06> or <@ 3b=06> jumps to the cell within this outline - which has permanent id `06' and relative id `3b'. <@ 06> does - the same thing, as does <@ 3b>, though this latter form will - not maintain the link properly if the cell is moved elsewhere - within the outline. - - 3c1b. or displays - the named file, starting at the unimplemented features section - whose permanent identifer is 012, with the view specification - of: blank lines turned off, cutoff after one line per cell, and - show ellipses for cells or trees which are clipped. - - 3c1c. <|ben> is a klink consisting of just a view specification. - When activated, it sets the view in the current outline to - display blank lines, ellipses following collapsed lines and - standard alphanumeric numbering. - - 3c2. There are a number of easy ways to insert klinks into koutlines. - If you have mouse support under Hyperbole, simply click the Action - Key within the indentation to the left of a cell text. If you - then double click on some cell, a link to that cell will be - inserted where you started. From a keyboard, use {C-c l} when in - a koutline or {C-h h k l} when not in a koutline to insert a - klink. - - 3c3. If you prefer the standard copy and yank model that Emacs - provides, place point within a klink when there is no active - region and use {M-w} to copy the klink. Then {C-y} will yank it - into any buffer you desire. - - 3c4. To instead copy a reference to the current Koutline cell, use - {M-w} outside of a klink when no region is active. - - 3c5. {C-x r s} prompts for an Emacs register and saves either the - current klink or the current cell reference to the register. {C-x - r i} with the same register then inserts the Koutline reference at - point. - - 3d. Org table editing is supported. - - 3d1. You must use the first line of the cell to label your table - as tables require only blanks to the left of each row. - - 3d2. Here are two table examples: - - |----------------------------+---------------------------| - | Promotion Inside Org Table | Demotion Inside Org Table | - |----------------------------+---------------------------| - | {M-0 M-TAB} | {M-0 TAB} | - | {C-c C-,} | {C-c C-.} | - | {C-c C-<} | {C-c C->} | - |----------------------------+---------------------------| - - |-----------------------------+----------------------------| - | Promotion Outside Org Table | Demotion Outside Org Table | - |-----------------------------+----------------------------| - | {M-TAB} or {Shift-TAB} | {TAB} | - | {M-} | {M-} | - | {C-c C-,} | {C-c C-.} | - | {C-c C-<} | {C-c C->} | - |-----------------------------+----------------------------| - - To toggle table editing mode on or off, press the Action - Key on any of the table | symbols and then edit as you - would any Org table. Note how the above tables show how - TAB and Shift-TAB behave differently in and outside of - tables; use M-TAB rather than Shift-TAB for tree promotion - consistency anywhere. See "(Org)Tables" for help on utilizing - tables. - - 3e. The Koutliner code runs on any system that supports Emacs, - whether under a window system or from a dumb terminal display. - - 4. Major features left to be implemented: - - 4a. Branch handling commands (all cells at same level). - - 4b. Copying a single cell without its subtree. - - 4c. Replacing one cell or one tree with another. - - 4d. Transposing two trees, rather than two cells. - - 4e. A small amount of work remains to enable setting different per - level fonts and colors, so that outline levels are visually easy to - distinguish. - - 4f. Flexible view handling has been only partially implemented. + 1. The Koutliner is a part of the Hyperbole information management system. + + 2. The Koutliner produces hierarchically structured files consisting of + trees of cells. + + 2a. A cell is an element of the outline which has its own display label + and unique, permanent identifier (idstamp). + + 2b. Idstamps support the creation of hyperlinks to cells which are + maintained as the structure of an outline changes. + + 3. Features implemented include: + + 3a. Full on screen editing (just like a Macintosh). Click to type in a + node (we call them cells) and just enter text. Structure is + automatically maintained for you. All of the standard Emacs editor + command set is supported both through keyboard, menu and mouse + interaction. Menu usage is documented in the Hyperbole Manual; this + document discusses features and their associated keyboard commands + only. + + 3b. Advanced outline processing + + 3b1. Autonumbering: Full auto-numbering in Augment (1a2) or legal + (1.1.2) formats. Augment style is the default. Use {C-c C-l ?} + to see the full set of label types and to select a different + label type. + + 3b2. Label Separators: By default, the Koutliner separates labels from + cell contents by two spaces. If you want to change the separator + for the current outline, use {C-c M-l}. {C-u C-c M-l} will + additionally change the default separator value used when new + outlines are created. For example, use the value ". " to get a + trailing period after each cell label. The separator must be at + least two characters long. + + 3b3. Cell Creation: {C-j} adds a new cell as a sibling following the + current cell. A non-negative prefix argument, {C-u C-j} or {C-c + a} adds the cell as a child of the current cell. {C-c p} adds the + cell as the sibling of the current cell's parent. + + 3b4. Cell and Tree Deletion: {C-c C-k} kills the current cell and its + entire subtree. {C-c k} kills the contents of a cell from point + through the end of the cell. {C-u C-c k} kills the entire + contents of the cell regardless of the location of point. You may + then yank the contents into another cell with {C-y}. + + 3b5. Tree Demotion and Promotion: Trees may be demoted pressing {TAB} + or promoted by pressing {M-TAB}. {M-0 TAB} and {M-0 M-TAB} will + demote and promote trees and will additionally refill each cell + that has not been specially marked to prevent refilling. + + {M-1 TAB} behaves specially. It toggles the function of {TAB} and + {M-TAB} so that they insert a tab character and remove the + previous character, respectively. Use {M-1 TAB} to toggle them + back to promoting and demoting trees. + + To insert a literal tab character, use {C-q TAB}. + + 3b6. Cell and Tree Filling: {M-q} or {M-j} refills a paragraph within a + cell so that its lines wrap within the current margin settings. + {C-c M-q} or {C-c M-j} refills all paragraphs within a cell. + {C-M-q} or {C-M-j} refills all cells within a tree. + + Set the variable, kotl-mode:refill-flag, to t if you want moving, + promoting, demoting, exchanging, splitting and appending cells to + also automatically refill each cell. + + 3b7. Cursor Movement: In addition to normal Emacs movement commands, + you can move within a cell or from one cell or tree to another. + + {C-c ,} - Move to the beginning of the current cell. + {C-c .} - Move to the end of the current cell. + + {C-c C-n} - Move to the next visible cell, regardless of level. + {C-c C-p} - Move to the prev visible cell, regardless of level. + + {C-c C-f} - Move forward to this cell's successor, if any. + {C-c C-b} - Move backward to this cell's predecessor, if any. + + {C-c C-d} - Move to first child of current cell, if any. + + {C-c C-u} - Move to parent cell of current cell, if any. + + {C-c <} - Move to the first sibling at the current level. + {C-c >} - Move to the last sibling at the current level. + + {C-c ^} - Move to the level 1 root of the current tree. + {C-c $} - Move to the last cell in the tree rooted at point. + + 3b8. Tree Movement and Copying: Entire outline trees can be moved or + copied within an outline with single commands. Simply invoke + the desired command and then double click/press with the Action + Key on the desired root cell for each argument for which you are + prompted. + + Copying and moving only work within a single outline right now, so + don't try to move or copy trees to another Koutline file. + + {M-} - Move current tree past prefix arg same level trees. + {M-} - Move current tree back prefix arg same level trees. + + {C-c c} - Copy to follow as sibling of . + {C-u C-c c} - Copy to follow as first child of . + + {C-c C-c} - Copy to precede . + {C-u C-c C-c} - Copy as first child of the parent of . + + {C-c m} - Move to follow as sibling of . + {C-u C-c m} - Move to follow as first child of . + + {C-c C-m} - Move to precede . + {C-u C-c C-m} - Move as first child of the parent of . + + If you have mouse support under Hyperbole, you can move entire + trees with mouse clicks. Simply click the Assist Key within the + indentation to the left of a cell text and you will be prompted + for a tree to move. Double click the Action Key within the body + of the root cell of the tree to move and then double click within + the body of the root cell of the tree you want it to follow. + + 3b9. Tree Text or Region Copying to a Non-Koutline Buffer: + {C-c M-c} - Copy text or active region to a non-Koutline buffer. + {C-c C-@} - Copy text to an outgoing mail message. + + Each above command prompts for whether or not to include + hidden/invisible text when copying. If yes, all invisible text + is expanded before copying. + + 3b10. Cell Transposition: The move and copy commands rearrange entire + trees. The following two commands exchange the locations of two + cells. + + 3b10a. {C-c e} prompts for two cell addresses and exchanges the cells. + + 3b10b. {C-c t} does not prompt. It exchanges the current and + preceding cells. If there is no preceding cell it exchanges + the current and next cell. + + {C-c t} with a prefix argument of zero exchanges the cells in + which point and mark fall. + + {C-c t} with a non-zero numeric prefix argument, N, moves + the current tree past maximally the next N visible cells. If + there are fewer visible, it makes the current cell the last + cell in the outline. + + 3b11. Cell Splitting: You can split one cell into two adjacent cells + with {C-c s}. This leaves the cell contents preceding point in + the current cell, minus any trailing whitespace, and moves the + contents following point to a new sibling cell which is inserted + into the outline. {C-u C-c s} adds the new cell as the first + child of the original cell, rather than as its sibling. + + All cell attributes in the original cell are propagated to the new + one. + + 3b12. Cell Appending: {C-c +} appends the contents of a specified cell + to the end of another cell. + + 3b13. Hiding and Showing: Individual cells, branches, or particular + levels in the outline may be hidden or shown. These commands work + even when an outline buffer is read-only, e.g. when its file is + not checked out of a version control system yet. + + 3b13a. {C-c C-h} - Hide (collapse) tree rooted at point. + {C-c C-s} - Show (expand) tree rooted at point. + + {C-c C-a} - Show (expand) all cells in the outline. + {C-x $} - Show all cells down to a particular level. The + user is prompted for the level or a prefix + argument may be given. + + {C-M-h} - Hide subtree at point, excluding root. + {M-x kotl-mode:show-subtree RET} - Show subtree at point. + + {C-c C-o} - Overview, show only first line of outline + cells. + {C-c C-t} - Top-level, hide all cells below level 1 and show + only the first line of each level 1 cell. + Give a prefix argument to either of the above two commands to + toggle display of blank lines between cells as well, + e.g. {C-u C-c C-o}. Try it now. + + 3b13b. A click or press of the Action Key within a cell's body, but + not on a button, toggles between hiding and showing the tree + rooted at point. + + 3b14. Cell Identifiers: Permanent ids are associated with each cell + and can be used in hyperlinks that are maintained as cells are + reordered in a file. (These ids may also be displayed in place + of the outline level relative ids. Use {C-c C-l id RET}). + Permanent ids are numbered from 0, where 0 is the root node of + the entire outline. This node is never visible within the + outline. Permanent ids always begin with a 0, as in 012, to + distinguish them from relative ids. + + 3b15. Cell Attributes: Each cell has its own attribute list. The + attribute lists for the cells in the tree rooted at point can be + displayed by pressing the Assist Key. {C-c h} prompts for a kcell + id and displays its attributes. {C-u C-c h} prompts for a kcell + id and displays the attributes for it and its subtree; use 0 as + the kcell id to see attributes for all visible cells in the + outline, including the invisible 0 cell that is the root of + all first-level cells. + + {C-c C-i} sets an attribute of the cell at point. + {C-u C-c C-i} removes an attribute of the cell at point. + {C-0 C-c C-i} sets an attribute of the invisible 0 root cell. + {C--1 C-c C-i} removes an attribute of the invisible 0 root cell. + + 3b16. File Insertion: The elements of another buffer or file may be + inserted into a koutline as a set of cells by using the {C-x i} + command. When prompted, you may use a buffer name or file name + from which to insert. + + 3b16a. The cells will be inserted as the successors of the current + cell unless {C-u C-x i} is used and then they are inserted as + the initial children of the current cell. + + 3b16b. See the documentation for the variables, kimport:mode-alist and + kimport:suffix-alist, for information on mode and + suffix-specific conversions performed on files before they are + inserted. This same conversion process applies if you invoke + {M-x kotl-mode RET} in a non-koutline buffer or if you perform + a generic file import as described in <@ 3b16=063>. + + 3b16c. Use {M-x kimport:insert-file-contents RET} to insert the + entire contents of a file into the current cell at the + location of point. {M-x kimport:insert-buffer RET} does the + same for an existing buffer. {C-x r i} does the same with the + contents of a text register that you specify. + + 3b17. File Importing: The Koutliner supports conversion of three + types of files into koutline files. You can choose to + import a file into an existing koutline, following the tree + at point, or to create a new koutline of the imported file + contents. {M-x kimport:file RET} will select the + importation type based on the buffer or file name suffix of + the file to import. Use one of the following commands if + you want to control the type of importation explicitly. + + 3b17a. Text Files + + 3b17a1. In a text buffer, use {M-x kotl-mode RET} to convert the + buffer into a koutline in-place. You will lose the old + format of the buffer when you do this. + + 3b17a2. Use {M-x kimport:text RET} and you will be prompted for a + text buffer or file to import and the new koutline buffer or + file to create from its text. It will also import the + contents, attributes and level structure of cells from a + koutline. + + With this command, your original file remains intact. + + 3b17b. Star Outline Files: Star outlines are standard Emacs outlines + where each entry begins with one or more asterisk characters. + Use {M-x kimport:star-outline RET} and you will be prompted + for the star outline buffer or file to import and the new + koutline buffer or file to create. + + 3b17c. Augment Files Numbered on the Right-Side: (Skip this if you are + unfamiliar with this sort of file). Files exported from the + Augment system as text often have alphanumeric statement + identifiers on the right side. + + Use {M-x kimport:aug-post-outline RET} and you will be prompted + for the augment buffer or file to import and the koutline to + create. + + 3b18. File Exporting: The Koutliner can produce a nicely indented HTML + version of an outline with hyperlinks and hyperlink anchors + intact. Use {M-x kexport:html RET} to export a koutline file or + existing buffer. + + 3b19. View Specification: Flexible views of outlines may be specified + with succinct single character codes. + + 3b19a. The current view spec is shown in the modeline after the buffer + name, delimited by <|>. + + 3b19b. The current view spec is saved whenever the outline is saved. + The next time the outline is read in, this will be the initial + view. The standard initial viewspec is <|ben>. + + 3b19c. {C-c C-v} prompts for a view spec string in which the following + codes are valid. Any invalid characters in a view spec are + ignored. + + 3b19c1. a: Show all cell levels and all lines in cells. + + 3b19c2. b: Turn on blank lines between cells. Without this code, + blank lines will be turned off. You can also use the {C-c + b} key binding to toggle line numbers on and off + independent of any other view settings. + + 3b19c3. cN: Hide any lines greater than N in each cell. 0 means + don't cutoff any lines. + + 3b19c4. e: Show ellipses when some content is hidden (This is + always on in modern versions of Emacs; it cannot be + turned off). + + 3b19c5. lN: Hide cells at levels deeper than N. 0 means don't hide + any cells. + + 3b19c6. n: Turn on the default label type. + n0: Display idstamps. + n1: Display alpha labels. + n.: Display legal labels. + + 3b19d. Press the Action Key on this view spec of <|c2l1> to turn off + blank lines, to clip each cell after its second line, and to + hide all cells below level one. Use {C-u C-c C-a} to restore a + view of all cells. + + 3c. Klinks: Hyperlinks may be embedded in cells and may refer to other + cells. Explicit Hyperbole buttons may be created as usual via + mouse drags, see "(hyperbole)By Dragging". A klink is a special + implicit link button that jumps to a specific outline cell. + + 3c1. Here are three klink examples: + + 3c1a. <#3b=08> or <@ 3b=08> jumps to the cell within this outline + which has permanent id `08' and relative id `3b'. <#08> does + the same thing, as does <#3b>, though this latter form will + not maintain the link properly if the cell is moved elsewhere + within the outline. + + 3c1b. or displays + the named file, starting at the unimplemented features section + whose permanent identifer is 012, with the view specification + of: blank lines turned off, cutoff after one line per cell, and + show ellipses for cells or trees which are clipped. + + 3c1c. <|ben> is a klink consisting of just a view specification. + When activated, it sets the view in the current outline to + display blank lines, ellipses following collapsed lines and + standard alphanumeric numbering. + + 3c2. There are a number of easy ways to insert klinks into koutlines. + If you have mouse support under Hyperbole, simply click the Action + Key within the indentation to the left of a cell text. If you + then double click on some cell, a link to that cell will be + inserted where you started. From a keyboard, use {C-c l} when in + a koutline or {C-h h k l} when not in a koutline to insert a + klink. + + 3c3. If you prefer the standard copy and yank model that Emacs + provides, place point within a klink when there is no active + region and use {M-w} to copy the klink. Then {C-y} will yank it + into any buffer you desire. + + 3c4. To instead copy a reference to the current Koutline cell, use + {M-w} outside of a klink when no region is active. + + 3c5. {C-x r s} prompts for an Emacs register and saves either the + current klink or the current cell reference to the register. {C-x + r i} with the same register then inserts the Koutline reference at + point. + + 3d. Org table editing is supported. + + 3d1. You must use the first line of the cell to label your table + as tables require only blanks to the left of each row. + + 3d2. Here are two table examples: + + |----------------------------+---------------------------| + | Promotion Inside Org Table | Demotion Inside Org Table | + |----------------------------+---------------------------| + | {M-0 M-TAB} | {M-0 TAB} | + | {C-c C-,} | {C-c C-.} | + | {C-c C-<} | {C-c C->} | + |----------------------------+---------------------------| + + |-----------------------------+----------------------------| + | Promotion Outside Org Table | Demotion Outside Org Table | + |-----------------------------+----------------------------| + | {M-TAB} or {Shift-TAB} | {TAB} | + | {M-} | {M-} | + | {C-c C-,} | {C-c C-.} | + | {C-c C-<} | {C-c C->} | + |-----------------------------+----------------------------| + + To toggle table editing mode on or off, press the Action + Key on any of the table | symbols and then edit as you + would any Org table. Note how the above tables show how + TAB and Shift-TAB behave differently in and outside of + tables; use M-TAB rather than Shift-TAB for tree promotion + consistency anywhere. See "(Org)Tables" for help on utilizing + tables. + + 3e. The Koutliner code runs on any system that supports Emacs, + whether under a window system or from a dumb terminal display. + + 4. Major features left to be implemented: + + 4a. Branch handling commands (all cells at same level). + + 4b. Copying a single cell without its subtree. + + 4c. Replacing one cell or one tree with another. + + 4d. Transposing two trees, rather than two cells. + + 4e. A small amount of work remains to enable setting different per + level fonts and colors, so that outline levels are visually easy to + distinguish. + + 4f. Flexible view handling has been only partially implemented.  "ben" ;; kvspec:current -150 ;; id-counter +69 ;; id-counter alpha ;; label-type -3 ;; label-min-width +4 ;; label-min-width ". " ;; label-separator 3 ;; level-indent  ;; depth-first kcell attributes [[0 - (idstamp 0 creator "rsw@gnu.org" create-time "20220117:22:23:52" id-counter 150 file "/Users/bk/Dropbox/emacs/hyperbole/kotl/EXAMPLE.kotl")] - [20 - (creator "rsw@gnu.org" create-time "19940104:17:38:28" no-fill t)] + (creator "rsw@gnu.org" create-time "20231105:21:29:07" id-counter 69)] [2 - (creator "rsw@gnu.org" create-time "19940104:17:38:28" no-fill t)] + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [3 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [4 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [5 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [6 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [7 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [8 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [9 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [10 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [11 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [12 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [13 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [14 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [15 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [16 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [17 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [18 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [19 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [20 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [21 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [22 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [23 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [24 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [25 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [26 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [27 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [28 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [29 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [30 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [31 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [32 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [33 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] [34 - (creator "rsw@gnu.org" create-time "19940610:16:43:55")] - [86 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [87 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [88 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [89 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [90 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [91 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [92 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [93 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [94 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [95 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [96 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [97 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [98 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [99 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [100 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [101 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [102 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [103 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [104 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [105 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [106 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [107 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [108 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [109 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [110 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [111 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [112 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [113 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [114 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [115 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [116 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [117 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [118 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [119 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [120 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [121 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [122 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [123 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [124 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [125 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [126 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [127 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [128 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [129 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [130 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [131 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [132 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [133 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [134 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [135 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [136 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [137 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [138 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [139 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [140 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [141 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [142 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [143 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [144 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [145 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [146 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [147 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [148 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [149 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - [150 - (creator "rsw@gnu.org" create-time "20231030:06:08:35")] - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [35 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [36 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [37 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [38 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [39 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [40 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [41 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [42 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [43 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [44 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [45 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [46 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [47 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [48 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [49 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [50 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [51 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [52 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [53 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [54 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [55 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [56 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [57 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [58 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [59 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [60 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [61 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [62 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [63 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [64 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [65 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [66 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [67 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [68 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + [69 + (creator "rsw@gnu.org" create-time "20231105:21:29:07")] + nil] diff --git a/kotl/kexport.el b/kotl/kexport.el index e24db29d..9991d999 100644 --- a/kotl/kexport.el +++ b/kotl/kexport.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 26-Feb-98 -;; Last-Mod: 4-Oct-23 at 19:23:08 by Mats Lidell +;; Last-Mod: 5-Nov-23 at 11:45:00 by Bob Weiner ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; @@ -376,7 +376,9 @@ used. Also converts Urls and Klinks into Html hyperlinks." (interactive "P") (let ((export-from buffer-file-name) (output-to (concat (file-name-sans-extension buffer-file-name) ".html"))) - (kexport:html export-from output-to soft-newlines-flag) + (if (and buffer-file-name (string-match "\\.kotl?\\'" buffer-file-name)) + (kexport:html export-from output-to soft-newlines-flag) + (error "(kexport:koutline): current buffer must be a Koutline .kotl file")) output-to)) ;;;###autoload diff --git a/man/hyperbole.html b/man/hyperbole.html index ed90f14b..e8bb8c5d 100644 --- a/man/hyperbole.html +++ b/man/hyperbole.html @@ -4,7 +4,7 @@