1. 13 May, 2010 1 commit
  2. 08 Mar, 2009 1 commit
  3. 10 Nov, 2007 1 commit
  4. 20 Jul, 2007 1 commit
  5. 11 Jul, 2007 2 commits
  6. 24 Jun, 2007 1 commit
  7. 08 Jun, 2007 1 commit
  8. 26 Apr, 2007 1 commit
  9. 21 Nov, 2006 1 commit
  10. 27 Apr, 2013 2 commits
  11. 11 Jan, 2005 1 commit
    • Pontus Freyhult's avatar
      Applied patch from calle@lysator.liu.se, fixes bug 1487: · 9e7ac792
      Pontus Freyhult authored
      * english-strings.el (lyskom-message): Added reformat-rot13,
      review-rot13-q and lyskom-button-review-rot13-action.
      (lyskom-command): Added kom-review-rot13.
      
      * swedish-strings.el (lyskom-message): Added reformat-rot13,
      review-rot13-q and lyskom-button-review-rot13-action.
      (lyskom-command): Added kom-review-rot13.
      
      * view-text.el (lyskom-rot13-string): New function.
      (lyskom-filter-rot13): Dito.
      
      * lyskom-buttons.el (lyskom-button-review-rot13): New button
      action.
      
      * menus.el (lyskom-menu-template): Added kom-review-rot13.
      
      * review.el (kom-review-rot13): New function.
      
      * vars.el.in (lyskom-button-actions): Added rot13 review action.
      (lyskom-commands): Added kom-review-rot13.
      9e7ac792
  12. 25 Oct, 2004 1 commit
  13. 23 Oct, 2004 1 commit
  14. 18 Jul, 2004 1 commit
    • David Byers's avatar
      Keep the unread counter in the membership buffer up-to-date · bec35a53
      David Byers authored
      Detailed changes:
      > 	* mship-edit.el (lp--maybe-update-unreads): Zero unreads are
      > 	formatted as "", even if there is a read-info on the to-do list.
      >
      > 	* clienttypes.el (read-list-enter-read-info): Update unreads when
      > 	appending unread texts to old read-infos and adding new
      > 	read-infos.
      >
      > 	* view-text.el (lyskom-mark-as-read): Removed the callback. We
      > 	update the membership buffer elsewhere.
      >
      > 	* clienttypes.el (read-list-enter-text): Update unreads in the
      > 	membership buffer.
      > 	(read-list-delete-text): Update unreads in the membership buffer.
      >
      > 	* komtypes.el (text-list->memq): New subst.
      >
      bec35a53
  15. 11 Jul, 2004 1 commit
    • David Byers's avatar
      Major performance improvements. Minor bug fixes. · d8a8cb58
      David Byers authored
      Detailed changes:
      > 2004-07-11  David Byers  <byers@lysator.liu.se>
      >
      > 	Performance improvements:
      > 	* prefetch.el: Completely new implementation.
      >
      > 	New implementation of lyskom-membership using AVL trees:
      > 	* commands2.el (kom-list-news): Use lyskom-traverse-membership
      > 	instead of mapping over lyskom-membership.
      > 	(lyskom-update-membership-buffer): Use lyskom-traverse-membership
      > 	instead of traversing lyskom-membership
      >
      > 	* stack-m.el: New file. Copied from elib with modifications.
      >
      > 	* elib-node.el: New file. Copied from elib with modifications.
      >
      > 	* avltree.el: New file. Copied from elib with modifications.
      >
      > 	* prefetch.el (lyskom-prefetch-membership-handler): Use
      > 	lyskom-add-memberships-to-membership since this function now
      > 	maintains a sorted membership list.
      >
      > 	* reading.el (lyskom-membership-<): Moved here from lyskom-rest.el.
      > 	(lyskom-membership-length): New function.
      > 	(lyskom-init-membership): New function.
      > 	(lyskom-membership-position): New implementation.
      > 	(lyskom-remove-membership): New implementation.
      > 	(lyskom-replace-membership): New implementation.
      > 	(lyskom-insert-membership): New implementation.
      > 	(lyskom-add-memberships-to-membership): New implementation.
      > 	(lyskom-update-membership-positions): New implementation.
      > 	(lyskom-mship-cache-del): New function.
      > 	(lyskom-mship-cache-put): New function.
      > 	(lyskom-mship-cache-get): New function.
      > 	(lyskom-mship-cache-create): New function.
      > 	(lyskom-mship-cache-data): New function.
      > 	(lyskom-mship-cache-index): New function.
      > 	(lyskom-mship-cache): New variable.
      > 	(lyskom-get-membership): Moved here from lyskom-rest.el. New
      > 	implementation.
      > 	(lyskom-try-get-membership): Ditto.
      >
      > 	* commands1.el (lyskom-add-member): Reimplement position
      > 	calculation using lyskom-traverse-membership and possibly fixing a
      > 	bug along the way.
      >
      > 	* macros.el (lyskom-traverse): New implementation using catch and
      > 	no hard-coded variable names.
      > 	(lyskom-traverse-break): New implementation using throw.
      > 	(lyskom-traverse-aux): New implementation using catch and
      > 	new-style backqoutes.
      > 	(lyskom-traverse-membership): New macro.
      >
      > 	* commands1.el (kom-delete-conf): Don't manipulate
      > 	lyskom-membership directly.
      > 	(lyskom-add-member): Ditto.
      >
      > 	* startup.el (lyskom-set-membership): Removed. Not used.
      > 	(lyskom-clear-vars): Don't save lyskom-membership or
      > 	lyskom-membership-is read. They're overwritten anyway.
      >
      > 	* macros.el (lyskom-with-lyskom-buffer): New macro.
      >
      > 2004-06-28  David Byers  <byers@lysator.liu.se>
      >
      > 	Fix a bug where texts were not marked as read when they got a new
      > 	recipient and also weren't placed in the read-list:
      > 	* view-text.el (lyskom-mark-as-read): Use lyskom-recpt-types-list
      > 	instead of hard-coding the list.
      >
      > 	* async.el (lyskom-async-new-recipient): When processing a new
      > 	recipient, call mark-as-read with the text's local number, not
      > 	it's global number.
      >
      d8a8cb58
  16. 21 Feb, 2004 1 commit
    • David Byers's avatar
      Fixed bug 1250. I hope. · bb7aca6f
      David Byers authored
      Detailed changes:
      > 2004-02-21  David Byers  <byers@lysator.liu.se>
      >
      > 	Fix bug 1250:
      > 	* view-text.el (lyskom-text-read-at-least-once-p): Don't consider
      > 	passive memberships.
      > 	(lyskom-text-read-p): Same here.
      >
      > 	* services.el (initiate-get-part-of-membership): Don't get read texts.
      >
      > 	* lyskom-rest.el (lyskom-get-read-texts-for-membership): New
      > 	function.
      >
      > 	* commands2.el (kom-is-person-member-of-conference): Use it here.
      >
      bb7aca6f
  17. 16 Aug, 2003 1 commit
    • David Byers's avatar
      Cleaned up compatibility code. Handle async-text-aux-changed. · 4fadea6a
      David Byers authored
      Detailed changes that consist only of name changes have been
      excluded from this message (see the ChangeLog for details).
      
      Detailed changes:
      > 2003-08-16  David Byers  <byers@lysator.liu.se>
      >
      > 	Handle async-text-aux-changed:
      > 	* async.el (lyskom-parse-async): Handle async-text-aux-changed.
      >
      > 	* aux-items.el (lyskom-aux-item-modify-list): New function.
      >
      > 	* komtypes.el (text-stat): Make aux-items field read-write.
      >
      > 	Major cleanup of compatibility code:
      > 	* compatibility.el: Cleaned up compatibility code a lot. We no
      > 	longer provide fake versions of MULE-related functions or any
      > 	other function that other code might take to mean there's some
      > 	major feature in Emacs. The only definitions we make in the
      > 	standard namespace are "safe" functions. Removed functions that
      > 	are not used. Simplified some of the macros. Moved code here from
      > 	utilities.el.
      > 	(lyskom-gnu-keysym,lyskom-xemacs-keysym): Removed swedish chars
      > 	from the lists since we don't use lyskom-keys for that any more.
      >
      > 	* compatibility.el (coding-system-type): New compatibility def.
      > 	(coding-system-property): New compatibility def.
      > 	(split-string): Provide compatibility definition for split-string.
      >
      > 	* lyskom-rest.el (lyskom-unity-text): Use compatibility functions
      > 	for MULE stuff.
      >
      > 	* macros.el (lyskom-end-of-compilation): Don't remove
      > 	compatibility definitions from the list of warnings for unresolved
      > 	functions since this serves no purpose and hides actual errors.
      >
      > 	* mship-edit.el (lp--maybe-update-unreads): Use
      > 	lyskom-next-property-bounds, not next-text-property-bounds.
      >
      > 	* lyskom-rest.el (lyskom-do-special-inserts): Use
      > 	lyskom-next-property-bounds, not next-text-property-bounds.
      >
      > 	* mime.el (lyskom-mime-string-charset): Use :mime-charset next to
      > 	mime-charset (Gnus does this ans says it is the Emacs 22 way).
      4fadea6a
  18. 15 Aug, 2003 1 commit
    • David Byers's avatar
      Fixed bug 301. · a947e09f
      David Byers authored
      Detailed changes:
      > 	* view-text.el (lyskom-get-text-belongs-to): New function.
      >
      > 	Fix bug 301:
      > 	* commands1.el (kom-move-text): Move attachments and footnotes
      > 	together with the text.
      > 	(kom-sub-recipient): Remove recipient from attachments and
      > 	footnotes too.
      > 	(lyskom-add-helper): Add recipients to attachments and footnotes
      > 	too.
      >
      a947e09f
  19. 01 Jun, 2003 1 commit
    • David Byers's avatar
      Fix bug 584. · 6c122f87
      David Byers authored
      Detailed changes:
      > 	Fix bug 587:
      > 	* lyskom-rest.el (lyskom-format-x-kom/user-area): New function.
      >
      > 	* view-text.el (lyskom-print-text): Special patch for user area
      > 	(which has no subject line).
      >
      > 	* flags.el (lyskom-get-holerith): New function that does what
      > 	lyskom-read-options-eval-get-holerith does, but does it without
      > 	side effects in lyskom-options-text.
      >
      6c122f87
  20. 07 Apr, 2003 1 commit
  21. 05 Jan, 2003 1 commit
    • David Byers's avatar
      Major code cleanup. · fe48d131
      David Byers authored
      I have made lots of changes, including transitioning most data
      structures to use def-komtype, removing functions that weren't used
      (there are several left), removing almost all the remaining who-buffer
      remnants and generally messing with things.
      
      Chances are I broke something. I haven't figured out what yet, but do
      let me know if you spot anything.
      
      
      Detailed changes:
      > 	* I have cleaned up all over the place. There are no ChangeLog
      > 	entries for most of the changes. Changes include: converting types
      > 	to use def-komtype; removing who-buffer code; removing who-info
      > 	cache; removing dead code; removing commented-out code.
      >
      > 	* mship-edit.el (lp--hide-memberships-by-date): Call
      > 	lyskom-read-date.
      >
      > 	Code cleanup:
      > 	* prefetch.el (lyskom-prefetch-whobuffer-handler): Commented out
      > 	the code since thw who buffer is gone.
      >
      > 	* commands2.el (kom-bury): Removed who-buffer code.
      >
      > 	* cache.el: Removed who-info cache.
      >
      > 	* async.el (lyskom-parse-async): Removed who-buffer code.
      > 	(lyskom-parse-async): Don't cache who info.
      >
      > 	* filter-edit.el (filter-entry): Redefined using def-komtype.
      >
      > 	* komtypes.el (conf-no-list): Redefined using def-komtype.
      >
      > 	* prioritize.el (prioritize-entry): Redefined using def-komtype.
      >
      > 	* clienttypes.el: Removed format-props and who-buffer-related
      > 	types.
      >
      > 	* lyskom-rest.el (lyskom-format-aux-help): Removed something about
      > 	format-props, which aren't used anywhere.
      >
      > 	* komtypes.el,deferred-insert.el,clienttypes.el,mship-edit.el,names.el,
      > 	regexp.el,tree-edit.el: Rewrote all uses of def-komtype. Defined
      > 	more datatypes using def-komtype. Removed unused functions.
      >
      > 	* clienttypes.el (format-state): Renamed argl to args, since
      > 	that's what we actually use.
      > 	(format-state): Converted to new def-komtype syntax.
      >
      > 	* lyskom-rest.el (lyskom-membership-highest-index): Unused.
      > 	Removed.
      >
      > 	* komtypes.el (def-komtype): Added support for &optional in the
      > 	arg list and for default values.
      > 	(privs): Re-implemented with def-komtype.
      > 	(pers-stat): Ditto.
      > 	(text-stat): Ditto.
      > 	(conf-stat): Ditto.
      > 	(flags): Ditto.
      > 	(map): Ditto.
      > 	(membership): Ditto.
      > 	(conf-list): Ditto.
      > 	(text): Ditto.
      > 	(misc-info): Ditto.
      > 	(mark): Ditto.
      > 	(lyskom-create-who-info): Ditto.
      > 	(session-info): Ditto.
      > 	(conf-type): Ditto.
      > 	(server-info): Ditto.
      > 	(version-info): Ditto.
      > 	(conf-z-info-list): Ditto.
      >
      > 	* deferred-insert.el (defer-info): Re-implemented with
      > 	def-komtype.
      >
      > 	* language.el (lyskom-string-check-category): Unused. Removed.
      >
      > 	* async.el (lyskom-show-changed-person): Unused. Removed.
      >
      > 	* utilities.el (lyskom-set-face-foreground): Unused. Removed.
      > 	(lyskom-set-face-background): Unused. Removed.
      >
      > 	* lyskom-buttons.el (lyskom-set-default-button-action): Unused.
      > 	Removed.
      >
      > 	* startup.el (lyskom-print-name): Unused. Removed.
      >
      > 	* lyskom-buttons.el (lyskom-menu-selection): Unused. Removed.
      >
      > 	* aux-items.el (lyskom-map-aux-items): Unused. Removed.
      >
      > 	* view-text.el (lyskom-fetch-author-for-cache): Unused. Removed.
      >
      > 	* utilities.el (lyskom-emacs-version): Unused. Removed.
      >
      > 	* view-text.el (lyskom-fetch-text-for-cache): Unused. Removed.
      >
      > 	* utilities.el (lyskom-face-resource): Unused. Removed.
      > 	(lyskom-modify-face): Unused. Removed.
      >
      > 	* startup.el (lyskom-extract-persons): Unused. Removed.
      > 	(lyskom-extract-confs): Unused. Removed.
      > 	(lyskom-do-extract-persons-or-confs): Unused. Removed.
      >
      > 	* edit-text.el (lyskom-edit-goto-char): Unused. Removed.
      > 	(lyskom-edit-on-aux-item): Unused. Removed.
      >
      > 	* utilities.el (lyskom-background-mode): Unused. Removed.
      >
      fe48d131
  22. 02 Jan, 2003 1 commit
    • David Byers's avatar
      New face selection scheme is now fully in operation. · 092b3de6
      David Byers authored
      Detailed changes:
      > 2003-01-03  David Byers  <david.byers@swipnet.se>
      >
      > 	* lyskom-buttons.el (lyskom-default-button): Use default, not
      > 	kom-text-face for timestamp buttons since kom-text-face is no
      > 	more.
      >
      > 	Implement face customization:
      > 	* option-edit.el (lyskom-face-widget, lyskom-face-widget): New
      > 	widget type.
      > 	(lyskom-widget-functions): Added face widget to the list.
      >
      > 	* view-text.el (lyskom-print-text): Get generated faces if the
      > 	user hasn't selected any specific faces.
      >
      > 	* startup.el (lyskom): Get generated faces if the user hasn't
      > 	selected any specific faces.
      >
      > 	* commands2.el (lyskom-send-message): Get generated faces if the
      > 	user hasn't selected any specific faces.
      >
      > 	* async.el (lyskom-format-as-personal-message): Get generated
      > 	faces if the user hasn't selected any specific faces.
      >
      1a25,34
      >
      > 	Implement face customization:
      > 	* faces.el (lyskom-setup-faces-for-buffer): Don't muck with the
      > 	user-selectable values.
      >
      > 	* option-edit.el: Added var parameter to all widget conversion
      > 	functions.
      >
      > 	* utilities.el (lyskom-current-client-time): Removed some
      > 	comments.
      092b3de6
  23. 01 Jan, 2003 1 commit
    • David Byers's avatar
      Work on new face code. Face schemes are out and face variables are · 5b04897f
      David Byers authored
      in. This means that you can have different settings for different
      sessions and servers. Your old settings should do nothing useful any
      more. Everything will be customizable through kom-customize, but
      that's not done yet.
      
      You should restart Emacs to load these changes. Attempting to load
      over a running elisp client will probably only lead to grief.
      
      This commit has not been tested very much. You have been warned.
      
      
      Detailed changes:
      > 	Work on new face code:
      > 	* view-text.el (lyskom-view-text): Send evaluated face properties
      > 	to lyskom-format.
      > 	(lyskom-print-text): Ditto.
      >
      > 	* utilities.el (lyskom-check-configuration): Send evaluated face
      > 	properties to lyskom-format.
      >
      > 	* startup.el (lyskom): Send evaluated face properties to
      > 	lyskom-format.
      >
      > 	* commands2.el (kom-status-conf): Send evaluated face properties
      > 	to lyskom-format.
      > 	(kom-status-person): Ditto.
      > 	(lyskom-send-message): Ditto.
      > 	(kom-obsolete-extended-command-binding): Ditto.
      >
      > 	* commands1.el (kom-delete-text): Send evaluated face properties
      > 	to lyskom-format.
      >
      > 	* async.el (lyskom-show-logged-in-person): Send evaluated face
      > 	properties to lyskom-format.
      > 	(lyskom-show-logged-out-person): Ditto.
      > 	(lyskom-format-as-personal-message): Ditto.
      >
      > 	* check-strings.el (lyskom-check-strings): Removed all
      > 	face-related goop.
      >
      > 	* vars.el.in: Removed all face-related goop.
      >
      > 	* faces.el: New file.
      >
      > 	* startup.el (lyskom): Call lyskom-setup-faces-for-buffer, not
      > 	lyskom-setup-faces.
      >
      > 	* option-edit.el (kom-customize): Evaluate face variables instead
      > 	of quoting face names.
      >
      > 	* mship-edit.el (lp--format-entry): Evaluate face variables
      > 	instead of quoting face names.
      > 	(lp--redraw-entry-mark): Ditto.
      >
      > 	* lyskom-rest.el (kom-next-command): Evaluate face variables
      > 	instead of quoting face names
      > 	(lyskom-format-aux-help): Ditto.
      >
      > 	* lyskom-buttons.el (lyskom-button-add-links): Evaluate face
      > 	variable kom-url-face instead of quoting face name.
      > 	(lyskom-button-get-face): Evaluate the face found for the button
      > 	type.
      > 	(lyskom-generate-button): Evaluate face variables instead of
      > 	quoting face names
      > 	(lyskom-default-button): Ditto.
      >
      > 	* keyboard-menu.el (lyskom-keyboard-menu-highlight-selected):
      > 	Evaluate face variable, instead of quoting face name
      > 	kom-mark-face.
      >
      > 	More flexible date parser:
      > 	* utilities.el (lyskom-all-prefixes): New function.
      > 	(lyskom-parse-date): Permit prefixes for "days", "years",
      > 	"months". Allow whitespace before and after input. Do not require
      > 	minus sign when specifying number of days. Do not require
      > 	whitespace separators in several places. Permit spaces around
      > 	separators. Accept space as a separator.
      >
      5b04897f
  24. 31 Dec, 2002 1 commit
    • David Byers's avatar
      > 2002-12-31 David Byers <david.byers@swipnet.se> · df58bdfd
      David Byers authored
      >
      > 	Improve kom-list-summary:
      > 	* commands2.el (lyskom-do-list-summary): Damn. Already midnight.
      > 	Don't print the subject on comments more than once in a row.
      > 	(lyskom-print-summary-line): Don't compute subject here. Get it in
      > 	a param instead.
      >
      > 2002-12-30  David Byers  <david.byers@swipnet.se>
      >
      > 	Improve kom-list-summary:
      > 	* commands2.el (lyskom-print-summary-line): Print deep comment
      > 	levels without additional indent, like nn does.
      >
      > 	Remove bugzilla links (text links supersede these):
      > 	* lyskom-buttons.el (lyskom-button-transform-text): De-implemented
      > 	bugzilla links.
      > 	(lyskom-button-show-bugzilla-bug): Removed this function.
      >
      > 	* vars.el.in (kom-my-bugzilla): Removed this variable. Text links
      > 	generalize bugzilla links.
      > 	(lyskom-text-buttons): Removed bugzilla text buttons.
      > 	(lyskom-button-actions): Same here.
      >
      > 	More text links:
      > 	* lyskom-buttons.el (lyskom-button-add-links): New function.
      > 	(lyskom-button-transform-text): Call it to create links from
      > 	kom-text-links.
      >
      > 	* vars.el.in (kom-text-links): New variable.
      >
      > 	* clienttypes.el (lyskom-create-lyskom-text-link): New function.
      > 	(lyskom-text-link->pattern): New function.
      > 	(lyskom-text-link->replacement): New function.
      > 	(lyskom-text-link->highlight): New function.
      > 	(lyskom-text-link->ignore-case): New function.
      >
      > 	New nameday lists from Hans Persson:
      > 	* names.el (sv-1993): New nameday list.
      > 	(sv-pre-1901): Renamed nameday list from sv-1901
      > 	(sv-1901): New nameday list.
      > 	(sv-1986): New nameday list.
      >
      > 2002-12-22  David Byers  <david.byers@swipnet.se>
      >
      > 	Work on bug 946:
      > 	* commands2.el (lyskom-do-list-summary): Display texts in comment
      > 	order with indentation.
      > 	(lyskom-print-summary-line): Support indentation.
      >
      > 2002-12-18  David Byers  <david.byers@swipnet.se>
      >
      > 	* lyskom-buttons.el (lyskom-button-transform-text): Added
      > 	text-stat argument.
      >
      > 	Implement text links:
      > 	* lyskom-rest.el (lyskom-format-ö): Pass text-stat to
      > 	lyskom-button-transform-text.
      > 	(lyskom-format-enriched): Ditto.
      > 	(lyskom-format-text-body): Ditto.
      > 	(lyskom-format-aux-help): Handle cons in format-letter r.
      >
      > 	* view-text.el: Send the text-stat when formatting subject.
      >
      > 2002-12-17  David Byers  <david.byers@swipnet.se>
      >
      > 	Work on bug 753:
      > 	* flags.el (lyskom-read-options): Added optional buffer argument
      > 	to support reading settings from a different session.
      >
      df58bdfd
  25. 12 Jun, 2002 2 commits
  26. 21 May, 2002 1 commit
  27. 07 May, 2002 1 commit
    • David Byers's avatar
      Loads of changes. · f274a6c4
      David Byers authored
      Implemented kom-* synonyms for almost all lyskom-* hooks. The old names
      shall be considered obsolede.
      
      Highilghting of asynchronous messages as with texts.
      
      Support overlays when doing lyskom-insert on the result of lyskom-format.
      
      Fix lyskom-insert to handle special-insert properties that are adjacent to each other.
      
      Fix lyskom-unicase so it isn't fooled by a lying Emacs.
      
      Hopefully guard against missing diff command when calling ediff-buffers.
      
      Added user-hooks.el, a new place for hook functions that users
      might want to use elsewhere. Added some kom-change-conf-hook and
      kom-after-change-conf-hook functions to this file.
      f274a6c4
  28. 01 May, 2002 1 commit
    • David Byers's avatar
      Fixed bugs: · bb4a0cd9
      David Byers authored
      First line overlay not visible in XEmacs
      Started work on automatic computation of background colors
      Removed extra space around names of imported message senders
      Updated presentation-form
      Fixed some variable documentation
      Updated first-greeting
      Fixed problem when changing presentation or FAQ
      Improved communications loggins
      Improved parser error detection and recovery
      
      New command: kom-move-text-tree.
      bb4a0cd9
  29. 25 Apr, 2002 1 commit
  30. 24 Apr, 2002 1 commit
  31. 22 Apr, 2002 1 commit
    • David Byers's avatar
      Separate background color on texts. · a85880b3
      David Byers authored
      WARNING: This version will NOT work with XEmacs. It uses overlays.
      Overlays are not supported in XEmacs and I have not written code
      that falls back on extents if overlays are not available.
      a85880b3
  32. 24 Feb, 2002 1 commit
  33. 04 Feb, 2002 1 commit
  34. 30 Jan, 2002 1 commit
  35. 04 Nov, 2001 1 commit
  36. 30 May, 2001 1 commit
  37. 24 May, 2001 1 commit
    • David Byers's avatar
      Better support for change conf hooks. · 43038725
      David Byers authored
      Bug fixes: can change presentation even when old one is missing and
      can handle prehistoric dates on imported e-mails (calendar reported
      negative day-of-week)
      43038725