
(defun vm-group-by (compare-function) (byte-code " ˍ \"!\"Ɖ =9 ?9 !," [buckets bp cons mp vm-message-list vm-message-order-changed t vm-retain-message-order vm-folder-read-only nil found (byte-code "1 	
@@@#( 

A\"@\"\"\"A  

A\"B" [bp compare-function mp cons nil t buckets funcall setcdr setcar nconc throw found] 8) apply nconc nreverse mapcar vm-reverse-link-messages vm-set-buffer-modified-p] 6))

(defconst vm-group-by-subject-closure (cons t t))

(defun vm-group-by-subject (m1 m2) (byte-code "	!
@= 
AD 
\"\"& !O\"6 !O!Q
\"!\")" [subject m1 vm-group-by-subject-closure m2 vm-su-subject setcar string-match "^\\(re: *\\)+" match-end 0 nil " +$" match-beginning "^\\(re: *\\)*" regexp-quote " *$" setcdr] 12))

(defun vm-group-by-author (m1 m2) (byte-code "!	!\"" [m1 m2 string= vm-su-full-name] 5))

(defun vm-group-by-recipient (m1 m2) (byte-code "!	!\"" [m1 m2 equal vm-su-to-names] 5))

(defun vm-group-by-date-sent (m1 m2) (byte-code "!	!\" !	!\" !	!\"" [m1 m2 string= vm-su-monthday vm-su-month vm-su-year] 11))

(defun vm-revert-to-physical-order nil (byte-code "	@@ĉ\" / =/ 
?/ !*" [curr vm-message-pointer last vm-last-message-pointer nil vm-message-list vm-message-order-changed vm-message-order-stuffed vm-retain-message-order t vm-folder-read-only sort (lambda (p q) (byte-code "HH	HHW" [p q 0] 3)) vm-reverse-link-messages vm-set-buffer-modified-p] 4))

(defun vm-group-messages (grouping) "\
Group messages by the argument GROUPING.
Interactively this argument is prompted for in the minibuffer,
with completion." (interactive (byte-code " \"	$C" [vm-group-by vm-supported-groupings-alist t completing-read format "Group messages by (default %s): " "physical-order" identity] 6)) (byte-code "ň ! q! !? ŉ\", 6 ;?A \"M \"M ŉ P!!?h \" \"!\"	
)  	
t ! " [vm-group-by vm-supported-groupings-alist t vm-mail-buffer vm-summary-buffer nil grouping group-function vm-current-grouping vm-numbering-redo-start-point vm-summary-redo-start-point buffer-name bufferp equal "" error "Unsupported grouping: %s" "physical-order" intern "vm-group-by-" fboundp vm-revert-to-physical-order message "Grouping messages by %s..." "Grouping messages by %s... done" "Reverted to folder's physical ordering" vm-update-summary-and-mode-line] 17))

(defun vm-move-message-forward (count) "\
Move a message forward in a VM folder.
Prefix arg COUNT causes the current message to be moved COUNT messages forward.
A negative COUNT causes movement to be backward instead of forward.
COUNT defaults to 1.  The current message remains selected after being
moved." (interactive "p") (byte-code "  ! q	!\" 	!?\"  V: ق; !!?Z !SC @HH!@HH!Vs A=~ ? 	! @HHJ@HHJ A\"A A@HHL A		@HHL \"@HHL 		@HHL\"@HHLˉ
=?!?0		@?G	A@?^@HH!@HH!WtAAA@A@		\"ˉ=?@!@BA!\"\"#*. " [vm-mail-buffer vm-summary-buffer nil ovmp vm-message-pointer vmp-prev ovmp-prev direction count vm-message-list vm-message-order-changed t vm-retain-message-order vm-folder-read-only vm-numbering-redo-start-point vm-numbering-redo-end-point vm-summary-pointer list mp vm-need-summary-pointer-update vm-follow-summary-cursor buffer-name bufferp vm-error-if-folder-empty 0 forward backward vm-abs zerop vm-move-message-pointer string-to-int 1 vm-last 8 setcdr vm-set-buffer-modified-p vm-copy-local-variables vm-mark-for-display-update vm-mapc (lambda (m p) (byte-code "H	@IH	A@I" [m p 1 2 3] 3)) nreverse sort mapcar (lambda (p) (byte-code "HHHHD" [p 1 2 3] 3)) (lambda (p q) (byte-code "@	@W" [p q] 2)) vm-update-summary-and-mode-line] 27))

(defun vm-move-message-backward (count) "\
Move a message backward in a VM folder.
Prefix arg COUNT causes the current message to be moved COUNT
messages backward.  A negative COUNT causes movement to be
forward instead of backward.  COUNT defaults to 1.  The current
message remains selected after being moved." (interactive "p") (byte-code "[!" [count nil vm-move-message-forward] 2))
