branch: elpa/rpm-spec-mode commit eb541f8c0c7245aa242d791191225a45ba37814a Merge: e31b6957e5 796114105f Author: Stig <s...@bjorlykke.org> Commit: Stig <s...@bjorlykke.org>
Merge pull request #1 from aspiers/master compilation fixes and other misc tweaks --- rpm-spec-mode.el | 110 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 58 insertions(+), 52 deletions(-) diff --git a/rpm-spec-mode.el b/rpm-spec-mode.el index 073129d316..d2fb41484b 100644 --- a/rpm-spec-mode.el +++ b/rpm-spec-mode.el @@ -34,6 +34,8 @@ ;; <t...@redhat.com> for Red Hat adaptions and some fixes. ;; Chmouel Boudjnah <chmo...@mandrakesoft.com> for Mandrake fixes. ;; Ville Skytt� <s...@xemacs.org> for some fixes. +;; Adam Spiers <el...@adamspiers.org> for GNU emacs compilation +;; and other misc fixes. ;;; ToDo: @@ -66,6 +68,8 @@ (defconst rpm-spec-mode-version "0.14" "Version of `rpm-spec-mode'.") +(eval-and-compile (defvar running-xemacs nil)) + (defgroup rpm-spec nil "RPM spec mode with Emacs/XEmacs enhancements." :prefix "rpm-spec-" @@ -246,7 +250,7 @@ value returned by function `user-mail-address'." (defconst rpm-scripts '("pre" "post" "preun" "postun" "trigger" "triggerin" "triggerprein" "triggerun" "triggerpostun" - "pretrans" "posttrans") + "pretrans" "posttrans" "verifyscript") "List of rpm scripts.") (defconst rpm-section-seperate "^%\\(\\w+\\)\\s-") (defconst rpm-section-regexp @@ -482,6 +486,8 @@ value returned by function `user-mail-address'." (modify-syntax-entry ?| "." rpm-spec-mode-syntax-table) (modify-syntax-entry ?\' "." rpm-spec-mode-syntax-table)) +(eval-when-compile (or running-xemacs (defun set-keymap-name (a b)))) + (defvar rpm-spec-mode-map nil "Keymap used in `rpm-spec-mode'.") (unless rpm-spec-mode-map @@ -604,7 +610,7 @@ value returned by function `user-mail-address'." '(1 'rpm-spec-tag-face)) '("%\\(de\\(fine\\|scription\\)\\|files\\|global\\|package\\)[ \t]+\\([^-][^ \t\n]*\\)" (3 rpm-spec-package-face)) - '("%p\\(ost\\|re\\)\\(un\\|trans\\)?[ \t]+\\([^-][^ \t\n]*\\)" + '("^%p\\(ost\\|re\\)\\(un\\|trans\\)?[ \t]+\\([^-][^ \t\n]*\\)" (3 rpm-spec-package-face)) '("%configure " 0 rpm-spec-macro-face) '("%dir[ \t]+\\([^ \t\n]+\\)[ \t]*" 1 rpm-spec-dir-face) @@ -699,8 +705,7 @@ with no args, if that value is non-nil." (defun rpm-command-filter (process string) "Filter to process normal output." - (save-excursion - (set-buffer (process-buffer process)) + (with-current-buffer (process-buffer process) (save-excursion (goto-char (process-mark process)) (insert-before-markers string) @@ -811,22 +816,23 @@ controls whether case is significant." (beginning-of-line) (if (not what) (setq what (rpm-completing-read "Tag: " rpm-tags-list))) - (if (string-match "^%" what) - (setq read-text (concat "Packagename for " what ": ") - insert-text (concat what " ")) - (setq read-text (concat what ": ") - insert-text (concat what ": "))) - (cond - ((string-equal what "Group") - (rpm-insert-group)) - ((string-equal what "Source") - (rpm-insert-n "Source")) - ((string-equal what "Patch") - (rpm-insert-n "Patch")) - (t - (if file-completion - (insert insert-text (read-file-name (concat read-text) "" "" nil) "\n") - (insert insert-text (read-from-minibuffer (concat read-text)) "\n"))))) + (let (read-text insert-text) + (if (string-match "^%" what) + (setq read-text (concat "Packagename for " what ": ") + insert-text (concat what " ")) + (setq read-text (concat what ": ") + insert-text (concat what ": "))) + (cond + ((string-equal what "Group") + (call-interactively 'rpm-insert-group)) + ((string-equal what "Source") + (rpm-insert-n "Source")) + ((string-equal what "Patch") + (rpm-insert-n "Patch")) + (t + (if file-completion + (insert insert-text (read-file-name (concat read-text) "" "" nil) "\n") + (insert insert-text (read-from-minibuffer (concat read-text)) "\n")))))) (defun rpm-topdir () (or @@ -842,7 +848,7 @@ controls whether case is significant." (save-excursion (goto-char (point-max)) (if (search-backward-regexp (concat "^" what "\\([0-9]*\\):") nil t) - (let ((release (1+ (string-to-int (match-string 1))))) + (let ((release (1+ (string-to-number (match-string 1))))) (forward-line 1) (let ((default-directory (concat (rpm-topdir) "/SOURCES/"))) (insert what (int-to-string release) ": " @@ -1018,14 +1024,14 @@ leave point at previous location." (if (and (buffer-modified-p) (y-or-n-p (format "Buffer %s modified, save it? " (buffer-name)))) (save-buffer)) - (setq rpm-buffer-name - (concat "*" rpm-spec-build-command " " buildoptions " " - (file-name-nondirectory buffer-file-name) "*")) - (rpm-process-check rpm-buffer-name) - (if (get-buffer rpm-buffer-name) - (kill-buffer rpm-buffer-name)) - (create-file-buffer rpm-buffer-name) - (display-buffer rpm-buffer-name) + (let ((rpm-buffer-name + (concat "*" rpm-spec-build-command " " buildoptions " " + (file-name-nondirectory buffer-file-name) "*"))) + (rpm-process-check rpm-buffer-name) + (if (get-buffer rpm-buffer-name) + (kill-buffer rpm-buffer-name)) + (create-file-buffer rpm-buffer-name) + (display-buffer rpm-buffer-name)) (setq buildoptions (list buildoptions buffer-file-name)) (if (or rpm-spec-short-circuit rpm-spec-nobuild) (setq rpm-no-gpg t)) @@ -1215,17 +1221,17 @@ command." (defun rpm-update-mode-name () "Update `mode-name' according to values set." (setq mode-name "RPM-SPEC") - (setq modes (concat (if rpm-spec-add-attr "A") - (if rpm-spec-clean "C") - (if rpm-spec-nodeps "D") - (if rpm-spec-sign-gpg "G") - (if rpm-spec-nobuild "N") - (if rpm-spec-rmsource "R") - (if rpm-spec-short-circuit "S") - (if rpm-spec-quiet "Q") - )) - (if (not (equal modes "")) - (setq mode-name (concat mode-name ":" modes)))) + (let ((modes (concat (if rpm-spec-add-attr "A") + (if rpm-spec-clean "C") + (if rpm-spec-nodeps "D") + (if rpm-spec-sign-gpg "G") + (if rpm-spec-nobuild "N") + (if rpm-spec-rmsource "R") + (if rpm-spec-short-circuit "S") + (if rpm-spec-quiet "Q") + ))) + (if (not (equal modes "")) + (setq mode-name (concat mode-name ":" modes))))) ;;------------------------------------------------------------ @@ -1274,7 +1280,7 @@ command." ;; Try to find the last digit-only group of a dot-separated release string (concat "^\\(Release[ \t]*:[ \t]*\\)" "\\(.*[ \t\\.}]\\)\\([0-9]+\\)\\([ \t\\.%].*\\|$\\)") nil t) - (let ((release (1+ (string-to-int (match-string 3))))) + (let ((release (1+ (string-to-number (match-string 3))))) (setq release (concat (match-string 2) (int-to-string release) (match-string 4))) (replace-match (concat (match-string 1) release)) @@ -1343,18 +1349,18 @@ if one is present in the file." (if (string-match "%{?\\([^}]*\\)}?$" str) (progn (goto-char (point-min)) - (setq macros (substring str (match-beginning 1) - (match-end 1))) - (search-forward-regexp - (concat "%define[ \t]+" macros - "[ \t]+\\(\\([0-9]\\|\\.\\)+\\)\\(.*\\)")) - (concat macros " " (int-to-string (1+ (string-to-int - (match-string 1)))) - (match-string 3))) + (let ((macros (substring str (match-beginning 1) + (match-end 1)))) + (search-forward-regexp + (concat "%define[ \t]+" macros + "[ \t]+\\(\\([0-9]\\|\\.\\)+\\)\\(.*\\)")) + (concat macros " " (int-to-string (1+ (string-to-number + (match-string 1)))) + (match-string 3)))) str))) - (setq dinrel inrel) - (replace-match (concat "%define " dinrel)) - (message "Release tag changed to %s." dinrel))))) + (let ((dinrel inrel)) + (replace-match (concat "%define " dinrel)) + (message "Release tag changed to %s." dinrel)))))) ;;------------------------------------------------------------