(load "amiga-mouse")
(load "amiga-menu")
(global-set-key "\C-\\A" 'previous-line)
(global-set-key "\C-\\B" 'next-line)
(global-set-key "\C-\\D" 'backward-char)
(global-set-key "\C-\\C" 'forward-char)
(global-set-key "\C-\\?~" 'info)
(global-set-key "\C-\\T" 'scroll-down)
(global-set-key "\C-\\S" 'scroll-up)
(global-set-key "\C-\\ @" 'forward-word)
(global-set-key "\C-\\ A" 'backward-word)
(global-set-key "\C-\\\M-A" 'beginning-of-buffer)
(global-set-key "\C-\\\M-B" 'end-of-buffer)
(global-set-key "\C-\\\M-D" 'beginning-of-line)
(global-set-key "\C-\\\M-C" 'end-of-line)
(global-set-key "\C-\\\M- \M-@" 'forward-sexp)
(global-set-key "\C-\\\M- \M-A" 'backward-sexp)

(defun scroll-down-1 ()
  "Move up one line on screen"
  (interactive)
  (scroll-down 1))

(defun scroll-up-1 ()
  "Move down one line on screen"
  (interactive)
  (scroll-up 1))

(global-set-key "\C-\\\M-T" 'scroll-down-1)
(global-set-key "\C-\\\M-S" 'scroll-up-1)

;; ARexx stuff

(global-set-key "\C-\\X" 'amiga-arexx-process)
(setq amiga-arexx-processing nil)

(defun amiga-arexx-process ()
  (interactive)
  (if (not amiga-arexx-processing)
      (progn
	(setq amiga-arexx-processing t)
	(let (arexxcmd)
	  (while (setq arexxcmd (amiga-arexx-get-command))
	    (let ((rc 0) result)
	      (condition-case err
		  (let ((expr (car (read-from-string arexxcmd))))
		    (setq result (prin1-to-string (eval expr))))
		(error (progn
			 (setq rc 20)
			 (setq result (prin1-to-string err)))))
	      (amiga-arexx-reply rc result))))
	(setq amiga-arexx-processing nil))))

(defun amiga-arexx-wait-for-commands ()
  "Waits for all pending ARexx commands to complete.
Also processes any pending ARexx requests during this interval."
  (amiga-arexx-process)
  (while (> (amiga-arexx-pending-commands) 0)
    (amiga-arexx-wait)
    (amiga-arexx-process)))

(defun amiga-arexx-do-command (str as-file)
  "Sends ARexx command str (like amiga-arexx-send-command) but waits
for all pending commands to complete (including this one)."
  (interactive "sARexx command: 
P")
  (amiga-arexx-send-command str as-file)
  (amiga-arexx-wait-for-commands))

(setq amiga-arexx-initialized t) ;; ARexx commands can now be processed.

(setq completion-ignore-case t)
;; Default is no numbered version on Amiga, because directory searches are too
;; slow.
(setq version-control 'never) 
