OLD-NEWS for ttn-pers-elisp (see file NEWS for recent changes) - 1.56 | 2006-04-22 - Bugfix: `M-x dict' no longer signals error on unmet heuristics Basically, the screenscraping is more slackful now. Of course, that we do screenscraping in the first place is suboptimal... - Dropped library: hideshow-state.el This library provides a method for saving and restoring the positions of the hideshow overlays in a separate file. We drop it to encourage development of more general methods. - Variable `custom-file' no longer set Previously, customization facilities were used only to set a handful of face attributes -- these are now done "manually". Along w/ this change, the distribution no longer includes customized-state.el, and that file is deleted from the install tree (in lisp/core/) if found. - `M-x fetch-mail' handles ssh error If ssh should return non-zero, this now displays "PROBLEM (try again later)". Previously, it would write a bogus mbox file w/ the ssh error message (if any) and (sometimes) hang mysteriously. - Changes to gnugo.el - Bugfix: Handle SGF[4] "empty" play values Basically, SGF[4] allows "", as well as the traditional (SGF[3]) "tt", to mean PASS, so now gnugo.el does, too. - New command: gnugo-toggle-grid This command, bound to `g' for GNUGO Board mode, toggles visibility of the surrounding grid (A B C ... 1 2 3 ...). - New user vars: gnugo-X-face, gnugo-O-face, gnugo-grid-face You can use these to specify faces for X (black), O (white), and the grid, respectively. Note: Only `gnugo-grid-face' is relevant when using images to display the board. - Default `grep-find-command' avoids looking in RCS and CVS subdirs When "grep" is loaded, `grep-find-command' is now set to a value that prunes RCS and CVS subdirs from the find(1). - New keybinding: `C-c I' runs the command Info-on-current-buffer This is useful when browsing tarballs or zipfiles, where there is no separate file to specify to `C-u C-h i'. - New variable: my-prog-env-makefilish-major-modes This specifies to `my-prog-env' which major modes should be treated like Makefile mode. Specifically, non-nil value enables `indent-tabs-mode', and inhibits enabling of `hs-minor-mode'. - Imported mailcrypt upgraded (version 3.5.8ttn1) - New library: dired-especially.el - 1.55 | 2006-01-20 - Bugfix: Quoted-printable decoding no longer clobbers headers delim In a mail message file, the first instance of two consecutive newlines serves to separate the headers from the body. The RFC2047 quoted-printable decoding of the headers introduced in release 1.54 (2006-01-16) had a bug whereby this delim was also decoded, often becoming clobbered in the process. Now, decoding excludes the delimiter. - Var `*ttn-load-status*' no longer set This used to be set by the function `setup-ttn-pers-elisp' to a list whose car was the version number (string) of the ttn-pers-elisp release. Now, that value is put on the symbol `setup-ttn-pers-elisp' under the property `version'. - Dropped library: emacs-vers.el - Dropped library: turn-on-gnuserv.el I no longer use (or plan to use) XEmacs. That experiment in unorthodoxy was fun for a bit, but tiresome in the end. For now, only hideshow.el maintains some XEmacs compatibility; most everything else has been decrufted. - Dropped library: turn-on-hilit19.el - Dropped file: bookmarks.bmk This file was out of date. Along with this change, the variable `bookmark-default-file' is no longer set. - Changes to set-theme.el - New theme: fuori-fuso - Modeline background can now be specified If unspecified, the background for the `mode-line' face is set to the background of the `default' face. See var `themes'. - New library: cycle-font.el There is also the associated global keybinding `C-c +'. This was previously available, but now the command also displays the font name in the echo area, and accepts a prefix arg to mean display the would-be new font only w/o actually changing to it. - 1.54 | 2006-01-16 - Env var `EMACS' honored by configure script and Makefile Previously, the configure script would find and use the first "emacs" on PATH, and Makefile would use that value in the definition of the `ebatch' variable. Now, env var `EMACS' is consulted first (it should name the executable to use). As a special case, if its value is "t" (which is normal for child processes of Emacs), then it is ignored. - Bugfix: `line-move-invisible-p' veneration checks for Emacs 22 - Changes to buffer-thumbnail.el - Bugfix: Use default foreground when face's foreground is unspecified - `buffer-thumbnail-update' avoids recompute if buffer unmodified - Default `buffer-thumbnail-method-name': text-roughly-square - Undo information no longer kept in the fulmination buffer - New library: message-face-name-under-point-mode.el - In Diff mode, `M-z' applies the hunk and removes it as well That is, the hunk is removed from the current (Diff mode) buffer. This uses `diff-apply-hunk' plus `delete-region'. - When reading a filename, `M-o' leaves trailing slash - Message headers (RMAIL) now automatically quoted-printable decoded - `C-h C-g' consults Guile info page unless in comint buffer In a comint buffer (w/ a Guile subprocess), `C-h C-g' runs the same command it did before: query for STRING and send as input to the child process the form: `(help STRING)'. - When checking in Texinfo, the pre-checkin diff looks for node names This basically means that "@node" at the beginning of the line is specified to the `diff -F' command that underlies `vc-diff'. - `M-x zone' now does its work in a `save-window-excursion' block - 1.53 | 2005-09-29 - When reading a filename, `M-o' "goes up a directory level" - Local variables now ignored for files processed by `query-release' - New library: buffer-thumbnail.el - `diff-last-release' now leaves buffer read-only - Changes to xpm-fulmnation.el - `xpmfulm-point' now silently ignores ouf-of-range coordinates - `xpmfulm-buffer' now takes optional arg BUFFER to init contents - Loading "scheme" loads ~/.emacs.d/ttn/scheme-indent-function-1.el - 1.52 | 2005-08-15 - Bugfix: `buffer-substitute-file-env-vars' only substitutes dirs - Imported mailcrypt.el no longer autoloads "itimer" This is an XEmacs-specific package (I don't use XEmacs). The autoloads were causing a problem w/ vhdl-mode.el loading. - Changes to hideshow.el - New variable: hs-allow-nesting - Dropped command: hs-EXPERIMENTAL-show-block - Hideshow minor mode no longer enabled for GNUmakefiles - File's `rmanglement' conditionally cleared on save (rmangle.el) - New library: fcookie.el - New library: invisible-cursor-mode.el - 1.51 | 2005-04-06 - Dropped command: psql - Changes to gnugo.el - New mode-line format spec `~m' displays move number - SGF mini-library (good enough for simple read/write) included - Input now results in full collection (one or more game trees) - Output passes sgfc (SGF conformance program) checks - New command: gnugo-describe-internal-properties - For (some measure of) safety, down-mouse-2 is now bound to "move" - Move history now shown as POSITION:PLAYER (instead of PLAYER:POSITION) - Backup files inhibited in ChangeLog mode - Buffer used by `M-x watch' no longer keeps undo info - In Compilation mode, `:' now additionally inserts text in buffer - Header line zonked in Electric Buffer Menu mode - New editing major mode: ricette-mode.el - New command: gxrepl - 1.50 | 2004-12-29 - Bugfix for hideshow.el internal comment hiding Non-top-level comment blocks for modes where comments are line-oriented (start w/ a certain character -- such as ";" for Lisp and Scheme -- and go to end of line) used to not hide correctly. For example, if point is on FOO in the following: (defun oop-ack () ;; first line ;; second FOO line ;; third line (message "oop ack!")) `hs-hide-block' would hide "third line", but not "second line". Now, both lines are properly hidden (only "first line" remains). - Variable `hs-set-up-overlay' (hideshow.el) no longer buffer-local You can use `make-local-variable' in a major mode hook (for example) to get the old behavior. Incidentally, this feature (ability to set up the overlay) is now also installed in the hideshow.el bundled w/ GNU Emacs (from CVS). - Changes to zone.el - Bugfix: Cursor type restored on error condition followed by quitting Now all three exits -- error, quit and normal -- use the same method for restoring the original (before zoning) display. - Paragraphs spaz (zone-pgm-paragraph-spaz) also in texinfo mode - `M-x zone' no longer schedules new zoning This is to sync w/ the zone.el in GNU Emacs. You can anyway explicitly schedule zoning w/ `M-x zone-when-idle'. - New zone program: zone-pgm-rat-race - New zone program: zone-pgm-random-life See also associated var `zone-pgm-random-life-wait'. - Cursor parked during `sit-for' Previously, the cursor jumped all over the place, which was very annoying on displays incapable of hiding it. - New support for characters whose width is greater than one - New keybinding for inferior scheme started w/ `M-x run-guile': C-c f This reads a filename and inserts it into the buffer prefixed with hash and `C-f' (aka ASCII 006 aka #\ack). A read-hash extension in package ttn-pers-scheme expands this. Of course, it would be easier for Emacs to expand the filename, but then making things easier is not as fun. - New command for modes using comint: M-m This command does `comint-send-input' if the previous command was either `comint-previous-input', `comint-next-input', or `move-end-of-line'. If not, call the command in `global-map' bound to `M-m'. In this way, there is less keyboard motion. - Theme `vt220' (for `M-x set-theme') uses goldenrod Pretty close to classic "amber" on an X display limited to 256 colors. Next step is to find the awesome vt220 font... - Changes to comma-v.el - Bugfix: Parsing no longer assumes linear revision layout - Bugfix: Parsing handles headers: branch, strict, comment, expand - Bugfix: Forward-chronological edits now walk branches correctly - Bugfix: Command `vc-annotate-revision-at-line' now supported These were done consulting rcsfile(5) in preparation for inclusion in GNU Emacs. As an aside, the code was seriously bummed and heavily commented in the process -- a new but not unpleasant experience for this lazy programmer... - Annotation format change: "DATE REVISION AUTHOR: " To reduce screen usage, REVISION and AUTHOR are considered together as a unit. Furthermore, AUTHOR is omitted entirely if all its values are the user login name (a common case for files under RCS). - In VC Annotate mode, `a' runs command `vc-annotate-display-autoscale' - Portability change: gnugo.el no longer uses `field' text property This special text property was used for `field-beginning' and `field-end' support. However, that is not yet widely available. The result of this change should be increased portability (for example, to XEmacs or older Emacs). - Vars `comment-style' and `comment-add' set in `my-prog-env' The latter is set only for lispish modes. - 1.49 | 2004-11-15 - Dropped command: run-guile-tcltk - Dropped command: run-guile-gtk - Dropped command: run-guile-pgsql - Dropped command: run-guile-pg - Dropped command: run-guile-oops - Command `run-guile' now supports "flavors" The dropped commands can be emulated w/ a SMOP in the ~/.guile initialization file. See `run-guile' docstring for details. - Dropped import: worklog.el - Dropped file: editing/worklog-timesheet.el Much more recent versions of the former can be found on the Net. The latter was experimental. - Command `display-previous-revision' takes CHECKOUT-SWITCHES The local var `vc-checkout-switches' is let-bound to this arg, a string, so you can specify `-kv' and the like. - Imported mic-paren.el upgraded (version 3.7) - Changes to gnugo.el - Bugfix: Resignation handled Previously, if you resigned, the board was deleted and if the subprocess GNU Go resigned, the game state would not be updated (and in some cases Emacs would hang until interrupted by C-g). Now, if either you or GNU Go should resign, the game is over but the board is not deleted. - Bugfix: Board updated after GTP command `loadsgf' - Bugfix: Loading gnugo.el[c] more than once DTRT - Portability tweaks Implementations of `delete-dups' and `time-subtract' are provided if they don't exist in the running Emacs. Also, use of `(space :width 0)' as the value of a `display' text property has been reverted to `invisible'. Also, `split-string' is called w/ two args, not three. The result is gnugo.el now runs on Emacs 21.3, and (somewhat, still very brokenly) on Emacs 20.7. - New command: `l' loads an SGF file - New command: `U' does "magic undo" See docstring for `gnugo-board-mode' and `gnugo-magic-undo' for more info. Additionally, the GTP commands `undo' and `gg-undo' are mapped onto magic undo, w/ default arg 1. - New command: `u' does `gnugo-undo-two-moves' - New command: gnugo-undo-one-move - Help facility annotates all GTP commands It used to be that `: help NAME' would insert gnugo.el intervention information in the info buffer for NAME, only. Now, gnugo.el annotates all GTP commands that it knows about. - Bugfix: ttn-gnugo-v-gnugo-schedule-next uses `run-at-time' For some strange reason, `run-with-idle-timer' worked w/o problems for a series of CVS Emacs checkouts that only ended relatively recently (w/in the last month or so). Previous testing w/ `run-at-time' did NOT work. - Bugfix: comma-v-annotate-time DTRT at eob A side effect is that `vc-annotate-display-autoscale' now DTRT. - Calling convention extension: rest arg `more' Funcs `define-keys', `local-set-keys' and `global-set-keys' now all take a rest-arg `more' that supports a more concise calling convention, while remaining backward compatible w/ the verbose (previous) calling convention. For example, these two calls are equivalent: (local-set-keys '("n" next-foo "p" prev-foo)) (local-set-keys "n" 'next-foo "p" 'prev-foo) - Command `set-rmangle-status' no longer takes arg The cache-coherency algorithms used to be influenced by the optional arg `force'. Now, they are completely internalized. - New command: random-life - Installation change: retired files deleted A list of retired files is now maintained so that they can be deleted as part of "make install". - 1.48 | 2004-10-11 - Style 1 for `insert-time-stamp' is "%Y-%m-%d %T" - Imported mic-paren.el upgraded (version 3.3) - Changes to comma-v.el - Bugfix: Header `comment' handled correctly The syntax for `comment' is slightly irregular compared to that of the other headers, and was thus previously reverse-engineered incorrectly (cough cough, bad suss, dude %-). Here is a brief table showing inputs and how they were/are handled: input prior behavior now comment @# @; "@# @" "# " comment @; @; downstream misparse "; " - Bugfix: Year values < 100 augmented by 1900 Actually this is probably still slightly wrong. No real-world ,v files prior to 1970-01-01 to test against -- yes, we can look at ci/co source but that's no fun... - New funcs comma-v-deeply-realize comma-v-annotate-command comma-v-annotate-current-time comma-v-annotate-time comma-v-annotate-extract-revision-at-line - New command: setup-anticipatory-vc-rcs-annotation This command makes `C-x v g' work for RCS files. After some experience in the field, the comma-v-annotate-* funcs will be added to GNU Emacs as vc-rcs-* funcs. Bang on them now or suffer the bugs later... - ChangeLog files no longer diff(1)ed on vc checkin - Dropped vars in rmangle.el The vars `directory-rmangle-status' and `file-rmangle-status' are no longer available; their values were redundant w/ that stored in `rmangle-status'. - Small changes to gnugo.el and gnugo-extra.el - 1.47 | 2004-09-07 - Bugfix: xpmfulm-point now calls `insert-char' w/ 2 args (!!) - Bugfix: xpm-fulmination.el provides `xpm-fulmination' It used to provide `xpmfulm' but that was confusing. - New library: rmangle.el This provides the customization variable `rmangle-cookie' and funcs `set-rmangle-status' and `describe-rmangle-status', for simple release manglement of trees of files under CVS control. Also, the `release' command has been moved into rmangle.el. - New library: comma-v.el This provides the funcs `comma-v-parse' and `comma-v-unparse'. We will get to `vc-rcs-annotate-command' one of these days... - Font lock support in gnugo.el This is a minimalistic adaptation of a patch Joe Corneli posted to gnu-emacs-sources a few months back. Notably, gnugo.el adds and/or defines no new faces, and only font locks the characters in the set `[XOxo]'. Perhaps this will expand in the future. It would have been nice to font lock the parens that highlight the last move as well, but at the moment how to mix overlays and font locking (in the presence of image display toggling) is a bit beyond this only-recently-left-fulltime-text-mode programmer -- clues welcome. - More stuff in gnugo-extra.el - Compilation of certain files Files listed in file-lists/worth-compiling are byte-compiled and installed. Source elisp is installed in any case. - Build process more friendly to VMS Specifically, the functions in do/*.el use more generalized directory/file path manipulation functions and less direct munging on "/" and likewise. - 1.46 | 2004-08-30 - New command: ppq (defun ppq (&optional kill) (interactive "P") (when kill (kill-sexp 1)) (save-excursion (insert "\n") (pp-eval-last-sexp t))) - Variable `diff-switches' no longer sets "-c" (context-diff format) Some version-control variables for showing file and/or version differences initialize their value based on this variable, but they often get confused. Easier to leave this one unspecified and introduce specialization at the leaves. - The comint buffer for `M-x psql' now starts w/ `truncate-lines' t - New keybindings - In the minibuffer `M-m' acts the same as `RET' This fits in w/ the global binding of `M-m' to `compile'. Thus, a double `M-m' for the Truly Lazy... Also works out nicely for M-x M-p ... M-m, and so forth. - In a manpage, `RET' runs the command `Man-follow-manual-reference' - Changes to gnugo.el - Bugfix: board size less than 11 handled correctly For the GTP command "showboard", some versions of GNU Go display the board flush left when the board size is less than 11 (i.e., for sizes 5, 7 and 9). To compensate, gnugo.el used to look at the board size, however, this method failed to handle other versions of GNU Go that display the board at a fixed offset from the margin, regardless of board size. Now gnugo.el looks at the displayed output directly, to accomodate either GNU Go behavior. - Bugfix: subprocess handling regularized The "gnugo" subprocess is now properly associated w/ the GNUGO Board buffer; killing the buffer now deletes the subprocess. Previously, the subprocess would be orphaned, leading to errors upon subsequent `M-x gnugo' invocations. Also, if the subprocess should die in the middle of a game, the mode line displays "no process". - Bugfix: Displaying w/ images better integrated Previous support for displaying the board using XPM images was incomplete, resulting in several bugs that have now been fixed: - a stone can be placed in the top row - commands `gnugo-worm-stones' and `gnugo-dragon-stones' work (however, the animation uses `gnugo-animation-string' only for its length, not its contents) - dead groups (at game end) are displayed w/ XPMs generated on the fly -- see `gnugo-showboard' source for rationalization - (performance) aside from dead groups XPM generation, display machinery aggressively avoids expensive recomputation On the down side, the display machinery now uses text properties and overlays (for both text and image display); these facilities are only available in newer versions of GNU Emacs. Also, there may be mouse-related bugs; the development computer does not have a mouse for testing (patches welcome). - Buffer name reflects game state The buffer (in GNUGO Board mode) is now renamed each time the state of the game changes to have the form "LAST-MOVE NEXT", where NEXT is either "(black to play)", "(white to play)", or "(game over)". This makes it easier to check if it is your turn to play, if the board buffer is not visible, in a list of buffer names (such as displayed by `list-buffers' or variant). - Hint in "Not your turn" error message If you mistakenly try to place a stone while it is not your turn, the error message now tells you what buffer name to wait for (thus also displaying the color you are playing as). - `q' no longer asks for confirmation when game is already over - New command: `=' displays board position under point (if valid) - New variable: gnugo-mode-line - `C-l' now refreshes the display even if the subprocess is busy - Display less cluttered The top and bottom letters, and left and right numbers, are now hidden. Information on captures is now available through `gnugo-mode-line'. Information on last move and who is currently to play is in the buffer name. At game end, key hints are no longer displayed (you can use `?' or equivalently `C-h m' to find out about GNUGO Board mode and its keybindings). Lastly, the board is centered in the window. Centering position is recomputed for each refresh, so window resizing is generally tracked within a move or two. (While it is your turn to play, you can also use `C-l' to refresh manually.) - New command: `h' displays move count and history in echo area - New variable: gnugo-board-mode-hook Here is an example usage: (add-hook 'gnugo-board-mode-hook 'gnugo-toggle-image-display) This example presumes you have successfully loaded gnugo-xpms.el or some other library w/ congruent interface. See lisp/diversions/gnugo-extra.el for usage examples. - New command: `s' saves move history as SGF file - New command: `F' displays final score plus other info - Multiple independent buffers/games now supported For the second and subsequent games, the buffer name includes and `M-x gnugo' additionally queries which game you wish to resume. A response of `n' no longer deletes the current game; instead, a new game is started. You can either use this resume feature of `M-x gnugo', or simply switch to the buffer of a game already in progress. For more sophisticated buffer management, two predicates are provided, each taking an optional argument, a buffer: gnugo-board-buffer-p gnugo-board-user-play-ok-p They return non-nil when the buffer is a GNUGO Board buffer, and furthermore, is not waiting for the subprocess to play, respectively. See lisp/diversions/gnugo-extra.el for usage example. `C-u M-x gnugo' (invocation w/ prefix arg) now starts a new game straight away, skipping the game-in-progress check and query. - New variable: gnugo-post-move-hook See lisp/diversions/gnugo-extra.el for usage examples. - New major mode: GNUGO Pattern Database mode This sounds more impressive than it really is. You can try it out by loading lisp/diversions/gnugo-db.el, visiting a GNUGO Pattern Database file (for example, patterns/conn.db in the GNU Go distribution), and typing `M-x gnugo-db-mode'. - Changes to hideshow.el - New variable: hs-set-up-overlay The oft-requested feature for end-of-line customization is now possible through this (more general) mechanism. Light testing in Emacs 21.3.50.46 shows that setting an overlay's `display' property to the empty string hides the rest of the buffer from view entirely. Wow! Since the function specified by `hs-set-up-overlay' is passed the overlay, itself, you can do other weird and funky things w/ it besides simply munging the appearance. You could save it, you could clone it, you could even relocate it, thus confounding hideshow for hours of fun... that's the danger and/or beauty w/ Emacs. One thing you cannot do is restrict distribution of this source code; that type of overlay operation is not supported. - New command: hs-EXPERIMENTAL-show-block As you may have guessed from the name, this is an experimental variant of `hs-show-block'. It differs from `hs-show-block' in that it only shows (unhides) a block if it finds the right kind of overlay at the end of the line where the command was invoked. This means that hidden sub-blocks occuring on subsequent lines remain hidden, whereas for `hs-show-block' all sub-blocks are shown indiscriminately. This empiricism is part of the process of mulling over what changes are required for two pending design upgrades: "proper" nesting support, and first-class comments support. It could be that these are independent or it could be that they benefit from similar infrastructure -- that's what we're trying to figure out before going in and breaking everything. Feedback welcome. There are many ways to try this command. Here is one way: (unless (fboundp 'hs-GOOD-OLD-show-block) (fset 'hs-GOOD-OLD-show-block 'hs-show-block)) (fset 'hs-show-block 'hs-EXPERIMENTAL-show-block) - New funcs: `circle-quadrant' and `circle-placed' See commentary in file lisp/diversions/artist-subpixel.el. - New library: xpmfulm The file lisp/editing/xpm-fulmination.el provides the funcs: (xpmfulm-buffer name width height colors) => buffer (xpmfulm-add-color buf color) (xpmfulm-point buf x y color) (xpmfulm-raster buf form edge &optional fill) (xpmfulm-as-xpm buf &rest props) => xpm image Here is an example (see `circle-placed' above): (defun ttn-test-1 (r &optional fill) (let ((buf (xpmfulm-buffer "example" 48 48 '((32 . "#000000") (42 . "#ffffff")))) (flip t)) (dolist (x (number-sequence 13.5 33.5 5)) (xpmfulm-raster buf (circle-placed r x x) 42 (and fill (setq flip (not flip))))) (insert-image (xpmfulm-as-xpm buf :ascent 'center)))) (defun ttn-test () (interactive) (dolist (r (number-sequence 0 11)) (ttn-test-1 r) (ttn-test-1 r t) (insert (format "%d\n" r)) (sit-for 1))) - New command: query-release - Commands updated: `scroll-left-20' and `scroll-right-20' These commands now handle automatic hscrolling support in newer versions of Emacs by temporarily disabling that feature. - Command generalized: source-wrap Along with this change, the following commands have been dropped (since `source-wrap' now examines the major mode for itself): source-wrap-c++-style source-wrap-elisp-style source-wrap-shell-style See also new variable `source-wrap-styles'. - New func: ttn-cvs-cancel-version For some reason Emacs says that it does not support `C-x v c' w/ files under CVS. Perhaps there are strange security issues lurking that the like-named func in ttn-cvs-cancel-version.el does not handle well, but it seems to work ok w/ light testing. Loading this file also sets the alias `vc-cvs-cancel-version'. - Command renamed: print-buffer-local-variables The new name is `describe-buffer-local-variables'. Commands with "print" in them are easy to confuse with the act of making (or preparing) hardcopy output. - New variable: fulminated-gnugo-xpm-styles - New function: fulminate-gnugo-xpms For example: (mapcar 'car fulminated-gnugo-xpm-styles) => (d-bump ttn) (length (setq gnugo-xpms (fulminate-gnugo-xpms 'd-bump))) => 46 - 1.45 | 2004-06-11 - VC "stay local" feature disabled "Stay local" is nice, but backup files are not so nice, especially since it seems CVS creates backup files anyway; Emacs should just use those instead of polluting cwd, IMHO. More importantly, it seems weird that "stay local" and "create backup files" are comingled in the first place. Hmmm. - Preferred mode-line style now works again for Emacs 20.7 - When composing mail, `truncate-lines' is automatically set - In Makefile mode, func names such as $(shell ...) are highlighted - Opposite paren offscreen no longer displays a message - Command `dired-diff' now advised For the case where the file in question is ".last-release" and the file to diff against is unspecified (user types RET at the prompt), `dired-diff' runs the advice `diff-last-release', which reads the symbolic tag from .last-release and runs the external program `diff-last-release', placing its output in a buffer named "*TAG*" (note extra asterisks) in Diff Mode. Emacs then switches to the new buffer. The external program `diff-last-release' must determine the version control system in use (typically RCS or CVS) and do the appropriate full-tree diff. - Bugfix: timezone for command `italy-time' no longer hardcoded More precisely, the timezone of the computer running Emacs is no longer hardcoded -- it's ok to hardcode the timezone for Italy since that changes (very) much less frequently. - Magic char for sbap closing now C-q That is, when square-braces-as-paren mode is enabled, `C-q' followed by right square brace closes all the parens from current scope stopping at top-level. The magic char used to be space, but that was annoying in practice. - New theme for M-x set-theme: vt220 This is not exactly like the beloved vt220 since colors other than "amber" and black are permitted, but it's close enough. (Before you know it some crazy nut will probably port Emacs 21 to VMS... ;-) - Variable `fetch-mail-check-ppp' semantics expanded This used to be interpreted as a simple boolean. Now, it can name an external program to use to check the ppp connection. For backwards compatibility, a value of t means use program "ppp-check". A value of nil means don't check, as before. - `M-x fetch-mail' now ignores POP specs in `rmail-primary-inbox-list' - Programming environment setup less surprising Part of `my-prog-env' includes a series of calls to hideshow functions which move point. These have now been wrapped w/ `save-excursion'. [Probably it's better to fix hideshow to do this (optionally), itself.] - Dropped import: 5x5.el - Dropped import: indirect-emacs-lisp-buffer.el - Dropped import: sure-tags.el - Dropped import: verilog-mode.el - Dropped: low-stress/zenirc-time-diff.el You can use `time-subtract' from time-date.el instead. - Installation removes `.../.emacs/giblet' Snapshots of ~/.emacs are not generally useful. "make install" now looks for and deletes: ${sitelisp}/ttn-pers-elisp/.emacs/giblet ${sitelisp}/ttn-pers-elisp/lisp/.emacs/giblet including the (horrendously named) `.emacs' subdirectory. - 1.44 | 2003-12-07 - New command: setup-browse-url This makes `browse-url' use w3m in rxvt. - New commands/keybindings for RMAIL summary mode [f10] rmail-summary-save-same-mbox (C-o RET) [f11] rmail-summary-save-same-babyl-nodelete (o RET C-p u C-n) [f12] rmail-summary-save-same-babyl (o RET) - Indentation updates for scheme-mode Forms that begin w/ these symbols are now indented like `let': pass-if pass-if-exception expect-fail expect-fail-exception with-test-prefix - Veneration now includes `vc-exec-after' - Env vars no longer set: l, ll, LL, c - Var set to nil: mode-line-in-non-selected-windows - New command: jamenv-buffer - Hook `find-file-hooks' no longer includes `maybe-eval-last-page' - `insert-zonkme' now scans for current ttn-pers-scheme version Previously, you had to specify which version to use for the zonkme. Now, `insert-zonkme' finds the file "ttn/VERSION" in guile's `%load-path' and offers its contents as the default in the minibuffer. - Installation bugfix: doing "make" multiple times is now handled - New ./configure option: --with-sitelisp=DIR Normally, ./configure finds the first non-version-specific "site-lisp" directory in `load-path' and arranges for "make install" to place the installed files there. This option specifies another directory to use. Note that DIR should *not* end with a slash. - Installation no longer signals error on "make check" Although this target is supported, currently it does nothing. - New command: toggle-compilation-parse-errors-function This toggles the value of `compilation-parse-errors-function' between its normal value and a nop-lambda. This is useful if you use M-x compile to execute commands outside the "compile and check for errors" context. - New command: watch This runs a command periodically (say "pstree" every 2 sec), and displays its output in a buffer. Any input causes the watching to stop (and the input is passed through to emacs). - 1.43 | 2003-09-08 - HTML suppressed in RMAIL The excellent rmime.el package is now configured like so: ;; Never show the ugliness that is HTML! YUK! PUKE! (defalias 'rmime-text/html 'rmime-*/*) (put 'rmime-text/html 'rmime-unwise t) - New commands: ch-cvs-state, release-cvs-file These are analogous to `ch-rcs-state' (change the "state" of a file generally) and `release-rcs-file' (change to the specific tag "Rel"), respectively, for CVS files. - New command: jamenv-from-file This calls `jamenv' on the specified file. See docstring. - if-window-system.el also loaded if `display-color-p' Previously, `window-system' nil inhibited loading of if-window-system.el (duh). However, Emacs 21 can support colors even on a tty, so we handle that case, too. - gnugo.el rewritten to use Go Text Protocol This is still largely experimental. The version distributed here corresponds to 1.26 in . (There is also an updated make-xpms-file.el in mokuxpms.tar.gz that fixes a small bug in how the generated file is loaded, in that directory.) - New command: wcat This simply calls "wget -O-" on the url at point. - New command: psql This simply calls "ttn-do psql", q.v., in a comint buffer, after querying for a database name to access. - New commands: insert-zonkme, scan-zonkme These are primarily useful for maintenance of Scheme programs that in turn maintain glug.org. A "zonkme" is a form that changes the `%load-path' like so: (set! %load-path (cons "/home/ttn/build/ps" %load-path)) `insert-zonkme' adds this as well as a distinctive comment recognized by `scan-zonkme' to decide (later) whether or not to remove the form. To see which programs are currently guilty of this heinous practice, see "load-path mungers" scripts at . - New command: gdb-guile-display-scm This finds the symbol at point and requests a guile running under gdb process to display its value. You can use var `gdb-guile-backend-method' to specify which kind of support to use: either common .gdbinit command "gp", or internal support. - C-x C-q jammed to `vc-toggle-read-only' Emacs 21 bound this to simply `toggle-read-only' in a (IMHO) misguided attempt to reduce confusion. Kill that noise. - Mailcrypt loaded by `C-x m' also It used to be that only RMAIL init would by side effect also set up mailcrypt, so `C-x m' would lose until RMAIL was loaded; now both initial command paths set up mailcrypt. - RMAIL expunges w/o confirmation Emacs 21 added variable `rmail-confirm-expunge' (default: t). We set to nil to get the old behavior (delete it, dammit). - Hideshow minor mode is now turned off when doing Ediff Ediff gets confused by the hidden blocks, so spare it. - Env var MANWIDTH automatically set on `M-x man' Manpages now fill more of the screen if the screen is more than 80 columns wide. This may be unacceptably slow on old machines. - Incremental search backspace now deletes only one char from searchtext Thanks go to whoever posted the code on gnu.emacs.help. - Mode line subjected to curmudgeonly manglings Emacs 21 changed the default `mode-line-format', so we take some pains to recreate the pleasant layout of years past. Version control info is still out of place, but that's fine for now. - Scheme mode used for .laml, .af, .twerp and .html-data files See for info on LAML. See for info on Autofrisk and TWERP files. See for info on HTML-DATA files. (Unsurprisingly, these file formats look like Scheme code.) - Changes to `dict' and `thesaurus' You can now specify the program (and its args) to use for formatting a web page to stdout given a URL, with the variable `dict-method'. The default value is: ("w3m" "-dump"). Also, these commands now trim left-side, right-side and bottom noise, in addition to top noise. - Dropped imports: crypt++.el, python-mode.el The latter went all this time w/o entry in THANKS, so a belated thanks goes out to Barry A. Warsaw and Tim Peters. - New support for VMS The DCL script VMSCONFIG.COM can be used to configure the package (for in-place use) on VMS systems. The ~/.emacs needs to load the SETUP-TTN-PERS-ELISP.EL manually, after which it is fine to call `setup-ttn-pers-elisp', q.v. - 1.42 | 2002-09-26 - New low-stress and diversions bits These were moved out of .emacs/giblet into their own files, some commands of which are now autoloaded: - sum-column.el - choose-restaurant.el - jamenv.el This was added: setup-zenirc.el - Minor enhancements - new theme for `set-theme': dream - `emacs-uptime' now shows the span before the start time - new `dired-wipe' types: "change log", "cvs base", "generated makefile" - Makefile change: "make snapshot" no longer supported - 1.41 | 2002-03-29 This release is mainly to (finally) introduce standard "./configure && make && make install" support. The first non-emacs-version-specific site-lisp directory in `load-path' (e.g., /usr/local/share/emacs/site-lisp) is used as "instdir" for "make install". You can override this with: make instdir=/some/other/place install There are no configuration options at this time ("prefix" and friends are ignored, too). Installation creates subdirectory $instdir/ttn-pers-elisp/ w/ elisp files, and also $instdir/setup-ttn-pers-elisp.el which provides bootstrap command `setup-ttn-pers-elisp'. Typical usage (in ~/.emacs) is: (require 'setup-ttn-pers-elisp) (setup-ttn-pers-elisp) This adds subdirs to `load-path' only and avoids further changes (such as enabling some autoloads via loading lisp/loaddefs.el, modifying keybindings, etc). You can activate these changes by passing args to `setup-ttn-pers-elisp', q.v. Note that ttn-pers-elisp can still be used in place (w/o installation) providing you do "./configure && make" first. - 1.40 | 2002-03-19 - New imported package: etach.el This is version 1.2.6, originally from directory: http://rulnick.com/etach/download/ The command `M-x attach' is now set to autoload etach.el. - In RMAIL `C-c C-w' on a MIME attachment now writes it to disk This is an extension of the rmime.el package which required redefining `rmime-interact' (changes posted to gnu-emacs-sources and emailed to rmime.el author). - Minor enhancements - `dict' output cleanup heuristics updated - `M-o' now also disregards separate frames w/ name "Calendar" - New command: `set-pointer-shape' (current favorite: 90) - `zone-pgm-drip' no longer gratuitously moves point to 1 in main loop - `xlsfonts' binds SPC and DEL to forward and backward page, resp. - bugfix: syntax error in `release' - release checklist file renamed to ".release" from ".release.el" - 1.39 | 2002-01-28 - Minor enhancements - New view mode keybindings: "{" backward-page-ignore-narrow "}" forward-page-ignore-narrow - New command: `italy-time' - `M-x phone' now uses "ttn-do" See http://www.glug.org/people/ttn/software/ttn-do/ for details. - zone.el now supports higher-ordered programs New func `zone-call' calls PROGRAM in a zoned way. If PROGRAM is a function, call it, interrupting after the amount of time in seconds specified by optional arg TIMEOUT, or `zone-timeout' if unspecified, q.v. PROGRAM can also be a list of elements, which are interpreted like so: If the element is a function or a list of a function and a number, apply `zone-call' recursively. zone.el appears in Emacs 21, as is synchronized periodically. - `C-h C-o' displays Guile Scheme commentary - `H-r' runs `rmail' and `H-m' runs `compose-mail' - `C-u C-c t' now inserts the date in format "YYYY-MM-DD" - New funcs: `zenirc-time-diff', `next-here-tag', `inline-timestamp' - square-braces-as-parens-mode turned on for elisp / lisp / scheme - New func: `infer/run-compile-command' - In programming modes, `H-!' runs `infer/run-compile-command' - Distribution includes .emacs snapshot: .emacs/giblet - 1.38 | 2001-10-05 - Hideshow var `hs-isearch-open' default value now `code' Hideshow will continue to support `block' as synonymous w/ `code' for a few releases, but that value is deprecated and such support will be removed in the future. See `hs-isearch-open' docstring for more info. - Minor enhancements - Imported crypt++.el upgraded (version 2.89) - Also ignore mail header `Delivery-date' (inserted by exim) - `hs-minor-mode-hook' has `:version' defcustom tag - Slight cleanup: scheme-mode font-locking for `define-module' - 1.37 | 2001-02-13 - Default keybindings in Hideshow minor mode now more conventional Actually, at the moment, the conventions are unclear (but are being discussed by Emacs maintainers), so we mimic Outline minor mode and use the `C-c @' prefix instead of simply `C-c'. See next NEWS item. - `my-prog-env' binds some keys to hideshow commands The default hideshow keybindings (see previous NEWS item) are uncomfortable, so `my-prog-env' binds them thusly: hs-hide-block C-c C-h hs-show-block C-c C-s hs-hide-all C-c C-M-h hs-show-all C-c C-M-s hs-hide-level C-c C-l hs-toggle-hiding C-c C-c These are basically the bindings from before. Whee! - Commands based on `run-like-scheme' now support guile `apropos' This includes, comprehensively: run-guile run-guile-tcltk run-guile-gtk run-guile-pgsql run-guile-pg run-guile-oops In the repl buffer, typing `C-h C-a' prompts you for a string that is composed into an `(apropos STRING)' form which is then inserted in the buffer and subsequently sent to the inferior guile process. - Mail configuration changes Var `rmail-file-name' and function `set-mail-spools' now look in ~/mail instead of ~/Mail. - Administrative changes - New Makefile targets: default, help, tag, untag The "make tag" and "make untag" support are to help the maintainer keep track of what files are associated with what release. For given tag FOO, the actual tag would be: v-VERSION-FOO, where VERSION is the contents of the VERSION file. See next NEWS item. - "make dist" now requires `disttag=TAG' argument It is now no longer sufficient to do simply "make dist"; you must do "make disttag=TAG dist". In contrast to the "make tag" and "make untag" treatment of the given tag, the disttag is used verbatum. - New administrative file: .release.el This is the beginnings of an automated release process (not yet functional). Also, the release instructions formerly in README are now moved here. - 1.36 | 2000-12-21 - NEWS file trimmed -- old news in OLD-NEWS - New command: `www-add' Prompt for a URL, which is added to ~/.www-links if new. - Changes to mail subsystem - New imported package: rmime.el - `rmail-file-name', `mail-yank-prefix' updated - New command: `mail-alias' Look up ALIAS in `mail-aliases' and if not there, offer to add to ~/.mailrc and rebuild `mail-aliases'. - New command: `fetch-mail' Fetch mail in a ttn-specific way, but invoke RMAIL first if mail spools aren't empty. - `rmail-ignored-headers' has more ignorance We now also ignore headers beginning with "List-", "Organization-", "Mailing-List-" and "User-Agent-". - Indentation fixed (scheme mode) The following forms now indent more nicely: and-let* qa-do-test qa-do-test-expect-fail - More veneration These functions/variables have been added to core/veneration.el: display-color-p enable-multibyte-characters toggle-enable-multibyte-characters - `zone' now discards pending input before zoning - Changes to dired support - `browse-url-of-dired-file' bound to `U' - `dired-wipe-types' bug fix A bug was fixed in calculating this var in which `auto-mode-alist' non-simple cons cells were taken into account instead of being properly ignored. - Bug fix in adhoc.el where cleanup failed due to no output window - Changes to timesheet support - Imported worklog.el upgraded to 1.6 - New commands to add stylized entries C-c C-l C-a timesheet-add-entry C-c C-l C-s timesheet-stop C-c C-l C-d timesheet-done - New command: `generate-worklog-summary' This (and future) extension(s) of worklog.el is in editing/worklog-timesheet.el. - `%' no longer globally bound to match parens Historical Note: This was ttn's first foray into elisp programming, copied from the manual. - Bug fixed in minibuffer `~' command When the buffer was already empty, this command used to signal an error. Now it DTRT in all cases: clear the minibuffer and insert "~/". - 1.35 | 2000-09-12 - diversions/zone.el v1.22 has been contributed to GNU Emacs. This diversion, originally authored by Victor Zandy and modified multiply by ttn, will appear in GNU Emacs 21. Maintainership lies w/ ttn@gnu.org. We plan to continue distributing zone.el as part of this library, updating the GNU sources when needed. - Changes to prog-env/hideshow.el - New customization var: `hs-hide-all-non-comment-function' Normally, `hs-hide-all' hides everything, leaving only the header lines of top-level forms (and comments, unless var `hs-hide-comments-when-hiding-all' is non-nil). It does this by moving point to each top-level block beginning and hiding the block there. In some major modes (for example, Java), this behavior results in few blocks left visible, which may not be so useful. You can now set var `hs-hide-all-non-comment-function' to a function to be called at each top-level block beginning, instead of the normal block-hiding function. For example, the following code defines a function to hide one level down and move point appropriately, and then tells hideshow to use the new function. (defun ttn-hs-hide-level-1 () (hs-hide-level 1) (forward-sexp 1)) (setq hs-hide-all-non-comment-function 'ttn-hs-hide-level-1) The name `hs-hide-all-non-comment-function' was chosen to emphasize that this function is not called for comment blocks, only for code blocks. - Command deleted: `hs-show-region' Historical Note: This command was added to handle "unbalanced parentheses" emergencies back when hideshow.el used selective display for implementation. - Commands rebound to more conventional keys The hideshow commands used to be bound to keys of the form "C-c LETTER". This is contrary to the Emacs keybinding convention, which reserves that space for user modification. Here are the new bindings (which includes the addition of `hs-toggle-hiding'): hs-hide-block C-c C-h hs-show-block C-c C-s hs-hide-all C-c C-M-h hs-show-all C-c C-M-s hs-hide-level C-c C-l hs-toggle-hiding C-c C-c hs-mouse-toggle-hiding [(shift button-2)] These were chosen to roughly imitate those used by Outline mode. - `my-prog-env' no longer turns on hideshow minor mode all the time. For Makefile, HTML and SGML mode, hideshow is not activated. - New file core/veneration.el allows GNU Emacs 19 support. We define some functions used by this library that are available in GNU Emacs 20, but not in GNU Emacs 19: `compose-mail' and minimal supporting functions (see mail-n-news/compose-mail.el), `shell-command-to-string', and `char-before'. We also redefine `match-data' to handle arguments. This file actually appeared in ttn-pers-elisp-1.34, but was not documented then. The venerable definitions are only evaluated when `emacs-major-version' is less than 20. - New minor mode: square braces as parens Typing `M-x square-braces-as-parens' toggles Square Braces As Parens minor mode, wherein the keys `[' and `]' insert left and right parentheses, respectively. This is useful for editing buffers with lots of parens. The mode line is not altered. - New wup.el var: `wup-dry-run-p' If this variable is non-nil, `wup' displays intended actions w/o actually carrying them out. This change is to prepare for the eventual rewrite of the backend to use tramp.el and/or rsync. - Minor bugfixes and enhancements - `zonk-buffers' now also zonks *MailCrypt* - `trl' now handles initial (no previous entry) condition correctly - `C-h C-g' sends inferior guile processes a "help" form - 1.34 | 2000-06-01 - New function: `reorder-headers' This puts From, Subject, Date, To, and CC at the beginning of the buffer. It is now used in `rmail-message-filter'. - New command: `set-theme' A theme, (NAME FOREGROUND BACKGROUND MODELINE-FOREGROUND), can be chosen with `M-x set-theme'. Emacs modifies frame parameters to implement the choice. The list of all known themes is held in variable `themes'. Each element of a theme is a symbol, so when using "#RGB" notation, you must escape the hash w/ a backslash. From a Lisp program, the function `set-theme' takes a string, which must name a theme in `themes'. - New editing command: `insert-world' Emacs calls the external program xearth(1) and filters the output to create a text rendering, which is inserted into the current buffer. Optional arg LINKS means to annotate the output w/ HTML tags, using references from LINKS. LINKS may be the name of a file containing one URL per line, or a list or vector of URLs. When called interactively, `insert-world' prompts for a filename. For example, `insert-world' is used to help generate http://www.glug.org, q.v. - Minor bugfixes and enhancements - imported eval-expr.el upgraded (RCS revision 1.6) - `munge-root-window' now handles lack of xlock(1) and has more choices - hideshow now works w/ GNU Emacs 19 (again) - new zone programs: stress, 5 o'clock swan dive, martini swan dive - `zonk-buffers' improvements - now handles abandoned Info work buffers NOTE: The proper action would be to fix Info buffer management. Or at least, submit a bug report! - now handles buffers ending in " Log*" - new function `oink-zone' to help measure zone.el memory consumption - `buffer-substitute-file-env-vars' examines `system-type' - `emacs-vers-at-least' takes optional 2nd arg, a minor version number - new command: `setup-mailcrypt' - zone.el memory consumption abuse bugfix - 1.33 | 2000-03-04 - New diversion: gnugo.el -- play GNU Go in a buffer This is the same elisp distributed w/ GNU Go 2.6 and later. Once GNU Go is installed, load gnugo.el and do `M-x gnugo'. Emacs prompts for command-line options (e.g., `--boardsize') and then sets up two buffers side by side, Board and Console. In the Board buffer, move the cursor to an unoccupied space (represented by ".") and press SPC or RET to make that move. See docs for `gnugo-board-mode' for more info. Enter `--help' at the options prompt to see GNU Go help. Options are remembered. Use `M-p' to select previous sets. - New imported package: mailcrypt-3.5.5 - New command: release Actually, there used to be a command `release' but that is now renamed to `release-rcs-file'. The new `release' is context dependent and may call `release-rcs-file'. If, however, the current buffer's major mode is `dired-mode' and there exists a file named ".release.el", then `release' starts a compilation process w/ the command "emacs -batch -l .release.el". - Lambda-wrapping macros in ttn-macros.el are gone. The four macros (and expansions) used to be: progs (function (lambda () ...)) progsa (function (lambda (args) ...)) progc (function (lambda () (interactive ...) ...)) progca (function (lambda (args) (interactive ...) ...)) All known calls to these macros are now expanded inline and the file ttn-macros.el is no longer included in the distribution. The reason for this change is that these kinds of macros make the code more opaque to casual human readers, which slows down adoption of this elisp library. See comp.lang.lisp archives for more (ir)rationale. - Major modes are recognized by `dired-wipe'. The variable `auto-mode-alist' is used to build a reverse association of major modes to filename extensions, which is made available to `dired-wipe'. For example, you can wipe .el files by specifying "emacs-lisp-mode" as the wipe type. Additionally, on null wipe-type input, Emacs prompts for a new entry to the `dired-wipe-types' table, consisting of a regexp and a name, and then does the wipe using the given regexp. An empty name means do the wipe, but don't add to the table. - VM is no longer bundled with this library. Transitioning to Gnus, using RMAIL for the interim. VM is a fine package, but in the end I like the newsreader model more. - Minor bugfixes and enhancements - code from `hs-minor-mode-hook' now in `my-prog-env' - import/lispdir.el no longer included - new directory "info" contains info files - distribution unpacks into dir "ttn-pers-elisp-X.Y" - new commands: `run-guile-oops', `run-guile-pgsql', `run-guile-pg' - new imports: python-mode.el, linuxproc.el - new command in hideshow.el: `hs-toggle-hiding' - `indent-tabs-mode' now set t when in Makefile mode - `C-c RET' now runs the command `rmail' - loading ./ttn.el no longer runs hook `ttn-load-hook' - zone.el diversion by Victor Zandy adopted, ae.el merged in - 1.32 | 1999-12-24 - New command: `dired-move-file-and-masterfile' From dired mode, this command moves the file at point and its RCS masterfile (in subdir RCS) to another directory. These conditions signal an error: source file is a directory, no source masterfile, dest directory does not have RCS subdir. - New feature: survey.el This file provides a set of functions that can be used to conduct a survey and email the result. A survey program begins by calling `survey-init'. To ask a question, use `survey-ask', which takes two args, GATHERER and QUESTION, and any additional args. GATHERER names a function that must be registered in `survey-gatherers' and QUESTION is a string. Each GATHERER must present the question and arrange for the answer to be appended to `survey-results-buffer'. The answer may also be saved in `survey-last-answer' for access by the subsequent questions or to vary the flow of the survey. Use `survey-mail-results' to finish the survey. See the end of survey.el for an example. - Changes to hideshow.el Hideshow is now at 5.x. It uses new algorithms for block selection and traversal and includes more isearch support. We also unbundled state save/restore for separate release (later), and fixed several small bugs. Version 5.9 has been tested w/ Emacs 20.4 and XEmacs 20.4, although the isearch support does not work for XEmacs. - Generalized block selection and traversal A block is now recognized by three things: its start and end regexps (both strings), and a match-data selector (an integer) which specifies which sub-expression in the start regexp serves as the place where a `forward-sexp'-like function can operate. Hideshow always adjusts point to this sub-expression before calling `hs-forward-sexp-func' (which for most modes evaluates to `forward-sexp'). If the match-data selector is not specified, it is taken as zero, i.e., the entire start regexp is valid, w/ no prefix. This is backwards compatible with previous versions of hideshow. See docstring for variable `hs-special-modes-alist' for details. - Isearch support for updating mode line During incremental search, if hideshow minor mode is active, hidden blocks are temporarily shown. For 5.x, the variable `hs-headline' also records the line at the beginning of the opened block (preceding the hidden portion of the buffer), and the mode line is refreshed. When a block is re-hidden, the variable is set to nil. To show `hs-headline' in the mode line, you may wish to include something like this in your initialzation flow: (add-hook 'hs-minor-mode-hook (lambda () (add-to-list 'mode-line-format 'hs-headline))) Munge to taste. - Minor bugfixes and enhancements - `saved-shell-command' now works w/ Emacs 19 (again) - `emacs-version-at-least' now accepts optional second arg, a number, specifying the minor version number - loaddefs.el now no longer refers to hideshow-{3.15,4.22}.el - new command: `run-python' - new imported command: `indirect-emacs-lisp-buffer' - Directory hiearchy re-organized - 1.31 | 1999-10-05 - Minor enhancements - `vc-diff' right before `vc-checkin' now uses mode-specific `diff-switches' to show function header ("-F" assuming GNU diff) - `dired-wipe' is bound to `W' in dired mode (changed in 1.30 but not documented then) - locate.el has been removed -- Emacs already has a locate.el that does a better job - `dired-wipe-types' now includes "compiled elisp" - typing `=' in VM now mimics Gnus - `diced-message' now switches to *Messages* on multiline output, and is autoloaded - new kbd macro `spew' for THUD maintenance - 1.30 | 1999-07-17 - Changes to dict.el - New command: `thesaurus' Type `M-x thesaurus' to look up a word in the Merriam-Webster online thesaurus. Emacs prompts for the word, supplying a default to edit if point was on a recognizable word. - Other changes The command `dict-at-point' is removed; its functionality is now folded into `dict'. That is, when Emacs prompts for the word, it supplies a default to edit if point was on a recognizable word. See the source code ending comments for an another imlementation by Stefan Monnier. (Some of the changes will be incorporated at a later date.) - The command `trl-begin-entry' is available. This command takes one argument, a TEMPLATE file, from which Emacs prepares log-MMDD-HHMM.html for editing. The log file is in the same directory as TEMPLATE. When done, typing `C-c C-c' will: (1) save the buffer; (2) check the file into a version control system (whatever the default for that directory is); (3) modify the previous log entry to point to this one; (4) modify index.html, prompting for a description. TEMPLATE must contain the string "Trip Log Entry " (note the space). TEMPLATE must contain the string "". TEMPLATE must contain these two lines, exactly as they appear here (but w/o the indentation): Also, index.html must contain this line, between
    tags, exactly as it appears here (but w/o the indentation): The behavior of `trl-begin-entry' w/o these required strings is undefined. - The command `turn-on-tnt' is available. TNT is an AOL Instant Messanger client that is not included in this library. The command `turn-on-tnt' saves the binding of `C-x t', which TNT uses, loads TNT, then binds `C-x t t' to the saved value. - Right before doing a `vc-checkin', `vc-diff' is called. This shows the diff in the other window instead of the original buffer. You can use `M-C-v' to scroll the other window. - The command `toggle-LR-scroll-bindings' is renamed and bugfixed. It is now called `scroll-LR-by-20-minor-mode', and accepts args like other normal minor modes. A bug was fixed wherein the key bindings affected were not constrained to the current buffer. - When editing directories, `dired-wipe' allows you to ignore files. This command asks for a file type and removes those lines that correspond to that type. The types are registered in the alist `dired-wipe-types', each element of which specifies a regular expression that `dired-wipe' passes to `delete-matching-lines'. Currently, these types include "unseeables" and "read-only". - The new function `shuffle-pairs' is available. Given a format string and a list of the form (A1 A2 B1 B2 ...), `shuffle-pairs' will format randomly chosen pairs and insert the result in the current buffer. The chosen pair is removed from the list. The process repeats until there are no more pairs. - Minor bugfixes and enhancements - set-font-at-point.el requires emacs-vers.el - `ttn-base64-output' now always considers its buffer to not have `enable-multibyte-characters' set - `dired-wipe-types' now includes version control masterfiles - my-tags.el is no longer included - `C-u C-u C-l' sets `C-l-gravity' regardless of `font-lock' instead of being wrongly dependent on this feature - `_' in dired does `hexl-find-file' on the current file name - word-at-point.el is no longer provided since a function by the same name is available in thingatpt.el, distributed with Emacs - `C-x C-i' has been reimplemented w/ `apply-macro-to-region-lines', since that is now provided w/ Emacs, and the since the change also fixes a portability bug - `brb' now takes an optional string argument `explanation' that is prepended to the displayed message - `run-guile', `run-guile-tcltk' and `run-guile-gtk' now allow editing of the inferior scheme command line if given a prefix arg - `run-like-scheme' is no longer a command - vars `gnus-nntp-server', `gnus-large-newsgroup' and `apropos-do-all' are no longer set - new amusement uuapply.el - 1.29 | 1999-05-09 - Administrative changes - Credit for imported source has moved from AUTHORS to THANKS. - ChangeLog files are now provided. - Top-level README now includes the release procedure. - Imported packages have been upgraded. - VM 6.71 (w/ kludge for Emacs 20.3 compatibility) - crypt++.el 2.87 - 5x5.el 1.11 - There is a new variable `wup-enable-unpublishing-p' for wup.el. This variable, when set non-nil, directs wup to delete files on the website that are not in the source tree. This is termed "unpublishing". - Commands `dict' and `dict-at-point' are available. These use lynx(1) to consult www.m-w.com to look up a word in the online dictionary (you must be online). The command `dict' asks for a word to look up, while `dict-at-point' looks up the word at point. - The command `diced-message' is now available. This takes a lisp object and pretty prints it using `message'. If the output is more than one line, it is fed line by line to `message' instead of all at once and you are told to look in the "*Messages*" buffer. If the output is just one line, it is shown in the minibuffer area as usual. - The command `C-u C-u C-l' now sets the variable `C-l-gravity'. This variable controls on which line the cursor ends up when doing a `C-l' command. The separate command `C-l-gravity', which used to do the same thing, is no longer avaiable. - The new command `zonk-buffers' deletes certain buffers. The variable `zonkable-buffer-regexps' is a list of regular expressions. If a buffer in `buffer-list' matches any of these regexps, it is deleted by `zonk-buffers'. - There are new keybindings in GDB mode. The original bindings are intact, but these make things a little easier by reducing to one keystroke what used to take two. [f9] gud-cont [f10] gud-finish [f11] gud-step [f12] gud-next - EDB autoload is now triggered by `db-find-file'. If EDB is on your system and database.el[c] is in your `load-path', using the command `db-find-file' will load it. A common place to put EDB is in PREFIX/share/emacs/site-lisp. Note that this library does not include EDB. - 1.28 | 1999-04-18 - This NEWS file has been reformatted w/ more whitespace. - The command `toggle-LR-scroll-bindings' is now available. This command toggles keybinding of `[' and `]' to the horizontal scrolling commands `scroll-left-20' and `scroll-right-20', respectively. The effect is for the current buffer only. Invoke again to reset original bindings. - In a *Help* buffer, typing `M-r' renames the buffer. This is useful when you wish to preserve that buffer while continuing to get help. For example, function `completing-read' references other functions. - The new command `outline-freshmeat-mail' is available. This command is useful for proccessing mailing list mail from freshmeat.net. Doing `M-x outline-freshmeat-mail' in a buffer that contains freshmeat mail formats and sorts the entries into an outline, placing the contents in another buffer named "*outline of freshmeat mail*". You can do `C-c C-s' to show specific entries. Do `C-x b' or `C-x k' to get back to the original buffer. - The output of command `print-buffer-local-variables' is in outline mode. Output is sorted and initially all nodes are hidden. This makes it easy to visually scan for a particular variable. See docs for `outline-mode' for more info. - The `doc-entry-to-undef' command now handles shell-style. The style choice is based on the major mode. For C or C++ modes, the /* */ as described below is used. For shell-script mode, a leading "#" is used and the variable in question is `unset'. - View minor mode has some useful keys bound when viewing outlines. These keys all were bound to `self-insert-command', but are now used for the following commands: { `outline-previous-visible-heading' } `outline-next-visible-heading' + a command to toggle subtree visibility These are only set when the major mode is outline mode. - Hideshow variable `hs-show-hidden-short-form' is now buffer-local. - A bug was fixed in prettification code for electric-buffer-list. We now handle usloth NT environment, where absolute path names do not start with "/", by checking for env var `OSTYPE' to be "cygwin32". - Functions to minimally support `compose-mail' for Emacs 19 are autoloaded. Emacs 20 has `compose-mail', but Emacs 19 doesn't. So we include a bunch of functions that allow forward compatibility when using this library with Emacs 19. This change should be transparent to the user. - The function `strip' now strips all whitespace from around a string. It used to only strip spaces, and not tabs or newlines. - New macros: `with-vc-file' and `edit-vc-file'. Actually, these used to be included as `with-file-under-version-control' and `editing-file-under-version-control', but were deleted pending inclusion w/ Emacs. However, that may take a long while yet, so they are re-appearing now (but w/ shorter names). - The variable `*ttn-load-status*' now includes the library version. The first symbol in this list is the version number for the library. The rest of the symbols are library files. This variable may change or go away completely in the future. - You can update changelogs more automatically w/ update-changelog.el. This program is basically a wrapper around rcs2log, and inherits rcs2log's weaknesses, namely, the requirement that there be a checked out (working directory) copy. It would be nice if rcs2log grokked with the repository directly, but until then, we work around it by requiring the environment var `LOCAL_WORK_ROOT' to be defined. This should be a directory under which cvs modules are checked out. Flash! Newer versions of rcs2log do indeed understand the repository, and can be invoked with "-R" therein. We infer this if `LOCAL_WORK_ROOT' is not set, and use instead `CVSROOT'. At least one of these must be set. The ChangeLog files are by default updated in the cwd, unless overriden by the environment variable `CHANGELOG_DIR', with the name MODULE.ChangeLog. No new files are created; you must manually touch a file to have the next ucl run notice it. You can pass additional options to rcs2log using env var `RCS2LOG_OPTS'. To use, set the appropriate environment variables, and type from a shell: "emacs -batch -l update-changelog.el". - 1.27 | 1999-03-02 - Debugging output for `buffer-substitute-file-env-vars' has been removed. - The README file now contains a section for plans. - The command `doc-entry-to-undef' is now available to aid C programming. Invocation at the beginning of an info-style doc entry extracts the first symbol and constructs a C pre-processor `undef' for it, inserting text after the entry. The entry is made a comment by /* */, and point is left at the beginning of the next entry (assumed to delimited by an empty line). This command is autoloaded. - Support for handling encrypted/compressed files is now included. See lisp/import/crypt++.el for more info. - The URL for the eamcs lisp code directory (LCD) is updated. See lisp/import/lispdir.el for more info. - 1.26 | 1999-01-23 - You can scroll the output buffer of `M-x saved-shell-command'. Use TAB to scroll (SPC to keep). Scrolling past the bottom of the buffer returns to the top of the buffer. - The command `surround-w-if-block' now uses `#ifdef', not `#if'. The latter may cause some compilers to flag an error. - 1.25 | 1998-12-20 - A bug was fixed in buffer-substitute-file-env-vars.el. Environment variables like "VAR=" are now handled correctly. - The context-introducing macro `wup-in-action' is minimized. After its body is executed, "publishing" occurances in the message log are no longer displayed. This is because the macro is intended to introduce as thin a layer as possible. - The administrative elisp (lisp/admin.el) now does not require ttn-macros. In addition, calls to "find" are now in the Makefile. A simplifying macro `ttn-cmd' is now available, as well. - Several extraneous files referenced in the autoload file are gone. These files used to exist in the development source, and because of that, were being mined for autoload cookies. This caused an error to be signalled when the file was not available in the distribution. - The command `browse-x-fonts' is an alias for `xlsfonts'. - 1.24 | 1998-12-10 - When typing in a filename in the minibuffer, TAB now ignores .lo files. This extension typically indicates a library-object binary file. - The variable `dired-listing-switches' is now reverted to value "-alF". Previously, it included the "-G" option (undocumented change introduced in version 1.23 of this library), which suppresses the groups column on Linux, but breaks Dired handling of remote hosts. - The `munge-root-window' command now has a "starfish -root" option. - When using the X window system, you can browse the various pointer shapes. The command `M-x browse-pointer-shapes' changes the pointer and asks if you want to keep the current one. Type `y' to select. Failure to select still results in a munged pointer; this is a known bug. - The command `insert-time-stamp' now supports different output styles. A prefix argument selects which style to use. The default style is now simpler than before. Do `C-h f insert-time-stamp' for more info. - When using VM, lines longer than window width are not wrapped. Instead, they extend beyond the screen. You can shift the window left and right by 20 columns each way by typing "[" and "]", respectively. - The distribution now includes worklog.el by Kai Grossjohann. This means you can type `M-x worklog' to make an entry in ~/.worklog and `M-x worklog-show' to show that file. Use `C-h m' in that buffer for more information. - The new command `wup' can be used to update a website. The source directory tree is local, and the website directory tree can be remote. The file .wuprc in the source root dir is used for configuration. See lisp/low-stress/wup.el Commentary for more information. - The new command `buffer-extract-image' is now available. The current buffer is scanned for either uuencoded or base64-encoded sections and the decoded output is written to a file (specified in a regular place in the buffer). This is most useful for mail or usenet postings. - In lisp-interaction-mode, `C-M-z' kills sexp and unbinds symbols. For example, if point is on the sexp `(setq tem 3)', doing `C-M-z' will do `(makunbound 'tem)' and also remove the sexp from the buffer. `C-M-z' also understands `defun' and `defmacro'. - When editing Java files, the familiar `my-prog-env' is called. This is the same environment called for the other programming modes. - In Scheme mode, the key `M-m' now does `compile' aka `make'. This key used to do `scheme-send-definition-and-go', but that was found to be annoying, so now we bind `M-RET' to that instead. This binding change is a generalization: `M-m' is already globally bound to `compile' (aka `make'). - 1.23 | 1998-10-16 This release introduces only administrative changes. - Some files are no longer under version control. This includes the README files, lisp/loaddefs.el and ttn-subdir.el. The file admin.el now no longer needs to wrap access to these files with `with-file-under-version-control', so that function has been removed from the library (it may come back elsewhere later :). - The README files are no longer updatable via `M-x eval-defun' alone. That is, their active forms are wrapped in a defun, named `update-README' by convention. `ttn-make-readme-files' calls `eval-defun' to read the definition and then does a `funcall' on `update-README'. - The VM (mail system) files have been moved. They are now found in lisp/import/vm-X.YY, where X.YY is VM's version number. However, as distributed, to save space, these files are omitted and only available by email request as a separate tarball. To recreate the complete distribution, you must do, for example: gzip -dc ttn-1.23.tar.gz | tar xf - gzip -dc ttn-1.23-vm.tar.gz | tar xf - This will create the main distribution and then put VM in the right place. - The various README files have been expanded, sometimes with useful info. - 1.22 | 1998-10-15 - The `help-show-headers' command is now adapted for XEmacs. This is normally bound to `C-h h'. - When editing elisp files, the key `M-m' is no longer rebound. We used to bind it to `byte-compile-file', but found that to be annoying. - The "5x5" diversion is now included. Do `M-x 5x5' to play. - An omission in the AUTHORS file has been corrected. - The `resize-minibuffer-mode' is now enabled on library boot. This makes the minibuffer resize automatically to fit input. - A bug was fixed when using `munge-root-window'. This bug prevented proper killing of background jobs via the selection buffer. Now you can just move the cursor to a line that says "kill *bg job* JOB" and hit `RET' to kill the specified JOB. - This NEWS file is reformatted for `outline-mode'. Useful commands are `C-c C-n' and `C-c C-p'. Do `C-h m' for more info. - When using `outline-mode', keys are rebound. The new bindings are: `C-c C-d' deletes eol whitespace, like global binding `C-c C-h' does `hide-subtree' - The new command `M-x release' changes the state of an RCS file to "Rel". You are prompted for a filename. If the file is not under RCS, an error is signalled. - You can now interact with .adhoc scripts; adhoc.el is now at 2.x. For more info, load adhoc.el and then load adhoc.adhoc for a tour. - A bug was fixed in `global-set-keys' that caused infinite recursion. - When using Dired, the key `I' now runs `info' on the current file. If the current file is not an info file (typically with an extension of .info or .info.gz), the file will be visited but you will get an error. - The imported lispdir.el has been updated to version 4.6. - The env var `d' now points to the "doc" subdir under `ttn-elisp-home'. - When reading mail, the keys `[' and `]' scroll the window contents. The windows are scrolled horizontally left and right, respectively, by 20 columns. - In the global keymap, `M-&' is bound to `bg-shell-command'. Also, the output buffer names for this command and `saved-shell-command' (bound to `M-!') are now regularized. - The command `ch-rcs-state' no longer asks for buffer-revert confirmation. - 1.21 | 1998-09-27 - Source-file dependencies are noted using `require' and `provide'. - The command `emacs-uptime' displays info on Emacs usage. This includes when Emacs was started and a the uptime in terms of days, hours, minutes and seconds. Also displayed are the numbers of buffers and files. - The command `M-x make' is now an alias to `M-x compile'. - The Verilog mode is now implemented using verilog-mode.el. This code is by Michael McNamara . The old verilog.el is no longer distributed with this library. - The imported package `edbm' is no longer distributed with this library. - The `hideshow' package now does state save/restore. When in programming modes, hideshow is configured to save state on buffer kill as well as to not hide comments when doing `hs-hide-all'. - The `adhoc' feature is now available. See the files adhoc.el and adhoc.adhoc for more info. - The variable `C-l-gravity' now depends on window height. This variable controls how the screen is redrawn when `C-l' is pressed. - A bug was fixed in the administrative macro `ttn-with-RCS-file'. The free variable `file' was being set incorrectly. This change does not affect users. - The command `print-buffer-local-variables' now uses `pp', a pretty printer. - The variable `custom-file' now points inside the distribution. This names the file where the custom.el keeps its state, and used to point to a file in the home directory. This is now renamed `ttn-elisp-home'/lisp/customized-state.el, part of ttn's personal elisp library. This change is to facilitate export. - The variable `bookmark-default-file' now points inside the distribution. This names the file where bookmark.el keeps its state, and used to point to a file in the home directory. This is now renamed `ttn-elisp-home'/lisp/bookmarks.bmk, part of ttn's personal elisp library. This change is to facilitate export. - RMAIL is no longer supported as the preferred mail reader. Instead, there is now support for the VM mail reader. The key sequence `C-x r' no longer runs the command `rmail'. The sequence `C-x v m' now runs `vm'. (You can also do `Mx vm'.) In VM, keys have been rebound. Here is a list (old keys in parens): x vm-expunge-folder (#) s vm-save-folder (S) o vm-save-message (s) - For sending mail, the variable `ttn-jammed-from' controls mail setup. When `ttn-jammed-from' is a string, that value is jammed in the "Reply-to:" header, but only if a "Reply-to" header is not already in set in the buffer. This jamming support has also been added to `mail-send-hook'. - The variable `view-scroll-auto-exit' is now `t'. This means that when viewing a file (or buffer), scrolling past the end will exit the buffer instead of signalling an error. - The administrative macro `ttn-with-RCS-file' is now autoloaded. - 1.20 | 1998-08-20 - The command `xscreensaver-command-deactivate' is no longer available. A new command `xscreensaver-command-restart' is available. The general command `xscreensaver-command' now takes a string of args to pass. - A new command `find-files' is available. This calls find(1) and then allows interactive file selection. Selection is similar to `query-replace': `y' or `SPC' accepts; `n' or `DEL' rejects; `.' accepts one then stops; `!' accepts the rest and `q' quits. The command asks for a wildcard to pass to find(1). - The command `reset-x-bell' now consults ~/.xsession-common. It used to consult ~/.xsession. - Using `makefile-mode' calls `my-prog-env'. This now handles source wrapping for that mode correctly. - `munge-root-window' handles the new `bg-shell-command' convention. - A bug was fixed in `fortunate-loop'. The bug relied on this library's binding for `M->'. - The `bury-buffer' command for `M-_' now understands prefix arg. When prefix arg is non-nil, this makes Emacs rename the buffer by prefixing a space. This makes `electric-buffer-list' not notice it. To see the buffer, use `C-x b SPC' and then one or more TABs to invoke completion. - In programming modes, the key `f10' does "here" searching. This is the same command as is bound to key sequence `C-c M-C-h'. See below for its introduction. - The buffer created by `bg-shell-command' now has a new name. The buffer name is made from: "*bg job* CMD". - 1.19 | 1998-07-06 - The AUTHORS file now attributes the authors for imported source. - Mail headers that begin w/ "Resent-" are now not initially shown. You can toggle showing all the headers by using the `t' command. - A new command `run-guile-gtk' is available. It, predictably, runs guile-gtk in a new buffer named "*guile-gtk*". - The command `print-previous-revision', now renders tags immutable. This makes the buffer where the file is rendered safer in some senses, and amenable to mailing out. - The new command `C-l-gravity' is available. This sets the var `C-l-gravity' to whatever window-line point is currently at. This makes adapting `C-l' behavior to different situations very easy. - 1.18 | 1998-06-02 - Some new keybindings have been added to `hs-minor-mode-hook'. Running the normal hook `hs-minor-mode-hook' (when turning on hideshow minor mode) now binds `C-c L' to `hs-hide-level', `C-c o' to `hs-save-state', and `C-c i' to `hs-restore-state'. More fundamentally, the hideshow in this library (latest: 4.12) is now based off of the one distributed in FSF Emacs 20.2. Modifications have been made to re-enable state save/restore and `hs-hide-level'. - A bug was fixed in the auto-editing amusement. - 1.17 | 1998-05-06 - A bug was fixed in command `set-font-at-point'. The symptom was that whitespace was improperly considered as part of the font name. - The source file base64.el is now named ttn-base64.el. This is so that w3-mode (in xemacs, and with its own base64.el) would work. (This mode provides a www browser and other services.) - The PLL spreadsheet now has a parameter `b-range'. This indicates the binning range (in MHz). - The `home' and `end' keys have been rebound. They are bound to `delete-other-windows' and `delete-window', respectively, and `pause' does `split-window-vertically'. - Startup behavior is different. The startup behavior of changing directory to `~' and finding ~/.todo is now disabled. Whatever directory you are in will be the default one. - Mouse button 3 on the modeline now does what `C-x C-k' does. Namely, it kills the buffer and closes the window. If a prefix arg is given, the buffer is instead buried. - The command `clone-frame' is available. This creates another frame with the same properties as the current one. The related command `clone-frame-just-text' works in a similar way, but the new frame does not have a minibuffer (the bottom-most line is the mode-line). - The command `toggle-case-fold-search' is available. This controls whether or not searches (eg, those started using `C-s') should be case sensitive. This command toggles the variable `case-fold-search', which when t makes searching case insensitive. - 1.16 | 1998-02-16 - The new variable `ttn-select-global-keys' controls global key rebinding. When keys.el is loaded, this variable controls what what global keys are rebound. Briefly, two forms are recognized: (only KEY1 KEY2 ...) and (except KEY1 KEY2 ...) These forms permit and restrict, respectively, rebinding for the specified keys. An example of a key specification is "\C-n", normally bound to `next-line', or "\M-\C-n", normally bound to `forward-list'. Because key bindings tends to be a largely personal issue, the default value of `ttn-select-global-keys' is `(only)', which effectively disables all key rebindings done by loading keys.el. Do `C-h v ttn-select-global-keys' for more info. - A bug was fixed in the command `multi-shell'. The symptom was spurious initialization when switching to a pre-existing shell. - A spreadsheet for tuning PLL input is available by command `pll-ss'. A buffer is prepared with the parameters. After editing the parameters, type `C-c C-c' to form a table and bin the entries by 5. Type `C-h m' in the spreadsheet buffer for more info. WARNING: The actual formula is incorrect at this time. - Files ending in ".th" are now edited using `scheme-mode'. - The command `what-defun-am-i-in' now understands Scheme mode. - Library maintenance commands are available. This includes `ttn-make-autoload-file', `ttn-make-subdirs-file' and `ttn-make-readme-files'. These are probably not useful w/o the RCS subdirectories. - In comint and derived modes, `M-C-g' now runs the command `go'. - 1.15 | 1998-01-22 - Emacs 19 bindings in dired are restored. Apparently, Emacs 20 did away w/ the Dired bindings for `*', `/' and `@'. These are now restored. - You can now run locate(1) by doing `M-x locate'. From a program, `locate' accepts a string to concat w/ "locate" to form the command passed to the shell. See `shell-command'. - The "go-file" programming environment convention is now in place. This convention applies to sessions where there is an active inferior command interpreter (via `comint-mode'). Typing `M-x go' arranges for the command interpreter to load `go-file'. For some programming modes this is now bound to `M-C-g'. Currently, the convention is: the go-file's first toggle-able enable (point of control) is called the "load bit". Two commands are now available to manipulate this bit: `glt' and `glf', whose names are acronyms for "go load true" and "go load false". - "Here" searching is available. Source code commonly grows in its data. Tags on where to add additional entries into a table typically look like the comment "Add data here.". This is a conventional editing target, part of the programming philosophy, so to speak. All applicable source in this library now follows this convention. For programming modes using `my-prog-env', the key sequence `C-c M-C-h' now does a search for the regular expression "here[.!]$". The search reports if no such tag is found, and also reports when it wraps to the beginning of the buffer. The punctuation after "here" affords some syntax that helps the search. (We allow some chance for excitement, after all.) - In GNUS, the summary buffer responds to `[' and `]'. The window is scrolled horizontally left and right, respectively. - The command `M-x turn-on-gnuserv' turns on an Emacs server. The particular server is whichever version is available to the current Emacs. (Lucid Emacs uses "gnuserv" proper, whereas FSF Emacs uses the older "server" package. We call both "gnuserv" here.) Turning on a server allows other processes to derive use from the currently running Emacs. For further information, look at these manual pages: emacscient(1), gnuattach(1), gnuclient(1). - For programming modes, the sequence `C-c d' inserts a date and time stamp. The stamp is formatted w/ the string bug: "%Y.%m%d.%T%z". Representative output would be, e.g., "1997.1107.21:34:10-0800". - The `xlfonts' command is available. Under a windowing system that supports different fonts, you can use the command `M-x xlsfonts' to select one as the default font. If point is at a valid font name, you can set it as default by `M-x set-font-at-point'. If it turns out point is not on a valid font name, Emacs will call `xlsfonts' for you to choose. - When using `isearch', `C-y' works like `C-w', but for sexps. In a similar way that `C-w' works for words, the key `C-y' works for structured expressions. See the command `forward-sexp' for more information. (Note that this works also for single symbols.) - A bug was fixed in the command `electric-buffer-list'. The display was not correctly substituting environment variables. Now it does. - The function `idx-of' returns the index of a list search. More specifically, it returns the zero-based index of an item found in a list. Comparison is done w/ `equal'. E.g., (idx-of 3 '(5 4 3)) => 2. - The new variable `emacs-type' records either `lucid' or `fsf'. Some people think "FSF Emacs" is derogatory, but I disagree. (IMHO, "Lucid Emacs" just sounds better, anyway -- the obvious development paradigm difference is of academic debate. :->) The function `emacs-version=' no longer exists, but in its place is a more useful `emacs-version-at-least'. - Alias `d.' to `defun'. This is to help elisp-scheme unification. - 1.14 | 1998-01-04 - A bug was fixed for `C-a' in scheme-mode and inferior-scheme-mode. - A bug was fixed in the command `help-show-headers' (C-h h). Also, the regexp used to discern headers now are more robust -- headers can have whitespace and the string to be displayed in the selection window need not start w/ a comment. Typing `q' in the selection window now closes the window. - A bug was fixed for `M-x run-guile' and `M-x run-guile-tcltk'. The variable `scheme-buffer' was not being set to point to the newly created buffer, preventing use of the commands `scheme-send-definition' (normally bound to `C-M-x' in Scheme mode) and `scheme-send-definition-and-go' (normally bound to `M-m' in Scheme mode). - `M-o' now ignores iconified frames. - The function `line-at-point' is now re-implemented. - 1.13 | 1997-12-26 - For both GNU Emacs and XEmacs, info search-path directories are added. This includes the directories /usr/info, /usr/local/info and ~/local/info. - Directory environment variables "l", "ll", "L" and "LL" are set. The values are various load-path favorites. Variable "lo" is now known as "ll". New variables are "c" and "s" for ~/codebits and scheme directories, respectively. - When using Emacs 20 or higher, the file ~/.emacs-custom is loaded. The variable `custom-file' is set to this for further use by `M-x customize'. - Files ending in ".thud" are now edited using `scheme-mode'. - When sending mail, `mail-self-blind' is t. This causes a BCC header to be included with yourself as the recipient. You may delete the field if you don't want all outgoing mail to be copied to you w/o reflecting it in other recipients' mail. - 1.12 | 1997-12-25 - The command `munge-root-window' now also lists background jobs. These can be killed by selecting them. Also, Emacs now uses a window at the bottom of the screen to receive input (similar to `electric-buffer-list') instead of clearing the current window. - In RMAIL, `M-r' now calls the command `rmail-search-backward'. When using RMAIL to read mail, you can now search back through the entire mail file for a regular expression by typing `M-r', which runs the command `rmail-search-backward'. Emacs will ask you for a regexp to find. You can type `RET' to accept the previous entry, or enter a new regexp. If the search is successful, the RMAIL buffer will show the message found with point at the regexp. - The command `M-x bg-shell-command' now accepts a prefix arg. If non-nil, Emacs will switch to the buffer controlling the background job so that you can watch its progress. Currently, you need to type `M-<' then `M->' to see anything useful because of (not-yet understood) weirdness w/ the mark. If the prefix arg is nil, show nothing. - A new command `M-x ping' allows you to ping a host. Emacs switches to the buffer doing the ping so that you can watch. A numerical prefix arg sets the interval of the ping, which defaults to 1 second. - Turning on hilit19 via `M-x turn-on-hilit19' is nicer. It no longer overrides the definitions of `recenter', `yank' and `yank-pop'. - A bug was fixed that set `Info-default-directory-list' for XEmacs wrongly. - On a Linux console, you now can browse the different console fonts. This is via a Dired extension. Type `M-x browse-console-fonts'. In the resulting dired buffer, hitting `RET' will run setfont(1) on the file at point. (Be careful where you put point, or you may render your console unusable.) - In programming modes, `M-#' surrounds the text w/ RCS tag comments. When using `my-prog-env', you can surround the source text in the buffer w/ RCS tags w/ `M-#'. Default styles are elisp, shell and c++; these are also used by related modes. For example, scheme-mode will use elisp style. - The mode-line no longer contains references to MULE or frames. These items take up space that is better used for displaying other information. - This library now includes sure-tags.el v1.0. This package, written by Bob Glickstein , advises tag-related commands in useful ways. For example, you can automatically update arbitrary TAGS files, before referencing them. - The function `border' is now available. It has this kind of behavior: (border 3 '(1 2 3 4 5)) => (2 3 4 5) Basically, given break ELEMENT, return a sublist that starts with the element right before. This is useful if conjunction w/ `setcdr' for list splitting. - The command `source-wrap-elisp-style' is now generalized to `source-wrap'. - 1.11 | 1997-12-15 - You can now start and interact with a guile process. This is through buffer *guile* using the command `run-guile'. This is based on `run-scheme' and the buffer prepared is based on `comint-mode', so `M-p' (`comint-previous-input') and `M-n' (`comint-next-input') work as expected. Type `C-h f comint-mode RET' for more information. The executable "guile" should be in your PATH environment variable. - Similarly, `M-x run-guile-tcltk' is now available. - The command `insert-separator' now knows about Scheme mode. - You can get a root shell by typing `M-x su-shell'. Emacs prompts you for the root password and with it sets up a `multi-shell'. Current directory remains unchanged. - There are new README files. Under `ttn-elisp-home', new files lisp/README and lisp/low-stress/README provide brief (but not yet comprehensive) descriptions of the elisp code found therein. Also, ./README now has "ls -lRt" output, not just .el files. - `C-a' in some shell-ish modes does the right thing. In `shell-mode' and for `run-scheme', `run-lisp', `run-guile' and `run-guile-tcltk', the key `C-a' now moves the cursor to the end of the prompt (where you would normally begin typing) rather than to the absolute beginning of the line. - A bug was fixed in the command `dired-compile-last-change-log'. This bug caussed Emacs to not find the "Working file" RCS tag. This is normally used from Dired mode. - The command `C-x m' now initially queries for To: and Subject: fields. Typing RET in response is OK. A buffer is created with the name "*mail TO*", where TO was your response. If this buffer already exists, confirm if you want to kill it. If so, the new TO and SUBJECT are inserted; otherwise you may continue w/ the previous mailing. As usual `C-c C-c' sends the mail and buries the buffer. - 1.10 | 1997-12-04 - The new command `what-defun-am-i-in' is globally bound to `M-?'. When using `my-prog-env', you can find out what defun, function or module you are "in" with `M-?', which calls `what-defun-am-i-in'. Emacs looks backward in the buffer for the name of the syntactic unit and informs you in the minibuffer. This is useful if the name is not on the screen and you don't want to leave your current place in the buffer. - The code to cleanup Macintosh "Word" documents no longer asks for a file. Instead, it operates on the current buffer. Also, the command has been renamed to `macintosh-word-cleanup' and is autoloaded. - The amusement that calls fortune(1) no longer is started automatically. It used to be started after some amount of idle time. You can invoke it manually using `M-x fortunate-loop', which also causes `fortunate-loop' to be hooked into the idle timer. - The aliases `_u', `_s', `_swb' and `_swbow' are no longer available. You should use `force-mode-line-update', `sit-for', `switch-to-buffer' and `switch-to-buffer-other-window', respectively. - Environment variables "l", "lo" and "L" are set only when interactive. - 1.9 - The command `what-defun-am-i-in' now autoloads correctly. - If you are in a buffer you can mail it to someone using `C-x RET RET'. This will place you in the mail buffer with the contents of the original buffer as the mail. Fill out the "To" and "Subject" fields and type `C-c C-c' to send. After sending, Emacs will return to the original buffer. If you want to cancel the mail, just kill the mail buffer. Alternatively, you can use `C-x b RET' to get back to the original buffer. - This NEWS file, normally kept in `ttn-elisp-home', is now available. - 1.8 - First public release. This includes many many many features and probably a few bugs. :-> - 1.7 and previous: no record Local Variables: mode: outline outline-regexp: "\\([ ][ ]\\)*- " fill-column: 72 fill-prefix: "\t" End: