diff options
author | 2011-03-23 11:14:27 +0100 | |
---|---|---|
committer | 2011-03-23 11:14:27 +0100 | |
commit | 0d342f0aee3f2f800e486c0051dabe718a7b2841 (patch) | |
tree | 1f55afabb8f4876dbe564f7ed5d8e573ddc78df3 /emacs.d/nxhtml/nxhtml-web-vcs.el | |
parent | d4510153b17625a3dd2f1852cc6392fc26efecf6 (diff) | |
download | dotfiles-0d342f0aee3f2f800e486c0051dabe718a7b2841.tar.gz dotfiles-0d342f0aee3f2f800e486c0051dabe718a7b2841.zip |
I don't like nxhtml
Diffstat (limited to 'emacs.d/nxhtml/nxhtml-web-vcs.el')
-rw-r--r-- | emacs.d/nxhtml/nxhtml-web-vcs.el | 689 |
1 files changed, 0 insertions, 689 deletions
diff --git a/emacs.d/nxhtml/nxhtml-web-vcs.el b/emacs.d/nxhtml/nxhtml-web-vcs.el deleted file mode 100644 index fb0fb09..0000000 --- a/emacs.d/nxhtml/nxhtml-web-vcs.el +++ /dev/null @@ -1,689 +0,0 @@ -;;; nxhtml-web-vcs.el --- nXhtml things for web-vcs.el -;; -;; Author: Lennart Borgman (lennart O borgman A gmail O com) -;; Created: 2010-01-13 Wed -;; 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 3, 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 'cl)) -(eval-when-compile (require 'nxhtml-base nil t)) -;;(eval-when-compile (require 'nxhtmlmaint nil t)) -(eval-when-compile (require 'web-vcs nil t)) - -(defvar nxhtml-web-vcs-file (or load-file-name - (when (boundp 'bytecomp-filename) bytecomp-filename) - buffer-file-name) - "This file.") - -(defun nxhtml-require-base () - (require 'nxhtml-base nil t) - (unless (featurep 'nxhtml-base) - ;; At startup, need to load it by hand. - (let ((load-path load-path)) - (add-to-list 'load-path (file-name-directory nxhtml-web-vcs-file)) - (require 'nxhtml-base)))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Repository URL - - -;;(nxhtml-default-download-directory) -(defun nxhtml-default-download-directory () - (let* ((ur (expand-file-name "" "~")) - (ur-len (length ur)) - (full (if (and (boundp 'nxhtml-install-dir) - nxhtml-install-dir) - nxhtml-install-dir - (file-name-as-directory - (expand-file-name "" - (web-vcs-default-download-directory))))) - (full-len (length full))) - (if (and (> full-len ur-len) - (string= ur (substring full 0 ur-len))) - (concat "~" (substring full ur-len)) - full))) - - -(defun nxhtml-web-vcs-read-dl-dir (prompt) - "Return current nXhtml install dir or read dir." - (or (and (boundp 'nxhtml-install-dir) - nxhtml-install-dir) - (let* ((pr (concat - "A directory named 'nxhtml' will be created below the root you give." - "\n" - prompt)) - (root (read-directory-name pr (nxhtml-default-download-directory)))) - (when root - (expand-file-name "nxhtml" root))))) - -;;(call-interactively 'nxhtml-setup-install) -;; (read-key "Prompt: ") -;; (y-or-n-p "Prompt") -;;;###autoload -(defun nxhtml-setup-install (way) - "Setup and start nXhtml installation. - -This is for installation and updating directly from the nXhtml -development sources. - -There are two different ways to install: - - (1) Download all at once: `nxhtml-setup-download-all' - (2) Automatically download part by part: `nxhtml-setup-auto-download' - -You can convert between those ways by calling this function again. -You can also do this by setting the option `nxhtml-autoload-web' yourself. - -When you have nXhtml installed you can update it: - - (3) Update new files in nXhtml: `nxhtml-update-existing-files' - -To learn more about nXhtml visit its home page at URL -`http://www.emacswiki.com/NxhtmlMode/'. - -If you want to test auto download \(but not use it further) there -is a special function for that, you answer T here: - - (T) Test automatic download part by part: `nxhtml-setup-test-auto-download' - -====== -*Note* -If you want to download a zip file with latest released version instead then -please see URL `http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html'." - (interactive (let ((curr-cfg (current-window-configuration))) - (describe-function 'nxhtml-setup-install) - (select-window (get-buffer-window (help-buffer))) - (delete-other-windows) - (list - (let* ((key nil) - (has-nxhtml (and (boundp 'nxhtml-install-dir) nxhtml-install-dir)) - (current-way (if has-nxhtml - (if (and (boundp 'nxhtml-autoload-web) - nxhtml-autoload-web) - "Your current setup is to download part by part from the web." - "Your current setup it to download all of nXhtml at once.") - "(You have not currently installed nXhtml.)")) - (prompt (concat "Setup nXhtml install." - "\n" current-way - "\n" - "\n(1) Download whole at once, or (2) part by part as needed" - (if has-nxhtml "\n(3) Update your existing nXhtml" "") - "\n(T) For temporary testing downloading part by part" - "\n" - "\n(? for help, q to quit): ")) - (allowed-keys (if has-nxhtml - '(?1 ?2 ?3 ?T ?q 7) - '(?1 ?2 ?T ?q 7))) - (please nil)) - (while (not (member key allowed-keys)) - (if (not (member key '(??))) - (when key - (unless please - (setq prompt (concat "Please answer with one of the alternatives.\n\n" - prompt)) - (setq please t))) - (describe-function 'nxhtml-setup-install) - (select-window (get-buffer-window (help-buffer))) - (delete-other-windows)) - (setq key (web-vcs-read-key prompt)) - ;;(message "key = %S" key) (sit-for 1) - ) - (case key - (7 (set-window-configuration curr-cfg) - nil) - (?1 'whole) - (?2 'part-by-part) - (?3 'update-existing) - (?T 'test-part-by-part) - ))))) - (message "") - (case way - (whole (call-interactively 'nxhtml-setup-download-all)) - (part-by-part (call-interactively 'nxhtml-setup-auto-download)) - (update-existing (call-interactively 'nxhtml-update-existing-files)) - (test-part-by-part (call-interactively 'nxhtml-setup-test-auto-download)) - ((eq nil way) nil) - (t (error "Unknown way = %S" way)))) - -(defvar nxhtml-basic-files '( - "nxhtml-base.el" - "nxhtml-loaddefs.el" - "web-autoload.el" - "etc/schema/schema-path-patch.el" - "nxhtml/nxhtml-autoload.el" - "autostart.el" - )) - -;;;###autoload -(defun nxhtml-setup-auto-download (dl-dir) - "Set up to autoload nXhtml files from the web. - -This function will download some initial files and then setup to -download the rest when you need them. - -Files will be downloaded under the directory root you specify in -DL-DIR. - -Note that files will not be upgraded automatically. The auto -downloading is just for files you are missing. (This may change a -bit in the future.) If you want to upgrade those files that you -have downloaded you can just call `nxhtml-update-existing-files'. - -You can easily switch between this mode of downloading or -downloading the whole of nXhtml by once. To switch just call the -command `nxhtml-setup-install'. - -See also the command `nxhtml-setup-download-all'. - -Note: If your nXhtml is to old you can't use this function - directly. You have to upgrade first, se the function - above. Version 2.07 or above is good for this." - (interactive (progn - (describe-function 'nxhtml-setup-auto-download) - (select-window (get-buffer-window (help-buffer))) - (delete-other-windows) - (nxhtml-check-convert-to-part-by-part) - (list - (progn - (when (and (boundp 'nxhtml-autoload-web) - (not nxhtml-autoload-web)) - (unless (yes-or-no-p "Convert to updating nXhtml part by part? ") - (throw 'command-level nil))) - (nxhtml-web-vcs-read-dl-dir "Download nXhtml part by part to directory: "))))) - (catch 'command-level - (if (not dl-dir) - (unless (with-no-warnings (called-interactively-p)) - (error "dl-dir should be a directory")) - (nxhtml-check-convert-to-part-by-part) - (when (and (boundp 'nxhtml-install-dir) - nxhtml-install-dir) - (unless (string= (file-truename dl-dir) - (file-truename nxhtml-install-dir)) - (error "Download dir must be same as nxhtml-install-dir=%S" nxhtml-install-dir))) - (let* (;; Need some files: - (web-vcs-el-src (concat (file-name-sans-extension web-vcs-el-this) ".el")) - (web-vcs-el (expand-file-name (file-name-nondirectory web-vcs-el-src) - dl-dir)) - (vcs 'lp) - (base-url (nxhtml-download-root-url nil)) - (byte-comp (if (boundp 'web-autoload-autocompile) - web-autoload-autocompile - t)) - (has-nxhtml (and (boundp 'nxhtml-install-dir) - nxhtml-install-dir)) - (web-vcs-folder-cache nil)) - (setq nxhtml-install-dir dl-dir) - (let ((root (file-name-directory dl-dir))) - (unless (file-exists-p root) - (unless (yes-or-no-p (format "Directory %S does not exist, create it? " root)) - (error "Aborted by user")))) - (make-directory dl-dir t) - (setq message-log-max t) - (view-echo-area-messages) - (message "") - (message "") - (web-vcs-message-with-face 'web-vcs-green "==== Starting nXhtml part by part state ====") - (message "has-nxhtml=%s" has-nxhtml) - ;; Fix-me: First copy this file and web-vcs.el to its destination: - (unless (string= (file-truename dl-dir) - (file-truename (file-name-directory nxhtml-web-vcs-file))) - (dolist (f (list web-vcs-el-src nxhtml-web-vcs-file)) - (copy-file f (expand-file-name (file-name-nondirectory f) dl-dir) - 'ok-overwrite))) - (when byte-comp (web-vcs-byte-compile-newer-file web-vcs-el t)) - ;; Get basic file list: - (catch 'web-autoload-comp-restart - ;;(let ((file-mask (regexp-opt nxhtml-basic-files))) - ;; (web-vcs-get-missing-matching-files vcs base-url dl-dir file-mask)) - (dolist (f nxhtml-basic-files) - (web-vcs-get-missing-matching-files vcs base-url dl-dir f)) - ;; Autostart.el has not run yet, add download dir to load-path. - (let ((load-path (cons (file-name-directory web-vcs-el) load-path))) - (when byte-comp - (dolist (file nxhtml-basic-files) - (let ((el-file (expand-file-name file dl-dir))) - (web-vcs-byte-compile-newer-file el-file nil))))) - (let ((autostart-file (expand-file-name "autostart" dl-dir))) - ;;(ad-deactivate 'require) - (web-vcs-set&save-option 'nxhtml-autoload-web t) - (web-vcs-log nil nil "* nXhtml: Download Part by Part as Needed\n") - (load autostart-file) - (unless (ad-is-active 'require) (ad-activate 'require)) - (web-vcs-log-save) - (web-vcs-message-with-face 'web-vcs-green "==== Basic files for nXhtml part by part are now installed ====") - (web-vcs-display-messages t) - (unless has-nxhtml (nxhtml-add-loading-to-custom-file autostart-file t)))))))) - -;;(call-interactively 'nxhtml-download) -;;;###autoload -(defun nxhtml-setup-download-all (dl-dir) - "Download or update all of nXhtml. - -You can download all if nXhtml with this command. - -To update existing files use `nxhtml-update-existing-files'. - -If you want to download only those files you are actually using -then call `nxhtml-setup-auto-download' instead. - -See the command `nxhtml-setup-install' for a convenient way to -call these commands. - -For more information about auto download of nXhtml files see -`nxhtml-setup-auto-download'." - (interactive (progn - (describe-function 'nxhtml-setup-auto-download) - (select-window (get-buffer-window (help-buffer))) - (delete-other-windows) - ;;(nxhtml-check-convert-to-part-by-part) - (list - (nxhtml-web-vcs-read-dl-dir "Download whole nXhtml to directory: ")))) - - (let ((root (file-name-directory dl-dir))) - (unless (file-exists-p root) - (unless (yes-or-no-p (format "Directory %S does not exist, create it? " root)) - (error "Aborted by user")))) - (make-directory dl-dir t) - (let ((msg (concat "Downloading nXhtml through Launchpad web interface will take rather long\n" - "time (5-15 minutes) so you may want to do it in a separate Emacs session.\n\n" - "Do you want to download using this Emacs session? " - ))) - (if (not (y-or-n-p msg)) - (message "Aborted") - (setq message-log-max t) - (let ((do-byte (y-or-n-p "Do you want to byte compile the files after downloading? "))) - (nxhtml-download-1 dl-dir nil do-byte))))) - - -(defun nxhtml-download-1 (dl-dir revision do-byte) - "Download nXhtml to directory DL-DIR. -If REVISION is nil download latest revision, otherwise the -specified one. - -If DO-BYTE is non-nil byte compile nXhtml after download." - (let* ((has-nxhtml (and (boundp 'nxhtml-install-dir) - nxhtml-install-dir)) - (base-url nxhtml-web-vcs-base-url) - (files-url (concat base-url "files/")) - ;;(revs-url (concat base-url "changes/")) - (rev-part (if revision (number-to-string revision) "head%3A/")) - (full-root-url (concat files-url rev-part)) - (web-vcs-folder-cache nil) - (web-autoload-paranoid nil)) - ;;(nxhtml-require-base) - (when (web-vcs-get-files-from-root 'lp full-root-url dl-dir) - (web-vcs-display-messages t) - (web-vcs-log nil nil "* nXhtml: Download All\n") - (web-vcs-set&save-option 'nxhtml-autoload-web nil) - (message "") - (web-vcs-message-with-face 'web-vcs-green "==== Starting downloading whole nXhtml ====") - (let ((autostart-file (expand-file-name "autostart" dl-dir))) - (load autostart-file) - (web-vcs-log-save) - (web-vcs-message-with-face 'web-vcs-green "==== All files for nXhtml are now installed ====") - (nxhtmlmaint-byte-recompile) - (unless has-nxhtml (nxhtml-add-loading-to-custom-file autostart-file nil)))))) - -(defun nxhtml-check-convert-to-part-by-part () - (when (and (boundp 'nxhtml-install-dir) - nxhtml-install-dir) - (unless (and (boundp 'nxhtml-autoload-web) - nxhtml-autoload-web) - (if (not (boundp 'nxhtml-menu:version)) - (error "nxhtml-install-dir set but no version found") - (unless (string-match "[\.0-9]+" nxhtml-menu:version) - (error "Can't find current version nxhtml-menu:version=%S" nxhtml-menu:version)) - (let* ((ver-str (match-string 0 nxhtml-menu:version)) - (ver-num (string-to-number ver-str))) - (when (< ver-num 2.07) - (web-vcs-message-with-face 'web-vcs-red "Too old nXhtml for download part by part.") - (throw 'command-level nil))))))) - - -;;(directory-files default-directory nil "\\el$") -;;(directory-files default-directory nil "[^#~]$") -;;;###autoload -(defun nxhtml-update-existing-files () - "Update existing nXhtml files from the development sources. -Only files you already have will be updated. - -Note that this works both if you have setup nXhtml to auto -download files as you need them or if you have downloaded all of -nXhtml at once. - -For more information about installing and updating nXhtml see the -command `nxhtml-setup-install'." - ;; Fix-me: download new files too if you are not auto downloading. - (interactive) - (when (y-or-n-p "Do you want to update your nXhtml files? ") - (message "") - (web-vcs-display-messages t) - (web-vcs-message-with-face 'web-vcs-yellow "*\nStarting updating your nXhtml files.\n*\n") - (message nil) - (web-vcs-clear-folder-cache) - (let ((vcs 'lp) - (base-url (nxhtml-download-root-url nil)) - (dl-dir nxhtml-install-dir) - web-vcs-folder-cache) - (setq dl-dir (file-name-as-directory dl-dir)) - (web-vcs-update-existing-files vcs base-url dl-dir dl-dir) - (web-vcs-clear-folder-cache)) - (display-buffer (get-buffer-create "*Compile-Log*")) - (nxhtmlmaint-byte-recompile) - (web-vcs-log-save) - (web-vcs-message-with-face 'web-vcs-yellow "*\nFinished updating your nXhtml files.\n*\n") - (message nil))) - - -;;(nxhtml-maybe-download-files (expand-file-name "nxhtml/doc/img/" nxhtml-install-dir) nil) -;;;###autoload -(defun nxhtml-get-missing-files (sub-dir file-name-list) - (let (file-mask - (root-url (nxhtml-download-root-url nil)) - files-regexp - (full-dir (expand-file-name sub-dir nxhtml-install-dir)) - miss-names) - (if file-name-list - (progn - (dolist (f file-name-list) - (let ((full-f (expand-file-name f full-dir))) - (unless (file-exists-p full-f) - (setq miss-names (cons f miss-names))))) - (setq files-regexp (regexp-opt miss-names))) - (setq files-regexp ".*")) - ;;(unless (file-exists-p full-dir) (make-directory full-dir t)) - (setq file-mask - (concat (file-relative-name (file-name-as-directory full-dir) - nxhtml-install-dir) - files-regexp)) - (let ((web-vcs-folder-cache nil)) - (web-vcs-get-missing-matching-files 'lp root-url nxhtml-install-dir - file-mask)))) - -;; Fix-me: Does not work, Emacs Bug -;; Maybe use wget? http://gnuwin32.sourceforge.net/packages/wget.htm -;; http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=5103 -;; (nxhtml-get-release-revision) -(defun nxhtml-get-release-revision () - "Get revision number for last release." - (let* ((all-rev-url "http://code.launchpad.net/%7Enxhtml/nxhtml/main") - (url-buf (url-retrieve-synchronously all-rev-url)) - (vcs-rec (or (assq 'lp web-vcs-links-regexp) - (error "Does not know web-vcs 'lp"))) - (rel-ver-regexp (nth 6 vcs-rec)) - ) - (message "%S" url-buf) - (with-current-buffer url-buf - (when (re-search-forward rel-ver-regexp nil t) - (match-string 1))))) - -;;;###autoload -(defun nxhtml-byte-compile-file (file &optional load) - (let ((extra-load-path (when nxhtml-install-dir - (mapcar (lambda (p) - (file-name-as-directory - (expand-file-name p nxhtml-install-dir))) - '("tests" "related" "nxhtml" "util" "."))))) - ;; (message "nxhtml-byte-compile-file:extra-load-path=%s" extra-load-path) - (web-vcs-byte-compile-file file load extra-load-path))) - -;; fix-me: change web-vcs-byte-compile-file instead -;;;###autoload -(defun nxhtml-byte-recompile-file (file &optional load) - "Byte recompile FILE file if necessary. -For more information see `nxhtml-byte-compile-file'. -Loading is done if recompiled and LOAD is t." - (interactive (list (buffer-file-name) - t)) - (let ((elc-file (byte-compile-dest-file file))) - (if (file-newer-than-file-p file elc-file) - (nxhtml-byte-compile-file file load) - (message "Byte compilation of this file is up to date.")))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Add to custom file - - -(defvar nxhtml-handheld-wincfg nil) -(defun nxhtml-handheld-restore-wincg () - (when nxhtml-handheld-wincfg - (set-window-configuration nxhtml-handheld-wincfg) - (setq nxhtml-handheld-wincfg nil))) - -;;(nxhtml-handheld-add-loading-to-custom-file "TEST-ME") -(defun nxhtml-handheld-add-loading-to-custom-file (file-to-load) - (setq nxhtml-handheld-wincfg (current-window-configuration)) - (delete-other-windows) - (let ((info-buf (get-buffer-create "Information about how to add nXhtml to (custom-file)")) - (load-str (format "(load %S)" file-to-load))) - (with-current-buffer info-buf - (add-hook 'kill-buffer-hook 'nxhtml-handheld-restore-wincg nil t) - (insert "Insert the following line to (custom-file), ie the file in the other window:\n\n") - (let ((here (point))) - (insert " " - (propertize load-str 'face 'secondary-selection) - "\n") - (copy-region-as-kill here (point)) - (insert "\nThe line above is in the clipboard so you can just paste it where you want it.\n") - (insert "When ready kill this buffer.") - (goto-char here)) - (setq buffer-read-only t) - (set-buffer-modified-p nil)) - (set-window-buffer (selected-window) info-buf) - (find-file-other-window (custom-file)))) - -;; (nxhtml-add-loading-to-custom-file "test-file") -(defun nxhtml-add-loading-to-custom-file (file-to-load part-by-part) - (message "") - (require 'cus-edit) - (if (not (condition-case nil (custom-file) (error nil))) - (progn - (message "\n\n") - (web-vcs-message-with-face - 'web-vcs-red - (concat "Since you have started this Emacs session without running your init files" - "\nthey are unknown and the installation can not add the statement below." - "\nTo finish the setup of nXhtml you must add" - "\n\n (load %S)" - "\n\nto your custom-file if you have not done it yet." - "\nYou must also customize the variable `nxhtml-autoload-web' to tell that" - (if part-by-part - "\nyou want to download nXhml files as you need them." - "\nyou do not want to allow automatic downloading of nXhtml files." - ) - "\n") - file-to-load) - (message "") - (web-vcs-display-messages t)) - (let ((prompt (concat "Basic setup of nXhtml is done, but it must be loaded from (custom-file)." - "\nShould I add loading of nXhtml to (custom-file) for you? "))) - (if (yes-or-no-p prompt) - (nxhtml-add-loading-to-custom-file-auto file-to-load) - (if (yes-or-no-p "Should I guide you through how to do it? ") - (nxhtml-handheld-add-loading-to-custom-file file-to-load) - (web-vcs-message-with-face 'web-vcs-green - "OK. You need to add (load %S) to your init file" file-to-load)))))) - -;; Fix-me: really do this? Is it safe enough? -(defun nxhtml-add-loading-to-custom-file-auto (file-to-load) - (unless (file-name-absolute-p file-to-load) - (error "nxhtml-add-loading-to-custom-file: Not abs file name: %S" file-to-load)) - (let ((old-buf (find-buffer-visiting (custom-file))) - (full-to-load (expand-file-name file-to-load))) - (with-current-buffer (or old-buf (find-file-noselect (custom-file))) - (save-restriction - (widen) - (catch 'done - (while (progn - (while (progn (skip-chars-forward " \t\n\^l") - (looking-at ";")) - (forward-line 1)) - (not (eobp))) - (let ((start (point)) - (form (read (current-buffer)))) - (when (eq (nth 0 form) 'load) - (let* ((form-file (nth 1 form)) - (full-form-file (expand-file-name form-file))) - (when (string= full-form-file full-to-load) - (throw 'done nil)) - (when (and (string= (file-name-nondirectory full-form-file) - (file-name-nondirectory full-to-load)) - (not (string= full-form-file full-to-load))) - (if (yes-or-no-p "Replace current nXhtml loading in (custom-file)? ") - (progn - (goto-char start) ;; at form start now - (forward-char (length "(load ")) - (skip-chars-forward " \t\n\^l") ;; at start of string - (setq start (point)) - (setq form (read (current-buffer))) - (delete-region start (point)) - (insert (format "%S" full-to-load)) - (basic-save-buffer)) - (web-vcs-message-with-face 'web-vcs-red "Can't continue then") - (web-vcs-display-messages t) - (throw 'command-level nil))))))) - ;; At end of file - (insert (format "\n(load %S)\n" file-to-load)) - (basic-save-buffer)) - (unless old-buf (kill-buffer old-buf)))))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;;;; Start Testing function -(defun emacs-Q-no-nxhtml (&rest args) - (let* ((old-env-load-path (getenv "EMACSLOADPATH")) - sub-env-load-path - (elp-list (or (when old-env-load-path - ;;(split-string old-env-load-path ";")) - (split-string old-env-load-path path-separator)) - load-path)) - (sub-elp-list nil) - ret - (this-emacs-exe (locate-file invocation-name - (list invocation-directory) - exec-suffixes))) - (dolist (p elp-list) - (when (file-exists-p p) - (unless (string= nxhtml-install-dir p) - (let* ((dir (file-name-directory p)) - (last (file-name-nondirectory p)) - (last-dir (file-name-nondirectory - (directory-file-name dir)))) - (unless (and (string= "nxhtml" last-dir) - (member last '("util" "test" "nxhtml" "related" "alt"))) - (setq sub-elp-list (cons p sub-elp-list))))))) - ;;(setq sub-env-load-path (mapconcat 'identity (reverse sub-elp-list) ";")) - (setq sub-env-load-path (mapconcat 'identity (reverse sub-elp-list) path-separator)) - (setenv "EMACSLOADPATH" sub-env-load-path) - (setq ret (apply 'call-process this-emacs-exe nil 0 nil "-Q" args)) - (setenv "EMACSLOADPATH" old-env-load-path) - ret)) - -;; (call-interactively-p 'nxhtml-setup-test-auto-download) -;; (nxhtml-setup-test-auto-download "c:/test2/") -(defun nxhtml-setup-test-auto-download (test-dir) - "Test autoload in a new emacs, started with 'emacs -Q'. -You can choose where to download the files and just delete them -when you have tested enough." - (interactive (list (read-directory-name "Directory for test of auto download of nXhtml: "))) - (let ((this-dir (file-name-directory web-vcs-el-this)) - (this-name (file-name-nondirectory web-vcs-el-this)) - that-file) - (when (and (file-exists-p test-dir) - (not (y-or-n-p (format "Directory %S exists, really test there? " test-dir)))) - (error "Aborted")) - (unless (file-exists-p test-dir) (make-directory test-dir)) - (setq that-file (expand-file-name this-name test-dir)) - (when (file-exists-p that-file) (delete-file that-file)) - (copy-file web-vcs-el-this that-file) - (emacs-Q-no-nxhtml "-l" that-file "-f" "nxhtml-setup-test-auto-download-do-it-here"))) - -(defun nxhtml-setup-test-auto-download-do-it-here () - "Helper for `nxhtml-setup-test-auto-down-load'." - (let ((this-dir (file-name-directory web-vcs-el-this))) - (nxhtml-setup-auto-download this-dir))) - -(defun web-vcs-check-if-modified () - (let ( - (t1 (format-time-string "%Y-%m-%dT%T%z" (date-to-time "2010-01-01 18:20"))) - (t2 (format-time-string "%Y-%m-%dT%T%z" (date-to-time "Mon, 28 Dec 2009 08:57:44 GMT"))) - (url-request-extra-headers - (list - (cons "If-Modified-Since" - (format-time-string - ;;"%Y-%m-%dT%T%z" - "%a, %e %b %Y %H:%M:%S GMT" - (nth 5 (file-attributes "c:/test/temp.el" ))) - ))) - xb) - (setq xb (url-retrieve-synchronously "http://www.emacswiki.org/emacs/download/anything.el")) - (switch-to-buffer xb) - )) -;; (emacs-Q-no-nxhtml "web-vcs.el" "-l" "c:/test/d27/web-autostart.el") -;; (emacs-Q-no-nxhtml "web-vcs.el" "-l" "c:/test/d27/autostart.el") -;; (emacs-Q-no-nxhtml "web-vcs.el" "-f" "eval-buffer" "-f" "nxhtml-temp-setup-auto-download") -;; (emacs-Q-no-nxhtml "-l" "c:/test/d27/web-vcs" "-l" "c:/test/d27/nxhtml-web-vcs" "-f" "nxhtml-temp-setup-auto-download") -;; (emacs-Q-no-nxhtml "-l" "c:/test/d27/nxhtml-web-vcs" "-f" "nxhtml-temp-setup-auto-download") -;; (emacs-Q-no-nxhtml "--geometry=200x50+100+100" "-l" "c:/test/d27/web-vcs" "-f" "web-vcs-nxhtml") -(defun nxhtml-temp-setup-auto-download () - ;;(when (fboundp 'w32-send-sys-command) (w32-send-sys-command #xf030) (sit-for 2)) - (set-frame-size (selected-frame) - (/ 1024 (frame-char-width)) - (/ 512 (frame-char-height)) - ) - (tool-bar-mode -1) - (set-frame-position (selected-frame) 100 50) - (when (y-or-n-p "Do nXhtml? ") - (view-echo-area-messages) - (setq truncate-lines t) - (split-window-horizontally) - (let ((load-path (cons default-directory load-path))) - (require 'web-vcs)) - ;(nxhtml-setup-auto-download "c:/test/d27") - (call-interactively 'nxhtml-setup-auto-download) - )) -;;;;;; End Testing function -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - - -(provide 'nxhtml-web-vcs) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; nxhtml-web-vcs.el ends here |