More Python / pip / venv / wheel help.
More MySQL / MariaDB help.
Update comment, following up to r6667.
Include "Reply-to" header when forwarding an email message. See also follow-up commit r6668, which updates the comment.
Is it any surprise that `kf-git-help' is the longest of the helps? No. No, it is not.
This one weird trick.
Give beautiful example in doc string of `kf-fix-previous-transposition'.
More LibreOffice help.
Always include the "Message-ID" header when forwarding an email.
New function `kf-✗', with aliases `kf-x-mark', `kf-xmark, and `kf-ballot-x'.
Add `kf-github-search'.
Bind C-c C-a to a useful within-header movement in Message Mode. This meant finally removing my 30-some-year-old binding to Vic Zandy's `arbysubj' library, the mere thought of which fills me with poignant nostalgia. Vic, wherever you are, I hope you're doing well! Also, add a comment about how all my custom Message Mode bindings should be done with more care not to override something I might like. But I'll look into that later; right now, I needed to actually use new function `kf-message-beginning-of-this-header-value', so I bound it.
Bind `kf-ots-jitsi-url'.
More Gnus learnings.
These two changes are entirely coincidental. Yes. No connection at all.
Smile better.
Start to learn about thread-killing in Gnus.
This is a part of Python that I should just sit down and deal with.
Comment out r6644 and r6645 changes for the time being. (I got "Symbol's value as variable is void: mm-inline-media-tests" in the "*Warnings*" buffer at startup just now.)
Follow up to r6644 with More Stuff.
More research about Gnus and attachment MIME types.
Start trying to solve the problem of forced inline viewing of attachments.
Bring `kf-righteous-reply-to-list' up to date.
Add new function `kf-🦑' and its alias `kf-squid'.
Add some more Impress-specific help to `kf-libreoffice-help'.
In `kf-firefox-help' say how to view User-Agent string.
Add hereford.
(kf-🦠, kf-microbe): New function, new alias.
Put some non-Org files into `kf-quick-commit-mode' too.
Make it much easier to work between two buffers. Define `kf-switch-to-other-buffer' and bind it to F11 and F12 (two easy-to-reach keys that I wasn't generally using for anything else). (Also, end the `kf-switch-to-buffer' project begun in r6340, since it has apparently gone nowhere in a year and a half.)
Restrict new (r6609) keybinding to exactly the buffers we want. (kf-quick-commit-svn): Replaces `kf-svn-commit-this-buffer'. (kf-quick-commit-mode, kf-quick-commit-map): New minor mode and keymap. (kf-fully-initialize): Put selected buffers into the new minor mode.
Improve doc string of `kf-fix-previous-transposition'.
Update PDF help, and adjust standard HTML page template.
Build oref cache for my entire home directory, not just OTS dir.
Standard updates for a new box.
Start solving the "posts from myself don't show up in Gnus" problem. The answer will have something to do with `nnmail-treat-duplicates'. See also private:11675.
Super-revert r6612, as `ots-dir' no longer ends with a slash. This adjusts for commit 71a603eebfa in the 'ots-tools' repository.
Account for `ots-dir' ending with a slash. Probably it shouldn't end with a slash, but that would need to be fixed in ots.el, and I haven't done that yet. If I ever do, this change will be reverted and other, opposite adjustments made.
Rebuild oref cache in `kf-fully-initialize'.
Add `kf-svn-commit-this-buffer' and enable quick commits of some buffers.
Minor documentation improvement.
Update documentation for `kf-finish-log-message' (c.f. r6606).
Replace `kf-end-buffer-here-and-save' with `kf-finish-log-message'. See also follow-up commit r6607.
Replace `kf-end-buffer-here' with `kf-end-buffer-here-and-save'.
Add new function `kf-end-buffer-here' and bind it.
Fix a longstanding off-by-one error in `kf-count-words-region'. Apparently I fixed a *different* off-by-one error almost twenty years ago in r2511. But the bug fixed here has been present even longer -- since at least the initial import in 1997. So it's nice to know I'm slowly learning how to program! I guess. Sheesh. I discovered this bug thanks to r6602, by the way.
Build `kf-thingatpt-realistic-filename-chars' correctly. Despite its doc string, `string-replace' doesn't modify the string in place, but rather returns a modified copy. Adjust code accordingly.
`kf-shell': Note, but do not fix, a timing issue with mprop buffer.
* `kf-shell': In mprop buffer, don't insert mailaprop cmd if already running.
Add "t" to `dired-listing-switches'.
Improve line-flushing behavior for shell buffer output. Before this change, if you were on (say) the first "v" in the first line of shell buffer output like this... ./logv.out:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.out:Some other thing ./logv.out:Some other thing ./logv.out:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.out:Add initial setup of keycloak ./logv.out:Added A record for keycloak: sso.librehq.com ... then running `kf-flush-lines' would eliminate the first three lines but stop at the first "Some other thing" line. This was because the thingatpt logic that defines the filename didn't know about grep output -- it treated ":" like a normal filename character. But realistically, I almost never have colons in my filenames, whereas colons appear all the time in grep output, which is by far the most common use case for `kf-flush-lines'. So this change renames `kf-thingatpt-filename-nondirectory' to `kf-thingatpt-realistic-filename', and the latter no longer includes colon as a filename character (some gymnastics were needed to accomplish this while retaining `thing-at-point-file-name-chars' as the point of departure). Now, this fix would, by itself, cause a new bug, which is that the filename would now be just a prefix. For example, in this output, all of the lines would get deleted, including the ones with "FISH": ./logv.out:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.outFISH:Update initial setup of Keycloak ./logv.out:Some other thing ./logv.outFISH:Some other thing ./logv.out:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.outFISH:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.out:Update initial setup of Keycloak ./logv.out:Add initial setup of keycloak ./logv.out:Added A record for keycloak: sso.librehq.com So this commit includes further changes to ensure that the filename regexp is now properly closed in the case of grep output.
New help text and displayer: `kf-rsync-help'.
Make `kf-shell' start shell buffers in the right directory.
Add `kf-strings-from-alphabet' and `kf-strings-from-alphabet-internal'. This started out as helper code for some autofill improvement in Mailaprop (https://code.librehq.com/kfogel/mailaprop/), but it turned out to be unneeded there. It seems of general enough utility to keep, though, and I don't want to have to write it again, so here it is.
Have `kf-gnus-summary-next-page' stop at the end of the article. I hadn't noticed anything wrong in the behavior I was getting, but I noticed that `gnus-summary-next-page' takes this extra parameter, that seems to cause the behavior I would want, so I'll start passing the parameter unconditionally. If things go wrong, I can always revert.
Revert r6321: Stop setting `gnus-use-full-window' to nil.
Improve documentation of `kf-backup-enable-predicate'.
Suppress certain unneeded backup files.
Follow up to r6580 with improved "mprop" buffer behavior in `kf-shell'.
In `kf-shell', set up "mprop" buffer with the usual mailaprop command.
Set `mailaprop-show-scores' to `t'.
Have `kf-shell' prompt for a shell buffer name when given prefix arg.
Fix typo in doc string, following up to r6576.
Rewrite `kf-shell' to be shorter, simpler, and better in every way. (Except for the doc string typo subsequently fixed in r6577.)
Use `kf-mail-signoffs-re' (see private:r11457) in `kf-message-flowify'.
Add a comment explaining r6573 better.
Allow for some exceptions when loading org files in `kf-fully-initialize'. See also follow-up commit r6574.
Update doc string of `kf-shell', as should have done in r6571. This change gave me a perfect opportunity to introduce the dedicated listing comma (顿号) into the English language, and I have seized that opportunity. Style guide editors everywhere, please take note.
Have `kf-shell' create a third buffer "z" for long-running processes. See also follow-up commit r6572, which updates the doc string.
Replace obsolete `interactive-p' with `called-interactively-p'.
(kf-μ, kf-micro): New function, new alias.
TIL that Firefox is even better than I had thought.
(kf-percent, kf-p): Give a better message when invoked interactively.
More git help.
Interactively, `kf-percent' / `kf-p' shows percentage of buffer before point.
Handle timings too in `kf-ratio'.
Free up C-c q by overloading `kf-fill-paragraph'. Several things happen in this commit: 1) All the filling-related functions now live together. 2) `kf-fill-paragraph' restricts itself to operating on the region if there is an active region. 3) This means that `kf-fill-paragraph-isolated' need no longer be invoked on its own, as `kf-fill-paragraph' will invoke it as needed, so we can unbind C-c q.
List `kf-browse-markdown' as frequently used, and point to OTS elisp too.
Add expected alias.
More help in `kf-google-spreadsheets-help'.
Implement smart column-preservation in `kf-flush-lines'.
Rename `kf-insert-copyright-symbol' to `kf-©' (`kf-copyright') and move it.
Wording tweak, following up to r6553.
Bring the list of most commonly used custom functions up to date.
Handle most of the `kf-flush-lines' edge cases, following up to r6548.
Just use `string-replace', following up to r6550. ZOMG. Where to start? r6550 was doubly unnecessary. First of all, the reason r6548 had worked when I wrote it was that `replace-string' was coming from my own .emacs. Apparently, I added it in r3804 (in August of 2012) because at that time, Emacs didn't have `replace-string'. However, since then, Emacs acquired `replace-string' somewhere along the way. I can't tell when, but things like commit 7ea8834e0885 (July 2005) and commit 76b0b55fd66b (March 2007) imply that it is known but not relied on (as they check for it with `fboundp' -- though then again, there's commit 4a732ae9652df (March 2006), which is *between* those other two commits and yet seems to assume `replace-in-string' is available). Anyway, finally in commit caf64ae08bff (15 September 2020) Lars Ingebrigtsen adds it officially (meanwhile, all along, there were package-specific implementations such as `mailcap-replace-in-string', `smime-replace-in-string', `dired-replace-in-string', `gnus-', `mm-', even `prolog-replace-in-string', and probably others I haven't found) and then Emacs has it until commit baf331e40c (27 September 2020) when Lars renames it to `string-replace'. Thus there was a period of about twelve days when my .emacs shadowed the name, and then after that I was just using an obsolete (and inefficient) version of something Emacs now offers natively but under another name: `string-replace'. So, clearly, I should just use that.
Use `replace-regexp-in-string' instead of `replace-in-string' (after r6548). Although `replace-in-string' was defined in my Emacs when I wrote and tested the r6548 changes, it apparently wasn't coming from stock Emacs, and I don't know which package defines it. I'll just switch to `replace-regexp-in-string' and not have to worry about it anymore. But see follow-up commit r6551, which... I can't even. Just see it.
Improve comment, following up to r6548.
Add even more convenience to `kf-flush-lines'. Easily filter on matching path compontents, by using the new symbol `kf-thingatpt-filename-nondirectory' with `thing-at-point'. See followup commits r6548, r6550, r6551, and r6552.
Preserve tense consistency.
`kf-print-region': Stop printing name at top of each sheet. Replace "Printed by Karl Fogel" with "Printed by a2ps" as the top right header of each sheet. I'd rather get rid of that header entirely (while keeping the headers of the virtual pages), but apparently that requires a Ph.D. in a2ps and I haven't even passed the qualifying exams yet, so I did this cheap workaround instead.
(kf-dvořák, kf-dvorak): New function, new alias.
Fix a typo in a comment
Make a note about Gnus `deuglify', following up to r6540.
Make email messages look better in ${MAJOR_MAIL_SERVICES}. Update `kf-message-mode-hook' and `kf-message-flowify' to arrange a `fill-column' of 65 and to explain why, respectively.
Expand the sign-off regexp in `kf-message-flowify'.
Still more video-editing help.
Expand help on video editing.
More openshot / mediainfo / video editing help.
More help.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.