*************************************************************** | | | This is the ChangeLog from the last CVS snapshot of Ale. | | Ale now lives at http://svn.red-bean.com/ale/. See there | | for more recent changes. | | | *************************************************************** Wed Sep 6 12:29:36 1995 Karl Fogel * configure.in (VERSION): 0.1.183 * lisp/gene-menus.el (gene-dont-clear-menu-bar): don't compensate for 19.29 bugs since most users have 19.28, and anyway my compensations don't work. * lisp/gene-mode-tools.el (gene-get-here-sym): if in the id buffer, don't use a POS that was calculated wrt the seq buffer. Tue Jul 25 20:26:28 1995 Karl Fogel * lisp/gene-id-mode.el (gene-id-generate-id-completion-table): "organism", not "orgnism". Duh. Sat Jun 17 18:06:14 1995 Karl Fogel * lisp/gene-sgroup.el (gene-sgroup-write-sgroup-to-phylip-file): expand the file name. Sat Jun 17 17:57:13 1995 Karl Fogel * lisp/gene-menus.el, lisp/gene-sgroup.el (gene-sgroup-write-sgroup-to-phylip-file): prompt for file name if its omitted. Added this func to the group menu. Sat Jun 17 17:50:15 1995 Karl Fogel * lisp/gene-io.el, lisp/gene-sgroup.el (gene-io-tabl-to-phylip): take optional NAME argument. (gene-sgroup-write-sgroup-to-phylip-file): new func. * lisp/gene-sgroup.el (gene-sgroup-write-sgroup-to-tabl-file): new func. * lisp/gene-io.el (gene-io-coerce-from-tabl): doc fix. (gene-io-write-annotations): new func, analogous to `gene-io-write-ids' and `gene-io-write-sequences'. (gene-io-write-sequences-to-tabl-files): new func. Thu Jun 15 18:16:58 1995 Karl Fogel * lisp/gene-consensus.el (gene-consensus-make-dialog-box-buffer): put point in the first field once the dialog box is created. Sat Jun 3 03:58:48 1995 Jim Blandy * readers/phylip-tabl.c: * readers/phylip-tabl.c (fastdnaml_headers): The auxiliary data for each option appears only once. If we see something that seems to be an auxiliary data line, but we've already seen a line for that option letter before, it's got to be a sequence. Wed May 17 03:21:12 1995 Jim Blandy * lisp/gene-io.el: * lisp/gene-io.el (gene-format-define): Remove mention of content-matcher; that's redundant with header-regexp. (gene-format-content-matcher): Deleted. * lisp/gene-io.el (gene-io-header-format): New function. (gene-io-file-format-from-contents): Call it, instead of writing it out. Tue May 16 23:10:05 1995 Karl Fogel * analyses/count.c: New file count.c. Counts differences between sequences. Not to be confused with "count-tabl"; perhaps one day we'll rename count.c because of this. Tue May 16 19:09:45 1995 Jim Blandy * lisp/gene-io.el (gene-format-define): Remove mention of content-matcher; that's redundant with header-regexp. (gene-format-content-matcher): Deleted. * lisp/gene-io.el (gene-io-header-format): New function. (gene-io-file-format-from-contents): Call it, instead of writing it out. Mon May 15 17:21:01 1995 Karl Fogel * lisp/gene-undo.el (gene-undo-record-selection-case): consolidation of code. * lisp/gene-search.el, lisp/gene-menus.el (gene-search-last-search-string): new cache var. (gene-search-last-gappy-regexp): new cache var. (gene-search-build-gappy-regexp): use & reset above two cache vars. (gene-search-disambiguate-base-then-regexpify): oops, function's name is `gene-search-disambiguate-base', not `gene-seq-disambiguate-base'. (gene-search-repeating-search): no need for this var any more. (gene-search-repeat-last-search): remove references to above. (gene-search-do-search): same. Don't bother to avoid recompilation of search string to gappy regexp here, now that regexps are cached automatically. Use new func `gene-search-highlight-match'. (gene-search-highlight-match): new func. Not only records overlay in global list, but also records the highlight for undo. (gene-search-unhighlight-all-matches): null the `gene-search-overlay-list' after mapping `delete-overlay' across it. (gene-search-matches-in-selection): new func. Added to `gene-menu-selection-command-menu'. (gene-search-base-disambiguation-table): in init loop, don't put regexp brackets around chars. We don't do that anymore. Sat May 13 03:12:02 1995 Karl Fogel * lisp/gene-consensus.el (gene-consensus-filter-column): consolidated. Fri May 12 21:36:17 1995 Karl Fogel * lisp/gene-search.el, lisp/gene-consensus.el (gene-search-base-disambiguation-table): hold all 256 characters, not just the 95 printing chars. (gene-search-modify-base-disambiguation-table): adjust for above change. Don't wrap in brackets; the caller is now responsible for that, since not every caller will be using the table entry as a direct regular expression. Add CHAR to `gene-search-ambiguous-characters'. General consolidation of code in this function. (gene-search-disambiguate-base): adjust for above change. (gene-search-disambiguate-base-then-regexpify): replaces old `gene-search-disambiguate-base'; wrapper for above new version of same. All callers changed. (gene-search-ambiguous-characters): new var. (gene-search-ambiguous-character-p): new func. (gene-consensus-generate-sequence-or-mask): be case-insensitive by upcase-ing all chars before counting them. (gene-consensus-disambiguate-vector): new func. Doesn't do much for now, because we're not sure exactly how this is supposed to work. Thu May 11 21:14:38 1995 Karl Fogel * lisp/gene-consensus.el (gene-consensus-sequence-or-mask-from-group): consolidated, take no more optional args. General cleanups. * lisp/gene-consensus.el (gene-consensus-make-dialog-box-buffer): pass "t" and "nil" as values in option string. (gene-consensus-sequence-or-mask-from-group): parse t and nil, instead of yes and no. * lisp/gene-menus.el, lisp/gene-consensus.el (gene-menu-sgroup-command-menu): offer one option, "Consensus Sequence or Mask". (gene-consensus-unparse-options-and-execute): unparse a MASK-P option from the string. No need for a MASK-P argument. (gene-consensus-mask-dialog-box): no need for this function now. (gene-consensus-sequence-dialog-box): same. (gene-consensus-generate-sequence): same (gene-consensus-generate-mask): same (gene-consensus-dialog-box): no need for MASK-P arg now. (gene-consensus-make-dialog-box-buffer): same. * lisp/gene-menus.el, lisp/gene-consensus.el (gene-consensus-filter-column): new name for `gene-consensus-threshold-passed-p'. All callers changed; square-dances will proceed as usual. Take optional argument MASK-P, return actual character if non-nil. (gene-consensus-generate-sequence-or-mask): new func, contains body of old `gene-consensus-generate-mask'. (gene-consensus-generate-mask): wrapper for above (passes MASK-P arg). (gene-consensus-generate-sequences): same (but does not pass MASK-P arg). (gene-consensus-dialog-box): generalized to handle masks or consensus sequences. Now takes MASK-P arg. (gene-consensus-mask-dialog-box): replaces old meaning of above. All callers changed; please check the numbers and dial again. (gene-consensus-sequence-dialog-box): same. (gene-consensus-make-dialog-box-buffer): take MASK-P arg, pass it along. (gene-consensus-unparse-options-and-execute): take MASK-P arg, pass it along. (gene-consensus-sequence-or-mask-from-group): replaces `gene-consensus-sequence-or-mask-from-group'. Takes MASK-P arg, passes it along. (gene-menu-sgroup-command-menu): offer both Mask and Sequence Consensus options. * lisp/gene-consensus.el (gene-consensus-threshold-passed-p): return the character that belongs in the mask, instead of an uninformative t or nil. (gene-consensus-generate-mask): use above new return value directly, instead of testing against it. Thu May 11 19:02:06 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-send-button-command): new var. (gene-dialog-setup-keymap): call above. (gene-dialog-insert-send-button): set above. Thu May 11 18:07:15 1995 Karl Fogel * lisp/gene-dialog.el, lisp/gene-consensus.el (gene-dialog-box-mode): set mode-line-format. (gene-consensus-dialog-box): pass height and width parameters to gene-show-frame. * lisp/gene-dialog.el (gene-dialog-previous-field): removed this redundant function. (gene-dialog-next-field): removed this redundant function. (gene-dialog-place-here-command): removed this redundant function. (gene-dialog-insert-label): don't take HERE-COMMAND or MOUSE-LOUD arguments. From now on, we assume the string has those properties when passed in. Do take optional argument NO-LANDING; unless non-nil, put `gene-dialog-start' property on the first pos in the label, as an aid to movement commands. Relevant callers now pass NO-LANDING. Wed May 10 20:45:23 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-setup-keymap): bind movement keys to movement functions. (gene-dialog-move-to-next-field): paren fix. (gene-dialog-move-to-previous-field): same. * lisp/gene-dialog.el, lisp/gene-consensus.el: Moved the misplaced paren that was improperly limiting the scope of a save-excursion. Removed all debugging messages. Hit self on the hammer with a head. * lisp/gene-consensus.el, lisp/gene-dialog.el (gene-dialog-box-mode): do standard major mode stuff. (gene-dialog-box-mode-map): new name for `gene-dialog-mode-map'. Debugging messages left in for now. * lisp/gene-dialog.el, lisp/gene-consensus.el (gene-dialog-setup-keymap): call `gene-menu-bar-make-hide-button' here, instead of requiring callers to do it. * lisp/gene-consensus.el (gene-consensus-make-dialog-box-buffer): call `gene-dialog-box-mode' early. * lisp/gene-dialog.el (gene-dialog-here-command): if no command property here, then set point. * lisp/gene-consensus.el (gene-consensus-make-dialog-box-buffer): call `gene-menu-bar-make-hide-button' after `gene-dialog-box-mode'. Wed May 10 17:44:08 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-mode-map): new var. (gene-dialog-setup-keymap): define in above map. Pass map to `use-local-keymap'. Wed May 10 17:38:20 1995 Karl Fogel * lisp/gene-consensus.el (gene-consensus-threshold-passed-p): ignore COUNTs of zero -- it's true that they are 100% of zero, but that doesn't interest the user. * lisp/gene-dialog.el (gene-dialog-setup-keymap): bind RETURN to run gene-dialog-local-command. * lisp/gene-consensus.el (gene-consensus-threshold-passed-p): float all numbers, for greater accuracy. If we don't do this, a vector with 7 `-'s and 1 `A' will report up to 99% consensus; if we float, then it's exactly 87%, as it should be. * lisp/gene-consensus.el (gene-consensus-generate-mask): only increase cur-total if we're counting this char. * lisp/gene-consensus.el (gene-consensus-make-dialog-box-buffer): put two newlines between buttons. * lisp/gene-consensus.el (gene-consensus-check-mask-name): removed this obsolete func. Tue May 9 20:53:28 1995 Karl Fogel * lisp/gene-consensus.el (gene-consensus-generate-mask): don't check mask name here, it's the wrong place. Tue May 9 20:41:28 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-here-command): removed debugging message. Tue May 9 20:41:00 1995 Karl Fogel * lisp/gene-windows.el (gene-arrange-windows): make sure that the alignment frame is selected when arranging windows. * lisp/gene-dialog.el (gene-dialog-hide-dialog-box): search all frames when getting the dialog window. * lisp/gene-dialog.el (gene-dialog-insert-label): take optional HERE-COMMAND argument. (gene-dialog-insert-send-button): pass above. * lisp/gene-consensus.el (gene-consensus-make-dialog-box-buffer): pass COMMAND arg to `gene-dialog-box-mode'. * lisp/gene-dialog.el (gene-dialog-setup-keymap): don't overbind. * lisp/gene-consensus.el (gene-consensus-make-dialog-box-buffer): call `gene-dialog-box-mode'. * lisp/gene-dialog.el (gene-dialog-insert-label): correct # args to `put-text-property'. Sheesh. * lisp/gene-dialog.el, lisp/gene-consensus.el gene-consensus-dialog-box-buffer): new cache var. (gene-consensus-this-sgroup): new var. (gene-consensus-dialog-box): new func. (gene-consensus-make-dialog-box-buffer): new func. (gene-dialog-label-color): new var. (gene-dialog-make-faces): use above. (gene-dialog-box-mode): new func. (gene-dialog-insert-label): take MOUSE-LOUD argument. (gene-dialog-insert-send-button): pass above argument. * lisp/gene-dialog.el (gene-dialog-setup-keymap): bind all mouse-drag events to nothing. * lisp/gene-consensus.el (gene-consensus-dialog-box): set the cached buffer var if it's nil. * lisp/gene-consensus.el (gene-consensus-dialog-box): pass frame parameters. * lisp/gene-dialog.el (gene-dialog-insert-label): take TANGIBLE arg. * lisp/gene-dialog.el (gene-dialog-hide-dialog-box): made interactive. (gene-dialog-insert-boolean-field): pass arguments to `gene-dialog-insert-radio-buttons' in correct form, too. * lisp/gene-dialog.el (gene-dialog-insert-boolean-field): pass arguments to `gene-dialog-insert-radio-buttons' in correct order. * lisp/gene-menus.el (gene-menu-sgroup-command-menu): call `gene-consensus-dialog-box' instead of prompting in minibuffer and then generating the mask. * lisp/gene-dialog.el (gene-dialog-issue-system-command): new name for `gene-dialog-send-command'. (gene-dialog-insert-send-button): funcall `gene-dialog-local-command', instead of assuming `gene-dialog-send-command'. * lisp/gene-dialog.el: Doc fixes. Tue May 9 15:35:16 1995 Karl Fogel * lisp/gene-consensus.el (gene-consensus-mask-from-group): just use name "mask". Tue May 9 15:24:37 1995 Karl Fogel * lisp/gene-mode-tools.el (gene-get-here-sym): fixed NO-FIDDLE arg. Mon May 8 23:07:19 1995 Karl Fogel * lisp/gene-locking.el, lisp/gene-mode-tools.el, lisp/gene-io.el (gene-get-here-sym): take NO-FIDDLE arg. This is a sanity-saver -- I don't think it's a good idea for `gene-get-here-sym' to take this arg, but I'm trying to track down something more important right now and need this. In any case, in the future, `gene-get-here-sym' will not be too smart for its own good anyway, and the NO-FIDDLE arg will be useless because `gene-get-here-sym' will never be tempted to fiddle. (gene-make-sym-list): pass above. (gene-setup-plists): same. Mon May 8 20:15:11 1995 Karl Fogel * lisp/gene-consensus.el (gene-consensus-mask-from-group): the word is "indel", not "gap". Mon May 8 20:10:25 1995 Karl Fogel * lisp/gene-consensus.el (gene-consensus-mask-from-group): eliminated spurious conditional. * lisp/gene-consensus.el (gene-consensus-mask-from-group): oops, correct order of arguments to `gene-sgroup-add-seq-to-group'. * lisp/gene-io.el, lisp/gene-consensus.el (gene-map-setup-properties): return final orgsym. (gene-io-place-sequences): return final orgsym. (gene-open-sequence): return the orgsym of the new sequence. (gene-consensus-mask-from-group): add the mask sequence to the group. Mon May 8 17:13:29 1995 Karl Fogel * lisp/gene-consensus.el, lisp/gene-menus.el, lisp/gene.el, lisp/Makefile.in (gene-consensus-check-mask-name): new func. (gene-consensus-generate-position-list): new func. (gene-consensus-threshold-passed-p): new func. (gene-consensus-generate-mask): new func. (gene-consensus-mask-from-group): new func. (gene-menu-sgroup-command-menu): added above new func. Added gene-consensus.el to the lisp Makefile.in, and require `gene-consensus' in gene.el. Fri May 5 16:34:33 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-end-of-alignment): made interactive. (gene-seq-beginning-of-alignment): same. Fri May 5 16:12:05 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-beginning-of-alignment): new name for `gene-seq-beginning-of-buffer'. Bound to M-<. (gene-seq-end-of-alignment): new name for `gene-seq-end-of-buffer'. Bound to M->. Fri May 5 15:49:29 1995 Karl Fogel * lisp/gene-io.el (gene-process-args): call `gene-do-window-sync' when all is said and done. Fri May 5 15:28:35 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-insert-boolean-field): don't bother to use backquote macro, just construct by hand. Fri May 5 15:11:11 1995 Karl Fogel * lisp/gene-undo.el (gene-undo): don't take the silly LAST-TIME arg; just don't do a recursive call if buffer-undo-list is nil. Thu May 4 23:33:14 1995 Karl Fogel * lisp/gene-undo.el (gene-undo): hah, we *did* handle nil buffer-undo-list, we just handled it badly. Handle differently, by passing new optional arg LAST-TIME. Thu May 4 23:28:10 1995 Karl Fogel * lisp/gene-undo.el (gene-undo): handle a nil buffer-undo-list. Hard to believe we didn't before... Thu May 4 21:09:29 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-insert-boolean-field): redefined in terms of `gene-dialog-insert-radio-buttons'. * lisp/gene-dialog.el (gene-dialog-insert-radio-buttons): don't pad left side of name with a space, since `gene-dialog-insert-label' does that already. (gene-dialog-here-command): start property searches from a slightly advanced position, so changes register in the right places. Wed May 3 20:41:40 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-here-command): pass LIMIT args to `previous-single-property-change' and `next-single-property-change'. (gene-dialog-insert-radio-buttons): handle DEFAULT arg correctly. Restructured somewhat. * lisp/gene-dialog.el (gene-dialog-insert-send-button): new func. (gene-dialog-send-command): new func, bogus definition for now. (gene-dialog-hide-dialog-box): new func, bogus definition for now. (gene-dialog-insert-radio-buttons): new func. (gene-dialog-here-command): handle radio-buttons specially. * lisp/gene-dialog.el (gene-dialog-insert-text-field): take optional arg DEFAULT-TEXT option, insert it if non-nil. * lisp/gene-dialog.el (gene-dialog-insert-text-field): pad the front of the option string with a space. (gene-dialog-insert-boolean-field): pad with spaces on both sides of yes-string and no-string. Don't put the now-superfluous space after YES and NO. * lisp/gene-dialog.el: Yay, working! Removed all debugging `sit-for's. * lisp/gene-frame.el (gene-make-all-faces): call `gene-dialog-make-faces'. * lisp/gene-dialog.el (gene-dialog-boolean-color): new var. (gene-dialog-make-faces): new func. (gene-make-all-faces): call above. (gene-dialog-insert-text-field): use new face `gene-dialog-label-face'. (gene-dialog-insert-boolean-field): same. Pad with space after YES and NO options. Use an overlay to mark the current choice; anonymous functions modified accordingly. (gene-dialog-compile-options): wrap in `save-excursion'. (gene-dialog-setup-keymap): take TESTING arg, if it's non-nil then don't do any keyboard bindings. (gene-dialog-insert-label): take care of padding with a space, so caller doesn't have to. Tue May 2 23:34:26 1995 Karl Fogel * lisp/gene-mode-tools.el (gene-mode-tools-make-faces): doc fix. Tue May 2 23:23:45 1995 Karl Fogel * lisp/gene-mode-tools.el (gene-get-here-source): if making up a source, put it on the symbol and the text too. * lisp/gene-mode-tools.el (gene-get-here-sym): come up with an orgsym for empty sequences too. * ChangeLog: Removed duplicate entry. * lisp/gene-io.el (gene-io-current-source-file): expand file name after reading. * lisp/gene-mode-tools.el (gene-get-here-source): if making up a source struct, give it the current source file as a filename, instead of nil. * lisp/gene-io.el (gene-io-current-file-format): get file format from the `gene-source' property on the sequence, instead of inspecting the file (which caused an infinite recursion from some callers). Tue May 2 20:35:13 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-insert-boolean-field): take DEFAULT arg. * lisp/gene-io.el (gene-io-current-source-file): new func, wrapper for fetches of the variable of the same name. If the var is nil, then prompt user for a filename, set var to that, and return it. All fetches changed to call this function instead of referring to the variable directly. Sun Apr 30 20:49:39 1995 Jim Blandy * readers/gdbm.c (get_tabl_entry): Use xmalloc and free, not alloca. The latter isn't as portable, and we don't use it often enough to make it worthwhile to have autoconf handle this for us. * readers/phylip-tabl.c (give_usage): Remember to escape all the newlines in the string. Sat Apr 29 18:48:27 1995 Jim Blandy * lisp/gene-io.el (gene-save-sequences-as): Save the sequences in the format of the current alignment. Don't save them in the format of the destination file; it may not exist, and we can't convert anyway. Fri Apr 28 00:47:57 1995 Jim Blandy * docs/ale.texi: Remove mention of importance of filename extensions to indicate file format. * Version 0.1.174. * lisp/gene-io.el: Try to detect file format by examining the file's headers. (gene-format-define): Document a new property, header-regexp. (gene-format-header-regexp): New accessor. (gene-io-file-format-from-contents): Fleshed out. Use the formats' header-regexp properties to try to decide which format FILE is in. (genbank, embl, fasta, phylip, gdbm): Add header-regexp properties. (gene-save-sequences-as): Compute the format of FILE once, not three times. * lisp/gene-io.el (gene-io-write-regions): Remove permission-checking code. (gene-save-sequences): Put it here, adapted for the new single-file-per-alignment semantics. Thu Apr 27 20:08:13 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-text-field-text-end): new func. (gene-dialog-insert-boolean-field): filled in. (gene-dialog-compile-options): new func. * lisp/gene-dialog.el (gene-dialog-setup-keymap): new func. (gene-dialog-here-command): new func. (gene-dialog-place-here-command): new func. (gene-dialog-beginning-of-field): new func. (gene-dialog-end-of-field): new func. (gene-dialog-field-bounds): new func. (gene-dialog-previous-field): new func. (gene-dialog-next-field): new func. (gene-dialog-move-to-previous-field): new func. (gene-dialog-move-to-next-field): new func. (gene-dialog-insert-boolean-field): new func, empty. (gene-dialog-insert-text-field): new func. (gene-dialog-insert-label): take OPTION-FUNC argument. * lisp/gene-selection.el (gene-sel-delete-selection-indels): removed the non-debugging sit-for. Thu Apr 27 03:51:45 1995 Jim Blandy * lisp/gene-io.el (gene-io-call-process-carefully): Name the frame *Errors*. Move the startup code to its own page. (gene-proces-args): If we get an error while reading an alignment file, bring up the alignment frame anyway, and make sure the *Errors* frame is on top. Wed Apr 26 21:57:35 1995 Karl Fogel * lisp/gene-error.el (gene-err-accumulated-errors-p): new func. (gene-err-display-accumulated-errors): don't display unless above returns non-nil. Wed Apr 26 20:41:39 1995 Karl Fogel * lisp/gene-selection.el, lisp/gene-menus.el (gene-sel-delete-selection-indels): replaces `gene-sel-cancel-selection-indels', which was blatantly misnamed. All callers changed. (gene-sel-delete-selection-indels): fixed o-b-o-e. (gene-sel-remove-gaps): removed this obsolete func. (gene-sel-do-remove-gaps): removed this obsolete func too. * lisp/gene-selection.el (gene-sel-save-selection-to-file): save in fasta format. * lisp/gene-seq-mode.el, lisp/gene-locking.el, lisp/gene-id-mode.el: Bound mouse-3 on vertical scrollbars in all relevant maps. * lisp/gene-locking.el: Bound scrollbars in `gene-status-mode-map'. * lisp/gene-display.el (gene-reverse-color-set): done. * lisp/gene-menus.el (gene-menu-build-settings-menu): added entry for reversing display. * lisp/gene-display.el (gene-color-set): added element `inverted-p'. (gene-reverse-color-set): depend on above. * lisp/gene-display.el (gene-reverse-color-set): make COLOR-SET default to the current color set. * lisp/gene-display.el: Fixed typo ("CHARACTER" for "character"). * lisp/gene-display.el (gene-color-set): have a NAME as part of the color set. (gene-color-sets): just list SETS, instead of alist NAMES --> SETS. (gene-make-color-set): take NAME arg. (gene-lookup-color-set): use new color-set structure. Pass NAME arg to above. (gene-generate-color-set-menu): use new color-set structure. (gene-current-color-set): new func. (gene-face-from-id): new func, shouldn't have had to write it, sheesh. (gene-color-character-internal): take optional BACKGROUND arg; if non-nil, color CHAR's background and give it a black foreground. (gene-color-character-background): new macro. (gene-reverse-color-set): new func. Tue Apr 25 23:49:48 1995 Jim Blandy * docs/ale.texi (Analysis): New chapter, with sections "Sequence Composition" and "Column Composition". Updated menus. Other minor changes. * docs/ale.texi (Phylogenetic Trees): Minor changes. Mention the "Views" menu. Tue Apr 25 22:57:01 1995 Karl Fogel * lisp/gene-dialog.el: Wrote some more about plans. * lisp/gene-dialog.el (gene-dialog-drag-horiz-only): new name for `db-drag-horiz-only'. (gene-dialog-drag-with-no-scroll): new name for `drag-with-no-scroll'. Tue Apr 25 20:18:40 1995 Jim Blandy * Makefile.in: Use ${MAKE} for recursive invocations, throughout. * Makefile.in (dist-dir): Don't use tar to make a copy of the patches tree; that includes the CVS directories in the distribution. Use some more sensitive `find' commands instead. * configure.in: If the ANSI C compiler `acc' is present, use it in favor of GCC and CC. Ale should use acc on G. B. Reilly's machines. Sun Apr 23 22:49:31 1995 Karl Fogel * lisp/gene-dialog.el (gene-dialog-insert-label): new func. Duplicates the one Jim already wrote, which I didn't see until it was too late. (gene-dialog-popup-dialog-box): new func, mostly empty. Fri Apr 21 16:20:18 1995 Karl Fogel * lisp/gene-dialog.el: Gave `gene-' prefixes to Jim's code. * lisp/gene-dialog.el, lisp/gene-mode-tools.el (gene-y-or-n-p): moved from gene-mode-tools.el to gene-dialog.el. (gene-read-char): same. (gene-read-char-confirmation-chars): same. * lisp/gene-dialog.el: Put in Jim's code from various mail messges. Kinda cute. * lisp/Makefile.in, lisp/gene.el: Incorporate new file "gene-dialog.el". * lisp/gene-dialog.el: New file, for dialog-box code, empty right now. Thu Apr 20 23:26:31 1995 Karl Fogel * lisp/gene.el: Require `gene-error'. * lisp/gene-error.el, lisp/gene-message.el, lisp/Makefile.in: Moved accumulated error code from gene-message.el to new file gene-error.el. * lisp/gene-message.el (gene-err-display-accumulated-errors): work with the new scheme, duh. * lisp/gene-io.el, lisp/gene-message.el, lisp/gene.el (gene-err-accumulated-error-list): removed this var. We're just going to accumulate directly into the buffer now. (gene-err-accumulated-error-buffer): new var. (gene-err-hide-accumulated-errors): refer to above new var, instead of `get-buffer-create'ing the buffer all over again. (gene-err-display-accumulated-errors): same. Don't take CLEAR arg anymore; we'll clear it some other way. (gene-err-hide-accumulated-errors): unless NOCLEAR, clear errors before hiding. (gene-err-accumulate-error): just add to the buffer. (gene-err-clear-accumulated-errors): just erase the buffer. (gene-startup): don't `gene-err-display-accumulated-errors' anymore, since we're going to do that somewhere in gene-io.el. (gene-startup-hook): call `gene-err-display-accumulated-errors'. * lisp/gene-locking.el (gene-locking-get-sequence-state): better error message. Thu Apr 20 17:44:26 1995 Jim Blandy * docs/ale.texi (History): Replace 'high-level language' with more explicit term. Thu Apr 20 17:24:07 1995 Jim Blandy * phylo/phylo.c, phylo/Makefile.in: Don't put the version number in the Makefile; that creates an unnecessary and annoying dependency of phylo.o on the Makefile. * phylo/Makefile.in (PROTOCOL_VERSION): Variable deleted. (phylo.o): Don't depend on Makefile. Don't define the PROTOCOL_VERSION CPP symbol from the similarly-named Make variable. * phylo/phylo.c (PROTOCOL_VERSION): #define this here. * readers/Makefile.in (LDFLAGS): New variable; accept value from configure script. (gdbm): Pass ${LDFLAGS} to linker. Thu Apr 20 16:51:08 1995 Karl Fogel * lisp/gene-selection.el (gene-sel-subst-char-in-selection): use `gene-error', not `error'. * lisp/gene-seq-mode.el (gene-seq-subst-char-in-sequence): check that char is a regular printing char. * docs/ale.texi: Moved History section to end. Thu Apr 20 16:40:16 1995 Jim Blandy * docs/ale.texi (History): Minor revisions to grammar, phrasing, texinfo details. Thu Apr 20 16:38:29 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-subst-char-in-sequence): use `gene-read-char' instead of duplicating its code by hand. * lisp/gene-search.el (gene-search-build-gappy-regexp): doc fix. * lisp/gene-search.el (gene-search-base-disambiguation-table): ambiguity codes which are supersets of other ambiguity codes should include those other ambiguity codes in their expansions. For example, Y->CUT && M->AC && W->AUT, therefore H->HMYWACUT, not just HACUT. Wed Apr 19 21:16:42 1995 Karl Fogel * lisp/gene-message.el, lisp/gene-clipboard.el: Percentage message abstractions. (gene-%-percentage-string): new var. (gene-%-last-raw-string): new var. (gene-%-output-string): new var. (gene-%-output-string-start-idx): new var. (gene-%-calculate-percentage): new func. (gene-%-build-message-string): new func. (gene-%-message): new func. (gene-cb-add-sgroup): use above for percentage messages. (gene-cb-cut-sgroup): same. Wed Apr 19 15:52:07 1995 Karl Fogel * lisp/gene-io.el (gene-tweak-sequence-name): new func, changes the ID name of a sequence. (gene-setup-plists): call above if organism is a duplicate. (gene-io-place-sequences): call `gene-arrange-windows', because tweaked sequence names are sometimes longer than we'd like. * docs/ale.texi: Chapters instead of unnumbered sections. Tue Apr 18 22:13:47 1995 Karl Fogel * docs/ale.texi: Documented the new selection- and group-color commands. Grand restructuring of whole file. Tue Apr 18 18:06:32 1995 Karl Fogel * lisp/gene-sgroup.el (gene-sgroup-get-displayed-p): replaces `gene-sgroup-group-displayed-p'. (gene-sgroup-get-displayed-p): new func. (gene-sgroup-display-group-internal): use above new func. (gene-sgroup-hide-group): same. Tue Apr 18 16:50:17 1995 Karl Fogel * lisp/gene-sgroup.el, lisp/gene-clipboard.el, lisp/gene-id-mode.el, lisp/gene-locking.el, lisp/gene-menus.el, lisp/gene-ann-mode.el (gene-sgroup-seq-here-in-group-p): removed this unused func. (gene-sgroup-get-face): replaces `gene-sgroup-group-face'. (gene-sgroup-get-name): replaces `gene-sgroup-group-name'. (gene-sgroup-get-mouse-face): replaces `gene-sgroup-group-mouse-face'. (gene-sgroup-get-group-by-name): replaces `gene-sgroup-get-group'. (gene-sgroup-set-face): new func. (gene-sgroup-set-mouse-face): new func. Mon Apr 17 21:43:19 1995 Karl Fogel * lisp/gene-seq-mode.el, lisp/gene-selection.el, lisp/gene-menus.el: `gene-sel-delete-' prefix replaced by `gene-sel-cancel-'. Except for `gene-sel-delete-selection-contents', since this matches the usual meaning of the word `delete'. Mon Apr 17 20:35:35 1995 Karl Fogel * lisp/gene-seq-mode.el, docs/ale.texi (gene-seq-mode-map): bound M-C-d to `gene-seq-delete-superfluous-gap-column'. Documented this. Mon Apr 17 17:16:38 1995 Karl Fogel * lisp/gene-selection.el, lisp/gene-menus.el (gene-sel-delete-selection-indels): new func. (gene-menu-selection-command-menu): entry for above. * lisp/gene-windows.el (gene-status-calculate-window-width): add 1 to width if vertical-scroll-bars are on. * lisp/gene-locking.el (gene-locking-sequence-state-p): doc fix. Fri Apr 14 22:08:32 1995 Karl Fogel * lisp/gene-io.el (gene-setup-plists): be smarter about generating ad-hoc `gene-source's. * lisp/gene-io.el, lisp/gene-clipboard.el (gene-io-place-sequences): update annotation. (gene-cb-add-sequence-data-do-ann): save-restriction before widen `gene-ann-buffer'. * lisp/gene-mode-tools.el, lisp/gene-io.el (gene-end-of-page-point): return point-max, not point, if no formfeed found. (gene-setup-plists): use the new ann, not the old one. * lisp/gene-io.el (gene-io-get-annotations-from-file-or-buffer): new func. (gene-io-insert-file-triplet): just use above. Don't save `gene-ann-buffer' in `ann-buffer'; `gene-ann-buffer' is global now. (gene-io-place-sequences): if the header buffer is not gene-ann-buffer, then put the annotations into gene-ann-buffer just like `gene-io-insert-file-triplet' does; else assume they're there already and do nothing. Thu Apr 13 16:56:04 1995 Karl Fogel * lisp/gene-io.el (gene-switch-to-buffer): if vertical scroll-bars are on, then make ID window a bit wider. Wed Apr 12 21:19:56 1995 Karl Fogel * lisp/gene-mode-tools.el (gene-complement-table): handle ambiguity codes rationally. Wed Apr 12 20:45:13 1995 Karl Fogel * lisp/gene-io.el (gene-io-make-and-add-annotation): paren fix. * lisp/gene-mode-tools.el, lisp/gene-io.el (gene-io-make-and-add-annotation): new func. (gene-get-here-source): use above, because gene-source structures want ann posn lists, not actual annotation text. * lisp/gene-translate.el (gene-trans-open-complement-sequence): don't record undo for the complementifying, just record it for the opening of the sequence. (gene-trans-open-reverse-complement-sequence): same. (gene-trans-open-reverse-sequence): same, in spirit at least. * lisp/gene-undo.el (gene-undo): if buffer-undo-list is nil, don't mark buffer unchanged, because we've run out of undo information. * lisp/gene-translate.el (gene-trans-open-reverse-complement-sequence): doc fix. * lisp/gene-translate.el, lisp/gene-mode-tools.el, lisp/gene-menus.el (gene-organism-seq-data): new func. (gene-organism-seq-data-unpadded): new func. (gene-pave-with-string): LOC defaults to point. (gene-complement-table): new var. (gene-complement-char): replaces `gene-base-complement'. Uses above table. All callers changed. (gene-trans-open-derived-sequence-internal): new func. (gene-trans-open-derived-sequence): new func, wraps above. (gene-trans-open-blank-derived-sequence): new func, same. (gene-trans-open-blank-aminos): use above. (gene-trans-reverse-string): new func. (gene-trans-complementify-sequence): new func. (gene-trans-open-complement-sequence): new func. (gene-trans-open-reverse-complement-sequence): new func. (gene-menu-build-seq-menu): added entries for Reverse, Complement, and Reverse Complement. Tue Apr 11 22:15:43 1995 Karl Fogel * docs/ale.texi (Cut - Copy - Paste): new section, replaces "Cutting and Pasting". Brought up-to-date with the state of the universe. * lisp/gene-clipboard.el (gene-sequences-to-x-selection-buffer): new func. (gene-cb-copy-sequence): call above. (gene-cb-cut-sequence): same. (gene-sgroup-to-x-selection-buffer): new func, wrapper for `gene-sequences-to-x-selection-buffer'. (gene-cb-copy-sgroup): call above. (gene-cb-cut-sgroup): same. Tue Apr 11 18:16:10 1995 Karl Fogel * lisp/gene-menus.el (gene-menu-build-edit-menu): added entry for emptying alignment. * lisp/gene-seq-mode.el, lisp/gene-menus.el, lisp/gene-mode-tools.el (gene-make-obarray): new func. (gene-obarray): just init to result of calling above. (gene-seq-empty-alignment): new func. * docs/ale.texi (Installation): up-to-date w/ our new config & install scheme. * lisp/gene-undo.el (gene-saved-flag): init to t instead of nil. This way we can use this to tell undo if any saves have occurred at all, as well as whether or not this is the most recent save. (gene-undo): in the `gene-unmodified-marker' case of the `cond', only mark the buffer unmodified if no saves have happened yet. Counterintuitively, this means only if `gene-saved-flag' is t; the reason this works is that we would only reach this undo event if either no saves had happened, or a save had been undone. In the first instance, the flag is set to t because that's its initial value. In the second case, the flag will be nil, and we don't want to mark the buffer as unchanged. Sat Apr 8 00:54:03 1995 Jim Blandy * Version 0.1.160. * analyses/Makefile.in (check-bases): Make the script executable. Sat Apr 8 00:50:07 1995 Jim Blandy * Makefile.in (uninstall): Formatting tweak. * ale.in: Doc fix. * configure.in: Add missing quote to the line invoking config.guess. * docs/Makefile.in (PREFIXDIR): Let configure set this; don't hard-code in /usr/local. Sat Apr 8 00:08:45 1995 Jim Blandy * readers/Makefile.in, phylo/protocol.texi, phylo/Makefile.in, lisp/Makefile.in, docs/Makefile.in, analyses/Makefile.in, configure.in, Makefile.in: Let autoconf find the path for Emacs. * Makefile.in (EMACS): Set to @EMACS@. (all): No need to pass EMACS down to lisp/Makefile; configure edits the value into lisp/Makefile itself. * lisp/Makefile.in (EMACS): Receive a value from the configure script. Make the 'uninstall' target work again. * Makefile.in (COMMONLIBDIR): New variable, to name the lib/ale directory, so the uninstall target can delete it. (LIBDIR): Set according to COMMONLIBDIR. (uninstall): Handle only the ale script itself here. Recurse on submakefiles to deal with the rest. * analyses/Makefile.in (uninstall): New target. * docs/Makefile.in (uninstall): New target. * lisp/Makefile.in (uninstall): New target. * phylo/Makefile.in (uninstall): New target. * readers/Makefile.in (uninstall): New target. Include the patches in the distribution. * patches: New subdirectory. * Makefile.in (dist-dir): Include the patches in ${DISTDIR}. * Makefile.in (install): Install ale under two names: ale and ale-${VERSION}. This means that you can have two separate versions of ale installed simultaneously, and invoke them both. Plain `ale' invokes the last one you installed, if you haven't uninstalled it. * Makefile.in (install): Print blank lines here, not in submakefiles, so the "Entering/Leaving directory ..." messages come at the right place. USELESS FIDGETING!!! * analyses/Makefile.in, docs/Makefile.in, lisp/Makefile.in, phylo/Makefile.in, readers/Makefile.in: Corresponding changes. * Makefile.in (install): No need to pass ARCHDIR down to readers; configure edits the value into readers/Makefile itself. * configure.in: Don't try to build the gdbm reader unless we can find both the GDBM library and its header file. Check in ${prefix}/include, too. * readers/Makefile.in (CPPFLAGS): New variable, set by configure. (gdbm.o): Pass CPPFLAGS to the compiler. * analyses/Makefile.in (EXECS): Include check-bases. (SCRIPTS): Removed; there's no longer a need to distinguish scripts from other executables, since they're all made from other source files now, and can all be deleted by the `clean' target. (all): Just depend on EXECS, not SCRIPTS. The doc file shouldn't depend on the Makefile, since the Makefile is recreated every time we run configure. The version number in a manual should never be automatically updated anyway; it should only change when the manual is actually brought up to date. * protocol.texi: Set the version number here explicitly, rather than @including protocol-version.texi. * docs/Makefile.in (protocol.info, protocol.dvi): Don't depend on protocol-version.texi. (protocol-version.texi): Target deleted. (dist-dir): Don't distribute protocol-version.texi. Fri Apr 7 23:48:26 1995 Jim Blandy * README: Updated for autoconfiscated installation procedure. Fri Apr 7 23:22:27 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-mode): put `gene-mark-modified' back into `first-change-hook'. * lisp/gene-seq-mode.el, lisp/gene-undo.el, lisp/gene-io.el (gene-saved-flag): new flag var. (gene-record-saved-state): new func, puts a new kind of special marker into the undo list, & sets above var to t. (gene-undo): do a cond on the custom record, so we can handle special markers more flexibly. If see a save-marker, and `gene-saved-flag' says undo has not previously reached most recent save, then mark unmodified. (gene-mark-first-modified): removed this func. (gene-mark-save): call new func `gene-record-saved-state'. (gene-seq-mode): put `gene-mark-save', not `gene-mark-unmodified', in `gene-save-hook'. (gene-io-place-sequences): if alignment was empty, then call `gene-record-unchanged-state'. Fri Apr 7 19:11:52 1995 Karl Fogel * Makefile.in (all): create gene-version.el before trying to build the rest of the lisp. Fri Apr 7 17:37:00 1995 Karl Fogel * lisp/gene-undo.el, lisp/gene-seq-mode.el, lisp/gene-ann-mode.el, lisp/gene-io.el (gene-modified-p): `gene-seq-' prefix became `gene-'. All callers changed. Moved from gene-seq-mode.el to gene-undo.el. (gene-mark-first-modified): same. (gene-mark-modified): same. (gene-mark-unmodified): same. Fri Apr 7 16:57:26 1995 Jim Blandy * Makefile.in (Makefile, configure): New targets. They won't work perfectly, but they'll catch the most common cases. Fri Apr 7 04:21:21 1995 Jim Blandy * lisp/gene-message.el (gene-err-display-accumulated-errors, gene-err-hide-accumulated-errors): Call the frame "*Warnings*" instead of "*Non-fatal Errors*". * readers/Makefile.in, phylo/Makefile.in, lisp/Makefile.in, lisp/gene.el, docs/Makefile.in, analyses/Makefile.in, analyses/check-bases.sh, Makefile.in, ale.in, configure.in: Put the lisp files and utility programs in their own directories, not in the general public's lisp and executable directories. * Makefile.in (VERSION): Let configure determine this; that way, it gets propagated into all the submakefiles. (ARCHITECTURE): New variable --- the name of the host architecture. (PREFIXDIR): Let autoconf figure this out. If Emacs is in FOOBIE/bin, use FOOBIE as the prefix. Default to /usr/local, of course. (LIBDIR): Include the version number in this pathname. This allows you to have more than one version of ALE installed simultaneously. (ARCHDIR): New path for utility programs. ARCHITECTURE is included in the path; this allows you to have ALE installed for two architectures simultaneously on the same filesystem. (LISPDIR): Put this under LIBDIR, not in the general Emacs Lisp directory. * configure.in: Guess a value for `prefix' by looking for Emacs. Replace @VERSION@ with the current ALE version. This is where it's set now. Call config.guess to make up a value for ARCHITECTURE. Try to avoid passing values of variables down to submakefiles; doing so makes the submakefiles not work correctly when called directly. Have configure substitute the values in directly. * Makefile.in (all): Don't pass LISPDIR down. We'll get rid of EMACS, too, in a while. * analyses/Makefile.in (VERSION, ARCHITECTURE, PREFIXDIR, BINDIR, LIBDIR, ARCHDIR): New variables, some set by configure. * docs/Makefile.in (VERSION, ARCHITECTURE, PREFIXDIR, INFODIR): New variables, some set by configure. * lisp/Makefile.in (VERSION, ARCHITECTURE, PREFIXDIR, LIBDIR, LISPDIR): New variables, some set by configure. * phylo/Makefile.in (VERSION, ARCHITECTURE, PREFIXDIR, LIBDIR, ARCHDIR): New variables, some set by configure. * readers/Makefile.in (VERSION, ARCHITECTURE, PREFIXDIR, LIBDIR, ARCHDIR): New variables, some set by configure. Tell the ale script and the lisp code where to find the lisp code and the utility programs. * Makefile.in (ale): Edit the values of LISPDIR and ARCHDIR into the ale script. * ale.in: Pass the values of LISPDIR and ARCHDIR to emacs in the environment variables ALE_LISPDIR and ALE_ARCHDIR. * lisp/gene.el: Add the values of ALE_LISPDIR and ALE_ARCHDIR to load-path and exec-path, respectively. Tell check-bases where to find the ALE utility programs. * Makefile.in (all): Pass the ARCHDIR variable when recursing in analyses. * analyses/check-bases.sh: Renamed from check-bases; leave a spot for the Makefile to edit in a value for ARCHDIR. * analyses/Makefile.in (SOURCES): Include check-bases.sh, not check-bases. (check-bases): Construct this from check-bases.sh, providing a value for ARCHDIR. Let each subdirectory install itself. * Makefile.in (install): Install the ale script, and recurse on the subdirectories. * analyses/Makefile.in (install): New target. * docs/Makefile.in (install): New target. * lisp/Makefile.in (install): Make the directory LISPDIR if it doesn't exist. * phylo/Makefile.in (install): New target. * readers/Makefile.in (install): New target. * Makefile.in (dist, dist-dir): Invoke the top-level dist-dir target first, and let it create the top-level distribution directory; this is more symmetrical. If they don't seem to have the gdbm library installed, don't build the gdbm executable. There's no point in halting the whole build just because we can't support GDBM files. * configure.in: Check if the GDBM library is available. If it is, set the output variable GDBM_EXEC to 'gdbm'; else, set it to '' and display a warning. Set LIBS appropriately, too. * readers/Makefile.in (GDBM_EXEC): New variable. Configure sets this to `gdbm' if the GDBM library is installed, or '' otherwise. (EXECS): Cite GDBM_EXEC, rather than gdbm itself. Thu Apr 6 20:50:17 1995 Karl Fogel * lisp/gene-menus.el (gene-menu-popup-sgroup-command-menu): handle vertical motion. (gene-menu-popup-seq-menu): don't sync ID highlight bar by hand; it's not necessary, and handling vertical motion does it anyway. Thu Apr 6 20:17:45 1995 Karl Fogel * lisp/gene-io.el (gene-io-place-sequences): hide any nearby displayed sgroups while inserting a new sequence ID, so we don't stretch the overlay. * lisp/gene-seq-mode.el, lisp/gene-io.el (gene-open-sequence-file): error if alignment not empty. (gene-ctl-x-map): new prefix keymap. Bound some things into it. * lisp/gene-undo.el (gene-undo): if no more undo information, then maybe record unchanged state and call `gene-undo' recursively. * lisp/gene-menus.el (gene-menu-popup-seq-menu): handle vertical motion. Update ID highlight. * lisp/gene-clipboard.el (gene-cb-add-sequence): if sequence already in clipboard, remove it and then add it again. This way, user always gets most recent copy of the sequence in the clipboard. (gene-cb-add-sgroup): same idea. Thu Apr 6 00:45:58 1995 Jim Blandy * readers/Makefile.in, phylo/Makefile.in, lisp/Makefile.in, docs/Makefile.in, analyses/Makefile.in, Makefile.in (dist-dir): Include Makefile.in in the distribution, not Makefile. * config.guess: Initial revision. * readers/Makefile.in, phylo/Makefile.in, lisp/Makefile.in, docs/Makefile.in, analyses/Makefile.in, Makefile.in, configure.in: Ale has been autoconfiscated. (configure.in): New autoconf input script. (Makefile.in, analysis/Makefile.in, docs/Makefile.in, lisp/Makefile.in, phylo/Makefile.in, readers/Makefile.in): New makefile templates; the configure script (made by autoconf from configure.in) produces makefiles from these. (Makefile, analysis/Makefile, docs/Makefile, lisp/Makefile, phylo/Makefile, readers/Makefile): Deleted; these are now produced automatically by the configure script. Wed Apr 5 23:47:51 1995 Karl Fogel * lisp/gene-menus.el, lisp/gene-clipboard.el (gene-cb-cut-sgroup): handle vertical motion. (gene-cb-cut-sequence): same. (gene-cb-paste-sgroup): same (gene-cb-paste-sequence): same. * lisp/gene-clipboard.el, lisp/gene-menus.el (gene-cb-paste-sequence): new wrapper func. (gene-cb-paste-sgroup): new wrapper func. (gene-menu-popup-paste-menu): call above. * lisp/gene-seq-mode.el (gene-seq-mode): make `first-change-hook' a local variable. * lisp/gene-undo.el (gene-undo-register-method): new name of `gene-record-undo-method'. All callers changed. (gene-undo): apply `funcall' to the method, instead of `eval'ling it. (gene-undo-record-region-case): no more need for protective quoting. (gene-undo-record-selection-case): same. (gene-undo-record-selection-drag): same. (gene-undo-record-selection-justification): same. (gene-undo-record-sequence-delete): same. (gene-undo-record-sequence-open): same. Wed Apr 5 22:08:13 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-mode): add to `gene-save-hook' and `first-change-hook' here, not at the top-level. * lisp/gene-seq-mode.el (gene-seq-mark-first-modified): be in seq buffer. * lisp/gene-seq-mode.el (gene-seq-mark-first-modified): function's name is `gene-record-unchanged-state', not `gene-seq-record-unchanged-state'. * lisp/gene-seq-mode.el (gene-seq-mark-first-modified): new func. (first-change-hook): call above, not below. (gene-seq-mark-modified): don't call `gene-record-unchanged-state'. What the hell was it doing here, anyway? Also, make sure we're in seq buffer, instead of asking whether we are. Golly, I just don't know what I was thinking when I first wrote this function. Sheesh. * lisp/gene-clipboard.el (gene-cb-sequence-in-clipboard-p): new func. (gene-cb-add-sgroup): handle case where part of the group is already in the clipboard. That is, user creates group FOO, cuts it to clipboard. Then adds some sequences to FOO, cuts it to clipboard, again. We now handle this scenario by adding to the group's clipboard entry only those sequences which were not there already. * lisp/gene-clipboard.el (gene-cb-add-sequence): message if SYM is already in clipboard, instead of practicing silent betrayal. * lisp/gene-clipboard.el, lisp/gene-undo.el (gene-undo-record-sequence-delete): don't pass REVERSE-FLAG arg; it's not necessary. It was a conceptual bug, though it did no harm. (gene-cb-add-sequence-data): don't take REVERSE-FLAG arg. (gene-cb-add-sequence-data-do-id): same. (gene-cb-add-sequence-data-do-ann): same. (gene-cb-add-sequence-data-do-seq): same. * lisp/gene-undo.el (gene-undo-record-sequence-delete): REVERSE-FLAG is the fourth argument to `gene-cf-add-sequence-data', not the third. * lisp/gene-undo.el (gene-undo-message): new var. (gene-undo): use above if non-nil, else use standard message. Wed Apr 5 18:20:52 1995 Karl Fogel * lisp/gene-clipboard.el, lisp/gene-locking.el, lisp/gene-undo.el (gene-lock-status-update-needed): new flag var. (gene-cb-insert-sequence-internal): set above flag var to t. (gene-status-buffer-update): set above flag var to nil. (gene-undo): if above flag var is non-nil, then update the status buffer. Doing so clears the flag. * lisp/gene-clipboard.el, lisp/gene-undo.el (gene-cb-insert-then-remove-sequence): new func. (gene-undo-record-sequence-delete): use above in place of `gene-cb-insert-sequence-internal'. (gene-cb-narrow-to-object): doc fix, note below. (gene-cb-insert-sgroup): widen the clipboard when done. (gene-cb-insert-sequence-internal): same. * lisp/gene-clipboard.el (gene-cb-show-clipboard): new func, for debugging only. * lisp/gene-undo.el (gene-undo-record-sequence-delete): quote clipboard correctly. * lisp/gene-undo.el, lisp/gene-clipboard.el, lisp/gene-seq-mode.el (gene-seq-delete-sequence): record undo again. (gene-undo-record-sequence-delete): pass new REVERSE-FLAG argument to `gene-cb-add-sequence-data'. (gene-cb-add-sequence-data): take optional STACK-FLAG argument. (gene-cb-add-sequence-data-do-id): same. If non-nil, insert new data at point-min instead of point-max. (gene-cb-add-sequence-data-do-ann): same. (gene-cb-add-sequence-data-do-seq): same. (gene-cb-insert-sequence-internal): don't update lock-status buffer. (gene-cb-insert-sequence): do update lock-status-buffer. * lisp/gene-seq-mode.el (gene-seq-delete-sequence): don't record undo until it's working. Tue Apr 4 16:14:27 1995 Karl Fogel * lisp/gene-menus.el (gene-menu-popup-paste-menu): doc string. (gene-menu-popup-cb-item-remove-menu): doc string. (gene-menu-popup-cb-all-remove-menu): doc string. * lisp/gene-menus.el (gene-menu-popup-cb-item-remove-menu): no need to compute line. * lisp/gene-menus.el (gene-menu-popup-cb-all-remove-menu): take vestigial SYM arg. * lisp/gene-io.el (gene-setup-plists): damn typoes. * lisp/gene-clipboard.el, lisp/gene-menus.el (gene-cb-remove-object): if PROPERTY and/or VALUE is nil, then clean out the whole clipboard. (gene-menu-build-clipboard-menu): take TITLE arg. (gene-menu-popup-clipboard-menu): take TITLE arg, pass it along to above. (gene-menu-popup-paste-menu): call above with TITLE arg. (gene-menu-popup-cb-item-remove-menu): new func. (gene-menu-popup-cb-all-remove-menu): new func. (gene-menu-build-seq-menu): added entries for above two. (gene-menu-build-edit-menu): added entries for above two. * lisp/gene-sgroup.el, lisp/gene-clipboard.el, lisp/gene-io.el (gene-cb-add-sequence): don't error if seq is already present; just don't do anything. (gene-sgroup-reinstate-seq-into-groups): new func. (gene-setup-plists): call above. Also start monitoring SYM's position again, if it was being monitored. Tue Apr 4 14:27:16 1995 Karl Fogel * lisp/gene-io.el (gene-setup-plists): fix source handling -- so it works. * lisp/gene-io.el (gene-setup-plists): fix source handling. Tue Apr 4 14:07:22 1995 Karl Fogel * lisp/gene-mode-tools.el, lisp/gene-io.el (gene-init-organism-sym): take optional SYM arg. (gene-setup-plists): insure that the organism-sym gets the correct properties under all circumstances. Tue Apr 4 13:38:52 1995 Karl Fogel * lisp/gene-clipboard.el gene-cb-cut-sequence): doc and message fix. (gene-cb-cut-sgroup): doc and message fix. Tue Apr 4 13:35:11 1995 Karl Fogel * lisp/gene-menus.el, lisp/gene-clipboard.el (gene-cb-copy-sequence): new wrapper func. (gene-cb-copy-sgroup): new wrapper func. (gene-cb-cut-sequence): new wrapper func. (gene-cb-cut-sgroup): new wrapper func. (gene-menu-build-seq-menu): use above. (gene-menu-sgroup-command-menu): use above. * lisp/gene-undo.el, lisp/gene-seq-mode.el (gene-seq-delete-sequence): take optional NOUNDO arg. (gene-undo-record-sequence-open): pass above arg. * lisp/gene-clipboard.el (gene-cb-insert-sequence): fixed typo. Tue Apr 4 12:55:35 1995 Karl Fogel * lisp/gene-undo.el, lisp/gene-clipboard.el, lisp/gene-seq-mode.el (gene-undo-sequence-clipboard): new var. (gene-undo-record-sequence-delete): filled in definition. (gene-seq-delete-sequence): call above inside let. (gene-cb-insert-sequence-internal): was `gene-cb-insert-sequence-internal'. Now takes CLIPBOARD arg. (gene-cb-insert-sequence): just call above with `gene-cb-sequence-clipboard' as CLIPBOARD. * lisp/gene-seq-mode.el, lisp/gene-undo.el, lisp/gene-clipboard.el: Deleted all the old code from gene-clipboard.el. (gene-undo-record-sequence-cut): no more need for this func. (gene-undo-record-sequence-paste): likewise. (gene-undo-record-sequence-delete): new func, empty. (gene-seq-delete-sequence): call above. Tue Apr 4 12:20:48 1995 Karl Fogel * lisp/gene-clipboard.el, lisp/gene-menus.el (gene-cb-sequence-clipboard-empty-p): new func. (gene-cb-sgroup-clipboard-empty-p): new func. (gene-clipboard-empty-p): new func. (gene-cb-sgroup-in-sgroup-clipboard-p): get the property name right. (gene-cb-make-sequence-menu): new func. (gene-cb-make-sgroup-menu): new func. (gene-menu-build-clipboard-menu): use above two new funcs. (gene-menu-popup-paste-menu): check listp, now, not stringp, since we're using actual group objects and not their names. (gene-menu-popup-paste-menu): call new clipboard functions (!). (gene-menu-build-seq-menu): same. (gene-menu-sgroup-command-menu): same. Tue Apr 4 11:40:43 1995 Karl Fogel * lisp/gene-mode-tools.el, lisp/gene-clipboard.el, lisp/gene-io.el (gene-setup-plists): check for uniqueness of organism-sym here. If this check turns out to be too time-costly, we can pass a `force-unique' flag or something, so that we don't even need to bother checking when it would be impossible (at startup, for example). (gene-init-organism-sym): take optional SOURCE arg. (gene-cb-add-sgroup): don't nreverse the sequences. * lisp/gene-clipboard.el (gene-cb-add-sequence-data-do-id): take START and END args, not a NAME arg. (gene-cb-add-sequence-data): pass above the correct args. * lisp/gene-clipboard.el (gene-cb-add-sequence-data-do-id): don't take POS arg. (gene-cb-add-sequence-data-do-seq): same. (gene-cb-add-sequence-data-do-ann): same. (gene-cb-insert-sgroup): new name of `gene-cb-insert-group'. Pass the right clipboard and property name. Tue Apr 4 09:56:35 1995 Karl Fogel * lisp/gene-clipboard.el (gene-cb-add-sequence-data-do-ann): widen in gene-ann-buffer. * lisp/gene-clipboard.el (gene-cb-add-sequence-data-do-seq): take optional SGROUP-MARKER arg. (gene-cb-add-sequence-data-do-ann): take optional SGROUP-MARKER arg. (gene-cb-add-sequence-data): take optional SGROUP-MARKER arg. (gene-cb-remove-sequence): pass CLIPBOARD arg. (gene-cb-remove-sgroup): pass CLIPBOARD arg. * lisp/gene-clipboard.el (gene-cb-insert-sequence): filled in definition. (gene-cb-insert-group): same. (gene-cb-narrow-to-object): search from point-min, not point. * lisp/gene-io.el (gene-setup-plists): fixed `let'. * lisp/gene-io.el (gene-setup-plists): `elt's args are LIST NUM, not NUM LIST. duh. * lisp/gene-io.el (gene-map-setup-properties): take FILE and FORMAT args. Things only worked before because of happy dynamic binding, whew. (gene-setup-plists): take FILE and FORMAT args, instead of SOURCE. If either of FILE and FORMAT is nil, then we build new `gene-source' structs for each sequence. (gene-io-place-sequences): made FILE and FORMAT args optional. If they are omitted, then gene-setup-plists will try to deduce them when the time comes. * lisp/gene-clipboard.el (gene-cb-insert-sequence-data): no more need for this func. Tue Apr 4 07:40:19 1995 Karl Fogel * lisp/gene-clipboard.el: New prefix `gene-cb' instead of `gene-clipboard'. (gene-clipboard): no need for this var. (gene-cb-add-sequence): error if the sequence is already present in the clipboard. (gene-cb-sequence-buffers): was `gene-cb-sequence-buffer', became a list of three buffers. (gene-cb-sgroup-buffers): was `gene-cb-sgroup-buffer', became a list of three buffers. (gene-cb-get-id-buffer): new accessor func. (gene-cb-get-ann-buffer): new accessor func. (gene-cb-get-seq-buffer): new accessor func. (gene-cb-sequence-in-seq-clipboard-p): new func. (gene-cb-sgroup-in-sgroup-clipboard-p): new func. (gene-cb-add-sequence-data-do-id): new func. (gene-cb-add-sequence-data-do-seq): new func. (gene-cb-add-sequence-data-do-ann): new func. (gene-cb-widen): new func. (gene-cb-narrow-to-object): new func, winning beyond belief. (gene-cb-remove-object): new func, same. (gene-cb-remove-sequence): new func, just use above. (gene-cb-remove-sgroup): new func, just use above. * lisp/gene-mode-tools.el (gene-organism-default-source): new inline func. Mon Apr 3 21:33:59 1995 Karl Fogel * lisp/gene-io.el, lisp/gene-clipboard.el, Makefile (gene-clipboard-add-sgroup): reverse the list of sequences in the group, so that they appear in the correct order in the clipboard. Error if group already present. Later, we will deal with this better; see comment in code. (gene-map-setup-properties): new func, abstracts out code from `gene-io-place-sequences'. (gene-io-place-sequences): just call above. Mon Apr 3 21:27:21 1995 Jim Blandy * lisp/gene-locking.el (gene-make-sym-list): Bind sym outside the loop, and use setq instead of let within the loop. I think this is faster. (gene-status-insert-buttons): Use one call to set-text-properties, instead of four calls to put-text-property. I think this is faster. Mon Apr 3 20:26:08 1995 Karl Fogel * lisp/gene-translate.el, lisp/gene-seq-mode.el, lisp/gene-selection.el, lisp/gene-mode-tools.el, lisp/gene-posmon.el, lisp/gene-id-mode.el, lisp/gene-locking.el, lisp/gene-menus.el (gene-organism-in-alignment-p): new func. (gene-organism-name): default to sequence at point. Property `gene-org-id' changed to `gene-org-short-name' everywhere. All functions which used to grab the property manually now do so through `gene-organism-name'. * lisp/gene-clipboard.el (gene-clipboard-remove-sequence-data): don't take a SYM arg, just assume that point is correctly set by the caller. All callers changed. Mon Apr 3 19:08:01 1995 Jim Blandy * lisp/gene-undo.el (gene-record-undo-method): Just use a simple save-excursion, rather than a gene-save-excursion-in. This function is called in a heavy loop while reading sequences, so its performance is important. Mon Apr 3 19:06:05 1995 Karl Fogel * lisp/gene-clipboard.el, lisp/gene.el: Provide and require `gene-clipboard'. Fri Mar 31 23:58:33 1995 Karl Fogel * lisp/gene-sgroup.el (gene-sgroup-canonicalize-group): new func. (gene-sgroup-make-group-from-sequences): use above. * lisp/gene-selection.el (gene-sel-remove-selection-fragments-to-eol): new func, code factored out from `gene-sel-remove-seq-from-all-selections'. (gene-sel-remove-seq-from-all-selections): call above to do the dirty work. * lisp/gene-clipboard.el (gene-clipboard-sequence-buffer): disable undo here. (gene-clipboard-sgroup-buffer): disable undo here. (gene-clipboard-add-sequence-data): new func. (gene-clipboard-add-sequence): use above. (gene-clipboard-add-sgroup): same. (gene-clipboard-remove-sequence-data): new func. (gene-clipboard-remove-sequence): use above. (gene-clipboard-remove-sgroup): same. (gene-clipboard-insert-sequence-data): new func. * lisp/gene-clipboard.el (gene-clipboard-sgroup-buffer): new var. (gene-clipboard-sequence-buffer): new var. (gene-clipboard): new var. (gene-clipboard-add-sequence): new func, empty. (gene-clipboard-add-sgroup): new func, empty. (gene-clipboard-remove-sequence): new func, empty. (gene-clipboard-remove-sgroup): new func, empty. (gene-clipboard-insert-sequence): new func, empty. (gene-clipboard-insert-group): new func, empty. (gene-clipboard-uniqify-sequence): new func, empty. (gene-clipboard-uniqify-sgroup): new func, empty. * lisp/gene-clipboard.el: New name of "gene-cut-paste.el". * lisp/Makefile: "gene-cut-paste.el" is now "gene-clipboard.el". * lisp/Attic/gene-cut-paste.el: Wrote out plans, ahh, relief. Thu Mar 30 23:58:58 1995 Karl Fogel * docs/ale.texi: Added Niels' name to the credits (he has written the tutorial). * docs/ale.texi: Describe new file IO scheme, not old one. * lisp/gene-io.el (gene-read-selected-sequences): if alignment is empty before the read, then set the current source file. Thu Mar 30 23:08:46 1995 Karl Fogel * lisp/gene-io.el (gene-merge-sequences-internal): replaces `gene-save-sequences-internal'. (gene-save-sequences): if GDBM, then merge; else save as before. * lisp/gene-menus.el: Disable "Copy" options until we have things settled. * lisp/gene-cut-paste.el: Talk about problems and plans. * lisp/gene-cut-paste.el (gene-cut-sequence): message the user. (gene-copy-sequence): massage the user. (gene-copy-or-cut-sequence-to-clipboard): if copy, not cut, then intern a new organism symbol and put it on the seq data. * lisp/gene-cut-paste.el: progress, but not yet done... Thu Mar 30 18:18:28 1995 Karl Fogel * lisp/gene-seq-mode.el, lisp/gene-cut-paste.el, lisp/gene-menus.el (gene-copy-or-cut-sequence-to-clipboard): was `gene-cut-sequence'. Takes new argument, IS-CUT, indicating that this is a cut. Will be internal helper for new `gene-cut-sequence' and `gene-copy-sequence'. (gene-cut-sequence): now just a wrapper around above. (gene-copy-sequence): new func. (gene-copy-group): new func. (gene-sequence-clipboard): new name for `gene-cutted-sequence-alist'. (gene-group-clipboard): new name for `gene-cutted-group-alist'. (gene-menu-sgroup-command-menu): changed menu-entry titles. (gene-menu-build-seq-menu): added Copy entry. (gene-menu-sgroup-command-menu): added Copy entry. Thu Mar 30 17:43:25 1995 Karl Fogel * lisp/gene-menus.el (gene-menu-build-file-menu): grey out "Open" if alignment is not empty. Wed Mar 29 22:10:26 1995 Karl Fogel * demo-data/demo.phylo, demo-data/demo.gb: added demo files * Makefile (dist-dir): include demos in the distribution. Wed Mar 29 21:21:19 1995 Karl Fogel * lisp/gene-sgroup.el (gene-sgroup-merge-group-to-file): fix argument problems. * lisp/gene-menus.el, lisp/gene-io.el (gene-insert-sequence-file): new func. Wrapper around gene-read-sequences. (gene-open-sequence-file): new func. Wrapper around gene-read-sequences. * lisp/gene-io.el (gene-save-sequences-as): don't reset `gene-io-current-source-file' if the SEQEUNCES arg is non-nil; that would be counterintuitive behavior. (gene-merge-sequences-to-file): definition filled in. (gene-save-sequences-internal): doc fix. (gene-save-sequences-to-original-files): doc fix. * lisp/gene-io.el (gene-merge-sequences-to-file): filling in definition. Committed this change so I could back up. * docs/ale.texi (Top): added menu entry for "Tutorial". * docs/ale.texi (Tutorial): fixed formatting errors. * docs/ale.texi (Tutorial): new section from Niels. Wed Mar 29 00:23:16 1995 Karl Fogel * lisp/gene-io.el (gene-save-sequences-as): parameter's name is OVERWRITE-NO-ASK, not OVERWRITE-HAPPILY. Duh. Wed Mar 29 00:18:43 1995 Karl Fogel * lisp/gene-seq-mode.el, lisp/gene-io.el (gene-seq-mark-modified): doc fix. (gene-io-set-source-file): expand new value of `gene-io-current-source-file'. (gene-read-sequences): same. Call `gene-seq-mark-modified' on insertion into a non-empty alignment. (gene-save-sequences-as): take OVERWRITE-NO-ASK arg. (gene-save-sequences): pass OVERWRITE-NO-ASK arg to `gene-save-sequences-as'. Tue Mar 28 23:48:26 1995 Karl Fogel * lisp/gene-seq-mode.el, lisp/gene-menus.el (gene-seq-save-sequence-as): removed this func. * lisp/gene-io.el (gene-save-sequences-as): better error-binding in the `condition-case'. Tue Mar 28 23:41:55 1995 Karl Fogel * lisp/gene-menus.el, lisp/gene-sgroup.el, lisp/gene-io.el (gene-io-current-file-format): new func. (gene-io-check-format-conflict): new func. (gene-io-set-source-file): don't take SOURCES arg. Make FORMAT arg optional; attempt to deduce if omitted. Update `gene-io-current-source-format'. All callers changed (there was only one anyway). (gene-read-sequences): call `gene-io-check-format-conflict' before doing anything substantial. If the alignment is empty before the read, then set the source file (gene-save-sequences-internal): new func, just does what old `gene-save-sequences' did. (gene-save-sequences-to-original-files): renamed from `gene-save-sequences'. Does exactly what it used to, but now does it by calling `gene-save-sequences-internal'. (gene-save-sequences): now saves everything to `gene-io-current-source-file'. (gene-save-sequences-as): confirm overwrite. Guarantee atomicity, but make no promises about cheeziness. (gene-merge-sequences-to-file): new func, empty. (gene-menu-build-file-menu): use new file ops. (gene-menu-sgroup-command-menu): use new names for file ops. (gene-sgroup-save-group): removed this func. (gene-sgroup-merge-group-to-file): new func. (gene-sgroup-save-group-to-file): replaces `gene-sgroup-save-group-as'. (gene-sgroup-merge-group-to-file): new func. * lisp/gene-mode-tools.el (gene-alignment-empty-p): doc fix. * lisp/gene-io.el, lisp/gene-mode-tools.el (gene-io-current-source-file): new var. (gene-io-set-source-file): renamed from `gene-set-source-file' and moved to gene-io.el from gene-mode-tools.el. These fixes do not yet implement new file IO, though they start to. I'm going to make a snapshot ("tag" in CVS-speak) now, before I do anything else. The tag's name will be "pre-file-IO". * lisp/gene-io.el (gene-io-with-temp-files): nurse fix. * lisp/gene-io.el (gene-io-with-temp-files): doc fix. Sat Mar 25 20:10:23 1995 Karl Fogel * lisp/gene-undo.el (gene-record-unchanged-state): record with a symbol instead of a function. (gene-undo): if the record is `gene-unmodified-marker', then don't affect the undo-list. * lisp/gene-io.el (gene-io-place-sequences): check `gene-alignment-empty-p' _before_ inserting the sequences, not after. Duh. * lisp/gene-mode-tools.el, lisp/gene-io.el (gene-alignment-empty-p): new func. (gene-io-place-sequences): use above in determining whether or not to record undo. Sat Mar 25 18:59:57 1995 Karl Fogel * lisp/gene-selection.el (gene-sel-drag-selection-or-base-group): rather, use `gene-with-pointer-shape', and specify `gene-pointer-horiz-double-arrow', instead of using `gene-with-watch-pointer' like a mindless sheep. * lisp/gene-selection.el (gene-sel-drag-selection-or-base-group): use `gene-with-watch-pointer' instead of duplicating its code. * lisp/gene-phylo.el (gene-phylo-mode): set the pointer shape here. * lisp/gene-frame.el (gene-with-pointer-shape): oops, scope `let's correctly. * lisp/gene-frame.el (gene-frame-show): don't refer to any internal variables of the `gene-with-pointer-shape' macro anymore. Golly, it feels good to get rid of that kluge. Sat Mar 25 18:36:44 1995 Karl Fogel * lisp/gene-frame.el (gene-with-pointer-shape): rewritten to use `let*' instead of `setq'. This way we can hopefully avoid the problem of setting `x-pointer-shape' inappropriately in other frames. * lisp/gene-sgroup.el, lisp/gene-phylo.el, lisp/gene-seq-mode.el, lisp/gene-ann-mode.el, lisp/gene-id-mode.el, lisp/gene-locking.el: Undo the failed fix to the pointer-shape bug Niels pointed out: (gene-phylo-mode): don't make `x-pointer-shape' be buffer-local. (gene-sgroup-frame-mode): don't make `x-pointer-shape' be buffer-local, and don't set it to `gene-pointer-arrow'. (gene-seq-mode): same. (gene-status-mode): same. (gene-id-mode): same. (gene-ann-mode): same. Sat Mar 25 01:11:36 1995 Karl Fogel * lisp/gene-selection.el: The color list isn't circular, only the face list is. Sat Mar 25 00:47:14 1995 Karl Fogel * lisp/gene-selection.el (gene-selection-make-faces): use new var `gene-sel-default-colors', too. * lisp/gene-menus.el (gene-menu-selection-command-menu): "Cancel Selection" instead of "Unselect". * lisp/gene-sgroup.el, lisp/gene-seq-mode.el, lisp/gene-id-mode.el, lisp/gene-locking.el, lisp/gene-phylo.el, lisp/gene-selection.el, lisp/gene-ann-mode.el, lisp/gene-frame.el: Give groups and selections user-controllable colors: (gene-sgroup-default-colors): new var for what was `gene-sgroup-colors'. (gene-sgroup-colors): init to nil. Is meant to be repository for user-defined colors. (gene-sgroup-color): use `gene-sgroup-colors' if there are any, else use `gene-sgroup-default-colors'. (gene-define-group-color): new macro. (gene-define-group-color-internal): new func. (gene-sel-default-colors): new var for what was `gene-sel-colors'. (gene-sel-colors): init to nil. (gene-define-selection-color): new macro. (gene-define-selection-color-internal): new func. (gene-sel-two-sided-select): fixed major lie in doc string! Fix the pointer-shape bug Niels pointed out: (gene-phylo-mode): make `x-pointer-shape' be buffer-local. (gene-sgroup-frame-mode): make `x-pointer-shape' be buffer-local, and set it to `gene-pointer-arrow'. (gene-seq-mode): same. (gene-status-mode): same. (gene-id-mode): same. (gene-ann-mode): same. Fri Mar 24 17:53:00 1995 Karl Fogel * lisp/gene-seq-mode.el, docs/ale.texi, BUGS, WISHLIST: Bind `gene-sel-delete-all-selections' to M-C, document this. Thu Mar 23 22:31:44 1995 Karl Fogel * lisp/gene-selection.el, docs/ale.texi, BUGS: Pad selections with indels instead of spaces. Thu Mar 23 18:36:51 1995 Karl Fogel * lisp/gene-posmon.el (gene-posmon-remove-sequence): don't forget to make buffer writeable while deleting a line. Thu Mar 23 18:27:24 1995 Karl Fogel * lisp/gene-posmon.el, lisp/gene-mode-tools.el (gene-delete-word): new func. (gene-delete-whole-line): new func. (gene-posmon-update-sequence-stats): use `gene-delete-word' so as not to affect the kill-ring or X-selection buffer. (gene-posmon-update): same. (gene-posmon-remove-sequence): same. * lisp/gene-selection.el (gene-sel-selection-to-string): new func. (gene-sel-copy-selection-for-interprogram-paste): just use above. (gene-sel-save-selection-to-file): same. Format of saved selection changed, too; ale.tex has been updated. * docs/ale.texi (Selection Operations): talk about new format for saved selections. Wed Mar 22 21:32:53 1995 Jim Blandy * lisp/gene-locking.el (gene-make-sym-list): Formatting fix. Wed Mar 22 20:56:22 1995 Karl Fogel * lisp/gene-posmon.el, docs/ale.texi, BUGS: Cleaned up manual. * lisp/gene-posmon.el (gene-posmon-monitoring-on): bind mouse-1 to `gene-absorb-mouse-event', to avoid annoying side-effecting of point when doing posmon commands. Wed Mar 22 18:08:35 1995 Karl Fogel * lisp/gene-menus.el (gene-menu-selection-command-menu): "InterWindow Copy" instead of the ambiguous "Cut (for paste)". Wed Mar 22 00:19:27 1995 Karl Fogel * docs/ale.texi (Entering New Sequence Data): rearranged footnote. (Phylogenetic Trees): somewhat rewritten for the new phylobrowser. Tue Mar 21 22:45:42 1995 Karl Fogel * lisp/gene-selection.el, lisp/gene-menus.el (gene-sel-copy-selection-for-interprogram-paste): new func. Appears on selection popup menu. * lisp/gene-selection.el (gene-sel-reset-selection-distances): watch out for collisions with other selections as well as other residues. Tue Mar 21 20:55:24 1995 Karl Fogel * lisp/gene-mode-tools.el (gene-allowable-colors): new cache var. (gene-check-color-allowable): use above cache. Tue Mar 21 00:20:58 1995 Jim Blandy * Makefile (dist-dir): Don't distribute rebuild-lisp; lisp/Makefile does a better job. Tue Mar 21 00:19:57 1995 Karl Fogel * lisp/gene-data-input.el (gene-data-input-handle-help): accurify message. * lisp/gene-data-input.el (gene-seq-maybe-handle-data-input-command): don't prematurely translate the char; we want to be able to map both characters and their translators to different commands. * docs/ale.texi (Entering New Sequence Data): revamped. Tue Mar 21 00:04:08 1995 Jim Blandy * lisp/gene-io.el, lisp/gene-mode-tools.el: Speed up alignment reading, with help from ELP. (Overall running time reduced by a factor of 1.6.) * lisp/gene-io.el (gene-io-place-sequences): It's easy for the set-up-properties loop to compute the line number, and faster than calling gene-current-line. So, include the line number in the id and sequence region lists we pass to gene-setup-plists. (gene-setup-plists): Doc fix; passing the line number through to gene-init-organism-sym requires no code changes. Sometimes I like lisp. * lisp/gene-mode-tools.el (gene-init-organism-sym): If ID-REGION and SEQUENCE-REGION provide line numbers, use them instead of doing a save-excursion and calling gene-current-line. (This change reduced this function's running time by a factor of 9.4.) (gene-get-here-sym): In the common case, don't save-excursion and move point; pass the position directly to get-text-property. Don't attempt to fix up missing text properties by consulting the ID buffer, when OBJECT is the ID buffer itself; that doesn't accomplish anything, and is slow. (This change reduced this function's running time by a factor of six.) * lisp/gene-io.el (gene-io-insert-file-triplet): Clarify error messages. * phylo/lenstring.c (getstrings): Don't use '\e'; that's not an ANSI escape code. Use '\033' instead. * Makefile (dist-dir): Don't distribute rebuild-lisp; lisp/Makefile does a better job. Tue Mar 21 00:00:37 1995 Karl Fogel * lisp/gene-data-input.el (gene-data-input-handle-help): accurify message. * lisp/gene-data-input.el (gene-seq-maybe-handle-data-input-command): don't prematurely translate the char; we want to be able to map both characters and their translators to different commands. * docs/ale.texi (Entering New Sequence Data): revamped. Mon Mar 20 22:01:40 1995 Karl Fogel * lisp/gene-seq-mode.el, lisp/gene-ann-mode.el: " *Changed* " instead of "(Changed Since Last Save)" in the modeline. Mon Mar 20 15:52:12 1995 Karl Fogel * lisp/gene-posmon.el (gene-posmon-update-sequence-stats): start the text-property searches from a point after the current sequence, to avoid a premature match. * lisp/gene-seq-mode.el: Do require `cl' and `cl-19'; as Jim points out, there's no harm in redundant requires. Sat Mar 18 23:58:48 1995 Jim Blandy * lisp/Makefile (gene-translate.elc): This depends on gene-mode-tools.elc. * lisp/gene-phylo.el: Rewrite the dragging support to properly handle moving out of the frame. The old code from mouse-sel seemed much more complicated than necessary. (gene-phylo-mouse-extend): Replaced by... (gene-phylo-drag-overlay, gene-phylo-event-row, gene-phylo-mouse-drag): New functions. (gene-phylo-mouse-select): Rewritten to use gene-phylo-mouse-drag. Fri Mar 17 20:31:26 1995 Karl Fogel * lisp/gene-seq-mode.el, lisp/gene-menus.el, lisp/Makefile, lisp/gene-data-input.el: All code dealing with data input and double-checking moved to new file gene-data-input.el. New prefix, "gene-data-input-", instead of "gene-seq-data-input-". All callers changed. (gene-new-sequence): replaces `gene-seq-new-sequence'. All callers changed. (gene-new-sequence-count): replaces `gene-seq-new-sequence-count'. All callers changed. * lisp/gene-seq-mode.el: Don't require `cl' and `cl-19'; gene-mode-tools.el does that. Do require `gene-data-input'. * lisp/gene-sgroup.el, lisp/gene-seq-mode.el, lisp/gene-selection.el (gene-sgroup-subst-char-in-group): use new func `gene-read-char' instead of doing it by hand. (gene-sel-subst-char-in-selection): same. (gene-seq-data-input-handle-replace): same. (gene-seq-data-input-handle-insert): same. (gene-seq-maybe-handle-data-input-command): new inline func. (gene-seq-self-insert-char): just use above instead of including the code by hand. (gene-seq-delete-backward-char): call `gene-seq-maybe-handle-data-input-command'. (gene-seq-data-input-handle-delete): don't forward-char after deleting; removing the char at point has the right effect. * lisp/gene-mode-tools.el, lisp/gene-seq-mode.el (gene-read-char-confirmation-chars): new var in gene-mode-tools.el; replaces `gene-seq-data-input-confirmation-chars' from gene-seq-mode.el. (gene-read-char): new func. * lisp/gene-sgroup.el (gene-sgroup-making-group): new var. (gene-sgroup-make-new-group): do nothing if `gene-sgroup-making-group' is non-nil. Bind `cursor-in-echo-area' while reading, to foil extraneous mouse-clicks. Fri Mar 17 00:08:28 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-self-insert-char): handle double-check command requests directly, instead of letting `gene-seq-data-input-double-check-char' do it. This way the special commands, Replace, Insert, and Delete are available all the time, instead of only after a mismatch has been signalled. (gene-seq-data-input-confirmation-chars): new var, lists characters treated as "yes" in confirmation. (gene-seq-data-input-handle-help): new func, replaces code in `gene-seq-data-input-double-check-char'. (gene-seq-data-input-handle-replace): same. (gene-seq-data-input-handle-insert): same. (gene-seq-data-input-handle-delete): same. Thu Mar 16 21:12:59 1995 Karl Fogel * lisp/gene-frame.el (gene-frame-alignment-frame-params): don't disable horizontal-scroll-bars; they work perfectly, because they don't exist yet. Thu Mar 16 19:57:40 1995 Jim Blandy * phylo/phylo.c (minimize_tree): Don't forget to adjust the children's child_index fields. Wed Mar 15 18:24:47 1995 Karl Fogel * lisp/gene-selection.el (gene-sel-drag-select): trap `error' once again, now that debugging is done. * lisp/gene-frame.el (gene-frame-alignment-frame-params): oops -- don't deal with _vertical_ scroll bars. Do deal with horizontal ones. * lisp/gene-frame.el (gene-frame-alignment-frame-params): don't deal with scrollbars here. * lisp/gene-seq-mode.el (gene-seq-vertical-scroll-bars): default to t now that scroll bars work. Wed Mar 15 17:46:19 1995 Karl Fogel * lisp/gene-selection.el, lisp/gene-seq-mode.el (gene-sel-stretch-selections): new var, init to t. All relevant callers of `insert-char' pass this now, instead of t, as their INHERIT parameter. * lisp/gene-selection.el (gene-sel-drag-select): better scrolling, though still not entirely intuitive. Oh, my kingdom for rubber-band lines. * lisp/gene-selection.el (gene-sel-drag-select): do some primitive scrolling. * lisp/gene-selection.el (gene-sel-drag-select): cleaned up in anticipation of drag-scrolling support. Tue Mar 14 22:59:22 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-mode): put buffer-percentage in modeline with %p. Tue Mar 14 21:09:50 1995 Karl Fogel * lisp/gene-display.el (gene-make-Amino-Acids-5-Group-color-set): new func. (gene-create-default-color-sets): call above instead of creating the "Amino" color set. Tue Mar 14 18:45:07 1995 Jim Blandy * lisp/Makefile (dist-dir): No need to explicitly include gene-setpath in the distribution; the gene*.el pattern will catch it. * phylo/Makefile, phylo/phylo.c, phylo/protocol.texi, lisp/gene-phylo.el: * lisp/gene-phylo.el (gene-phylo-mode-map): Treat shift-mouse-1 like mouse-1. Shift-click is pretty much the standard way to extend selections, and although normals clicks extend selections too, people might still try shift-click. Support the "Show Complete Contents" command again. * lisp/gene-phylo.el (gene-phylo-protocol-version): Bump to 7. (phylo-request-open-subtree): New function. (gene-phylo-open-subtree): New command. * phylo/Makefile (PROTOCOL_VERSION): Bump to 7. * phylo/phylo.c (open_subtree_request): New request. (init_request_table): Register the open-subtree request. * phylo/protocol.texi: Document the open-subtree request. Don't give your functions the same name as system calls, duh. * phylo/phylo.c (select_node): Renamed from select. Callers changed. * lisp/gene-phylo.el (gene-phylo-toggle-open, gene-phylo-toggle-selected): Make these interactive, so they work when called from the menus. * lisp/gene-phylo.el (gene-phylo-show-all, gene-phylo-show-groups, gene-phylo-show-selected): Put the cursor at a reasonable place after doing these. Sun Mar 12 00:13:09 1995 Jim Blandy * phylo/Makefile, phylo/phylo.c, phylo/protocol.texi: Add support for the Show All, Show Groups, and Show Selected commands. Add elisp code to facilitate the addition of new requests. * phylo/Makefile (PROTOCOL_VERSION): Bump to 6. (open_all_request, open_groups_request, open_selected, open_selected_request): New functions. (init_request_table): Register the new requests. * lisp/gene-phylo.el: * lisp/gene-phylo.el (phylo-simple-request): New function. (phylo-request-check-version, phylo-request-use-tree, phylo-request-select, phylo-request-open, phylo-request-list-selected, phylo-request-unselect-all): Use phylo-simple-request. Add support for the Show All, Show Groups, and Show Selected commands. * lisp/gene-phylo.el (gene-phylo-protocol-version): Bump to 6. (phylo-request-open-all, phylo-request-open-groups, phylo-request-open-selected, gene-phylo-show-all, gene-phylo-show-groups, gene-phylo-show-selected): New functions. (gene-phylo-views-subpane): Change the Show All, Show Only Groups, and Show Only Selected items to call the right functions. * lisp/gene-phylo.el (gene-phylo-edit-pane): Remove the Unselect All Contents, Select All, and Unselect All items. The new interface makes these unnecessary. Sat Mar 11 22:48:21 1995 Jim Blandy * lisp/gene-phylo.el (phylo-message): New function. It's been part of the protocol from the beginning, but was omitted when the reply functions were written. Sat Mar 11 22:36:48 1995 Jim Blandy * phylo/lenstring.c (write_quoted_lenstring): New function. * phylo/lenstring.h (write_quoted_lenstring): New extern decl. * phylo/phylo.c: Call as appropriate. Ditch the LEAF and INTERIOR marks. It's better to test num_children. * phylo/node.h (enum mark_numbers, enum mark_masks, CONSTANT_MARKS): Remove mention of the LEAF and INTERIOR marks. (CONSTANT_MARKS): Deleted; no longer used. * phylo/node.c (new_node, add_child): Don't set/clear those marks. (mark_by_name): Don't recognize them any more. * phylo/phylo.c (format): Set leaf_p by testing node->num_children, instead of its marks. Provide threading pointers, for faster linear traversal of the tree. * phylo/node.c (thread_tree): New function. (next_visible_node): Renamed from next_node. * phylo/node.h (struct node): A new member, `next'. (thread_tree): New extern decl. (next_visible_node): Extern decl renamed from next_node. * phylo/phylo.c (select_range): Call next_visible_node, instead of next_node. Provide more robust error checking. Walking the visible nodes doesn't work very consistently if you start at an invisible node. * phylo/node.c (node_visible_p): New function. * phylo/node.h (node_visible_p): New extern decl. * phylo/phylo.c (select_range): Make sure STAND and END are visible nodes. Implement universal redisplay. Change any SELECTED and OPEN marks, and then call redisplay; that will update the interior SELECTED, CHILDREN_SELECTED, and VISIBLE marks, and send the right replies to update the display with reasonable efficiency. It is no longer necessary to write request-specific redisplay. It doesn't handle re-arrangements of the tree, though; when we add requests that do that, we'll have to get fancy. * phylo/node.h (struct node): A new member, prev_marks. (enum mark_numbers, enum mark_masks): New mark: VISIBLE * phylo/node.c (new_node): Initialize the prev_marks field. * phylo/phylo.c (INLINE): #define as `inline' under GCC, the empty string otherwise. (format_range): Ignore invisible nodes. Thus, this can be used to format ranges whose endpoints may be invisible. (display_node): Function deleted. (update_visible, update_selected, update_children_selected, node_changed_p, redisplay_run, scan_and_redisplay, mark_as_accurate, redisplay, redisplay_all): New functions. (first_visible, last_visible, redisplay_node, redisplay_tree, redisplay_range, redisplay_interior_selected): Functions deleted --- their functionality is subsumed by the universal redisplay code. (select): Just twiddle the marks and call redisplay. No need to update the CHILDREN_SELECTED marks, or call any request-specific redisplay functions. (open_request, select_range): Call redisplay, instead of request-specific redisplay functions. Support the "insert selected sequences" command. * phylo/phylo.c (list_selected_request): New function. Forward decls un-dyked. (unselect_all_request): New function. (init_request_table): Register list-selected and unselect-all. (list_selected): New function. Sat Mar 11 22:03:25 1995 Karl Fogel * lisp/gene-frame.el (gene-with-watch-pointer): use ,@ to splice in the FORMS arg. * lisp/gene-frame.el (gene-with-watch-pointer): don't use macroexpand -- just backquote and let Emacs do the rest. Sat Mar 11 21:48:35 1995 Jim Blandy * lisp/gene-phylo.el: Get the `insert selected sequences' command working again. (phylo-request-list-selected, phylo-request-unselect-all): New functions. (gene-phylo-menu-read): Generate a temporary filename and pass it to the phylo server with phylo-request-list-selected, instead of calling the old gene-phylo-server-list-selected and registering the filename it returned as temporary. Call phylo-request-unselect-all rather than the obsolete gene-phylo-unselect-all. Remove binding for phylo-frame; it's unused. Sat Mar 11 21:48:24 1995 Karl Fogel * lisp/Makefile: File's name is now `gene-setpath.el'. Sat Mar 11 21:45:31 1995 Jim Blandy * lisp/Makefile (LISPDIR): Make default value the same as in the top-level Makefile, so `make install' from this directory doesn't do something different from `make install' in the top-level directory. Sat Mar 11 21:39:26 1995 Karl Fogel * lisp/gene-frame.el (gene-with-watch-pointer): use `macroexpand'. * lisp/gene-frame.el (gene-with-pointer-shape): new macro, generalization of `gene-with-watch-pointer'. (gene-with-watch-pointer): now defined in terms of `gene-with-pointer-shape'. Sat Mar 11 21:19:30 1995 Karl Fogel * lisp/gene-phylo.el, lisp/gene-selection.el, lisp/gene-analyze.el, lisp/gene-frame.el, lisp/gene-io.el (gene-with-watch-pointer): replaces `gene-with-watch-cursor'. * lisp/gene-mode-tools.el (gene-y-or-n-p): readability changes. * lisp/gene-mode-tools.el (gene-y-or-n-p): use `frame-pixel-width' and `frame-pixel-height' so that the menu pops up in the center of the frame. * lisp/gene-frame.el (gene-font-affect-all-frames): init to nil, so font changes by default affect only the alignment frame. * lisp/gene-frame.el (gene-font-affect-all-frames): new var. (gene-frame-set-font-by-size): if `gene-font-affect-all-frames' is non-nil, then change font on all frames; else change only on alignment frame. Sat Mar 11 18:49:50 1995 Karl Fogel * lisp/gene-mode-tools.el, lisp/gene-analyze.el, lisp/gene-io.el: Use `gene-y-or-n-p' in place of `y-or-n-p'/`yes-or-no-p'. * lisp/gene-mode-tools.el (gene-y-or-n-p): center the "yes" and "no" items. Sat Mar 11 01:58:47 1995 Karl Fogel * lisp/gene-mode-tools.el (gene-y-or-n-p): if you have to ask, you can't afford it. Fri Mar 10 22:16:55 1995 Karl Fogel * lisp/gene-setpath.el: Renamed setpath.el to gene-setpath.el. * lisp/gene-io.el (gene-io-insert-file-triplet): better messages if max buffer-size is exceeded. * lisp/gene-io.el (gene-io-insert-file-triplet): I spoke carelessly in the last entry. We won't exit if buffer-sizes are exceeded, we'll just error and refuse to insert anything pertaining to the new sequences. * lisp/gene-io.el (gene-io-insert-file-triplet): check that the new sequence data and its annotations will not exceed any buffer-size limits. If they will, error and exit. * lisp/gene-seq-mode.el, lisp/gene-mode-tools.el (gene-really-high-number): now dynamically initialized instead of being hardcoded. Moved from gene-seq-mode.el to gene-mode-tools.el, since it's really a global piece of information. Fri Mar 10 20:54:57 1995 Karl Fogel * lisp/gene-seq-mode.el: Vertical scrolling fixed! (gene-seq-move-vertical-scroll-bar-and-sync-windows): call `gene-do-window-sync' directly. (gene-seq-drag-vertical-scroll-bar): restore original column here. * lisp/gene-seq-mode.el: Ripped up experimental vertical scroll-bar code. There's Got To Be A Better Way. * lisp/gene-seq-mode.el: Intermediate stage in vertical scrolling changes; wanted it saved in case I really mess things up. Thu Mar 9 22:40:52 1995 Karl Fogel * lisp/gene-selection.el (gene-sel-finish-select-internal): wrap the save-excursion only around the parts that need it. * lisp/Makefile: Make gene-seq-mode.elc depend on gene-display.elc. * lisp/gene-seq-mode.el: Require `gene-display'. Thu Mar 9 22:04:00 1995 Karl Fogel * lisp/gene-display.el: Added file "gene-display.el". * lisp/Makefile, lisp/gene.el: Incorporate new file "gene-display.el". [ Note: its name was going to be "gene-colors.el", so don't be confused by earlier log entries referring to that name. ] * lisp/gene-seq-mode.el: Don't require `disp-table'; that stuff is now in gene-colors.el. * lisp/gene-seq-mode.el: All color stuff moved to gene-colors.el. * lisp/gene-seq-mode.el: Set color-set foregrounds and backgrounds, so that switching among them is safe. * lisp/gene-seq-mode.el (gene-make-Uncolored-color-set): set foreground and background explicitly, to avoid lossage when switching to this color set from others who fiddle with these values. * lisp/gene-seq-mode.el: Color set name consistency. * lisp/gene-seq-mode.el (gene-color-residue): eval-when-compile this defalias. We should be _able_ to use `gene-color-residue' in our code, which means that it has to be defined at compile time. However, just because we're able doesn't mean we ever will -- `gene-color-character' is the macro of choice now. * lisp/gene-seq-mode.el: Typos. Thu Mar 9 20:42:57 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-make-Amino-Acids-Hydropathyc-Scale-color-set): new func. (gene-make-Amino-Acids-Default-color-set): new func. (gene-make-Amino-Acids-Isoelectric-Point-color-set): new func. (gene-make-DNA/RNA-Default-color-set): new func. (gene-make-Purine/Pyrimidine-Highlight-color-set): new func. (gene-create-default-color-sets): call above. Wed Mar 8 06:02:22 1995 Jim Blandy * phylo/node.c, phylo/node.h, phylo/phylo.c, phylo/protocol.texi, lisp/gene-phylo.el: * lisp/gene-phylo.el (phylo-save-excursion): Work correctly when point is at the end of the buffer. * lisp/gene-phylo.el: Support dragging selection. (phylo-request-select-range, gene-phylo-select-nodes-in): New functions. (gene-phylo-mouse-select): Call gene-phylo-select-nodes-in. * phylo/phylo.c (display_range, redisplay_range, select_range, select_range_request): New functions. (init_request_table): Register the select-range request. (redisplay_tree): Meaningless change. I couldn't tell you why. (select_request): Extract guts to... (select): New function, called by select_request and select_range_request. * phylo/node.c (node_before_p): Work correctly when node1 is a parent of node2, or vice versa. (next_node): Remove the MARK argument; hard-code the CLOSED mark in. * phylo/node.h (next_node): Remove the MARK argument from prototype. * phylo/phylo.c (format_range): Call next_node properly. Crash if it returns zero. * phylo/protocol.texi: Document the select-range request. * phylo/phylo.c (format): Remember, the plists are installed with set-text-properties, not put-text-property. * phylo/phylo.c (check_tree, check_argc, check_node_name): New functions. (CHECK_TREE, CHECK_ARGC, CHECK_NODE_NAME): Call the functions. Big macros are ugly, and annoying to debug and change. (CHECK_NODE_NAME): Make var be a struct node *, not a struct node **. The latter is annoying and unnecessary. (select_request, open_request, select_range_request): Use CHECK_NODE_NAME properly now. * Makefile (install): Remind user to add ale.info to the info directory only if the string `ale.info' doesn't occur in the dir file already. (dist): Rewrite as loop over SOURCE_DIRS. Wed Mar 8 04:03:10 1995 Jim Blandy * lisp/gene.el, Makefile, ale.in: * Makefile: Edit the value of LISPDIR into the ale script, too. * ale.in: Use the value of the LISPDIR variable when loading gene.elc. * lisp/gene.el: Add the directory from which Emacs is loading this file to the load path. That way, if the ale shell script can find gene.el, gene.el will be able to find the rest of the lisp files. Tue Mar 7 22:31:57 1995 Karl Fogel * lisp/gene-seq-mode.el, lisp/gene-mode-tools.el (gene-shift-region-leave-properties): new func. (gene-seq-fetch-left): use `gene-shift-region-leave-properties'. (gene-seq-fetch-right): same. (gene-seq-throw-left): same. (gene-seq-slide-right): same. (gene-seq-slide-left): same. Mon Mar 6 20:33:41 1995 Karl Fogel * lisp/gene-search.el (gene-search-do-search): don't use `gene-save-excursion-in', we don't want to save this excursion. Just set-buffer gene-seq-buffer to make sure we're there. * lisp/gene-frame.el (gene-make-all-faces): reverse defaults when checking modeline color. * lisp/gene-frame.el, lisp/gene-id-mode.el (gene-make-all-faces): pass defaults when setting modeline colors. (gene-id-mode-make-faces): pass a default when setting current-id-highlight bar color. Mon Mar 6 20:00:41 1995 Karl Fogel * lisp/gene-locking.el (gene-locking-locked-face-color): define at run-time. (gene-locking-gapshift-face-color): same. (gene-locking-gapinout-face-color): same. (gene-locking-unlocked-face-color): same. (gene-locking-make-faces): defvar above four vars in here at run time. * lisp/gene-locking.el (gene-locking-gapinout-face-color): init to gene-foreground-color, instead of nil. * lisp/gene-seq-mode.el, lisp/gene-sgroup.el, lisp/gene-phylo.el, lisp/gene-search.el, lisp/gene-selection.el, lisp/gene-frame.el, lisp/gene-id-mode.el: Do color-checking at run time. For example, in calls to set-face-foreground, set-face-background, etc. (gene-make-all-faces): check colors allowable at the time of the set-face calls. (gene-id-mode-make-faces): same. (gene-phylo-make-faces): same. (gene-search-make-faces): same. (gene-selection-make-faces): same. (gene-sgroup-make-faces): same. (gene-sgroup-generate-face): same. (gene-sgroup-generate-mouse-face): same. * lisp/gene-frame.el (gene-modeline-color): don't check color allowable here. * lisp/gene-id-mode.el (gene-id-current-id-color): don't check color allowable here. Mon Mar 6 19:35:56 1995 Karl Fogel * lisp/gene-locking.el (gene-locking-locked-face-color): don't check color allowble here. (gene-locking-gapshift-face-color): same. (gene-locking-gapinout-face-color): same. (gene-locking-unlocked-face-color): same. (gene-locking-make-face-pair): check if color is allowable here, nowhere else. (gene-locking-make-faces): check colors allowable here too. Mon Mar 6 18:46:52 1995 Jim Blandy * phylo/phylo.c, phylo/rdp_format.c, phylo/Makefile, phylo/lenstring.c, phylo/lenstring.h, phylo/node.c, phylo/node.h: * phylo/Makefile: Bump protocol version to 5. It's really different. * phylo/lenstring.c (append_to_lenstring): Terminate the result string properly. (write_quoted): Always write newlines using the \n syntax. * phylo/lenstring.h: Tweak formatting. * phylo/node.h (enum mark_numbers, enum mark_masks): Delete the SELECTABLE, ALL, NONE, and NUMBERED marks. (CONSTANT_MARKS): Adjust accordingly. * phylo/node.c (new_node): Don't mess with the ALL and IN_FILE marks. (mark_by_name): The SELECTABLE, ALL, and NONE marks don't exist any more; we don't have numbered marks any more either. Actually, the protocol never mentions marks by name now, so this whole function could be removed. * phylo/phylo.c: Include assert.h. (init_request_table): Adjust to the new request set. (version_request, display, display_request, display_range, display_range_request, display_marked, display_marked_request, copy, copy_request, copy_tree, copy_tree_request, copy_range, copy_range_request, copy_on_marked, copy_on_marked_request, xor_request, or_tree, or_tree_request, and_tree, and_tree_request, mark_ancestors, mark_ancestors_request, mark_descendants, mark_descendants_request, mark_file_request, list_marked_nodes, list_marked_nodes_request, inline_all_request): Functions deleted. (request_loop): Don't send an initial "ready ok"; servers should be silent unless spoken to. Use new protocol's format for error messages. (struct textprop, struct buf): New structures. (buf_init, buf_free, buf_assure, buf_fill, buf_str, buf_lenstring, buf_putprop, buf_display, format, format_tree, format_range, display_node, display_tree): New functions. (make_temp): Function deleted. The client can provide its own temp file names. (report_syserr, CHECK_TREE, CHECK_NODE_NAME): Generate error messages according to the new protocol. (CHECK_MARK_NAME_R, CHECK_MARK_NAME_RW): Deleted. (inline_all): Deleted. Almost all responses are inline now. (tree_set, tree_set_if): New functions. (check_version_request): New request. (free_node, read_tree, minimize_tree, mark_organisms, close_leaf_only): New functions, helpers for... (use_tree_request): Completely rewritten. (first_visible, last_visible, redisplay_node, redisplay_tree, redisplay_interior_selected, select_request): New functions, new request. (open_request): New request. * phylo/rdp_format.c (read_rdp): Plug some storage leaks. * phylo/protocol.texi: Describe protocol version 5. The server replies with a series of lisp expressions to evaluate. Requests closely resemble user's commands. Since replies can contain strings with text properties, we get rid of the +-= symbols, and have faster, fancier highlighting. * lisp/gene-phylo.el, lisp/Makefile: Major changes to phylo protocol --- first semi-working version. * lisp/gene-phylo.el: Don't require gene-mode-tools. We don't need it at the moment. * lisp/Makefile: gene-phylo.elc no longer depends on gene-mode-tools.elc. * lisp/gene-phylo.el: Doc fixes. (gene-phylo-protocol-version): Bumped to 5. Maybe it should be 1, since we've changed the way client and server negotiate versions anyway. (gene-phylo-reply-end): Variable deleted. (gene-phylo-make-faces): Moved to gene-phylo-mode's page. (gene-phylo-protocol-version): Moved to the "running and talking" page. (gene-phylo-start-server): If we kill off an old server process, don't let it stick its death message in the buffer. What brutal suppression! Don't wait for a ready-okay message after starting the server --- the server should be silent until the client says something to it. (phylo-send-request): Renamed from gene-phylo-send-request. (gene-phylo-read-word, gene-phylo-await-ready, gene-phylo-await-ready-ok, gene-phylo-await-filename, gene-phylo-await-inline, gene-phylo-await-text, gene-phylo-insert-reply-data, gene-phylo-server-new-tree, gene-phylo-server-toggle-node, gene-phylo-server-toggle-open, gene-phylo-server-select-tree, gene-phylo-server-copy-tree, gene-phylo-server-open-interior, gene-phylo-server-close-unselected, gene-phylo-server-select-range, gene-phylo-server-list-selected, gene-phylo-highlight, gene-phylo-get-highlighted-reply, gene-phylo-subtree-end, gene-phylo-subtree-op, gene-phylo-open-subtree, gene-phylo-unselect-tree, gene-phylo-open-all, gene-phylo-select-all, gene-phylo-unselect-all, gene-phylo-open-interior, gene-phylo-close-unselected, gene-phylo-select-nodes-in): Functions deleted. (gene-phylo-read-reply, phylo-request-check-version, phylo-request-use-tree, phylo-request-select, phylo-request-open, phylo-read-replies, phylo-display-all, phylo-display-range, phylo-error, phylo-okay): New functions. (gene-phylo-parse, gene-phylo-in-ellipsis-p): Understand the new format for nodes. (gene-phylo-node): Rewritten in terms of gene-phylo-parse, for simplicity. (gene-phylo-find): Replaced by... (phylo-find-node-forward): Better interface for processing the replies generated by the new server. (phylo-save-excursion): New macro. (gene-phylo-list-noselect): Call gene-phylo-start-server, phylo-request-check-version, and phylo-request-use-tree instead of gene-phylo-server-new-tree. Hmm. (gene-phylo-close): Kill the server when we kill the phylo browser. Mon Mar 6 17:35:30 1995 Karl Fogel * lisp/gene-id-mode.el (gene-id-current-id-color): check allowable. * lisp/gene-mode-tools.el, lisp/gene-seq-mode.el, lisp/gene-frame.el, lisp/gene-help.el (gene-check-color-dummy-face): new face, for use in probing available colors by `gene-check-color-allowable'. (gene-check-color-allowable): check that color can be allocated. Moved this func to `gene-mode-tools.el'. (gene-color-character-internal): don't use condition-case; `gene-check-color-allowable' is smarter now. (gene-modeline-color): check allowable. (gene-help-make-faces): same. * lisp/gene-seq-mode.el: Fixed typo. * lisp/gene-seq-mode.el (gene-color-character-internal): use `gene-check-color-allowable'. Also, use a condition case to trap the error if the server cannot allocate the color. Lose, lose, *LOSE* -- see BUGS file. Sun Mar 5 18:53:20 1995 Karl Fogel * lisp/gene-menus.el: Check `gene-dont-clear-menu-bar' before defining any menu keys. * lisp/gene-menus.el (gene-dont-clear-menu-bar): new var. This is a temporary kluge; it will not be here forever. Ask Karl if you're really curious. Thu Mar 2 23:34:43 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-color-character-internal): replaces `gene-color-residue-internal'; all callers changed. All callers of `gene-color-residue' also updated, which is something I forgot to do from the last change. Thu Mar 2 23:32:39 1995 Karl Fogel * lisp/gene-seq-mode.el, docs/ale.texi, MINOR-BUGS, Makefile (gene-color-character): replaces `gene-color-residue'. ale.texi updated. (gene-color-residue): now an alias for above, in the interests of backward compatibility. Thu Mar 2 22:18:48 1995 Karl Fogel * lisp/gene-frame.el (gene-default-font): new var. (gene-frame-set-font-by-size): set above to SIZE argument. (gene-frame-generate-font-menu): put an asterisk next to the current font in the font menu. Because of this, don't use `gene-frame-font-menu-cache' to cache the menu anymore. (gene-frame-font-menu-cache): removed this var. Thu Mar 2 22:15:07 1995 Jim Blandy * phylo/Makefile, phylo/phylo.c, phylo/protocol.texi: * Makefile (PROTOCOL_VERSION): Bump to 2. * phylo.c: #include . (display_marked, display_marked_request, copy_on_marked, copy_on_marked_request): New functions. (init_request_table): Install the new display-marked and copy-on-marked requests. (mark_descendants): Mark NODE, if it has the PARENT mark. (mark_descendants_request): Don't take a subtree argument any more; always operate on the whole tree. * protocol.texi: Updated to describe protocol changes. * lisp/gene-phylo.el (gene-phylo-server-select-range): If we're selecting, affect only leaf nodes. (gene-phylo-select-nodes-in): Same. (gene-phylo-mouse-select): If the user selects only a single node, toggle the selection of that entire subtree. If the user drags, select the nodes in that range, as in gene-phylo-select-nodes-in. (gene-phylo-select-leaves-in): Renamed from gene-phylo-select-nodes-in, since we usually only operate on the range. (gene-phylo-protocol-version): Bump to 2; mark-descendants has changed semantics. (gene-phylo-server-list-selected): Use mark-descendants' new semantics. (gene-phylo-toggle-selected): Operate on the entire subtree rooted at point, not just on the node at point. (gene-phylo-server-select-tree): New function. (gene-phylo-select-all): No need to move point before deleting the entire buffer. Thu Mar 2 21:55:43 1995 Karl Fogel * lisp/gene-help.el, MINOR-BUGS: Consistification changes. * lisp/gene-posmon.el, docs/ale.texi, lisp/gene-menus.el: "Position Monitoring" has been changed to "Position Numbers", and made consistent. Thu Mar 2 18:48:27 1995 Karl Fogel * lisp/gene-seq-mode.el: Bind mouse-2 to `gene-absorb-mouse-event' so that it's really impossible to accidentally paste into the seq buffer with native emacs mouse-yank. Unusual circumstances could arise where this was a danger, for example: a selection with at least one "-locked-" sequence combined with a native Emacs paste-buffer containing text and a seq buffer whose read-only-ness had somehow gotten turned off. Thu Mar 2 04:37:25 1995 Jim Blandy * lisp/gene-menus.el (gene-escape-to-emacs): Use gene-frame-show to create the frame, so we get that function's benefits. * lisp/gene-frame.el (gene-frame-set-font-by-size): Display the watch cursor while performing this act. (gene-frame-set-font-preserve-size): Don't bother preserving the size. Emacs is too buggy at present to handle it correctly. * docs/.cvsignore, .cvsignore: Replace `guppy' with `ale'. * lisp/gene-seq-mode.el (Nucleic, GDE-style): New color set. (gene-make-Nucleic-GDE-color-set): New function. (gene-create-default-colors): Call gene-make-Nucleic-GDE-color-set. Wed Mar 1 23:53:05 1995 Karl Fogel * lisp/gene-menus.el (gene-menu-alignment-views): don't have any accumulated error entry, it's complex to think about and we're in a feature freeze. Wed Mar 1 23:31:13 1995 Karl Fogel * lisp/gene-message.el (gene-err-hide-accumulated-errors): changed CLEAR arg to NOCLEAR, reversed sense. Made interactive, so can be used as the HIDER arg to `gene-menu-bar-make-hider'. (gene-err-display-accumulated-errors): pass `gene-err-hide-accumulated-errors' as HIDER arg to `gene-menu-bar-make-hider'. * lisp/gene-menus.el (gene-menu-alignment-views): have an accumulated errors entry. Wed Mar 1 22:50:02 1995 Karl Fogel * lisp/gene.el (gene-startup): save and restore the selected frame when displaying accumulated error messages. * lisp/gene-message.el, lisp/gene.el, lisp/gene-io.el (gene-err-display-accumulated-errors): accumulated error buffer's name should be "*Non-Fatal Errors*", to avoid conflict with the other error buffer. Make sure we're in the right buffer when we make the button. (gene-startup): display accumulated errors here after all, not in `gene-switch-to-buffer'. * lisp/gene-seq-mode.el (gene-seq-mode): don't display accumulated errors here. * lisp/gene-message.el (gene-err-clear-accumulated-errors): duhh, don't erase the buffer, or its contents will disappear right when the user needs to read them. (gene-err-display-accumulated-errors): erase the buffer here, before inserting the current accumulated errors. * lisp/gene-io.el (gene-switch-to-buffer): display accumulated errors here. * lisp/gene.el (gene-startup): don't display accumulated errors here, do it in gene-seq-mode. * lisp/gene-seq-mode.el (gene-seq-mode): display accumulated errors. * lisp/gene-message.el (gene-err-clear-accumulated-errors): clear the buffer as well as the list. Wed Mar 1 22:04:51 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-check-color-allowable): accumulate error if COLOR is not a legal X color. (gene-copy-color-set-internal): accumulate error if SOURCE set does not exist. * lisp/gene.el (gene-startup): call `gene-err-display-accumulated-errors'. * lisp/gene-message.el (gene-err-error-list): new var. (gene-err-accumulate-error): new func. (gene-err-clear-accumulated-errors): new func. (gene-err-display-accumulated-errors): new func. * lisp/gene-message.el, lisp/gene-mode-tools.el: Moved error-handling and -displaying stuff from gene-mode-tools.el to gene-message.el. Wed Mar 1 19:33:12 1995 Karl Fogel * docs/ale.texi (Customization): fixed quoting. * docs/ale.texi (Customization): we no longer have the function `gene-define-color-set'. Documented `gene-copy-color-set' and `gene-startup-with-color-set'. Wed Mar 1 18:59:45 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-copy-color-set-internal): aset the display-tables, not the color-set objects themselves. Wed Mar 1 18:13:44 1995 Karl Fogel * lisp/gene.el, lisp/gene-seq-mode.el (gene-startup): don't call `gene-use-color-set' here after all, because it needs the seq-mode buffer to exist when it is called. (gene-seq-mode): call `gene-use-color-set'. (gene-startup-with-color-set): new user-level macro. * lisp/gene.el, lisp/gene-seq-mode.el (gene-startup): create color default sets before loading .ale or ale.el. And call `(gene-use-color-set Uncolored)' before loading .ale or ale.el. A further call in one of those files will override, but we want to use Uncolored by default. (gene-seq-mode): moved call to gene-use-color-set from here to gene-startup in gene.el. Wed Mar 1 17:50:19 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-use-color-set-internal): replaces gene-use-color-set. (gene-use-color-set): now a user-level macro which calls above. * lisp/gene-seq-mode.el (gene-color-foreground-internal): correct sense of arg to `unless'. (gene-color-background-internal): same. * lisp/gene.el, lisp/gene-seq-mode.el (gene-create-default-color-sets): new func. (gene-startup): call above. (gene-make-Uncolored-color-set): new func, subsumes former top-level calls to gene-color functions. (gene-make-Amino-color-set): new func, same. (gene-make-Nucleic-color-set): new func, same. * lisp/gene-selection.el (gene-selection-make-faces): doc fix. Wed Mar 1 17:02:16 1995 Karl Fogel * lisp/gene.el (gene-startup): doc fix. * lisp/gene-seq-mode.el (gene-check-color-allowable): new func. (gene-color-residue-internal): use above to check color. (gene-color-background-internal): same. (gene-color-foreground-internal): same. (gene-lookup-color-set): take optional NO-CREATE arg. (gene-copy-color-set): new user-level macro. (gene-copy-color-set-internal): new func. See BUGS file for as-yet-unfixed weaknesses in above new functionality. Sat Feb 25 22:53:43 1995 Jim Blandy * lisp/gene-frame.el (gene-with-watch-cursor): Remember the frame on which we put the watch cursor, so if the FORMS change the selected frame, we restore the original cursor shape on the correct frame. Sat Feb 25 21:57:34 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-goto-organism): better prompt. Sat Feb 25 00:59:27 1995 Karl Fogel * lisp/gene-analyze.el (genalyze-run-command): pass PARAMETERS args so this frame matches other ale frames (background, foreground, etc). Fri Feb 24 21:21:49 1995 Jim Blandy * analyses/check-bases: Pass the proper arguments to phylip-tabl. Redirect the output of phylip-tabl properly when processing the non-reference files. * readers/Makefile (SOURCES): Include careful.c and careful.h in the distribution. (careful.o): New target. Fri Feb 24 19:02:34 1995 Karl Fogel * lisp/gene-translate.el: Require `gene-mode-tools'. Fri Feb 24 18:50:27 1995 Karl Fogel * lisp/gene-windows.el, lisp/gene-translate.el, lisp/gene-undo.el, lisp/gene-seq-mode.el, lisp/gene-sgroup.el, lisp/gene-search.el, lisp/gene-selection.el: Did a survey to see who was making assumptions about current buffer being the sequence buffer. Where appropriate, wrapped certain functions in a `gene-save-excusion-in'. Specifically: (gene-search-do-search): make sure we're in seq buffer. (gene-sel-generate-seg-list): make sure we're in seq buffer. (gene-sel-delete-selection): same. (gene-sel-mark-unmark-start-pos): same. (gene-sel-start-click-select): same. (gene-sel-finish-select-internal): same. (gene-sel-two-sided-select): same. (gene-sel-make-selection): same. (gene-sel-make-seg-list): same. (gene-sel-make-selection-distances): same. (gene-sel-reset-selection-distances): same. (gene-sel-drag-selection-or-base-group): same. (gene-sel-drag-base-group): same. (questionable -- see comment.) (gene-sel-do-remove-gaps): same. (gene-sel-remove-seq-from-selection): same. (gene-sel-remove-seq-from-all-selections): same. (gene-sel-do-unselect-chunk): same. (gene-sel-do-unselect-chunk): same. (gene-sel-center-justify): same. (gene-sel-left-justify): same. (gene-sel-right-justify): same. (gene-sel-upcase-selection): same. (gene-sel-downcase-selection): same. (gene-sel-flipcase-selection): same. (gene-sel-map-over-selection): same. (gene-sel-delete-selection-contents): same. Actually, was doing it already, but now uses `gene-save-excursion-in' for consistency. (gene-sgroup-id-dispatch-click): removed this obsolete func. (gene-seq-upcase-sequence): make sure we're in seq buffer. (gene-seq-downcase-sequence): same. (gene-seq-flipcase-sequence): same. (gene-seq-subst-char-in-sequence): same. (gene-trans-open-blank-aminos): make sure we're in seq buffer. (gene-translate-sequence-to-amino-in-frame): same. (gene-translate-reverse-complement-to-amino-in-frame): same. (gene-undo): make sure we're in seq buffer. (gene-undo-make-case-record): same. (gene-undo-restore-region-case): same. (gene-undo-record-selection-case): same. (gene-undo-restore-selection-drag): same. (gene-undo-record-selection-justification): same. (gene-undo-unjustify-selection): same. Fri Feb 24 17:01:22 1995 Jim Blandy * analyses/check-bases: Recognize Phylip files, too. Display the watch cursor while performing lengthy operations. * lisp/gene-analyze.el (genalyze-run-on-tabl-group): Display watch cursor while starting up analysis subprocess. * lisp/gene-io.el (gene-read-sequences): Display watch cursor while reading and processing sequences. (gene-save-sequences, gene-save-sequences-as): Display watch cursor while preparing, saving, and formatting sequences. * lisp/gene-phylo.el (gene-phylo-server-new-tree): Display watch cursor while setting up tree. (gene-phylo-get-highlighted-reply): Display watch cursor while re-highlighting large responses from the server. (gene-phylo-menu-read): Display watch cursor while reading sequences. (gene-phylo-list-noselect): Display watch cursor while extracting the list of sequences in SEQ-FILE. * Makefile (CFLAGS): Use -O, not -O3. The former is acceptable to all Unix compilers I've ever used, but the latter has funky requirements on some. Check for I/O errors on writes. Pervasive changes. * readers/careful.c, readers/careful.h: New files. * readers/embl-tabl.c, readers/fasta-tabl.c, readers/gb-tabl.c, readers/gdbm.c, readers/phylip-tabl.c, readers/tabl-embl.c, readers/tabl-fasta.c, readers/tabl-gb.c: Pervasive changes. * readers/Makefile (tabl-gb): Depend on careful.o. Build a the object file in a separate rule. (tabl-gb.o): New rule. (TABL_GB_OBJS): New variable. (GB_TABL_OBJS, gb-tabl, gb-tabl.o, GDBM_OBJS, gdbm, gdbm.o, EMBL_TABL_OBJS, embl-tabl, embl-tabl.o, TABL_EMBL_OBJS, tabl-embl, tabl-embl.o, FASTA_TABL_OBJS, fasta-tabl, fasta-tabl.o, TABL_FASTA_OBJS, tabl-fasta, tabl-fasta.o, PHYLIP_TABL_OBJS, phylip-tabl, phylip-tabl.o): Depend on careful.h; link with careful.o. Fri Feb 24 00:22:50 1995 Karl Fogel * lisp/gene-mode-tools.el (gene-upper-case-p): rewrote slightly for readability. * lisp/gene-menus.el (gene-menu-popup-selection-menu): be in gene-seq-buffer when funcall func. (gene-menu-popup-seq-menu): same. Thu Feb 23 22:33:17 1995 Karl Fogel * lisp/gene-mode-tools.el (gene-dont-modify-buffer): prog1, not prog2, duhh! * lisp/gene-mode-tools.el (gene-dont-modify-buffer): don't call `gene-record-unchanged-state'; it's not our business here. Thu Feb 23 22:23:11 1995 Karl Fogel * lisp/gene-undo.el (gene-record-unchanged-state): put an undo boundary between the `unchanged' marker and whatever comes next. * lisp/gene-mode-tools.el: Fixed typo. * lisp/gene-undo.el (gene-record-unchanged-state): don't need to wrap in `gene-save-excursion-in', callee already does that. * lisp/gene-mode-tools.el (gene-dont-modify-buffer): call `gene-seq-record-unchanged-state' by hand if necessary. Thu Feb 23 19:39:45 1995 Karl Fogel * lisp/gene-undo.el (gene-record-unchanged-state): new func. * lisp/gene-seq-mode.el (gene-seq-mark-modified): call `gene-record-unchanged-state'. * lisp/gene-selection.el (gene-sel-make-selection): use new macro `gene-dont-modify-buffer' to avoid tripping `first-change-hook'. (gene-sel-delete-selection): same. (gene-sel-mark-unmark-start-pos): same. (gene-sel-do-unselect-chunk): same. * lisp/gene-mode-tools.el (gene-dont-modify-buffer): new macro. Thu Feb 23 18:30:29 1995 Karl Fogel * lisp/gene-menus.el (gene-menu-popup-in-sgroup-frame-context): new func, for popping up a menu in the group frame. Bound to mouse-3. (gene-menu-popup-sgroup-command-menu): be in seq buffer when invoke the command. * lisp/gene-sgroup.el: Don't bind down-mouse-3 to anything, since we bind it to a pop-up menu in gene-menus.el now. * lisp/gene-sgroup.el: Unbound {double,triple}-mouse-{1,2} in gene-id-mode-map, so point won't get stuck in the ID buffer so often. * lisp/gene-sgroup.el: Corrected previous change to happen in gene-sgroup-frame-mode-map, not gene-id-mode-map. Duh. * lisp/gene-sgroup.el (gene-id-mode-map): bind double-mouse-1 and triple-mouse-1 to absorb event, so point doesn't get set wrong (via mouse-set-point) when clicking on . * lisp/gene-sgroup.el (gene-sgroup-frame-mode): call `gene-menu-bar-make-hide-button' last. Wed Feb 22 22:50:16 1995 Karl Fogel * lisp/gene-sgroup.el (gene-sgroup-frame-mode): don't make local vars out of `gene-seq-buffer', `gene-ann-buffer,' and `gene-id-buffer'; we aren't bothering with that anymore. (gene-sgroup-frame-show-frame): don't pass above vars, or temp-bind them in a `let' anymore. Ahh, how nice it is to go through simplifying old code! Wed Feb 22 22:40:37 1995 Karl Fogel * lisp/gene-sgroup.el (gene-sgroup-frame-mode): call `gene-menu-bar-make-hide-button' instead of binding the menu-bar key in the mode map at the top-level. (gene-sgroup-frame-show-frame): use `gene-frame-show' instead of making the frame by hand. * lisp/gene-help.el (gene-help-frame-parameters): tighten up args to backquote. * lisp/gene-ann-mode.el (gene-ann-show-frame): tighten up args to backquote. Wed Feb 22 22:27:04 1995 Jim Blandy * phylo/Makefile, Makefile: * Makefile (all): Go ahead and recurse on the `doc' subdirectory. This shouldn't do anything unless they've actually changed the documentation sources. * phylo/Makefile (dist-dir): Distribute numbered info files, if they exist. Wed Feb 22 22:02:51 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-data-input-double-check-char): doc fix. Wed Feb 22 22:01:01 1995 Karl Fogel * lisp/gene-seq-mode.el (gene-seq-data-input-double-check-char): protect against insertion of arbitrary chars by only accepting legitimate correction commands. Wed Feb 22 20:52:16 1995 Karl Fogel * docs/Makefile: Include all the info files in the dist. Wed Feb 22 18:07:00 1995 Karl Fogel * Teeth: brushed. Wed Feb 22 18:03:46 1995 Karl Fogel * lisp/gene-help.el (gene-help-frame-parameters): fixed malformed parameter list. * lisp/gene-frame.el (gene-frame-show): make sure switch to a buffer, not a buffer name. * lisp/gene-ann-mode.el (gene-ann-show-frame): pass buffer, not buffer name, to `gene-frame-show'. Wed Feb 22 17:49:12 1995 Karl Fogel * lisp/gene-frame.el (gene-frame-show): made it so that BUFFER can be a buffer name as well as a buffer. Wed Feb 22 17:45:09 1995 Karl Fogel * lisp/gene-help.el, lisp/gene-ann-mode.el: Function's name is `gene-frame-show', not `gene-show-frame'. Duh. Wed Feb 22 17:41:41 1995 Karl Fogel * lisp/gene-help.el (gene-help-frame-parameters): use backquote correctly. * lisp/gene-ann-mode.el (gene-ann-show-frame): use backquote correctly. Wed Feb 22 17:32:29 1995 Karl Fogel * ChangeLog: Learned that there's sometimes one "empty log message" that you can't get rid of... Wed Feb 22 17:31:19 1995 Karl Fogel * ChangeLog: Took out "empty log message" entries. Left this on in. Wed Feb 22 17:29:24 1995 Karl Fogel * lisp/gene-help.el (gene-help-make-frame): deleted; we're using gene-frame-show now. (gene-help-frame-parameters): new var. * lisp/gene-frame.el (gene-frame-show): return the frame. * lisp/gene-ann-mode.el (gene-ann-show-frame): use gene-frame-show. * lisp/gene-phylo.el (gene-phylo-mode): call `gene-menu-bar-make-hide-button'. * lisp/gene-ann-mode.el (gene-ann-show-frame): wrap in `gene-with-watch-cursor'. * lisp/gene-phylo.el (gene-phylo-views-menubar-pane): show the gene-phylo-common-views menu but not the gene-menu-common-views menu. * lisp/gene-mode-tools.el (gene-menu-bar-make-hide-button): "" instead of "Hide", for a more distinctive appearance. * lisp/gene-menus.el (gene-menu-common-views): removed this func, after putting most of its body directly into gene-menu-alignment-views. (gene-menu-alignment-views): see above. Wed Feb 22 00:16:31 1995 Karl Fogel * docs/ale.texi (Entering New Sequence Data): new section. (Monitoring Position): new section. (Selections): completely redone (see below). (Selection Creation): new subsection of above. (Selection Operations): same. (Installation): substantially updated and rewritten. * lisp/gene-posmon.el (gene-posmon-add-sequence-interactive): replaces `gene-posmon-add-current-sequence'. Still displays a message, but can add any old sequence. Meant to be used interactively via the mouse-3 menus. (gene-posmon-monitoring-on): frame width 62 instead of 70. * lisp/gene-menus.el (gene-menu-search-menu): moved "Go To Organism" to here from the Movement Menu , now call it "Search for Organism By Name". (gene-menu-build-seq-menu): use above new func. (gene-menu-common-views): moved posmon toggling to here from Settings menu. * lisp/gene-io.el (gene-io-temp-file-dir): try /tmp before /usr/tmp; doing it the other way caused space problems on darwin. Tue Feb 21 21:16:04 1995 Karl Fogel * docs/ale.texi (Entering New Sequence Data): new section, covers entering data and double-checking it. Tue Feb 21 19:09:22 1995 Jim Blandy * readers/fasta-tabl.c, readers/hash.c, readers/lenstring.c, readers/tabl-embl.c, readers/tabl-fasta.c, readers/embl-tabl.c, phylo/phylo.c, phylo/hash.c, analyses/hash.c, analyses/lenstring.c: Use instead of , where possible. * phylo.c: Don't #include ; it doesn't seem to be necessary. Sat Feb 18 05:47:44 1995 Karl Fogel * lisp/gene-mode-tools.el (gene-quit-maybe-offer-save): give less offensive message. I thought I had removed all those, but apparently not. Sat Feb 18 05:34:30 1995 Karl Fogel * lisp/gene-selection.el (gene-sel-finish-select-internal): if two-sided, make sure both corners are adjusted, not just one. Sat Feb 18 04:07:25 1995 Karl Fogel * lisp/gene-posmon.el (gene-posmon-remove-sequence): make sure point is after the current sequence before doing the text-property search. (gene-posmon-monitoring-on): use `gene-posmon-modeline-string'. (gene-posmon-current-column): new var, for modeline. (gene-posmon-modeline-string): same. (gene-posmon-update-sequence-stats): set above var instead of putting the column into the buffer. (gene-posmon-current-column): deleted this var. * lisp/gene-menus.el (gene-menu-build-seq-menu): put an extra line after "Monitor Position". * lisp/gene-posmon.el (gene-posmon-update): if no ref sequences, clean up their area. * lisp/gene-posmon.el: Fixed missing paren. * lisp/gene-seq-mode.el, lisp/gene-cut-paste.el, lisp/gene-posmon.el (gene-seq-delete-sequence): pass flag to gene-posmon-remove-sequence