Ive defined inferior-apl-mode by copying from cmu-scheme like this:
(define-derived-mode inferior-apl-mode comint-mode "Inferior APL" ....
and then removing most of the stuff to keep it still working.
The current version at
http://www.emacswiki.org/emacs/inferior-apl.elis a still further cleaned up and cut-down version.
Of course the mode-ly stuff should be cleaned up -- I dont understand the scoping rules for buffer-local variables.
I think however that there are more immediate questions before that.
The code was up there on the wiki and working as best as I knew until someone informed me that it was not. The immediate hack I found was that starting emacs with
LANG=C makes it again work. Evidently when the OS moved from defaulting to latin-1 to utf-8 this broke.
Trying to make an 'inside-emacs' version of the same hack I discovered that the following does the trick of removing the need for LANG=C.
(setq coding-system-for-write 'iso-latin-1)
(setq coding-system-for-read 'iso-latin-1)
Obviously this is not a proper solution.
Firstly these variables should not be globally assigned. Whats the best way of scoping these assignments or should some other variables be used I am not sure.
The second point is that iso-latin-1 just works by saying so-to-speak "Not-UTF" but it is obviously wrong.
So in short: How do I say "latinish" without saying latin-1. And where (scope) to say it?
Perhaps the best solution would be to define a new Aplus charset.
The tables are already there in Markus code. Maybe just some tying some ends together required? Any pointers/docs on how one goes about converting a restricted-charset-to-unicode data-table into an emacs charset?
Thanks
Rusi