diff options
author | Tom Willemsen | 2011-03-07 09:04:49 +0100 |
---|---|---|
committer | Tom Willemsen | 2011-03-07 09:04:49 +0100 |
commit | 94d2fc1815a919734353c942f224db1de4b4fcb8 (patch) | |
tree | 4168e816ead132bfa3510e272427837c3895f5e2 /emacs.d/nxhtml/util/fupd.el | |
parent | d0e7674fdb1de12c8de202d4028a5d7ed3669a6e (diff) | |
download | dotfiles-94d2fc1815a919734353c942f224db1de4b4fcb8.tar.gz dotfiles-94d2fc1815a919734353c942f224db1de4b4fcb8.zip |
Django, org
* Added nxhtml, mostly for django support.
* Changed some org settings.
Diffstat (limited to 'emacs.d/nxhtml/util/fupd.el')
-rw-r--r-- | emacs.d/nxhtml/util/fupd.el | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/emacs.d/nxhtml/util/fupd.el b/emacs.d/nxhtml/util/fupd.el new file mode 100644 index 0000000..bb8b3af --- /dev/null +++ b/emacs.d/nxhtml/util/fupd.el @@ -0,0 +1,127 @@ +;;; fupd.el --- Helper functions for updating files +;; +;; Author: Lennart Borgman (lennart O borgman A gmail O com) +;; Created: Tue Feb 28 17:21:20 2006 +;; Version: 0.1 +;; Last-Updated: Tue Feb 20 21:09:20 2007 (3600 +0100) +;; Keywords: +;; Compatibility: +;; +;; Features that might be required by this library: +;; +;; None +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Commentary: +;; +;; Helper functions for updating files. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Change log: +;; +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Code: + +(defun fupd-has-contents (file content) + "Check if file FILE contains CONTENT. +Return a vector with these elements: +- elt 0: t if file contains CONTENT and buffer is not modified. +- elt 1: t if file contains CONTENT. +- elt 2: file buffer if file exists. +- elt 3: nil unless file already was in a buffer." + (let (ok same buffer old-buffer) + (when (file-exists-p file) + (setq buffer (get-file-buffer file)) + (setq old-buffer (when buffer t)) + (unless buffer + (setq buffer (find-file-noselect file))) + (with-current-buffer buffer + (setq same (string= + content + (buffer-substring-no-properties + (point-min) (point-max))))) + (setq ok (and same + (not (buffer-modified-p buffer))))) + (vector ok same buffer old-buffer))) + +(defun fupd-ok (ret-val) + "Return t if RET-VAL indicate file is uptodate. +RET-VAL should be the return value from `fupd-has-contents'." + (elt ret-val 0)) + +(defun fupd-kill-new-buffer (ret-val) + "Kill new buffer indicated by RET-VAL. +RET-VAL should be the return value from `fupd-has-contents'." + (unless (elt ret-val 3) + (let ((buffer (elt ret-val 2))) + (when (bufferp buffer) + ;;(message "fupd-kill-new-buffer: %s" (buffer-file-name buffer))(sit-for 4) + (kill-buffer buffer))))) + +;;(fupd-has-contents buffer-file-name (buffer-string)) +;;(fupd-update-file buffer-file-name (buffer-string)) +(defun fupd-update-file (file content) + "Update file FILE with content CONTENT. +Do nothing if the file already has that content. If the file was +not in a buffer before kill the file's buffer afterwards. + +Return t if the file was updated, otherwise nil." + (let* ((osbo (fupd-has-contents file content)) + (ok (elt osbo 0)) + (same (elt osbo 1)) + (buff (elt osbo 2)) + (oldb (elt osbo 3)) + wrote + ) + (unless ok + (if buff + (with-current-buffer buff + (unless same + (erase-buffer) + (insert content)) + (save-buffer) + (setq wrote t) + (unless oldb + (kill-buffer (current-buffer)))) + (with-temp-buffer + (insert content) + (write-file file)))) + wrote)) + +;; (defun fupd-copy-file (from-file to-file) +;; (let ( +;; (from-buff (find-buffer-visiting from-file)) +;; (to-buff (find-buffer-visiting to-file)) +;; (from-attr (file-attributes from-file)) +;; (to-attr (file-attributes to-file)) +;; (from-size (nth 7 from-attr)) +;; (to-size (nth 7 to-attr)) +;; (from-mod (nth 5 from-attr)) +;; (to-mode (nth 5 to-attr)) +;; ) +;; )) + +(provide 'fupd) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; fupd.el ends here |