;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\210\312\313\314\315\316DD\317\320\321\310\303&\210\312\322\314\315\323DD\324\320\325\310\303&\210\326\322\327\330#\210\326\322\331\332#\207" [require epg custom-declare-group plstore nil "Searchable, partially encrypted, persistent plist store" :version "24.1" :group files custom-declare-variable plstore-select-keys funcall function #[0 "\300\207" [silent] 1] "Control whether or not to pop up the key selection dialog.\n\nIf t, always asks user to select recipients.\nIf nil, query user only when a file's default recipients are not\nknown (i.e. `plstore-encrypt-to' is not locally set in the buffer\nvisiting a plstore file).\nIf neither t nor nil, doesn't ask user." :type (choice (const :tag "Ask always" t) (const :tag "Ask when recipients are not set" nil) (const :tag "Don't ask" silent)) plstore-encrypt-to #[0 "\300\207" [nil] 1] "Recipient(s) used for encrypting secret entries.\nMay either be a string or a list of strings. If it is nil,\nsymmetric encryption will be used." (choice (const nil) (repeat :tag "Recipient(s)" string)) put safe-local-variable #[257 "\211;\206\211<\205\3002\301\302\"\210\3030\207" [safe mapc #[257 "\211;?\205\n\300\301\302\"\207" [throw safe nil] 4 "\n\n(fn ELT)"] t] 4 "\n\n(fn VAL)"] permanent-local t] 8) (defvar plstore-encoded nil) (put 'plstore-encoded 'permanent-local t) (defvar plstore-cache-passphrase-for-symmetric-encryption nil) (defvar plstore-passphrase-alist nil) #@31 (fn CONTEXT KEY-ID PLSTORE) (defalias 'plstore-passphrase-callback-function #[771 "\2034\302\303!!\304 \"\305\306A!\2063\204!C\262 B\307\310\311\312!\"!\262\306!\241\210\211\207\307\310\311\312!\"!\207" [plstore-cache-passphrase-for-symmetric-encryption plstore-passphrase-alist file-truename plstore-get-file assoc nil copy-sequence read-passwd format "Passphrase for PLSTORE %s: " plstore--get-buffer] 11 (#$ . 1903)]) #@49 (fn CONTEXT WHAT CHAR CURRENT TOTAL HANDBACK) (defalias 'plstore-progress-callback-function #[1542 "U\203 \300\301\"\207\300\302\303V\203\"\304\305!\245\306_!\202#\303#\207" [message "%s...done" "%s...%d%%" 0 floor float 100] 13 (#$ . 2350)]) #@12 (fn ARG) (defalias 'plstore--get-buffer #[257 "\211\300H\207" [0] 3 (#$ . 2613)]) #@12 (fn ARG) (defalias 'plstore--get-alist #[257 "\211\300H\207" [1] 3 (#$ . 2703)]) #@12 (fn ARG) (defalias 'plstore--get-encrypted-data #[257 "\211\300H\207" [2] 3 (#$ . 2792)]) #@12 (fn ARG) (defalias 'plstore--get-secret-alist #[257 "\211\300H\207" [3] 3 (#$ . 2890)]) #@12 (fn ARG) (defalias 'plstore--get-merged-alist #[257 "\211\300H\207" [4] 3 (#$ . 2986)]) #@19 (fn ARG BUFFER) (defalias 'plstore--set-buffer #[514 "\300I\207" [0] 5 (#$ . 3082)]) #@18 (fn ARG PLIST) (defalias 'plstore--set-alist #[514 "\300I\207" [1] 5 (#$ . 3177)]) #@27 (fn ARG ENCRYPTED-DATA) (defalias 'plstore--set-encrypted-data #[514 "\300I\207" [2] 5 (#$ . 3270)]) #@25 (fn ARG SECRET-ALIST) (defalias 'plstore--set-secret-alist #[514 "\300I\207" [3] 5 (#$ . 3381)]) #@25 (fn ARG MERGED-ALIST) (defalias 'plstore--set-merged-alist #[514 "\300I\207" [4] 5 (#$ . 3488)]) #@12 (fn ARG) (defalias 'plstore-get-file #[257 "\300\301!!\207" [buffer-file-name plstore--get-buffer] 4 (#$ . 3595)]) #@72 (fn &optional BUFFER ALIST ENCRYPTED-DATA SECRET-ALIST MERGED-ALIST) (defalias 'plstore--make #[1280 "\300%\207" [vector] 11 (#$ . 3719)]) #@16 (fn PLSTORE) (defalias 'plstore--init-from-buffer #[257 "eb\210\300\301!\205.\302y\210\303\304\305 !\"\210\306 \210\302u\210\300\307!\203+\302y\210\310\304\305 !\"\210\311!\207" [looking-at ";;; public entries" nil plstore--set-alist read point-marker forward-sexp ";;; secret entries" plstore--set-encrypted-data plstore--merge-secret] 5 (#$ . 3871)]) #@60 Create a plstore instance associated with FILE. (fn FILE) (defalias 'plstore-open #[257 "\302!\303!\206\304\305\306\"!\307!rq\210\310 \210\3111'\312\313!)0\202+\210\202,\210\302!\314\315!\210\316!\210)\207" [coding-system-for-read buffer-file-name file-truename find-buffer-visiting generate-new-buffer format " plstore %s" plstore--make erase-buffer (error) raw-text insert-file-contents set-buffer-modified-p nil plstore--init-from-buffer] 6 (#$ . 4237)]) #@70 Replace current data in PLSTORE with the file on disk. (fn PLSTORE) (defalias 'plstore-revert #[257 "r\300!q\210\301\302\211\"\210\303!)\207" [plstore--get-buffer revert-buffer t plstore--init-from-buffer] 4 (#$ . 4717)]) #@51 Destroy a plstore instance PLSTORE. (fn PLSTORE) (defalias 'plstore-close #[257 "\300\301!!\207" [kill-buffer plstore--get-buffer] 4 (#$ . 4948)]) #@16 (fn PLSTORE) (defalias 'plstore--merge-secret #[257 "\300!\301\211\211\211\211\211\302\303\304 !!\"\210\305!\262\205p@\262A\262A\262\306@\"\262A\262\203i\307\310\311\312\313@!\314\"P!\"\262\211\203W\211@\240\210\315@A@#\262AA\262\2029\241\210\202\207" [plstore--get-secret-alist nil plstore--set-merged-alist copy-tree plstore--get-alist plstore--get-merged-alist assoc plist-member intern ":secret-" substring symbol-name 1 plist-put] 15 (#$ . 5103)]) #@16 (fn PLSTORE) (defalias 'plstore--decrypt #[257 "\301!\205Y\302\303!\304\305\306B\"\210\307\310\311\312\313!\"B\"\210\3141/\315\301!\"\211\2620\202F\316\313!\"\211\203=\211\304\241\210\210\317@A\"\262\210\320\321!@\"\210\322!\210\323\304\"\266\202\207" [plstore-passphrase-alist plstore--get-encrypted-data epg-make-context OpenPGP nil epg-context-set-passphrase-callback plstore-passphrase-callback-function epg-context-set-progress-callback plstore-progress-callback-function format "Decrypting %s" plstore-get-file (error) epg-decrypt-string assoc signal plstore--set-secret-alist read-from-string plstore--merge-secret plstore--set-encrypted-data] 10 (#$ . 5607)]) #@40 (fn ENTRY KEYS SKIP-IF-SECRET-FOUND) (defalias 'plstore--match #[771 "\300\301\211\211\211\203[@\262A@\262\302A\"\262\235\204R\203L\303\304\305\306!\307\"P!\262\310A\"\203C\311\262\202R\301\262\301\262\202R\301\262\301\262AA\262\202\207" [t nil plist-get intern ":secret-" substring symbol-name 1 plist-member secret] 13 (#$ . 6305)]) #@74 Perform search on PLSTORE with KEYS. KEYS is a plist. (fn PLSTORE KEYS) (defalias 'plstore-find #[514 "\300\211\211\211\211\211\301!\262\203Y@\262A\262\302\303#\262\304=\203,\303\262\202\f\203\fA\262\211\203P\305\306\307@!\"\203H\303\262\300\262\211AA\262\2024B\262\202\f\203\214\300\262\310!\210\301!\262\203\214@\262A\262\302\300#\262\203kB\262\202k\237\207" [nil plstore--get-merged-alist plstore--match t secret string-match "\\`:secret-" symbol-name plstore--decrypt] 12 (#$ . 6686)]) #@55 Get an entry with NAME in PLSTORE. (fn PLSTORE NAME) (defalias 'plstore-get #[514 "\300\301!\"\302A\262\211\2034\303\304\305@!\"\203,\306!\210\300\301!\"\262\302\262\202 \211AA\262\202 \207" [assoc plstore--get-merged-alist nil string-match "\\`:secret-" symbol-name plstore--decrypt] 8 (#$ . 7242)]) #@163 Put an entry with NAME in PLSTORE. KEYS is a plist containing non-secret data. SECRET-KEYS is a plist containing secret data. (fn PLSTORE NAME KEYS SECRET-KEYS) (defalias 'plstore-put #[1028 "\300\211\211\211\203 \301!\210\203:\302\303\304\305@!\306\"P!\262\307\310#\262\307@A@#\262AA\262\202 \203`\302\303\304\305 @!\306\"P!\262\307@A@#\262AA\262\202:\311\312\n!\"\262\203u\241\210\202\203\313B\312 !B\"\210\203\252\311\314\n!\"\262\203\234\241\210\202\252\315B\314 !B\"\210\316!\207" [nil plstore--decrypt intern ":secret-" substring symbol-name 1 plist-put t assoc plstore--get-alist plstore--set-alist plstore--get-secret-alist plstore--set-secret-alist plstore--merge-secret] 13 (#$ . 7568)]) #@60 Delete an entry with NAME from PLSTORE. (fn PLSTORE NAME) (defalias 'plstore-delete #[514 "\300\301!\"\211\203\302\303\301!\"\"\210\300\304!\"\262\211\203,\305\303\304!\"\"\210\300\306!\"\262\211\205B\307\303\306!\"\"\207" [assoc plstore--get-alist plstore--set-alist delq plstore--get-secret-alist plstore--set-secret-alist plstore--get-merged-alist plstore--set-merged-alist] 9 (#$ . 8341)]) #@16 (fn PLSTORE) (defalias 'plstore--insert-buffer #[257 "\304\305\306!!\261\210\307!\205\201\310\311!\312<\203\202#;\205#C\312\313!\n>\2046\314\315\316D\"\210\211\317\320I\266\321\322B\"\210\323\305\307!! \320=\204^ \204h\324\300p\"\204h\325\326#\202r\205r\327\"#\262db\210\330\305!\261)\266\204\207" [plstore-encrypt-to pp-escape-newlines cl-struct-epg-context-tags plstore-select-keys ";;; public entries -*- mode: plstore -*- \n" pp-to-string plstore--get-alist plstore--get-secret-alist epg-make-context OpenPGP nil type-of signal wrong-type-argument epg-context 4 t epg-context-set-passphrase-callback plstore-passphrase-callback-function epg-encrypt-string local-variable-p epa-select-keys "Select recipients for encryption.\nIf no one is selected, symmetric encryption will be performed. " epg-list-keys ";;; secret entries\n"] 12 (#$ . 8766)]) #@68 Save the contents of PLSTORE associated with a FILE. (fn PLSTORE) (defalias 'plstore-save #[257 "r\300!q\210\301 \210\302!\210\303 )\207" [plstore--get-buffer erase-buffer plstore--insert-buffer save-buffer] 3 (#$ . 9667)]) #@16 (fn PLSTORE) (defalias 'plstore--encode #[257 "\300!\210\301!\302\303\304\305\306\307\310!\311\"\312\313%\314!\315#\316Q\207" [plstore--decrypt plstore--get-merged-alist "(" mapconcat make-byte-code 257 "\301!\262\302@\300\"AA\211\2037\303\304\305@!\"\203/\211A\306\307\310\311\305@!\312\225\"P!\"\240\210\211AA\262\202 \313!\207" vconcat vector [copy-sequence assoc string-match "\\`:secret-" symbol-name plist-get intern ":" substring 0 prin1-to-string] 11 "\n\n(fn ENTRY)" plstore--get-alist "\n" ")"] 10 (#$ . 9900)]) #@15 (fn STRING) (defalias 'plstore--decode #[257 "\300!@\211\301\211\211\203n@@;\204\302\303\"\210@A\262\203g\304\305\306@!\"\203_\307@@\"\262\211\204C@@C\262\211B\262\211\310A\311\312\313\306@!\314\225\"P!A@#\241\210A\315\240\210AA\262\202A\262\202\316\301\301$\207" [read-from-string nil error "Invalid PLSTORE format %s" string-match "\\`:secret-" symbol-name assoc plist-put intern ":" substring 0 t plstore--make] 14 (#$ . 10448)]) (defalias 'plstore--write-contents-functions #[0 "\205>\301\302 !\303 \304\305\306\307\310!\311\"\312$\216\313\314!\210\315\316!r\211q\210\304\305\317\307\310!\320\"\312$\216\321!\210\322\302 \314#\210*\210)\323\266\202\207" [plstore-encoded plstore--decode buffer-string buffer-file-name make-byte-code 0 "\301\300!\210\302\303!\207" vconcat vector [set-visited-file-name set-buffer-modified-p nil] 2 set-visited-file-name nil generate-new-buffer " *temp*" "\301\300!\205 \302\300!\207" [buffer-name kill-buffer] plstore--insert-buffer write-region t] 9]) #@40 Show the original form of this buffer. (defalias 'plstore-mode-original #[0 "\205!\301 \203\302\303!\203\304 \210\305 \210\306\307 !\210\310\311!\210\311\211\207" [plstore-encoded buffer-modified-p y-or-n-p "Save buffer before reading the original form? " save-buffer erase-buffer insert-file-contents-literally buffer-file-name set-buffer-modified-p nil] 2 (#$ . 11492) nil]) #@39 Show the decoded form of this buffer. (defalias 'plstore-mode-decoded #[0 "?\2050\301 \203\302\303!\203\304 \210\305p!\306!\210\307 \210\310\311!c\210\312!c\210\313\314!\210\315\211\262\207" [plstore-encoded buffer-modified-p y-or-n-p "Save buffer before decoding? " save-buffer plstore--make plstore--init-from-buffer erase-buffer substitute-command-keys ";;; You are looking at the decoded form of the PLSTORE file.\n;;; To see the original form content, do \\[plstore-mode-toggle-display]\n\n" plstore--encode set-buffer-modified-p nil t] 3 (#$ . 11882) nil]) #@76 Toggle the display mode of PLSTORE between the original and decoded forms. (defalias 'plstore-mode-toggle-display #[0 "\203\301 \207\302 \207" [plstore-encoded plstore-mode-original plstore-mode-decoded] 1 (#$ . 12461) nil]) (defvar plstore-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [plstore-mode-hook variable-documentation put "Hook run after entering PLSTORE mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp plstore-mode-map definition-name plstore-mode] 4) (defvar plstore-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [plstore-mode-abbrev-table plstore-mode-map variable-documentation put purecopy "Keymap for `plstore-mode'." boundp plstore-mode-syntax-table definition-name plstore-mode (lambda (#1=#:def-tmp-var) (defvar plstore-mode-syntax-table #1#)) make-syntax-table "Syntax table for `plstore-mode'." (lambda (#1#) (defvar plstore-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `plstore-mode'." derived-mode-parent emacs-lisp-mode] 5) #@237 Major mode for editing PLSTORE files. In addition to any hooks its parent mode `emacs-lisp-mode' might have run, this mode runs the hook `plstore-mode-hook', as the final or penultimate step during initialization. \{plstore-mode-map} (defalias 'plstore-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R %=\204R\326 \325%C#\210\327 !\210\330\f!\210 %\306\331!\210\332\333\334\"\210\335 \336\337#\210\340\341!\203x\307\202{\342 \210)\343\344!\207" [delay-mode-hooks major-mode mode-name plstore-mode-map plstore-mode-syntax-table plstore-mode-abbrev-table make-local-variable t emacs-lisp-mode plstore-mode "PLSTORE" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table plstore-encoded add-hook write-contents-functions plstore--write-contents-functions define-key "" plstore-mode-toggle-display called-interactively-p any plstore-mode-decoded run-mode-hooks plstore-mode-hook local-abbrev-table] 5 (#$ . 13855) nil]) (provide 'plstore)