~ubuntu-branches/ubuntu/raring/ess/raring-proposed

« back to all changes in this revision

Viewing changes to etc/other/S-spread/sprd-int.el

  • Committer: Package Import Robot
  • Author(s): Dirk Eddelbuettel
  • Date: 2012-05-09 08:00:38 UTC
  • mfrom: (1.2.23)
  • Revision ID: package-import@ubuntu.com-20120509080038-7an3nhbtgaj02a17
Tags: 12.04-1-1
New upstream patch version released today

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
 
28
28
(defun emacs-rc nil "" (interactive)
29
29
  (emacs-cell "1")
30
 
)
 
30
  )
31
31
 
32
32
(defun emacs-macro nil "" (interactive)
33
33
  (emacs-cell "2")
34
 
)
 
34
  )
35
35
 
36
36
(defun emacs-macro-control-text nil "" (interactive)
37
37
  (emacs-cell "4")
38
 
)
 
38
  )
39
39
 
40
40
(defun emacs-macro-print-text nil "" (interactive)
41
41
  (emacs-cell "5")
42
 
)
 
42
  )
43
43
 
44
44
(defun emacs-cell (result-type) "" (interactive)
45
 
 (setq spread-name (buffer-name))
46
 
 (setq r (count-lines 1 (point)))
47
 
 (setq c (current-column))
48
 
 (set-buffer S-buffer)
49
 
 (spread-insert
50
 
  (format "emacs.cell('%s', %s, %s, %s)"
51
 
          spread-name r c result-type 
 
45
  (setq spread-name (buffer-name))
 
46
  (setq r (count-lines 1 (point)))
 
47
  (setq c (current-column))
 
48
  (set-buffer S-buffer)
 
49
  (spread-insert
 
50
   (format "emacs.cell('%s', %s, %s, %s)"
 
51
           spread-name r c result-type
 
52
           )
 
53
   )
 
54
  (save-excursion
 
55
    (set-buffer "*command*")
 
56
    (revert-t-t)
 
57
    (goto-char (point-min))
 
58
    (setq beg (point)) (end-of-line)
 
59
    (if (equal result-type "4")
 
60
        (progn
 
61
          (setq command (buffer-substring beg (point)))
 
62
          (set-buffer S-buffer)
 
63
          (spread-insert command)
 
64
          )
 
65
      (setq command (read-string "> " (buffer-substring beg (point))))
 
66
      (set-buffer S-buffer)
 
67
      (spread-insert command)
 
68
      (spread-insert "invisible(assign(.Active, x))")
 
69
      (spread-print-find spread-name nil)
 
70
      (goto-line r)(forward-char c)
 
71
      ))
52
72
  )
53
 
 )
54
 
 (save-excursion
55
 
   (set-buffer "*command*")
56
 
   (revert-t-t)
57
 
   (goto-char (point-min))
58
 
   (setq beg (point)) (end-of-line)
59
 
   (if (equal result-type "4")
60
 
       (progn
61
 
         (setq command (buffer-substring beg (point)))
62
 
         (set-buffer S-buffer)
63
 
         (spread-insert command)
64
 
       ) 
65
 
     (setq command (read-string "> " (buffer-substring beg (point))))
66
 
     (set-buffer S-buffer)
67
 
     (spread-insert command)
68
 
     (spread-insert "invisible(assign(.Active, x))")
69
 
     (spread-print-find spread-name nil)
70
 
     (goto-line r)(forward-char c)
71
 
 ))
72
 
)
73
73
 
74
74
(defun spread-insert (spread-command) "" (interactive)
75
75
  (goto-char (point-max))
76
76
  (insert spread-command)
77
77
  (comint-send-input)
78
78
  (accept-process-output spread-process)
79
 
)
 
79
  )
80
80
 
81
81
(defun revert-t-t nil "revert-buffer with no questions asked"
82
82
  (interactive)
83
83
  (revert-buffer t t)
84
 
)
 
84
  )
85
85
 
86
86
(defun revert-t-t-read-only nil "revert-buffer, no questions, read-only"
87
87
  (interactive)
88
88
  (revert-buffer t t)
89
89
  (setq buffer-read-only t)
90
 
)
 
90
  )
91
91
 
92
92
(define-key global-map "\C-cv" 'revert-t-t)
93
93
 
104
104
 
105
105
  (define-key spread-mode-map [mouse-2] 'spread-mouse-print-find-emacs)
106
106
  (define-key spread-mode-map [mouse-3] 'spread-mouse-rc)
107
 
;;  (define-key spread-mode-map [double-mouse-1] 'spread-mouse-rc) ;doesn't work
 
107
  ;;  (define-key spread-mode-map [double-mouse-1] 'spread-mouse-rc) ;doesn't work
108
108
 
109
109
  (define-key spread-mode-map [menu-bar spread]
110
110
    (cons "Spread" (make-sparse-keymap "Spread")))
111
 
;  (define-key spread-mode-map [menu-bar spread spread-macro]
112
 
;    '("macro" . spread-macro))
 
111
                                        ;  (define-key spread-mode-map [menu-bar spread spread-macro]
 
112
                                        ;    '("macro" . spread-macro))
113
113
  (define-key spread-mode-map [menu-bar spread spread-before]
114
114
    '("before" . spread-before))
115
115
  (define-key spread-mode-map [menu-bar spread spread-after]
118
118
    (cons "Macro" (make-sparse-keymap "sprdtwo")))
119
119
  (define-key spread-mode-map [menu-bar spread spread-macro display]
120
120
    '("after" . spread-display))
121
 
;  (define-key spread-mode-map [mouse-2] 'emacs-menu-print-find-ww)
122
 
)
 
121
                                        ;  (define-key spread-mode-map [mouse-2] 'emacs-menu-print-find-ww)
 
122
  )
123
123
 
124
124
(defun spread-mouse-rc (event) "move point then enter"
125
125
  (interactive "e")
126
126
  (mouse-set-point event)
127
127
  (emacs-rc)
128
 
)
 
128
  )
129
129
 
130
130
(defun spread-mouse-print-find-emacs (event) "move point then find file"
131
131
  (interactive "e")
132
132
  (mouse-set-point event)
133
133
  (emacs-print-find-emacs)
134
 
)
 
134
  )
135
135
 
136
136
(defun spread-mode () "Major mode for spreadsheets.\\{spread-mode-map}"
137
137
  (interactive)
143
143
  (setq major-mode 'spread-mode)
144
144
  (if (equal (buffer-name) ".Registry") (spread-highlight-macro))
145
145
  (setq buffer-read-only t)
146
 
)
 
146
  )
147
147
 
148
148
 
149
149
;; from dired.el L547
150
 
;         (put-text-property (point)
151
 
;                            (save-excursion
152
 
;                              (dired-move-to-end-of-filename)
153
 
;                              (point))
154
 
;                            'mouse-face 'highlight)
155
 
;
 
150
                                        ;         (put-text-property (point)
 
151
                                        ;                            (save-excursion
 
152
                                        ;                              (dired-move-to-end-of-filename)
 
153
                                        ;                              (point))
 
154
                                        ;                            'mouse-face 'highlight)
 
155
                                        ;
156
156
;; (put-text-property (point) (mark) 'mouse-face 'highlight)
157
157
 
158
158
 
159
159
(defun spread-highlight-macro nil
160
 
 "highlight spread.frame names for mouse access"
161
 
 (interactive)
162
 
 (save-excursion
163
 
   (goto-char (point-min))
164
 
   (search-forward "**macro**")(forward-char)
165
 
   
166
 
   (toggle-read-only -1)
167
 
   (while (progn
168
 
            (setq beg (point))(end-of-line)
169
 
            (not (= beg (point)))
170
 
           )
171
 
     (put-text-property beg (1-(point)) 'mouse-face 'highlight)
172
 
     (forward-char)
173
 
   )
174
 
   (toggle-read-only 1)
175
 
 )
176
 
 (save-buffer)
177
 
)
 
160
  "highlight spread.frame names for mouse access"
 
161
  (interactive)
 
162
  (save-excursion
 
163
    (goto-char (point-min))
 
164
    (search-forward "**macro**")(forward-char)
 
165
 
 
166
    (toggle-read-only -1)
 
167
    (while (progn
 
168
             (setq beg (point))(end-of-line)
 
169
             (not (= beg (point)))
 
170
             )
 
171
      (put-text-property beg (1-(point)) 'mouse-face 'highlight)
 
172
      (forward-char)
 
173
      )
 
174
    (toggle-read-only 1)
 
175
    )
 
176
  (save-buffer)
 
177
  )
178
178
 
179
179
(defun emacs-print-find-emacs nil "" (interactive)
180
180
  (beginning-of-line)
181
181
  (setq beg (point)) (end-of-line) (backward-char)
182
182
  (setq spread-name (buffer-substring beg (point)))
183
183
  (spread-print-find spread-name nil)
184
 
)
185
 
 
186
 
 
187
 
 
188
 
 
189
 
(defun find-spread-frame-directory nil 
190
 
"Locate directory in which spread.frame functions are stored."
 
184
  )
 
185
 
 
186
 
 
187
 
 
188
 
 
189
(defun find-spread-frame-directory nil
 
190
  "Locate directory in which spread.frame functions are stored."
191
191
  (list-command-history)
192
192
  (set-buffer "*Command History*")
193
193
  (goto-char (point-min))
196
196
  (end-of-line)(search-backward "/")
197
197
  (goto-char (match-end 0))
198
198
  (setq spread-frame-directory
199
 
        (expand-file-name (buffer-substring beg (point))))
200
 
)
 
199
        (expand-file-name (buffer-substring beg (point))))
 
200
  )
201
201
 
202
202
(defun inferior-spread-mode ()
203
 
"Major mode for running spread.frames under S/Splus."
 
203
  "Major mode for running spread.frames under S/Splus."
204
204
  (comint-run S-program)
205
205
  (setq comint-prompt-regexp shell-prompt-pattern)
206
206
  (setq major-mode 'inferior-spread-mode)
209
209
  (setq spread-process (get-buffer-process (current-buffer)))
210
210
  (set-process-filter spread-process 'comint-output-filter)
211
211
  (set-variable 'comint-output-filter-functions
212
 
    '(spread-output-filter
213
 
      comint-postoutput-scroll-to-bottom)
214
 
    )
 
212
                '(spread-output-filter
 
213
                  comint-postoutput-scroll-to-bottom)
 
214
                )
215
215
  (set-variable 'comint-scroll-to-bottom-on-output "this")
216
216
  (set-variable 'comint-scroll-show-maximum-output t)
217
 
  (if (not(file-writable-p ".Data/.Audit")) 
 
217
  (if (not(file-writable-p ".Data/.Audit"))
218
218
      (accept-process-output spread-process))
219
 
  (accept-process-output spread-process) 
220
 
)
 
219
  (accept-process-output spread-process)
 
220
  )
221
221
 
222
222
 
223
223
(defun spread-output-filter (str)
224
 
"detect errors in S output"
 
224
  "detect errors in S output"
225
225
  (if (or
226
226
       (string-match "Dumped" str)
227
227
       (string-match "Error" str)
228
 
      )
 
228
       )
229
229
      (progn
230
 
        (switch-to-buffer-other-window S-buffer)
231
 
        (comint-show-maximum-output)
232
 
        (set-variable 'quit-flag t); beeps and writes "quit" in the message area
233
 
      )
 
230
        (switch-to-buffer-other-window S-buffer)
 
231
        (comint-show-maximum-output)
 
232
        (set-variable 'quit-flag t); beeps and writes "quit" in the message area
 
233
        )
 
234
    )
234
235
  )
235
 
)
236
 
 
237
 
 
238
 
 
239
 
 
240
 
;(put 'spread-region 'menu-enable 'mark-active)
241
 
;(put 'spread-validate-region 'menu-enable 'mark-active)
242
 
;(put 'spread-print 'menu-enable '(stringp spread-print-file))
243
 
;(put 'spread-alt-print 'menu-enable '(stringp spread-print-file))
244
 
;(put 'spread-view 'menu-enable '(stringp spread-print-file))
245
 
;(put 'spread-recenter-output-buffer 'menu-enable '(get-buffer "*spread-shell*"))
246
 
;(put 'spread-kill-job 'menu-enable '(spread-shell-running))
 
236
 
 
237
 
 
238
 
 
239
 
 
240
                                        ;(put 'spread-region 'menu-enable 'mark-active)
 
241
                                        ;(put 'spread-validate-region 'menu-enable 'mark-active)
 
242
                                        ;(put 'spread-print 'menu-enable '(stringp spread-print-file))
 
243
                                        ;(put 'spread-alt-print 'menu-enable '(stringp spread-print-file))
 
244
                                        ;(put 'spread-view 'menu-enable '(stringp spread-print-file))
 
245
                                        ;(put 'spread-recenter-output-buffer 'menu-enable '(get-buffer "*spread-shell*"))
 
246
                                        ;(put 'spread-kill-job 'menu-enable '(spread-shell-running))
247
247
 
248
248
 
249
249
 
250
250
(defun emacs-menu-print-find (spread-name) "" (interactive)
251
251
  (spread-print-find spread-name nil)
252
 
)
 
252
  )
253
253
 
254
254
(defun spread-print-find (spread-name update-Registry)
255
255
  "Place SPREAD-NAME in foreground of S-buffer (*S* or *Splus*),
260
260
  (set-buffer S-buffer)
261
261
  (spread-insert
262
262
   (format "print.find.emacs('%s', update.Registry=%s)"
263
 
    spread-name (if update-Registry "T" "F")))
 
263
           spread-name (if update-Registry "T" "F")))
264
264
  (if update-Registry
265
265
      (save-excursion (spread-find-file ".Registry")))
266
266
  (spread-print-sprds)
267
267
  (switch-to-buffer spread-name)
268
 
)
 
268
  )
269
269
 
270
270
(defun spread-print-sprds () "Display in buffers all views of spread.frame"
271
 
 (interactive)
272
 
 (save-excursion
273
 
   (set-buffer "*command*")
274
 
   (revert-t-t)
275
 
   (goto-char (point-min))
 
271
  (interactive)
 
272
  (save-excursion
 
273
    (set-buffer "*command*")
 
274
    (revert-t-t)
 
275
    (goto-char (point-min))
276
276
 
277
 
   (while (< (point) (point-max))
278
 
     (set-buffer "*command*")
279
 
     (setq beg (point)) (end-of-line)
280
 
     (setq spread-name-i (buffer-substring beg (point)))
281
 
     (save-excursion (spread-find-file spread-name-i))
282
 
     (forward-line))) 
283
 
)
 
277
    (while (< (point) (point-max))
 
278
      (set-buffer "*command*")
 
279
      (setq beg (point)) (end-of-line)
 
280
      (setq spread-name-i (buffer-substring beg (point)))
 
281
      (save-excursion (spread-find-file spread-name-i))
 
282
      (forward-line)))
 
283
  )
284
284
 
285
285
(defun spread-find-file (spread-name) "Display one view of spread.frame"
286
286
  (interactive)
289
289
      (revert-t-t-read-only)
290
290
    (kill-buffer spread-name)
291
291
    (find-file (concat spread-directory "/" spread-name))
292
 
  )
 
292
    )
293
293
  (spread-mode)
294
 
)
 
294
  )
295
295
 
296
296
(define-key spread-mode-map [menu-bar spread ww]
297
297
  '("ww" . emacs-menu-print-find-ww))
313
313
  (setq spread-home-directory (dired-current-directory))
314
314
  (find-spread-frame-directory)
315
315
  (kill-buffer "*Command History*")
316
 
  (if (not spread-directory-p) 
 
316
  (if (not spread-directory-p)
317
317
      (progn (make-directory spread-directory)
318
 
             (setq spread-directory-p t)))
 
318
             (setq spread-directory-p t)))
319
319
  (setq S-program (read-string "Splus or S? " "Splus"))
320
320
  (setq S-buffer (concat "*" S-program "*"))
321
321
  (if (not (get-buffer S-buffer))
322
 
        (get-buffer-create S-buffer))
 
322
      (get-buffer-create S-buffer))
323
323
  (if (get-buffer-process S-buffer) (set-variable 'quit-flag t))
324
324
  (set-buffer S-buffer)
325
325
  (cd spread-home-directory)
326
326
  (inferior-spread-mode)
327
327
  (spread-insert
328
328
   (format "attach('%s.Data')" spread-frame-directory))
329
 
  (spread-insert 
 
329
  (spread-insert
330
330
   (format "emacs.start('%s')" spread-directory))
331
331
  (find-file spread-command-file)
332
332
  (spread-find-file ".Registry")
333
 
)
 
333
  )
334
334
 
335
335
;; start it up
336
336
(spread-start)