version 1.5, 2013/09/21 06:16:05 |
version 1.7, 2013/09/21 10:51:45 |
|
|
;; |
;; |
;; asir-mode.el -- asir mode |
;; asir-mode.el -- asir mode |
;; |
;; |
;; $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/asir-mode.el,v 1.4 2013/09/21 03:52:05 ohara Exp $ |
;; $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/asir-mode.el,v 1.6 2013/09/21 06:34:14 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 |
;; the Free Software Foundation, either version 3 of the License, or |
;; the Free Software Foundation, either version 3 of the License, or |
;; (at your option) any later version. |
;; (at your option) any later version. |
|
|
|
(require 'shell) |
|
|
;;;; AsirGUI for Windows |
;;;; AsirGUI for Windows |
(defvar asir-exec-path '("~/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") |
|
|
(save-excursion |
(save-excursion |
(if (not (get-buffer asir-cmd-buffer-name)) |
(if (not (get-buffer asir-cmd-buffer-name)) |
(let ((current-frame (selected-frame))) |
(let ((current-frame (selected-frame))) |
(or (not window-system) |
(if window-system |
(select-frame (make-frame))) |
(progn |
(shell (get-buffer-create asir-cmd-buffer-name)) ;; Switch to new buffer automatically |
(select-frame (make-frame)) |
|
(shell (get-buffer-create asir-cmd-buffer-name)) ;; Switch to new buffer automatically |
|
(delete-other-windows)) |
|
(if (>= emacs-major-version 24) |
|
(progn |
|
(split-window) |
|
(other-window -1))) |
|
(shell (get-buffer-create asir-cmd-buffer-name))) |
(sleep-for 1) |
(sleep-for 1) |
(goto-char (point-max)) |
(goto-char (point-max)) |
(insert "asir") |
(insert "asir") |
|
|
"Paste region to asir" |
"Paste region to asir" |
(interactive) |
(interactive) |
(if mark-active |
(if mark-active |
(save-excursion |
(if (eq system-type 'windows-nt) |
(let ((buffer (current-buffer)) |
(let ((temp-file (make-temp-file (format "%s/cmdasir-" (getenv "TEMP")))) |
(start (region-beginning)) |
(exec-path (asir-effective-exec-path))) |
(end (region-end))) |
(write-region (region-beginning) (region-end) temp-file) |
(set-buffer asir-cmd-buffer-name) |
(start-process "asir-proc-cmdasir" nil "cmdasir" "--paste-contents" temp-file)) |
(goto-char (point-max)) |
(save-excursion |
(insert-buffer-substring buffer start end) |
(let ((buffer (current-buffer)) |
(comint-send-input))))) |
(start (region-beginning)) |
|
(end (region-end))) |
|
(set-buffer asir-cmd-buffer-name) |
|
(goto-char (point-max)) |
|
(insert-buffer-substring buffer start end) |
|
(comint-send-input)))))) |
|
|
;;;; Extension for CC-mode. |
;;;; Extension for CC-mode. |
|
|