• Ted Zlatanov's avatar
    Bring the Gnus Cloud package into working order. · 30b3a842
    Ted Zlatanov authored
    * lisp/gnus/gnus-sync.el: Removed in favor of gnus-cloud.el.
    
    * lisp/gnus/gnus-cloud.el: Autoload EPG functions. Change storage format to
    simplify non-file data.
    (gnus-cloud-storage-method): New defcustom to support nil, Base64,
    Base64+gzip, or EPG encoding on the Gnus Cloud IMAP server. Defaults to
    EPG if that's available, Base64+gzip otherwise.
    (gnus-cloud-interactive): New defcustom to make Gnus Cloud operations
    interactive, defaults to enabled.
    (gnus-cloud-group-name): New variable for the Gnus Cloud group name.
    (gnus-cloud-make-chunk): Tag with "Gnus-Cloud-Version" instead of just
    "Version".
    (gnus-cloud-insert-data): Simplify and support :newsrc-data entries.
    (gnus-cloud-encode-data, gnus-cloud-decode-data): Support various
    storage methods as per gnus-cloud-storage-method.
    (gnus-cloud-parse-chunk): Look for "Gnus-Cloud-Version" marker.
    (gnus-cloud-parse-version-1): Fix parsing loop bug. Handle :newsrc-data
    entries.
    (gnus-cloud-update-all): Handle :newsrc-data entries and dispatch to
    file and data handlers.
    (gnus-cloud-update-newsrc-data): New function to handle :newrsc-data
    entries.
    (gnus-cloud-update-file): Rework to support gnus-cloud-interactive and
    be more careful.
    (gnus-cloud-delete-file): Remove; merged into gnus-cloud-update-file.
    (gnus-cloud-file-covered-p, gnus-cloud-all-files)
    (gnus-cloud-files-to-upload, gnus-cloud-ensure-cloud-group)
    (gnus-cloud-add-timestamps, gnus-cloud-available-chunks)
    (gnus-cloud-prune-old-chunks): Fix indentation.
    (gnus-cloud-timestamp): New function to make a standard Gnus Cloud
    timestamp.
    (gnus-cloud-file-new-p): Use it.
    (gnus-cloud-upload-all-data): Add interactive convenience function to
    upload all data.
    (gnus-cloud-upload-data): Make interactive; collect files and newsrc
    data separately; refresh Gnus Cloud group after insert.
    (gnus-cloud-download-all-data): Add interactive convenience function to
    download all data.
    (gnus-cloud-download-data): Rework to support "Gnus-Cloud-Version"
    marker and different storage methods.
    (gnus-cloud-host-server-p): New function to check if a server is the
    Gnus Cloud host.
    (gnus-cloud-collect-full-newsrc): Tag entries with :newsrc-data.
    (gnus-cloud-host-acceptable-method-p): New function so
    other code can check if a server method can host the Gnus cloud.
    (gnus-cloud-storage-method): Use 'radio instead of 'choice for better UI.
    (gnus-cloud-method): Make this a defcustom and note how to set it.
    
    * lisp/gnus/gnus-group.el (gnus-group-cloud-map): Add Gnus Cloud autoloaded
    keybindings under the `~' prefix.
    
    * lisp/gnus/gnus-srvr.el (gnus-server-mode-map, gnus-server-make-menu-bar)
    (gnus-server-cloud, gnus-server-cloud-host)
    (gnus-server-font-lock-keywords, gnus-server-insert-server-line)
    (gnus-server-toggle-cloud-method-server): Support Gnus Cloud
    synchronized servers and synchronization host server toggling (`i' and
    `I') and visual display.
    (gnus-server-toggle-cloud-method-server): Use
    gnus-cloud-host-acceptable-method-p.
    (gnus-server-toggle-cloud-method-server): Use custom-set-variables to
    set the gnus-cloud-method. Ask the user if it's OK to upload the data
    right now.
    
    * doc/misc/gnus.texi: Document Gnus Cloud package.
    30b3a842
gnus-srvr.el 38.4 KB