394 |
(when |
(when |
395 |
(and |
(and |
396 |
desktop-enable |
desktop-enable |
397 |
(let ((exists (file-exists-p (concat desktop-dirname desktop-base-file-name)))) |
(let ((exists (file-exists-p (expand-file-name desktop-base-file-name desktop-dirname)))) |
398 |
(or |
(or |
399 |
(eq desktop-save 't) |
(eq desktop-save 't) |
400 |
(and exists (memq desktop-save '(ask-if-new if-exists))) |
(and exists (memq desktop-save '(ask-if-new if-exists))) |
405 |
(y-or-n-p "Save desktop? "))))) |
(y-or-n-p "Save desktop? "))))) |
406 |
(unless desktop-dirname |
(unless desktop-dirname |
407 |
(setq desktop-dirname |
(setq desktop-dirname |
408 |
(expand-file-name |
(file-name-as-directory |
409 |
(call-interactively |
(expand-file-name |
410 |
(lambda (dir) (interactive "DDirectory for desktop file: ") dir))))) |
(call-interactively |
411 |
|
(lambda (dir) (interactive "DDirectory for desktop file: ") dir)))))) |
412 |
(condition-case err |
(condition-case err |
413 |
(desktop-save desktop-dirname) |
(desktop-save desktop-dirname) |
414 |
(file-error |
(file-error |
584 |
(run-hooks 'desktop-save-hook) |
(run-hooks 'desktop-save-hook) |
585 |
(setq dirname (file-name-as-directory (expand-file-name dirname))) |
(setq dirname (file-name-as-directory (expand-file-name dirname))) |
586 |
(save-excursion |
(save-excursion |
587 |
(let ((filename (concat dirname desktop-base-file-name)) |
(let ((filename (expand-file-name desktop-base-file-name dirname)) |
588 |
(info |
(info |
589 |
(mapcar |
(mapcar |
590 |
(function |
(function |
667 |
"Delete the Desktop file and inactivate the desktop system." |
"Delete the Desktop file and inactivate the desktop system." |
668 |
(interactive) |
(interactive) |
669 |
(if desktop-dirname |
(if desktop-dirname |
670 |
(let ((filename (concat desktop-dirname desktop-base-file-name))) |
(let ((filename (expand-file-name desktop-base-file-name desktop-dirname))) |
671 |
(setq desktop-dirname nil) |
(setq desktop-dirname nil) |
672 |
(if (file-exists-p filename) |
(if (file-exists-p filename) |
673 |
(delete-file filename))))) |
(delete-file filename))))) |
|
|
|
674 |
;; ---------------------------------------------------------------------------- |
;; ---------------------------------------------------------------------------- |
675 |
;;;###autoload |
;;;###autoload |
676 |
(defun desktop-read () |
(defun desktop-read () |
688 |
(not |
(not |
689 |
(file-exists-p (expand-file-name desktop-base-file-name (car dirs))))) |
(file-exists-p (expand-file-name desktop-base-file-name (car dirs))))) |
690 |
(setq dirs (cdr dirs))) |
(setq dirs (cdr dirs))) |
691 |
(setq desktop-dirname (and dirs (expand-file-name (car dirs)))) |
(setq desktop-dirname (and dirs (file-name-as-directory (expand-file-name (car dirs))))) |
692 |
(if desktop-dirname |
(if desktop-dirname |
693 |
(let ((desktop-first-buffer nil)) |
(let ((desktop-first-buffer nil)) |
694 |
;; Evaluate desktop buffer. |
;; Evaluate desktop buffer. |
727 |
However, if `desktop-enable' was nil at call, don't save the old desktop. |
However, if `desktop-enable' was nil at call, don't save the old desktop. |
728 |
This function always sets `desktop-enable' to t." |
This function always sets `desktop-enable' to t." |
729 |
(interactive "DNew directory: ") |
(interactive "DNew directory: ") |
730 |
|
(setq dir (file-name-as-directory (expand-file-name dir desktop-dirname))) |
731 |
(desktop-kill) |
(desktop-kill) |
732 |
(desktop-clear) |
(desktop-clear) |
|
(cd dir) |
|
733 |
(setq desktop-enable t) |
(setq desktop-enable t) |
734 |
(let ((desktop-path '("."))) |
(let ((desktop-path (list dir)) |
735 |
(desktop-read) |
(default-directory dir)) |
736 |
;; Set `desktop-dirname' even in no desktop file was found |
(desktop-read)) |
737 |
(setq desktop-dirname (expand-file-name dir)))) |
;; Set `desktop-dirname' even in no desktop file was found |
738 |
|
(setq desktop-dirname dir)) |
739 |
;; ---------------------------------------------------------------------------- |
;; ---------------------------------------------------------------------------- |
740 |
;;;###autoload |
;;;###autoload |
741 |
(defun desktop-save-in-load-dir () |
(defun desktop-save-in-load-dir () |
742 |
"Save desktop in directory from which it was loaded." |
"Save desktop in directory from which it was loaded." |
875 |
(let ( |
(let ( |
876 |
(buffer-list (buffer-list)) |
(buffer-list (buffer-list)) |
877 |
(hlist desktop-buffer-handlers) |
(hlist desktop-buffer-handlers) |
|
(desktop-first-buffer) |
|
878 |
(result) |
(result) |
879 |
(handler) |
(handler) |
880 |
) |
) |
908 |
(when (functionp minor-mode) (funcall minor-mode 1))) |
(when (functionp minor-mode) (funcall minor-mode 1))) |
909 |
desktop-buffer-minor-modes))) |
desktop-buffer-minor-modes))) |
910 |
;; Even though point and mark are non-nil when written by `desktop-save' |
;; Even though point and mark are non-nil when written by `desktop-save' |
911 |
;; they may be modified by mandlers wanting to set point or mark themselves. |
;; they may be modified by handlers wanting to set point or mark themselves. |
912 |
(when desktop-buffer-point (goto-char desktop-buffer-point)) |
(when desktop-buffer-point (goto-char desktop-buffer-point)) |
913 |
(when desktop-buffer-mark |
(when desktop-buffer-mark |
914 |
(if (consp desktop-buffer-mark) |
(if (consp desktop-buffer-mark) |