;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (require 'ess-mode) #@58 Full path-name of the sas file to perform operations on. (defvar ess-sas-file-path "." (#$ . 107)) (byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\307&\210\300\313\314\315\304\305\306\307&\210\300\316\302\317\304\305\306\307&\210\320\316!\210\300\321\322\323\304\305\306\307&\210\300\324\302\325\304\305\306\307&\210\320\324!\210\300\326\327\330\304\305\306\307&\210\300\331\332\333\304\305\306\334&\210\300\335\336\337\304\305\306\340&\210\300\341\342\343\304\305\306\307&\210\300\344\345\346\304\305\306\307&\210\320\344!\210\300\347\350\351\304\305\306\352&\210\320\347!\210\300\353\354\355\304\305\306\307&\210\320\353!\210\300\356\350\357\304\305\306\360&\210\320\356!\210\300\361\362\363\304\305\306\307&\210\300\364\361\365\304\305\306\307&\210\320\364!\210\300\366\367\370\304\305\306\307&\210\320\366!\207" [custom-declare-variable ess-sas-data-view-libname " " "*SAS code to define a library for `ess-sas-data-view-fsview'\nor `ess-sas-data-view-insight'." :group ess-sas :type string ess-sas-data-view-submit-options (if ess-microsoft-p "-noenhancededitor -nosysin -log NUL:" "-nodms -nosysin -log /dev/null -terminal") "*The command-line options necessary for your OS with respect to\n`ess-sas-data-view-fsview' and `ess-sas-data-view-insight'." ess-sas-data-view-fsview-command "; proc fsview data=" "*SAS code to open a SAS dataset with `ess-sas-data-view-fsview'." ess-sas-data-view-fsview-statement "*SAS code to perform a PROC FSVIEW statement with `ess-sas-data-view-fsview'." make-variable-buffer-local ess-sas-data-view-insight-command "; proc insight data=" "*SAS code to open a SAS dataset with `ess-sas-data-view-insight'." ess-sas-data-view-insight-statement "*SAS code to perform a PROC FSVIEW statement with `ess-sas-data-view-insight'." ess-sas-graph-view-suffix-regexp "[.]\\([eE]?[pP][sS]\\|[pP][dD][fF]\\|[gG][iI][fF]\\|[jJ][pP][eE]?[gG]\\|[tT][iI][fF][fF]?\\)" "*GSASFILE suffix regexp." ess-sas-graph-view-viewer-alist (let ((ess-tmp-alist nil) (ess-tmp-ps nil) (ess-tmp-pdf nil)) (setq ess-tmp-ps (executable-find (if ess-microsoft-p "gsview32" "gsview"))) (if (not ess-tmp-ps) (setq ess-tmp-ps (executable-find "gv"))) (if (not ess-tmp-ps) (setq ess-tmp-ps (executable-find "ghostview"))) (setq ess-tmp-pdf (executable-find "evince")) (if (not ess-tmp-pdf) (setq ess-tmp-pdf (executable-find "xpdf"))) (if (not ess-tmp-pdf) (setq ess-tmp-pdf (if ess-microsoft-p "acrord32" "acroread"))) (if (and ess-tmp-ps ess-tmp-pdf) (setq ess-tmp-alist (list (cons "[eE]?[pP][sS]" ess-tmp-ps) (cons "[pP][dD][fF]" ess-tmp-pdf))) (if ess-tmp-ps (setq ess-tmp-alist (list (cons "[eE]?[pP][sS]" ess-tmp-ps) (cons "[pP][dD][fF]" ess-tmp-ps)))))) "*Associate file name extensions with graphics image file viewers." (choice (const nil) (alist)) ess-sas-log-max 0 "*If >0 and .log file exceeds this many bytes, just \"refresh\" this many bytes." integer ess-sas-rtf-font-name "Courier" "Name of font with which to create MS RTF." ess-sas-shell-buffer "*shell*" "*Name that you want to use for the shell buffer; buffer-local." ess-sas-shell-buffer-remote-host nil "*Remote host that you want to open a shell on." (choice (const nil) string) ess-sas-shell-buffer-remote-init "ssh" "*Command to open a shell on a remote host." ess-sas-submit-mac-virtual-pc "*Non-nil means that you want to run Windows SAS in a\nVirtual PC emulator on your Mac; buffer-local." boolean sas-program "sas" "*Command to invoke SAS, default for buffer-local `ess-sas-submit-command'." ess-sas-submit-command "*Command to invoke SAS in batch; buffer-local." ess-sas-submit-command-options "-rsasuser" "*Options to pass to SAS in batch; buffer-local."] 8) #@618 Method used by `ess-sas-submit'. The default is based on the value of the emacs variable `system-type' and, on Windows, the function `w32-shell-dos-semantics'. 'sh if *shell* runs sh, ksh, csh, tcsh or bash 'ms-dos if *shell* follows MS-DOS semantics Unix users will get 'sh by default. Windows users running bash in *shell* will get 'sh by default. Windows users running MS-DOS in *shell* will get 'ms-dos by default. Users accessing a remote machine with `telnet', `rlogin', `ssh', etc., should set this variable to 'sh regardless of their local shell (since their remote shell is 'sh). (defvar ess-sas-submit-method (byte-code "\203\301\302!\203\302 \203\303\207\304\207" [ess-microsoft-p fboundp w32-shell-dos-semantics ms-dos sh] 2) (#$ . 3804)) (byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\210\302\312\313\314\306\307\310\311&\210\302\315\316\317\306\307\310\311&\210\302\320\321\322\306\307\310\311&\210\302\323\324\325\306\307\310\311&\210\302\326\327\330\306\307\310\311&\210\302\331\332\333\310\334\306\307&\210\302\335\336\337\306\307\310\311&\207" [make-variable-buffer-local ess-sas-submit-method custom-declare-variable ess-sas-graph-view-viewer-default (if ess-microsoft-p "explorer" (if (equal ess-sas-submit-method 'sh) "sdtimage")) "*Default graphics image file viewer." :group ess-sas :type string ess-sas-submit-post-command (if (equal ess-sas-submit-method 'sh) "&" (if ess-microsoft-p "-icon")) "*Command-line statement to post-modify SAS invocation" ess-sas-submit-pre-command (if (equal ess-sas-submit-method 'sh) (let* ((temp-shell (getenv "SHELL")) (temp-char (if temp-shell (string-match "/" temp-shell) nil))) (while temp-char (setq temp-shell (substring temp-shell (+ 1 temp-char))) (setq temp-char (string-match "/" temp-shell))) (cond ((or (equal temp-shell "csh") (equal temp-shell "tcsh")) "nohup nice +6") (t "nohup nice"))) (if ess-microsoft-p "start")) "*Command-line statement to precede SAS invocation, e.g. start or nohup" ess-sas-suffix-1 "txt" "*The first suffix to associate with SAS." ess-sas-suffix-2 "csv" "*The second suffix to associate with SAS." ess-sas-suffix-regexp (concat "[.]\\([sS][aA][sS]\\|[lL][oO][gG]\\|[lL][sS][tT]" (if ess-sas-suffix-1 (concat "\\|" (downcase ess-sas-suffix-1) "\\|" (upcase ess-sas-suffix-1))) (if ess-sas-suffix-2 (concat "\\|" (downcase ess-sas-suffix-2) "\\|" (upcase ess-sas-suffix-2))) "\\)") "*Regular expression for SAS suffixes." ess-sas-tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120) "List of tab stop positions used by `tab-to-tab-stop' in ESS[SAS]." (repeat integer) ess-sas-temp-root "-temp" "*Appended to root name of the temporary .sas file for `ess-sas-submit-region'."] 8) #@705 List of partial strings for versions of SAS to access within ESS. Each string specifies the start of a filename. If a filename beginning with one of these strings is found on `exec-path', a M-x command for that version of SAS is made available. For example, if the file "sas8" is found and this variable includes the string "sas", a function called `M-x SAS8' will be available to run that version of SAS. If duplicate versions of the same program are found (which happens if the same path is listed on `exec-path' more than once), they are ignored by calling `ess-uniq-list'. If you set this variable, you need to restart Emacs (and set this variable before ess-site is loaded) for it to take effect. (defvar ess-sas-versions '("sas") (#$ . 6600)) #@74 Non-nil if function keys use Unix-like SAS key definitions in all modes. (defvar ess-sas-global-unix-keys nil (#$ . 7357)) #@89 Non-nil if function keys use PC-like SAS key definitions in SAS-mode and related modes. (defvar ess-sas-local-pc-keys nil (#$ . 7486)) #@91 Non-nil if function keys use Unix-like SAS key definitions in SAS-mode and related modes. (defvar ess-sas-local-unix-keys nil (#$ . 7627)) #@57 *Search and replace EBCDIC text with ASCII equivalents. (defalias 'ess-ebcdic-to-ascii-search-and-replace #[nil "\304\305!\304\306!\307\211\211\203 \310\202\n\311 \2059\312\313\307\314#\2059\315\316\224\316\225 \314\211\307D\314&\210\202,\207" [ess-tmp-util-args ess-tmp-util ess-tmp-recode ess-tmp-dd executable-find "dd" "recode" nil "conv=ascii" "EBCDIC..ISO-8859-1" search-forward-regexp "[^\f \n -~][^\f \n -?A-JQ-Yb-jp-y]*[^\f \n -~]?" t call-process-region 0] 9 (#$ . -7772) nil]) #@68 Detect completion or failure of submitted job and notify the user. (defalias 'ess-exit-notify-sh #[(string) "\303\304 \"\211\205\305 \n\306\225O!*\207" [exit-done string beg "\\[[0-9]+\\]\\ *\\+*\\ *\\(Exit\\|Done\\)[^ \n]*" string-match message 0] 5 (#$ . 8284)]) #@47 Append ess-temp.log to the current .log file. (defalias 'ess-sas-append-log #[nil "\300\301\302\"\210db\210\303\304 \305P!\210\306 \207" [ess-sas-goto "log" revert insert-file-contents ess-sas-temp-root ".log" save-buffer] 3 (#$ . 8560) nil]) #@47 Append ess-temp.lst to the current .lst file. (defalias 'ess-sas-append-lst #[nil "\300\301\302\"\210db\210\303\304 \305P!\210\306 \207" [ess-sas-goto "lst" revert insert-file-contents ess-sas-temp-root ".lst" save-buffer] 3 (#$ . 8809) nil]) #@80 Moves the cursor to the previous tab-stop, deleting any characters on the way. (defalias 'ess-sas-backward-delete-tab #[nil "i\211 \246\305U?\205(\n\305U\203 \306\307\n\310\"\210\nZ\311!\210\211)*\207" [ess-sas-column sas-indent-width ess-sas-remainder backward-delete-char-untabify-method left-margin 0 nil backward-delete-char-untabify t move-to-column] 4 (#$ . 9058) nil]) #@91 Change directory, taking into account various issues with respect to `ess-sas-file-path'. (defalias 'ess-sas-cd #[nil "\301 \210\302\303!\210\304 \210\305=\203!\306\307\310\311 !\312\"!@\313\261\210\202C\314=\203C \315\316O\317\230\2039 \320\316Oc\210\304 \210\306\321\311 !!\313\261\210\304 \207" [ess-sas-submit-method ess-sas-file-path ess-sas-goto-shell t comint-send-input sh "cd \"" last split-string file-name-directory "\\([a-zA-Z][a-zA-Z]:\\|]\\)" "\"" ms-dos 1 2 ":" 0 convert-standard-filename] 5 (#$ . 9453)]) #@251 Modify ALIST to set VALUE to ITEM. If there is a pair whose car is ITEM, replace its cdr by VALUE. If there is not such pair, create new pair (ITEM . VALUE) and return new alist whose car is the new pair and cdr is ALIST. [tomo's ELIS like function] (defalias 'ess-sas--change-alist #[(item value alist) "\304 \"\211\203\n \241\210 \202 B B)\207" [item alist pair value assoc] 4 (#$ . 9990)]) #@88 Create an alist of local variables from file-or-buffer, use the current buffer if nil. (defalias 'ess-sas-create-local-variables-alist #[(&optional file-or-buffer) "\203 \302!q\210\303\301 \304#\207" [file-or-buffer ess-kermit-remote-directory ess-get-file-or-buffer ess-sas--change-alist nil] 4 (#$ . 10396)]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias ess-change-alist ess-sas--change-alist nil make-obsolete "ESS 18.10"] 4) #@46 Open a dataset for viewing with PROC FSVIEW. (defalias 'ess-sas-data-view-fsview #[(&optional ess-sas-data) "\306 \210\212\307\310\311 ?\205S\312 \313\216\314\315\307\316#\210\212\301\n \")\f\204.\301\n \316#\317\320\f\"\321 \210\322\323 \324 \325\322\322\260c\210\326 *-\207" [ess-sas-data-view-fsview-statement ess-search-except ess-search-regexp ess-tmp-sas-data-view-fsview-statement ess-tmp-sas-data ess-sas-data ess-save-and-set-local-variables nil "[ =]\\([a-zA-Z_][a-zA-Z_0-9]*[.][a-zA-Z_][a-zA-Z_0-9]*\\)\\(&.*\\)?[. ,() ;/]" "^\\([wW][oO][rR][kK]\\|[fF][iI][rR][sS][tT]\\|[lL][aA][sS][tT]\\)[.]" match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] search-backward-regexp "[ =]" t read-string "Permanent SAS Dataset: " ess-sas-cd " " " -initstmt \"" ";" "; run;\" " comint-send-input save-match-data-internal ess-sas-submit-pre-command ess-sas-submit-command ess-sas-data-view-libname ess-sas-data-view-fsview-command ess-sas-submit-command-options ess-sas-data-view-submit-options ess-sas-submit-post-command] 15 (#$ . 10855) nil]) #@47 Open a dataset for viewing with PROC INSIGHT. (defalias 'ess-sas-data-view-insight #[(&optional ess-sas-data) "\306 \210\212\307\310\311 ?\205P\312 \313\216\314\315\307\316#\210\212\301\n \")\f\204.\301\n \316#\317\320\f\"\321 \210\322\323 \324 \325\322\260 c\210\326 *-\207" [ess-sas-data-view-insight-statement ess-search-except ess-search-regexp ess-tmp-sas-data-view-insight-statement ess-tmp-sas-data ess-sas-data ess-save-and-set-local-variables nil "[ =]\\([a-zA-Z_][a-zA-Z_0-9]*[.][a-zA-Z_][a-zA-Z_0-9]*\\)\\(&.*\\)?[. ,() ;]" "^\\([wW][oO][rR][kK]\\|[fF][iI][rR][sS][tT]\\|[lL][aA][sS][tT]\\)[.]" match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] search-backward-regexp "[ =]" t read-string "Permanent SAS Dataset: " ess-sas-cd " " " -initstmt \"" ";" "; run;\" " comint-send-input save-match-data-internal ess-sas-submit-pre-command ess-sas-submit-command ess-sas-data-view-libname ess-sas-data-view-insight-command ess-sas-data-view-submit-options ess-sas-submit-post-command] 13 (#$ . 11970) nil]) #@30 Open a GSASFILE for viewing. (defalias 'ess-sas-graph-view #[nil "\306 \210\307\310!\210\212G\311\312\211\211\313 \314Q$%\315 &\316\216\317\320\312\321#\210\212\322\n!) \2046\322\n\312\321#\323\324 \206>'\"\325\326!\203X\203X\327\330 \"\203X\331 !\202\311\332\333!\203k\327\334 \"\203k\331 !\202\311$%W\203\255$8\211@\327\335\nP \"\203\244\336\321!\210(\337\fA\337 )\340=\205\227\341\261\210\342%\211$\202m$T\211$\202m \204\307\336\321!\210(\337*\337 )\340=\205\304\341\261\210\343 . \207" [ess-sas-graph-view-viewer-alist ess-sas-graph-view-suffix-regexp ess-tmp-graph-regexp ess-tmp-glyph ess-tmp-graph-alist ess-tmp-graph ess-sas-cd ess-sas-goto-log no-error-check 0 nil "[cCub][oOty][rRpt][dDue][sSt][ ][wW][rR][iI][tT][tT][eE][nN][ ]+[tT][oO][ ]\n?[ ]*\\(.*" "\\)" match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] search-backward-regexp "[ =]" t ess-search-except read-string "GSASFILE: " boundp auto-image-file-mode string-match "[.][jJ][pP][eE]?[gG]" find-file fboundp image-mode "[.]\\([jJ][pP][eE]?[gG]\\|[gG][iI][fF]\\)" "[.]" ess-sas-goto-shell " " sh " &" alist comint-send-input ess-tmp-counter ess-tmp-length save-match-data-internal ess-sas-file-path ess-sas-submit-pre-command ess-sas-submit-method ess-sas-graph-view-viewer-default] 9 (#$ . 13052) nil]) #@74 Define `ess-sas-file-path' to be the current buffer depending on suffix. (defalias 'ess-sas-file-path #[(&optional force) "\305 \306\216\307\310 !\n\204\311 \"\205\312 \313\"@\211+\207" [save-match-data-internal ess-sas-temp-file force ess-sas-suffix-regexp ess-sas-file-path match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] expand-file-name buffer-name string-match split-string "[<]"] 3 (#$ . 14419) nil]) #@70 Return the remote host, if any, associated with `ess-sas-file-path'. (defalias 'ess-sas-file-path-remote-host #[nil "\304\305\"\211\203 \306V\203\307\232?\205!\310\311!\312\"\202!C\211G\211\313U\2030\314\202@ \306U\203<\n@\202@\nA@\n\203L\315\310\n\316\"!@\n+\207" [ess-sas-file-path temp-colon-pos temp-list temp-list-length string-match ":" 2 "." split-string file-name-directory "\\(@\\|:\\|]\\)" 1 nil last "/"] 5 (#$ . 14882) nil]) #@75 Find a file associated with a SAS file by suffix and revert if necessary. (defalias 'ess-sas-goto #[(suffix &optional revert no-create) "\306P\307 \310\216\311 \312\313 !\"\204\311 \"\205\231\303 \210\314\315\fP\316\211 $\317 ! \203<\320!\210\202Q!\203G\321\"\202Q\322 !\203Q\323 !\210!\204j\f\324\230\204b\f\325\230\203j\326\327 ! \"\210\"\205\230#\330V\203\226\f\324\230\203\226\331\332\333 !8!#V\203\226\334 \321\330#\316%\210\316\202\230\335 ++\207" [ess-sas-suffix-regexp ess-temp-regexp save-match-data-internal ess-sas-file-path suffix ess-sas-temp-file "\\(@.+\\)?\\'" match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] string-match expand-file-name buffer-name replace-match "." t find-buffer-visiting switch-to-buffer nil file-exists-p find-file "log" "lst" ess-kermit-get file-name-nondirectory 0 ess-num-or-zero 7 file-attributes insert-file-contents ess-revert-wisely ess-sas-temp-buff ess-kermit-remote-directory ess-temp-kermit-remote-directory no-create revert ess-sas-log-max] 6 (#$ . 15347)]) #@48 Switch to ess-sas-file-1 and revert from disk. (defalias 'ess-sas-goto-file-1 #[nil "\301\302\"\207" [ess-sas-suffix-1 ess-sas-goto revert] 3 (#$ . 16441) nil]) #@48 Switch to ess-sas-file-2 and revert from disk. (defalias 'ess-sas-goto-file-2 #[nil "\301\302\"\207" [ess-sas-suffix-2 ess-sas-goto revert] 3 (#$ . 16609) nil]) #@74 Switch to the .log file, revert from disk and search for error messages. (defalias 'ess-sas-goto-log #[(&optional ess-tmp-no-error-check) "\303\304\305\306\307\"\203`eb\210\202`\n\203b\2029\310 \304\311#\2043eb\2037\310 \304\311#\2037\311\2029b*\207" [ess-sas-save-point ess-sas-error ess-tmp-no-error-check "^ERROR [0-9]+-[0-9]+:\\|^ERROR:\\|_ERROR_=1 _N_=\\|_ERROR_=1[ ]?$\\|NOTE: MERGE statement has more than one data set with repeats\\|NOTE: Variable .* is uninitialized.\\|NOTE: SAS went to a new line when INPUT statement reached past\\|NOTE 485-185: Informat .* was not found\\|NOTE: Estimated G matrix is not positive definite.\\|NOTE: Compressing data set .* increased size by\\|NOTE: ERROR DETECTED IN ANNOTATE=\\|WARNING: Apparent symbolic reference .* not resolved.\\|WARNING: Length of character variable has already been set.\\|WARNING: Not all variables in the list \\|WARNING: RUN statement ignored due to previous errors.\\|WARNING: Values exist outside the axis range\\|WARNING: Truncated record.\\|Bus Error In Task\\|Segmentation Violation In Task" nil ess-sas-goto "log" revert search-forward-regexp t] 4 (#$ . 16777) nil]) #@47 Switch to the .lst file and revert from disk. (defalias 'ess-sas-goto-lst #[nil "\300\301\302\"\207" [ess-sas-goto "lst" revert] 3 (#$ . 17946) nil]) #@26 Switch to the .sas file. (defalias 'ess-sas-goto-sas #[(&optional revert) "\301\302\"\207" [revert ess-sas-goto "sas"] 3 (#$ . 18102) nil]) #@128 Set `ess-sas-file-path' and goto `ess-sas-shell-buffer'. If optional argument is non-nil, then set-buffer rather than switch. (defalias 'ess-sas-goto-shell #[(&optional set-buffer) "\306 \210\206 \307 \n \203\310 \310Q\202\f\311 !\2031\203* q\210\202T\312 !\210\202T\313 \210\314 !\210\315 \210 \203H \316 Qc\210\317 \210\320=\203T\321\322\323\"\210+db\207" [ess-sas-shell-buffer-remote-host temp-shell-buffer-remote-host ess-sas-shell-buffer-remote-init temp-shell-buffer-remote-init ess-sas-shell-buffer temp-shell-buffer ess-sas-file-path ess-sas-file-path-remote-host "*" get-buffer switch-to-buffer shell rename-buffer ess-sleep " " comint-send-input sh add-hook comint-output-filter-functions ess-exit-notify-sh set-buffer ess-sas-submit-method] 3 (#$ . 18250) nil]) #@45 And now for something completely different. (defalias 'ess-sas-interactive #[nil "\306\307 \210\310 \210\311 !\210\312 \210\313 \314\f\315R!\210\316 \210\317\320\211\207" [SAS-customize-alist ess-customize-alist ess-sas-shell-buffer ess-sas-submit-command ess-sas-submit-command-options ess-sas-submit-method "*iESS[SAS]*" ess-sas-goto-shell ess-add-ess-process ess-setq-vars-local inferior-ess-mode ess-eval-linewise " " " -stdio" ess-sas-goto-sas iESS nil ess-eval-visibly-p] 5 (#$ . 19049) nil]) #@42 Kill all buffers related to a .sas file. (defalias 'ess-sas-kill-buffers #[nil "\302 \210\303\304\305\306#\210\307\305!\210\303\310\305\306#\210\307\305!\210\303\305\306#\210\307\305!\210\303 \305\306#\210\307\305!\210\303\311\305\306#\210\307\305!\207" [ess-sas-suffix-1 ess-sas-suffix-2 ess-sas-file-path ess-sas-goto "log" nil t kill-buffer "lst" "sas"] 4 (#$ . 19560) nil]) #@58 Creates an MS RTF portrait file from the current buffer. (defalias 'ess-sas-rtf-portrait #[(&optional ess-tmp-font-size) "\302 \210\303\304 \305P!\210\306\307 \210eb\210\310 \311Qc\210db\210\312c\210\313 \210\314p!\207" [buffer-read-only ess-sas-rtf-font-name ess-revert-wisely set-visited-file-name buffer-name ".rtf" nil ess-rtf-replace-chars "{\\rtf1\\ansi{\\fonttbl\\f1\\fmodern " ";}\n\\margl720\\margr720\\margt720\\margb720\n{\\colortbl;\\red0\\green0\\blue0;\\red0\\green0\\blue255;\\red0\\green255\\blue255;\\red0\\green255\\blue0;\\red255\\green0\\blue255;\\red255\\green0\\blue0;\\red255\\green255\\blue0;\\red255\\green255\\blue255;\\red0\\green0\\blue128;\\red0\\green128\\blue128;\\red0\\green128\\blue0;\\red128\\green0\\blue128;\\red128\\green0\\blue0;\\red128\\green128\\blue0;\\red128\\green128\\blue128;\\red192\\green192\\blue192;}\n{\\stylesheet{\\s15\\plain\\f1\\fs16\\cf1\\cb8\\lang1024 Emacs Text;}{\\*\\cs16 \\additive\\f1\\fs16\\cf1\\cb8\\lang1024 Emacs Base Style;}}\n{\\plain\\s15{\\cs16\\cs16\\f1\\fs16\\cf1\\cb8\\lang1024{\\cs16\\f1\\fs16\\cf1\\cb8\\lang1024\n" "}}}}\n" save-buffer kill-buffer] 3 (#$ . 19945) nil]) #@40 Convert a text file to an MS RTF file. (defalias 'ess-rtf-replace-chars #[nil "eb\210\300\301\302\303#\203\304\305\302\303#\210\202eb\210\300\306\302\303#\203(\304\307\302\303#\210\202eb\210\300\310\302\303#\205<\304\311\302\303#\210\202+\207" [re-search-forward "\n" nil t replace-match "\\par\n" "\f" "\\page\n" " " "\\tab"] 4 (#$ . 21099) nil]) #@59 Creates an MS RTF landscape file from the current buffer. (defalias 'ess-sas-rtf-landscape #[(&optional ess-tmp-font-size) "\302 \210\303\304 \305P!\210\306\307 \210eb\210\310 \311Qc\210db\210\312c\210\313 \210\314p!\207" [buffer-read-only ess-sas-rtf-font-name ess-revert-wisely set-visited-file-name buffer-name ".rtf" nil ess-rtf-replace-chars "{\\rtf1\\ansi{\\fonttbl\\f1\\fmodern " ";}\n\\margl720\\margr720\\margt720\\margb720\n{\\*\\pgdsctbl\n{\\pgdsc0\\pgdscuse195\\lndscpsxn\\pgwsxn15840\\pghsxn12240\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\pgdscnxt0 Default;}}\n\\landscape\\paperh12240\\paperw15840\\margl1800\\margr1800\\margt1440\\margb1440\\sectd\\sbknone\\lndscpsxn\\pgwsxn15840\\pghsxn12240\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\ftnbj\\ftnstart1\\ftnrstcont\\ftnnar\\aenddoc\\aftnrstcont\\aftnstart1\\aftnnrlc\n{\\colortbl;\\red0\\green0\\blue0;\\red0\\green0\\blue255;\\red0\\green255\\blue255;\\red0\\green255\\blue0;\\red255\\green0\\blue255;\\red255\\green0\\blue0;\\red255\\green255\\blue0;\\red255\\green255\\blue255;\\red0\\green0\\blue128;\\red0\\green128\\blue128;\\red0\\green128\\blue0;\\red128\\green0\\blue128;\\red128\\green0\\blue0;\\red128\\green128\\blue0;\\red128\\green128\\blue128;\\red192\\green192\\blue192;}\n{\\stylesheet{\\s15\\plain\\f1\\fs16\\cf1\\cb8\\lang1024 Emacs Text;}{\\*\\cs16 \\additive\\f1\\fs16\\cf1\\cb8\\lang1024 Emacs Base Style;}}\n{\\plain\\s15{\\cs16\\cs16\\f1\\fs16\\cf1\\cb8\\lang1024{\\cs16\\f1\\fs16\\cf1\\cb8\\lang1024\n" "}}}}\n" save-buffer kill-buffer] 3 (#$ . 21462) nil]) #@62 Creates an MS RTF US landscape file from the current buffer. (defalias 'ess-sas-rtf-us-landscape #[nil "\300\301!\210\302\303\304\"\210eb\210\305y\210\306c\210\307 \210\310p!\207" [ess-sas-rtf-portrait "16" ess-sas-goto "rtf" t 3 "{\\*\\pgdsctbl\n{\\pgdsc0\\pgdscuse195\\lndscpsxn\\pgwsxn15840\\pghsxn12240\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\pgdscnxt0 Default;}}\n\\landscape\\paperh12240\\paperw15840\\margl1800\\margr1800\\margt1440\\margb1440\\sectd\\sbknone\\lndscpsxn\\pgwsxn15840\\pghsxn12240\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\ftnbj\\ftnstart1\\ftnrstcont\\ftnnar\\aenddoc\\aftnrstcont\\aftnstart1\\aftnnrlc\n" save-buffer kill-buffer] 3 (#$ . 23047) nil]) #@62 Creates an MS RTF A4 landscape file from the current buffer. (defalias 'ess-sas-rtf-a4-landscape #[nil "\300\301!\210\302\303\304\"\210eb\210\305y\210\306c\210\307 \210\310p!\207" [ess-sas-rtf-portrait "16" ess-sas-goto "rtf" t 3 "{\\*\\pgdsctbl\n{\\pgdsc0\\pgdscuse195\\lndscpsxn\\pgwsxn16837\\pghsxn11905\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\pgdscnxt0 Default;}}\n\\landscape\\paperh11905\\paperw16837\\margl1800\\margr1800\\margt1440\\margb1440\\sectd\\sbknone\\lndscpsxn\\pgwsxn16837\\pghsxn11905\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\ftnbj\\ftnstart1\\ftnrstcont\\ftnnar\\aenddoc\\aftnrstcont\\aftnstart1\\aftnnrlc\n" save-buffer kill-buffer] 3 (#$ . 23761) nil]) #@111 Save the .sas file and submit to shell using a function that depends on the value of `ess-sas-submit-method' (defalias 'ess-sas-submit #[nil "\303 \210\304 \210\305 \210\306 \210\307\267\202!\310 \n\"\207\311 \n\"\207\312 \n\"\207\312 \n\"\207" [ess-sas-submit-method ess-sas-submit-command ess-sas-submit-command-options ess-sas-file-path ess-sas-goto-sas save-buffer hack-local-variables #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (ms-dos 18 iESS 23 sh 28)) ess-sas-submit-windows ess-sas-submit-iESS ess-sas-submit-sh] 3 (#$ . 24476) nil]) #@718 iESS Submit a batch job in an inferior-ESS buffer. The buffer should (1) have telnet access and be running a shell on a remote machine or (2) be running a shell on the local machine. The user can telnet to the remote computer and then declare the *telnet-buffer* to be an inferior ESS buffer with the `ess-add-ess-process' command. When using a remote computer, the .sas file must live on the remote computer and be accessed through `ange-ftp'. When `ess-sas-submit' saves a file, it is therefore saved on the remote computer. The various functions such as `ess-sas-goto-lst' retrieve their files from the remote computer. Local copies of the .sas .lst .log and others may be made manually with `write-buffer'. (defalias 'ess-sas-submit-iESS #[(arg1 arg2) "\303\304!\210\305\306\307\310\311!\312\"!@P!\210\305 \313\n\313\314 \315\260!\207" [ess-sas-file-path arg1 arg2 ess-force-buffer-current "Process to load into: " ess-eval-linewise "cd " last split-string file-name-directory "\\(:\\|]\\)" " " buffer-name " &"] 7 (#$ . 25071)]) #@52 Write region to temporary file, and submit to SAS. (defalias 'ess-sas-submit-region #[nil "\304 \210\306\307!\210\310\311 \312 \313 \314P#\210 \212\315\307!\210\316\317!\2038\317 \2038\f\320\321O\322\230\2038\f\323\321Oc\210\324 \210\325\326\327\f!!\330\261\210\324 \210 \331 \331\n\331\313 \331\260 c\210\324 +\207" [ess-sas-submit-command ess-sas-submit-command-options arg2 arg1 ess-sas-file-path ess-sas-submit-pre-command hack-local-variables t write-region region-beginning region-end ess-sas-temp-root ".sas" ess-sas-goto-shell fboundp w32-shell-dos-semantics 1 2 ":" 0 comint-send-input "cd \"" convert-standard-filename file-name-directory "\"" " " ess-sas-submit-post-command] 9 (#$ . 26119) nil]) #@297 Unix or bash in the *shell* buffer. Multiple processing is supported on this platform. SAS may not be found in your PATH. You can alter your PATH to include SAS or you can specify the PATHNAME (PATHNAME can NOT contain spaces), i.e. let arg1 be your local equivalent of "/usr/local/sas612/sas". (defalias 'ess-sas-submit-sh #[(arg1 arg2) "\306!\307\310O \230\203+\311 \210\312\313!\210\n\314 \314\315\306!!\310\316O\314\f\314 \261 \210\317 \210\202>\320 \210\n\314 \314\315\306!!\314\f\314 \261 \210\317 \207" [ess-sas-file-path ess-kermit-prefix ess-sas-submit-pre-command arg1 arg2 ess-sas-submit-post-command file-name-nondirectory 0 1 ess-kermit-send ess-sas-goto-shell t " " file-name-sans-extension nil comint-send-input ess-sas-cd] 9 (#$ . 26843)]) #@546 Windows using MS-DOS prompt in the *shell* buffer. Multiple processing is supported on this platform. On most Windows installations, SAS will not be found in your PATH so you should alter your PATH to include SAS, i.e. SET PATH=%PATH%;C:\Program Files\SAS Or you can specify the PATHNAME directly (you must escape spaces by enclosing the string in \"'s), i.e. let `ess-sas-submit-command' be "\"C:\Program Files\SAS\sas.exe\"". Keep in mind that the maximum command line length in MS-DOS is 127 characters so altering your PATH is preferable. (defalias 'ess-sas-submit-windows #[(arg1 arg2) "\305\306!\210\307\310O\311\230\203\312\310Oc\210\313 \210\314\315\316!!\317\261\210\313 \210 \320\n\321\322\323!!\324 \320\f\261 \210\313 \207" [ess-sas-file-path ess-sas-submit-pre-command arg1 arg2 ess-sas-submit-post-command ess-sas-goto-shell t 1 2 ":" 0 comint-send-input "cd \"" convert-standard-filename file-name-directory "\"" " " " -sysin \"" file-name-sans-extension file-name-nondirectory "\" "] 9 (#$ . 27612)]) #@43 Tab to next tab-stop and set left margin. (defalias 'ess-sas-tab-to-tab-stop #[nil "\301 \210i\211\207" [left-margin tab-to-tab-stop] 2 (#$ . 28644) nil]) #@78 Return `ess-sas-file-path' sans extension with `ess-sas-temp-root' appended. (defalias 'ess-sas-temp-root #[nil "\302! P\207" [ess-sas-file-path ess-sas-temp-root file-name-sans-extension] 2 (#$ . 28806)]) #@67 Comment .log messages to create a .sas program; use C-u to strip. (defalias 'ess-sas-transcript #[(&optional strip) "\212eb\210\301\302\303\304#\205\305\203\306\202\307\304\"\210\202)\207" [strip search-forward-regexp "^\\(\\(1[ ]+The SAS System\\|\f\\|NOTE\\|WARNING\\|ERROR\\|[ ]+\\(\\(real\\|cpu\\) time\\|Licensed to\\|Engine:\\|Physical Name:\\|File Name=\\|Owner Name=\\|Group Name=\\|Access Permission=\\|File Size (bytes)=\\|Pipe command=\\|RECFM=[DFNPV],LRECL=\\|[0-9]+:[0-9]+[ /t]+[0-9]+:[0-9]+\\|[1-9][0-9]* at [0-9]+:[0-9]+[ /t]+[1-9][0-9]* at [0-9]+:[0-9]+\\)\\).*$\\|[0-9]+\\([ ]+!\\)?\\|MPRINT([_A-Z]+):\\|[ ]+\\(values at the places given by: (Line):(Column).\\|The m\\(in\\|ax\\)imum record length was [1-9][0-9]*.\\|One or more lines were truncated.\\|Each place is given by: (Number of times) at (Line):(Column).\\|[0-9][0-9]:[0-9][0-9] [MTWFS][aeioudhnrst]+day, [JFMASOND][aeiouybcghlmnprstv]+ [1-9][0-9]?, 20[0-9][0-9]\\)\\)" nil t replace-match " " "/*\\&*/"] 4 (#$ . 29019) "P"]) #@41 Toggle SAS-listing-mode for .lst files. (defalias 'ess-sas-toggle-sas-listing-mode #[(&optional force) "\302 \210\303\304\"A\305=\203\306\307\"\310\311\312!\207\313\314\"\315\311\316!\207" [auto-mode-alist buffer-read-only ess-sas-goto-lst assoc "\\.[lL][sS][tT]\\'" SAS-listing-mode delete ("\\.[lL][sS][tT]\\'" . SAS-listing-mode) nil ess-listing-minor-mode 0 append (("\\.[lL][sS][tT]\\'" . SAS-listing-mode)) t 1] 3 (#$ . 30041) nil]) #@37 Toggle SAS-log-mode for .log files. (defalias 'ess-sas-toggle-sas-log-mode #[nil "\301 \210\302\303!\210\304\305\"A\306=\203\307\310\"\202\311\312\"\301 \207" [auto-mode-alist ess-sas-goto-log kill-buffer nil assoc "\\.[lL][oO][gG]\\'" SAS-log-mode delete ("\\.[lL][oO][gG]\\'" . SAS-log-mode) append (("\\.[lL][oO][gG]\\'" . SAS-log-mode))] 3 (#$ . 30495) nil]) (byte-code "\302\303\304\305#\210\306\305\211\203, @\303N\203%\304N\204%\307\304\303N#\210 A\211\204*\310\303\304\311#\207" [prop --dolist-tail-- defvaralias ess-sas-versions-created ess-sas-created-runners nil (saved-value saved-variable-comment) put make-obsolete-variable "ESS 18.10"] 6) #@345 Generate the `M-x SASV' functions for starting other versions of SAS. See `ess-sas-versions' for strings that determine which functions are created. The local variable `ess-sas-created-runners' is used to return list of the new SAS defuns, if any, that were created. The defuns will normally be placed on the menubar upon ESS initialization. (defalias 'ess-sas-define-runners #[nil "\303\304\305\306\307\304\310\"\"\"!\311\312 \"\211)\207" [ess-sas-versions versions ess-sas-created-runners ess-uniq-list mapcar file-name-nondirectory apply nconc ess-find-exec-completions mapc #[(v) "\301\302\"\207" [v ess-define-runner "SAS"] 3]] 8 (#$ . 31178)]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias ess-sas-create-versions ess-sas-define-runners nil make-obsolete "ESS 18.10"] 4) #@224 Set TAB/RET key in `SAS-mode'. If arg is nil TAB is `sas-indent-line' and RET is `newline-and-indent'. Else TAB is `ess-sas-tab-to-tab-stop', C-TAB is `ess-sas-backward-delete-tab' and RET is `newline'. (defalias 'ess-sas-edit-keys-set #[(&optional arg) "\203\302 \303\304#\210\302 \305\306#\210\302 \307\310#\207\302 \311\312#\210\302 \307\313#\207" [arg sas-mode-local-map define-key [(control tab)] ess-sas-backward-delete-tab [return] newline " " ess-sas-tab-to-tab-stop [return] newline-and-indent sas-indent-line] 4 (#$ . 31988) nil]) #@213 Toggle TAB/RET key in `SAS-mode'. nil binds TAB to `sas-indent-line' and RET to `newline-and-indent'. Non-nil binds TAB to `ess-sas-tab-to-tab-stop', C-TAB to `ess-sas-backward-delete-tab', and RET to `newline'. (defvar ess-sas-edit-keys-toggle nil (#$ . 32559)) #@121 Toggle `ess-sas-edit-keys-toggle'. Optional arg is still accepted for backward compatibility, however, arg is ignored. (defalias 'ess-sas-edit-keys-toggle #[(&optional arg) "?\301!\207" [ess-sas-edit-keys-toggle ess-sas-edit-keys-set] 2 (#$ . 32829) nil]) #@72 Non-nil if function keys use PC-like SAS key definitions in all modes. (defvar ess-sas-global-pc-keys nil (#$ . 33095)) #@29 PC-like SAS key definitions (defalias 'ess-sas-global-pc-keys #[nil "\304\305\306\"\210\304\307\310\"\210\304\311\312\"\210\304\313\314\"\210\304\315\316\"\210\304\317\320\"\210\304\321\322\"\210\304\323\324\"\210\304\325\326\"\210\304\327\330\"\210\304\331\332\"\210\304\333\334\"\210\304\335\336\"\210\304\337\340\"\210\304\341\342\"\210\304\343\344\"\210\345\346\211\346\211\207" [ess-sas-global-pc-keys ess-sas-global-unix-keys ess-sas-local-pc-keys ess-sas-local-unix-keys global-set-key [(control f1)] ess-sas-rtf-portrait [(control f2)] ess-sas-rtf-landscape [f2] ess-revert-wisely [f3] ess-sas-goto-shell [f4] ess-sas-goto-file-1 [f5] ess-sas-goto-sas [f6] ess-sas-goto-log [(control f6)] ess-sas-append-log [f7] ess-sas-goto-lst [(control f7)] ess-sas-append-lst [f8] ess-sas-submit [(control f8)] ess-sas-submit-region [f9] ess-sas-data-view-fsview [(control f9)] ess-sas-data-view-insight [f12] ess-sas-graph-view [(control tab)] ess-sas-backward-delete-tab t nil] 4 (#$ . 33221) nil]) #@41 Unix/Mainframe-like SAS key definitions (defalias 'ess-sas-global-unix-keys #[nil "\304\305\306\"\210\304\307\310\"\210\304\311\312\"\210\304\313\314\"\210\304\315\316\"\210\304\317\320\"\210\304\321\322\"\210\304\323\324\"\210\304\325\326\"\210\304\327\330\"\210\304\331\332\"\210\304\333\334\"\210\304\335\336\"\210\304\337\340\"\210\304\341\342\"\210\304\343\344\"\210\345\346\345\211\211\207" [ess-sas-global-pc-keys ess-sas-global-unix-keys ess-sas-local-pc-keys ess-sas-local-unix-keys global-set-key [(control f1)] ess-sas-rtf-portrait [(control f2)] ess-sas-rtf-landscape [f2] ess-revert-wisely [f3] ess-sas-submit [(control f3)] ess-sas-submit-region [f4] ess-sas-goto-sas [f5] ess-sas-goto-log [(control f5)] ess-sas-append-log [f6] ess-sas-goto-lst [(control f6)] ess-sas-append-lst [f7] ess-sas-goto-file-1 [f8] ess-sas-goto-shell [f9] ess-sas-data-view-fsview [(control f9)] ess-sas-data-view-insight [f12] ess-sas-graph-view [(control tab)] ess-sas-backward-delete-tab nil t] 4 (#$ . 34228) nil]) #@30 PC-like SAS key definitions. (defalias 'ess-sas-local-pc-keys #[nil "\305\306\307#\210\305\310\311#\210\305\312\313#\210\305\314\315#\210\305\316\317#\210\305\320\321#\210\305\322\323#\210\305\324\325#\210\305\326\327#\210\305\330\331#\210\305\332\333#\210\305\334\335#\210\305\336\337#\210\305\340\341#\210\305\342\343#\210\305\344\345#\210\305\346\347#\210\305\350\351#\210\305\352\353#\210\354\211\355\354\211\207" [sas-mode-local-map ess-sas-global-pc-keys ess-sas-global-unix-keys ess-sas-local-pc-keys ess-sas-local-unix-keys define-key [(control f1)] ess-sas-rtf-portrait [(control f2)] ess-sas-rtf-landscape [f2] ess-revert-wisely [f3] ess-sas-goto-shell [f4] ess-sas-goto-file-1 [f5] ess-sas-goto-sas [f6] ess-sas-goto-log [(control f6)] ess-sas-append-log [f7] ess-sas-goto-lst [(control f7)] ess-sas-append-lst [f8] ess-sas-submit [(control f8)] ess-sas-submit-region [f9] ess-sas-data-view-fsview [(control f9)] ess-sas-data-view-insight [f10] ess-sas-toggle-sas-log-mode [(control f10)] ess-sas-toggle-sas-listing-mode [f11] ess-sas-goto-file-2 [(control f11)] ess-ebcdic-to-ascii-search-and-replace [f12] ess-sas-graph-view nil t] 5 (#$ . 35249) nil]) #@41 Unix/Mainframe-like SAS key definitions (defalias 'ess-sas-local-unix-keys #[nil "\305\306\307#\210\305\310\311#\210\305\312\313#\210\305\314\315#\210\305\316\317#\210\305\320\321#\210\305\322\323#\210\305\324\325#\210\305\326\327#\210\305\330\331#\210\305\332\333#\210\305\334\335#\210\305\336\337#\210\305\340\341#\210\305\342\343#\210\305\344\345#\210\305\346\347#\210\305\350\351#\210\305\352\353#\210\354\211\354\355\211\207" [sas-mode-local-map ess-sas-global-pc-keys ess-sas-global-unix-keys ess-sas-local-pc-keys ess-sas-local-unix-keys define-key [(control f1)] ess-sas-rtf-portrait [(control f2)] ess-sas-rtf-landscape [f2] ess-revert-wisely [f3] ess-sas-submit [(control f3)] ess-sas-submit-region [f4] ess-sas-goto-sas [f5] ess-sas-goto-log [(control f5)] ess-sas-append-log [f6] ess-sas-goto-lst [(control f6)] ess-sas-append-lst [f7] ess-sas-goto-file-1 [f8] ess-sas-goto-shell [f9] ess-sas-data-view-fsview [(control f9)] ess-sas-data-view-insight [f10] ess-sas-toggle-sas-log-mode [(control f10)] ess-sas-toggle-sas-listing-mode [f11] ess-sas-goto-file-2 [(control f11)] ess-ebcdic-to-ascii-search-and-replace [f12] ess-sas-graph-view nil t] 5 (#$ . 36444) nil]) #@346 Get a file with Kermit. WARNING: Experimental! From your *shell* buffer, start kermit and then log in to the remote machine. Open a file that starts with `ess-kermit-prefix'. From that buffer, execute this command. It will retrieve a file from the remote directory that you specify with the same name, but without the `ess-kermit-prefix'. (defalias 'ess-kermit-get #[(&optional ess-file-arg ess-dir-arg) "\203\202\n\306 \f \307\310O\230\205Q\n\203\n\202* \311\230\203*\312\313 \" \314 \210\315\n\316\317 \310\320O\321 \261\210\322 \210\312\323!c\210\322 \210\324\325 !!\210\326 *\207" [ess-file-arg ess-dir-arg ess-temp-file-remote-directory ess-temp-file ess-kermit-prefix ess-kermit-remote-directory buffer-name 0 1 "." read-string "Remote directory to transfer file from: " ess-sas-goto-shell "cd " "; " " -s " nil " -a " comint-send-input "Press Return when shell is ready: " switch-to-buffer find-buffer-visiting ess-revert-wisely ess-kermit-command] 8 (#$ . 37653) nil]) #@233 Send a file with Kermit. WARNING: Experimental! From a file that starts with `ess-kermit-prefix', execute this command. It will transfer this file to the remote directory with the same name, but without the `ess-kermit-prefix'. (defalias 'ess-kermit-send #[nil "\305\306 !\307\n\310 !\311\312O\230\205E \313\230\203\314\315 \" \316 \210\317\320\f\321\310 !\312\307O\322 \261\210\323 \210\314\324!c\210\323 \210\325\326 !!\210\327 *\207" [ess-temp-file-remote-directory ess-temp-file ess-kermit-prefix ess-kermit-remote-directory ess-kermit-command expand-file-name buffer-name nil file-name-nondirectory 0 1 "." read-string "Remote directory to transfer file to: " ess-sas-goto-shell "cd " "; " " -a " " -g " comint-send-input "Press Return when shell is ready: " switch-to-buffer find-buffer-visiting ess-revert-wisely] 8 (#$ . 38662) nil]) (provide 'ess-sas-a)