home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / me34exe.zip / mutt / contrib / switchb.mut < prev    next >
Text File  |  1995-01-14  |  2KB  |  57 lines

  1. ;; From: hanwen@stack.urc.tue.nl (Han-Wen Nienhuys)
  2. ;; Subject: switchb.mut
  3. ;; Date: Fri, 12 Mar 1993 13:30:49 +0100 (MET)
  4.  
  5. (include me.mh)
  6.  
  7. (small-int last-selected-buffer)
  8.  
  9. ;(defun
  10. ;  ;; next buffer, read a new file if everything is not loaded.
  11. ;  switch-to-next-buffer {
  12. ;        (last-selected-buffer (current-buffer))
  13. ;    (if (< nth-file (argc))  {
  14. ;        (next-file)
  15. ;    } { (next-buffer) })
  16. ;  }
  17. ;) 
  18.  
  19. (defun
  20.   switch-buffer
  21.   {
  22.     (int n) 
  23.     (bool foo)
  24.     (string name default-name)
  25.  
  26.     (foo FALSE)     ;; default: haven't created new window
  27.     (if (arg-flag) { ;; load in other window
  28. ;        (arg-flag FALSE 1)
  29.         (if (== (windows) 1) {  ;; only one window, so create one
  30.           (split-window) (foo TRUE) })
  31.         (next-window) 
  32.     })    
  33.  
  34.         ;; if last buffer doesn't exist: make current buffer default.    
  35.     (if (not (buffer-exists last-selected-buffer))
  36.       (last-selected-buffer (current-buffer)) )
  37.  
  38.     (if (== "" (name (complete CC_BUF
  39.      (concat "Use buffer [" (buffer-name last-selected-buffer) "]: ")))) 
  40.       {    ;; default: toggle between current and old buffer
  41.     (n last-selected-buffer)
  42.     (last-selected-buffer (current-buffer))
  43.     (current-buffer n TRUE)
  44.       }
  45.       {    ;; switch to a new buffer, remember old one
  46.     (last-selected-buffer (current-buffer))
  47.     (if (== -2 (attached-buffer name))
  48.       { (msg "Buffer " name " does not exist") 
  49.         (if (foo) (delete-current-window) ) ;; clean the mess
  50.       }
  51.       { (current-buffer (attached-buffer name) TRUE) }
  52.     )
  53.       })
  54.     (if (arg-flag) (previous-window)) ;; switch back to old window.
  55.   }
  56. )
  57.