Annotation of 43BSD/contrib/mh/miscellany/emh/emh-scan.ml, revision 1.1.1.1

1.1       root        1: ; emh-scan.ml :: implements the emh scan facility
                      2: ; Wed Oct  5 23:40:17 1983     /mtr  <mrose@uci-750a>
                      3: 
                      4: 
                      5: (defun 
                      6: 
                      7:     (&mh-scan &buffer &dir &folder
                      8:        (setq &folder (arg 1 ": mh-scan (on folder) "))
                      9:        (if (= (substr &folder 1 1) "+")
                     10:            (setq &folder (substr &folder 2 (- (length &folder) 1))))
                     11:        (if (! (file-exists (setq &dir (&mh-path &folder))))
                     12:            (error-message "no such folder as +" &folder))
                     13:        (if (>= (process-status (setq &buffer (concat "+" &folder))) 0)
                     14:            (error-message "already doing mh " &buffer))
                     15:        (error-occured (delete-buffer &buffer))
                     16:        (save-excursion 
                     17:            (temp-use-buffer &buffer)
                     18:            (use-local-map "&mh-keymap")
                     19:            (setq needs-checkpointing 0)
                     20:            (erase-buffer)
                     21:            (setq &mhfolder (setq &folder &buffer))
                     22:            (setq &mhreadonly (= (setq &mhdir (concat &dir "/")) -1))
                     23:            (&mh-purge)
                     24:            (&mh-start-process (concat "scan " &folder) &buffer)
                     25:            (insert-sentinel &buffer "&mh-scan-sentinel")
                     26:            (setq mode-string "Starting")
                     27:            (setq mode-line-format "  %b: scan (status: %m)  %M"))
                     28:        
                     29:        (novalue)
                     30:     )
                     31:     
                     32:     (&mh-scan-sentinel &flag &text
                     33:        (setq &flag (>> prefix-argument 16))
                     34:        (setq &text (process-output))
                     35:        (save-excursion 
                     36:            (temp-use-buffer MPX-process)
                     37:            (setq mode-string (substr &text 1 (- (length &text) 1)))
                     38:            (if (= mode-string "Exited")
                     39:                (progn 
                     40:                       (setq mode-string "emh")
                     41:                       (setq mode-line-format
                     42:                             "  %b: scan listing (%m) %M %[%p%]")
                     43:                       (setq &mhbuffer MPX-process)
                     44:                       (&mh-trim-long-lines))))
                     45:        (dot-is-visible)        ; hack...
                     46:        (if (bitwise-and &flag 12)
                     47:            (save-excursion 
                     48:                (&mh-daemon)
                     49:                (pop-to-buffer MPX-process)
                     50:                (&mh-find-cur)))
                     51:     )
                     52: 
                     53:     (&mh-find-cur &current
                     54:        (beginning-of-file)
                     55:        (if (!= (setq &current (&mh-get-cur)) 0)
                     56:            (progn
                     57:                  (while (< (length &current) &mhdmax)
                     58:                         (setq &current (concat " " &current)))
                     59:                  (end-of-file)
                     60:                  (error-occured (re-search-reverse (concat "^" &current)))
                     61:                  (if (! (eobp))
                     62:                      (progn
                     63:                            (beginning-of-line)
                     64:                            (provide-prefix-argument &mhdmax (forward-character))
                     65:                            (delete-next-character) (insert-character '+')
                     66:                            (beginning-of-line) (line-to-top-of-window)
                     67:                            (set-mark)
                     68:                            (provide-prefix-argument (/ (window-height) 2)
                     69:                                (scroll-one-line-down))
                     70:                            (exchange-dot-and-mark))
                     71:                      (beginning-of-file))))
                     72:        (beginning-of-line)
                     73:     )
                     74:     
                     75:     (&mh-get-cur &cur &file
                     76:        (if &mhreadonly
                     77:            (setq &cur (&mh-find-entry (concat "cur-" &mhdir)))
                     78:            (if (file-exists (setq &file (concat &mhdir "cur")))
                     79:                (save-excursion
                     80:                    (temp-use-buffer &mhtemp)
                     81:                    (erase-buffer)
                     82:                    (error-occured (insert-file &file))
                     83:                    (beginning-of-file) (set-mark) (end-of-line)
                     84:                    (setq &cur (region-to-string))
                     85:                    (delete-buffer &mhtemp))))
                     86:        (if (error-occured (+ &cur 0))
                     87:            (setq &cur 0))
                     88:        
                     89:        &cur
                     90:     )
                     91: 
                     92:     (&mh-purge &current &template
                     93:        (setq &template (concat "message " &mhfolder "/"))
                     94:        (setq &current "")
                     95:        (while (!= (setq &current (next-buffer-name &current)) "")
                     96:               (if (&mh-prefix &template &current)
                     97:                   (progn &deleted
                     98:                          (setq &current
                     99:                                (next-buffer-name (setq &deleted &current)))
                    100:                          (delete-buffer &deleted))))
                    101:     )
                    102:     
                    103:     (&mh-trim-long-lines
                    104:        (beginning-of-file)
                    105:        (while (! (eobp))
                    106:               (end-of-line)
                    107:               (while (> (current-column) (screen-width))
                    108:                      (delete-previous-character))
                    109:               (next-line))
                    110:     )
                    111: )
                    112: 
                    113: (novalue)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.