summaryrefslogtreecommitdiffstats
path: root/emacs.d/nxhtml/util/udev-ecb.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs.d/nxhtml/util/udev-ecb.el')
-rw-r--r--emacs.d/nxhtml/util/udev-ecb.el229
1 files changed, 0 insertions, 229 deletions
diff --git a/emacs.d/nxhtml/util/udev-ecb.el b/emacs.d/nxhtml/util/udev-ecb.el
deleted file mode 100644
index be3b35f..0000000
--- a/emacs.d/nxhtml/util/udev-ecb.el
+++ /dev/null
@@ -1,229 +0,0 @@
-;;; udev-ecb.el --- Get ECB sources and set it up
-;;
-;; Author: Lennart Borgman (lennart O borgman A gmail O com)
-;; Created: 2008-08-25T04:02:37+0200 Mon
-(defconst udev-ecb:version "0.2");; Version:
-;; Last-Updated:
-;; URL:
-;; Keywords:
-;; Compatibility:
-;;
-;; Features that might be required by this library:
-;;
-;; None
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Commentary:
-;;
-;;
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; 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., 51 Franklin Street, Fifth
-;; Floor, Boston, MA 02110-1301, USA.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Code:
-
-
-(eval-when-compile (require 'udev nil t))
-
-(defgroup udev-ecb nil
- "Customization group for udev-ecb."
- :group 'nxhtml)
-
-(defcustom udev-ecb-dir "~/.emacs.d/udev/ecb-cvs/"
- "Directory where to put CVS ECB sources."
- :type 'directory
- :group 'udev-ecb)
-
-(defun udev-ecb-cvs-dir ()
- "Return cvs root directory."
- (file-name-as-directory (expand-file-name "ecb" udev-ecb-dir)))
-
-(defvar udev-ecb-miss-cedet nil)
-
-(defun udev-ecb-load-ecb ()
- "Load fetched ECB."
- (setq udev-ecb-miss-cedet nil)
- (unless (featurep 'ecb)
- (add-to-list 'load-path (udev-ecb-cvs-dir))
- (let ((msg nil))
- (unless (or msg (featurep 'cedet)) (setq msg "CEDET is not loaded"))
- (unless (or msg (locate-library "semantic")) (setq msg "can't find CEDET Semantic"))
- (unless (or msg (locate-library "eieio")) (setq msg "can't find CEDET eieio"))
- (if msg
- (progn
- (setq udev-ecb-miss-cedet (format "Can't load ECB because %s." msg))
- (ourcomments-warning udev-ecb-miss-cedet))
- (require 'ecb nil t)))))
-
-(defcustom udev-ecb-load-ecb nil
- "To load or not to load ECB..."
- :type 'boolean
- :require 'udev-ecb
- :set (lambda (sym val)
- (set-default sym val)
- (when val
- (udev-ecb-load-ecb)))
- ;; ecb-activate, ecb-customize-most-important to menu
- :set-after '(udev-cedet-load-cedet)
- :group 'udev-ecb)
-
-(defvar udev-ecb-steps
- '(udev-ecb-fetch
- udev-ecb-fix-bad-files
- udev-ecb-fetch-diff
- udev-ecb-check-diff
- udev-ecb-install
- ))
-
-(defun udev-ecb-buffer-name (mode)
- "Return a name for current compilation buffer ignoring MODE."
- (udev-buffer-name "*Updating ECB %s*" udev-ecb-update-buffer mode))
-
-(defvar udev-ecb-update-buffer nil)
-
-(defun udev-ecb-has-cedet ()
- (cond
- ((not (and (locate-library "semantic")
- (locate-library "eieio")))
- (message (propertize "CEDET must be installed and loaded first"
- 'face 'secondary-selection))
- nil)
- ((not (featurep 'cedet))
- (message (propertize "CEDET must be loaded first"
- 'face 'secondary-selection))
- nil)
- (t t)))
-
-(defun udev-ecb-setup-when-finished (log-buffer)
- (require 'cus-edit)
- (let ((inhibit-read-only t))
- (with-current-buffer log-buffer
- (widen)
- (goto-char (point-max))
- (insert "\n\nYou must restart Emacs to load ECB properly.\n")
- (let ((load-ecb-saved-value (get 'udev-ecb-load-ecb 'saved-value))
- (here (point))
- )
- (if load-ecb-saved-value
- (insert "You have setup to load ECB the next time you start Emacs.\n\n")
- (insert (propertize "Warning:" 'face 'compilation-warning)
- " You have not setup to load ECB the next time you start Emacs.\n\n"))
- (insert-button " Setup "
- 'face 'custom-button
- 'action (lambda (btn)
- (interactive)
- (customize-group-other-window 'udev-ecb)))
- (insert " Setup to load ECB from fetched sources when starting Emacs.")))))
-
-;;;###autoload
-(defun udev-ecb-update ()
- "Fetch and install ECB from the devel sources.
-To determine where to store the sources see `udev-ecb-dir'.
-For how to start ECB see `udev-ecb-load-ecb'."
- (interactive)
- (when (udev-ecb-has-cedet)
- (let* ((has-it (file-exists-p (udev-ecb-cvs-dir)))
- (prompt (if has-it
- "Do you want to update ECB from devel sources? "
- "Do you want to install ECB from devel sources? ")))
- (when (y-or-n-p prompt)
- (setq udev-ecb-update-buffer (get-buffer-create "*Update ECB*"))
- (udev-call-first-step udev-ecb-update-buffer udev-ecb-steps
- "Starting updating ECB from development sources"
- 'udev-ecb-setup-when-finished)))))
-
-;;;###autoload
-(defun udev-ecb-customize-startup ()
- "Customize ECB dev nXhtml startup group."
- (interactive)
- (if (file-exists-p (udev-ecb-cvs-dir))
- (customize-group-other-window 'udev-ecb)
- (message (propertize "You must fetch ECB from nXhtml first"
- 'face 'secondary-selection))))
-
-(defun udev-ecb-fetch (log-buffer)
- "Fetch ECB sources (asynchronously)."
- (let ((default-directory (file-name-as-directory udev-ecb-dir)))
- (unless (file-directory-p default-directory)
- (make-directory default-directory))
- (with-current-buffer
- (compilation-start
- "cvs -z3 -d:pserver:anonymous@ecb.cvs.sourceforge.net:/cvsroot/ecb co -P ecb"
- 'compilation-mode
- 'udev-ecb-buffer-name)
- (current-buffer))))
-
-;;(udev-ecb-fix-bad-files nil)
-(defun udev-ecb-fix-bad-files (log-buffer)
- "Change files that can not be compiled."
- (let* ((bad-file (expand-file-name "ecb/ecb-advice-test.el" udev-ecb-dir))
- (bad-file-buffer (find-buffer-visiting bad-file))
- (this-log-buf (get-buffer-create "*Fix bad ECB files*"))
- (fixed-it nil))
- (when (file-exists-p bad-file)
- (with-current-buffer (find-file-noselect bad-file)
- (save-restriction
- (widen)
- (goto-char (point-min))
- (save-match-data
- (while (re-search-forward "\r" nil t)
- (setq fixed-it t)
- (replace-match ""))))
- (basic-save-buffer)
- (with-current-buffer this-log-buf
- (erase-buffer)
- (if fixed-it
- (insert "Fixed " bad-file "\n")
- (insert "The file " bad-file " was already ok\n")))
- (unless bad-file-buffer (kill-buffer (current-buffer)))))
- this-log-buf))
-
-(defun udev-ecb-fetch-diff (log-buffer)
- "Fetch diff between local ECB sources and repository."
- (udev-fetch-cvs-diff (udev-ecb-cvs-dir) 'udev-ecb-buffer-name))
-
-(defun udev-ecb-check-diff (log-buffer)
- "Check cvs diff output for merge conflicts."
- (udev-check-cvs-diff (expand-file-name "your-patches.diff"
- (udev-ecb-cvs-dir))
- udev-ecb-update-buffer))
-
-(defun udev-ecb-install (log-buffer)
- "Install the ECB sources just fetched.
-Note that they will not be installed in current Emacs session."
- (udev-batch-compile "-l ecb-batch-compile.el"
- udev-this-dir
- 'udev-ecb-buffer-name))
-
-;;(udev-ecb-install-help (get-buffer-create "*temp online-help*"))
-(defun udev-ecb-install-help (log-buffer)
- (let ((trc-buf (get-buffer-create "*temp online-help*")))
- (with-current-buffer trc-buf
- (setq default-directory (udev-ecb-cvs-dir))
- (w32shell-with-shell "msys" (shell-command "make online-help&" trc-buf)))))
-
-(provide 'udev-ecb)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; udev-ecb.el ends here