[BACK]Return to asir-mode.el CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / windows / post-msg-asirgui

Diff for /OpenXM_contrib2/windows/post-msg-asirgui/asir-mode.el between version 1.2 and 1.3

version 1.2, 2013/08/29 17:39:29 version 1.3, 2013/09/19 19:57:32
Line 2 
Line 2 
 ;;  ;;
 ;; asir-mode.el -- asir mode  ;; asir-mode.el -- asir mode
 ;;  ;;
 ;; $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/asir-mode.el,v 1.1 2013/08/27 05:51:50 takayama Exp $  ;; $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/asir-mode.el,v 1.2 2013/08/29 17:39:29 ohara Exp $
   
 ;; This program is free software: you can redistribute it and/or modify  ;; 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  ;; it under the terms of the GNU General Public License as published by
Line 10 
Line 10 
 ;; (at your option) any later version.  ;; (at your option) any later version.
   
 ;;;; AsirGUI for Windows  ;;;; AsirGUI for Windows
 (defconst asir-exec-path-default '("~/Desktop/asir/bin" "c:/Program Files/asir/bin" "c:/Program Files (x64)/asir/bin" "c:/asir/bin")  (defvar asir-exec-path '("~/Desktop/asir/bin" "c:/Program Files/asir/bin" "c:/Program Files (x64)/asir/bin" "c:/asir/bin")
   "Default Search path for asir binary in Windows")    "Default search path for asir binary in Windows")
   
 (defvar asir-exec-path asir-exec-path-default  (defun asir-effective-exec-path ()
   "Search path for asir binary")  
   
 (defun asir-effective-exec-path ()  
   "Search path for command"    "Search path for command"
   (let* ((dir (getenv "ASIR_ROOTDIR"))    (let* ((dir (getenv "ASIR_ROOTDIR"))
                  (path (append asir-exec-path exec-path)))                   (path (append asir-exec-path exec-path)))
         (if dir (cons (concat dir "/bin") path) path)))          (if dir (cons (concat dir "/bin") path) path)))
   
 (defun asir-executable-find (command)  (defun asir-executable-find (command)
   "Search for command"    "Search for command"
   (let* ((exec-path (asir-effective-exec-path)))    (let* ((exec-path (asir-effective-exec-path)))
         (executable-find command)))          (executable-find command)))
   
 (defun asir-start-asirgui ()  ;;;; Asir for UNIX
   "Run asirgui"  (defvar asir-cmd-buffer-name "*asir-cmd*")
   
   (defun asir-cmd-load (filename)
     "Send `load' command to running asir process"
     (if (eq system-type 'windows-nt)
             (let ((exec-path (asir-effective-exec-path)))
                   (start-process "asir-proc-cmdasir" nil "cmdasir" filename))
           (save-excursion
             (if (get-buffer asir-cmd-buffer-name)
                     (progn
                           (set-buffer asir-cmd-buffer-name)
                           (goto-char (point-max))
                           (insert (format "load(\"%s\");" filename))
                           (comint-send-input))))))
   
   (defun asir-start ()
     "Start asir process"
   (interactive)    (interactive)
   (let ((exec-path (asir-effective-exec-path)))    (if (eq system-type 'windows-nt)
         (start-process "asir-proc-asirgui" nil "asirgui")))      ;; for Windows
             (let ((exec-path (asir-effective-exec-path)))
                   (start-process "asir-proc-asirgui" nil "asirgui"))
       ;; for UNIX
           (save-excursion
             (if (not (get-buffer asir-cmd-buffer-name))
                     (let ((current-frame (selected-frame)))
                           (or (not window-system)
                                   (select-frame (make-frame)))
                           (shell (get-buffer-create asir-cmd-buffer-name)) ;; Switch to new buffer automatically
                           (sleep-for 1)
                           (goto-char (point-max))
                           (insert "asir")
                           (comint-send-input)
                           (select-frame current-frame))))))
   
 (defun asir-terminate-asirgui ()  (defun asir-terminate ()
   "Execute the current buffer on asir"    "Terminate asir process"
   (interactive)    (interactive)
   (let ((exec-path (asir-effective-exec-path)))    (if (eq system-type 'windows-nt)
         (start-process "asir-proc-cmdasir" nil "cmdasir" "--quit")))      ;; for Windows
             (let ((exec-path (asir-effective-exec-path)))
                   (start-process "asir-proc-cmdasir" nil "cmdasir" "--quit"))
       ;; for UNIX
           (if (get-buffer asir-cmd-buffer-name)
                   (if (not window-system)
                           (let ((asir-cmd-window (get-buffer-window asir-cmd-buffer-name)))
                             (and (kill-buffer asir-cmd-buffer-name)
                                      (or (not asir-cmd-window) (delete-window asir-cmd-window))))
                     (let ((asir-cmd-frame (window-frame (get-buffer-window asir-cmd-buffer-name 0))))
                           (and (kill-buffer asir-cmd-buffer-name)
                                    (delete-frame asir-cmd-frame)))))))
   
 (defun asir-execute-current-buffer-on-asir ()  (defun asir-execute-current-buffer ()
   "Execute the current buffer on asir"    "Execute the current buffer on asir"
   (interactive)    (interactive)
   (let ((exec-path (asir-effective-exec-path)))    (let ((exec-path (asir-effective-exec-path)))
         (start-process "asir-proc-cmdasir" nil "cmdasir" (buffer-file-name))))          (asir-cmd-load (buffer-file-name))))
   
 (defun asir-execute-region-on-asir ()  (defun asir-execute-region ()
   "Execute the region on asir"    "Execute the region on asir"
   (interactive)    (interactive)
   (save-excursion    (save-excursion
         (if mark-active          (if mark-active
                 (let ((exec-path (asir-effective-exec-path))                  (let ((temp-file (make-temp-file (format "%s/cmdasir-" (or (getenv "TEMP") "/var/tmp"))))
                           (temp-file (make-temp-file (format "%s/cmdasir-" (getenv "TEMP")))))                            (temp-buffer (generate-new-buffer " *asir-temp*")))
                   (write-region (region-beginning) (region-end) temp-file)                    (write-region (region-beginning) (region-end) temp-file)
                   (start-process "asir-proc-cmdasir" nil "cmdasir" temp-file)))))                    (set-buffer temp-buffer)
                     (insert " end$")
                     (write-region (point-min) (point-max) temp-file t) ;; append
                     (kill-buffer temp-buffer)
                     (asir-cmd-load temp-file)))))
   
 ;;;; Extension for CC-mode.  ;;;; Extension for CC-mode.
   
Line 91 
Line 133 
   asir    asir
   (append (c-lang-const c-mode-menu c)    (append (c-lang-const c-mode-menu c)
                   '("----"                    '("----"
                         ["Start asirgui" asir-start-asirgui (eq system-type 'windows-nt)]                          ["Start Asir" asir-start t]
                         ["Terminate asirgui" asir-terminate-asirgui (eq system-type 'windows-nt)]                          ["Terminate Asir" asir-terminate t]
                         ["Execute the current buffer on asir" asir-execute-current-buffer-on-asir                          ["Execute Current Buffer on Asir" asir-execute-current-buffer (buffer-file-name)]
                          (and (eq system-type 'windows-nt) (buffer-file-name))]                          ["Execute Region on Asir" asir-execute-region mark-active]
                         ["Execute the region on asir" asir-execute-region-on-asir  
                          (and (eq system-type 'windows-nt) mark-active)]  
                         )))                          )))
   
 (defvar asir-font-lock-extra-types nil  (defvar asir-font-lock-extra-types nil
Line 130  Each list item should be a regexp matching a single id
Line 170  Each list item should be a regexp matching a single id
   "Keymap used in asir-mode buffers.")    "Keymap used in asir-mode buffers.")
   
 ;; Key binding for asir-mode  ;; Key binding for asir-mode
 (define-key asir-mode-map (kbd "C-c s") 'asir-start-asirgui)  (define-key asir-mode-map (kbd "C-c s") 'asir-start)
 (define-key asir-mode-map (kbd "C-c t") 'asir-terminate-asirgui)  (define-key asir-mode-map (kbd "C-c t") 'asir-terminate)
 (define-key asir-mode-map (kbd "C-c l") 'asir-execute-current-buffer-on-asir)  (define-key asir-mode-map (kbd "C-c l") 'asir-execute-current-buffer)
 (define-key asir-mode-map (kbd "C-c r") 'asir-execute-region-on-asir)  (define-key asir-mode-map (kbd "C-c r") 'asir-execute-region)
   
 (easy-menu-define asir-menu asir-mode-map "asir Mode Commands"  (easy-menu-define asir-menu asir-mode-map "asir Mode Commands"
                   ;; Can use `asir' as the language for `c-mode-menu'                    ;; Can use `asir' as the language for `c-mode-menu'

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>