| @@ -1773,25 +1773,18 @@ Used by preview buffer and may defferent from awk-preview--point-end.") | |||||
| (defun awk-preview--invoke-awk (buf beg end progfile output) | (defun awk-preview--invoke-awk (buf beg end progfile output) | ||||
| "Execute PROFILE awk process with BEG and END input and output to OUTPUT buffer." | "Execute PROFILE awk process with BEG and END input and output to OUTPUT buffer." | ||||
| (with-current-buffer buf | (with-current-buffer buf | ||||
| (let ((proc (apply 'start-process | |||||
| "awk-preview" | |||||
| output | |||||
| awk-preview-program | |||||
| `(,@awk-preview-switches "-f" ,progfile)))) | |||||
| (message "%S" proc) | |||||
| (process-send-region proc beg end) | |||||
| (process-send-eof proc) | |||||
| (accept-process-output proc) | |||||
| ;; What should I do if process does not exit yet? | |||||
| ;; (cl-assert (eq (process-status proc) | |||||
| ;; 'exit)) | |||||
| ;; (unless (eq (process-exit-status proc) | |||||
| ;; 0) | |||||
| ;; (error "awk-preview: Awk program exited abnormally.")) | |||||
| ) | |||||
| output)) | |||||
| ;; (call-process "awk" "a.js" t t "--sandbox" "-f" "a.awk") | |||||
| (let ((status (apply 'call-process-region | |||||
| beg | |||||
| end | |||||
| awk-preview-program | |||||
| nil | |||||
| output | |||||
| nil | |||||
| `(,@awk-preview-switches "-f" ,progfile)))) | |||||
| (unless (eq status | |||||
| 0) | |||||
| (error "awk-preview: Awk program exited abnormally.")) | |||||
| output))) | |||||
| (defvar awk-preview-program-buffer-name | (defvar awk-preview-program-buffer-name | ||||
| "*AWK Preview Program<%s>*" | "*AWK Preview Program<%s>*" | ||||
| @@ -1838,6 +1831,7 @@ Return that buffer." | |||||
| (end awk-preview--point-end)) | (end awk-preview--point-end)) | ||||
| (with-current-buffer (clone-buffer (format awk-preview-preview-buffer-name | (with-current-buffer (clone-buffer (format awk-preview-preview-buffer-name | ||||
| (buffer-name))) | (buffer-name))) | ||||
| (awk-preview-program-mode 1) | |||||
| (setq awk-preview--preview-point-beg beg) | (setq awk-preview--preview-point-beg beg) | ||||
| (setq awk-preview--preview-point-end end) | (setq awk-preview--preview-point-end end) | ||||
| (setq awk-preview--source-buffer source) | (setq awk-preview--source-buffer source) | ||||
| @@ -1846,8 +1840,6 @@ Return that buffer." | |||||
| (setq buffer-read-only t) | (setq buffer-read-only t) | ||||
| (current-buffer))))) | (current-buffer))))) | ||||
| ;; (defun awk-preview-with-program (beg end program)) | |||||
| (defun awk-preview (beg end) | (defun awk-preview (beg end) | ||||
| "Run awk and preview result." | "Run awk and preview result." | ||||
| (interactive "r") | (interactive "r") | ||||
| @@ -1911,6 +1903,9 @@ Return that buffer." | |||||
| "Discard result and exit awk-preview." | "Discard result and exit awk-preview." | ||||
| (interactive)) | (interactive)) | ||||
| (defun awk-preview--cleanup() | |||||
| "Cleanup awk preview buffers and variables.") | |||||
| (defvar awk-preview-program-mode-map | (defvar awk-preview-program-mode-map | ||||
| (let ((map (make-sparse-keymap))) | (let ((map (make-sparse-keymap))) | ||||
| (define-key map (kbd "C-c C-l") 'awk-preview-update-preview) | (define-key map (kbd "C-c C-l") 'awk-preview-update-preview) | ||||