Everyone's talking about GUI, but I actually prefer good old text
interfaces. What is the Lisp solution for managing a text console? I
thought CL-Curses is what I want, but it seems outdated and uses Ncurses
instead of portable PDCurses. Is there anything else?
--
|a\o/r|,-------------.,---------- Timofei Shatrov aka Grue ------------.
| m"a ||FC AMKAR PERM|| mail: grue at mail.ru http://grue3.tripod.com |
| k || PWNZ J00 || Kingdom of Loathing: Grue3 lvl 18 Seal Clubber |
`-----'`-------------'`-------------------------------------------[4*72]
> * Timofei Shatrov <····@znvy.eh> [2006-01-03 20:28:06 +0000]:
>
> Everyone's talking about GUI, but I actually prefer good old text
> interfaces. What is the Lisp solution for managing a text console? I
> thought CL-Curses is what I want, but it seems outdated and uses Ncurses
> instead of portable PDCurses. Is there anything else?
http://clisp.cons.org/impnotes/screen.html
--
Sam Steingold (http://www.podval.org/~sds) running w2k
http://www.openvotingconsortium.org/ http://www.mideasttruth.com/
http://www.palestinefacts.org/ http://truepeace.org http://www.dhimmi.com/
In C you can make mistakes, while in C++ you can also inherit them!
On Tue, 03 Jan 2006 15:55:22 -0500, Sam Steingold <···@gnu.org> tried to
confuse everyone with this message:
>> * Timofei Shatrov <····@znvy.eh> [2006-01-03 20:28:06 +0000]:
>>
>> Everyone's talking about GUI, but I actually prefer good old text
>> interfaces. What is the Lisp solution for managing a text console? I
>> thought CL-Curses is what I want, but it seems outdated and uses Ncurses
>> instead of portable PDCurses. Is there anything else?
>
>http://clisp.cons.org/impnotes/screen.html
>
It seems there is no color support, which is a necessary feature for me.
--
|a\o/r|,-------------.,---------- Timofei Shatrov aka Grue ------------.
| m"a ||FC AMKAR PERM|| mail: grue at mail.ru http://grue3.tripod.com |
| k || PWNZ J00 || Kingdom of Loathing: Grue3 lvl 18 Seal Clubber |
`-----'`-------------'`-------------------------------------------[4*72]
····@mail.ru (Timofei Shatrov) writes:
> On Tue, 03 Jan 2006 15:55:22 -0500, Sam Steingold <···@gnu.org> tried to
> confuse everyone with this message:
>
>>> * Timofei Shatrov <····@znvy.eh> [2006-01-03 20:28:06 +0000]:
>>>
>>> Everyone's talking about GUI, but I actually prefer good old text
>>> interfaces. What is the Lisp solution for managing a text console? I
>>> thought CL-Curses is what I want, but it seems outdated and uses Ncurses
>>> instead of portable PDCurses. Is there anything else?
>>
>>http://clisp.cons.org/impnotes/screen.html
>>
>
> It seems there is no color support, which is a necessary feature for me.
I've got a ecma048 package which exports functions to generate all the
standard escape codes including color.
http://www.informatimago.com/develop/lisp/index.html
cvs -z3 -d ··················@cvs.informatimago.com:/usr/local/cvs/public/chrooted-cvs/cvs co common/makedir
cvs -z3 -d ··················@cvs.informatimago.com:/usr/local/cvs/public/chrooted-cvs/cvs co common/common-lisp
The package can generate functions with various options:
- generating 8-bit escape codes or 7-bit escape codes.
- print the output or just return it.
- put the result in a string or in a byte vector.
Example:
------------------------------------------------------------------------
#!/usr/local/bin/clisp
(load (make-pathname :name ".clisprc" :type "lisp"
:defaults (user-homedir-pathname)))
(package:load-package "COM.INFORMATIMAGO.COMMON-LISP.UTILITY")
(use-package "COM.INFORMATIMAGO.COMMON-LISP.UTILITY")
(package:load-package "COM.INFORMATIMAGO.COMMON-LISP.ECMA048")
;; The above could now be substituted by:
;; (asdf:operate 'asdf:load-op :com.informatimago.common-lisp)
;; (use-package "COM.INFORMATIMAGO.COMMON-LISP.UTILITY")
(defpackage "ECMA048" (:use))
(in-package "ECMA048")
(COM.INFORMATIMAGO.COMMON-LISP.ECMA048:generate-all-functions
:verbose common-lisp:nil
:compile common-lisp:t
:export common-lisp:t
:8-bit common-lisp:nil
:print common-lisp:t
:result-type 'common-lisp:string)
(common-lisp:in-package "COMMON-LISP-USER")
(defenum sgr-codes
"
0 normal (reset)
1 bold or increased intensity
2 faint, decreased intensity or second colour
3 italicized
4 singly underlined
5 slowly blinking (less then 150 per minute)
6 rapidly blinking (150 per minute or more)
7 negative image
8 concealed characters
9 crossed-out (characters still legible but marked as to be deleted)
10 primary (default) font
11 first alternative font
12 second alternative font
13 third alternative font
14 fourth alternative font
15 fifth alternative font
16 sixth alternative font
17 seventh alternative font
18 eighth alternative font
19 ninth alternative font
20 Fraktur (Gothic)
21 doubly underlined
22 normal colour or normal intensity (neither bold nor faint)
23 not italicized, not fraktur
24 not underlined (neither singly nor doubly)
25 steady (not blinking)
26 (reserved for proportional spacing as specified in CCITT Recommendation
T.61)
27 positive image
28 revealed characters
29 not crossed out
30 black display
31 red display
32 green display
33 yellow display
34 blue display
35 magenta display
36 cyan display
37 white display
38 (reserved for future standardization; intended for setting
character foreground colour as specified in ISO 8613-6 [CCITT
Recommendation T.416])
39 default display colour (implementation-defined)
40 black background
41 red background
42 green background
43 yellow background
44 blue background
45 magenta background
46 cyan background
47 white background
48 (reserved for future standardization; intended
for setting character background colour as specified in ISO 8613-6
[CCITT Recommendation T.416])
49 default background colour (implementation-defined)
50 (reserved for cancelling the effect of the rendering aspect
established by parameter value 26)
51 framed
52 encircled
53 overlined
54 not framed, not encircled
55 not overlined
56 (reserved for future standardization)
57 (reserved for future standardization)
58 (reserved for future standardization)
59 (reserved for future standardization)
60 ideogram underline or right side line
61 ideogram double underline or double line on the right side
62 ideogram overline or left side line
63 ideogram double overline or double line on the left side
64 ideogram stress marking
65 cancels the effect of the rendition aspects established by
parameter values 60 to 64.
"
normal
bold faint italic underline slow-blink fast-blink invert hidden
crossed-out primary-font first-font second-font third-font fourth-font
fifth-font sixth-font seventh-font eighth-font ninth-font gothic
double-underline no-bold no-italic no-underline no-blink reserved-1
no-invert no-hidden no-crossed-out black-foreground red-foreground
green-foreground yellow-foreground blue-foreground magenta-foreground
cyan-foreground white-foreground reseved-2 default-foreground
black-background red-background green-background yellow-background
blue-background magenta-background cyan-background white-background
reserved-3 default-background reserved-4 framed encircled overlined
not-framed not-verlined reserved-5 reserved-6 reserved-7 reserved-8
ideogram-underline ideogram-double-underline ideogram-overline
ideogram-double-overline ideogram-stress ideogram-cancel )
(defconstant blink slow-blink)
(ecma048:ris)
(let ((y 0)
(x 0)
bb ff)
(flet ((label (col)
(format nil "~8a"
(subseq (string (sgr-codes-label col)) 0
(position (character "-")
(string (sgr-codes-label col)))))))
(dolist (b (list WHITE-background
CYAN-background MAGENTA-background YELLOW-background
BLUE-background GREEN-background RED-background
BLACK-background))
(setf bb (label b))
(dolist (f (list WHITE-foreground
CYAN-foreground MAGENTA-foreground YELLOW-foreground
BLUE-foreground GREEN-foreground RED-foreground
BLACK-foreground))
(setf ff (label f))
(ecma048:cup y x)
(incf y)
(when (= y 16) (setf y 0 x (+ x 20)))
(ecma048:sgr b)
(ecma048:sgr f)
(format t "~A on ~A " ff bb)
(ecma048:sgr normal)))))
(let ((y 16)
(x 0)
jin jbl jun jbo)
(flet ((label (mode)
(format nil "~8a"
(subseq (string (sgr-codes-label mode)) 0
(min (length (string (sgr-codes-label mode)))
8)))))
(dolist (in (list no-invert invert))
(setf jin (label in))
(dolist (bl (list no-blink blink))
(setf jbl (label bl))
(dolist (un (list no-underline underline))
(setf jun (label un))
(dolist (bo (list no-bold bold))
(setf jbo (label bo))
(ecma048:cup y x)
(incf y)
(ecma048:sgr in)
(ecma048:sgr bl)
(ecma048:sgr un)
(ecma048:sgr bo)
(format t " ~A ~A ~A ~A " jin jbl jun jbo)
(ecma048:sgr normal))))
(setf y 16 x 40))))
(finish-output)
;;;; ansi-test.lisp -- -- ;;;;
------------------------------------------------------------------------
--
__Pascal Bourguignon__ http://www.informatimago.com/
What is this talk of 'release'? Klingons do not make software 'releases'.
Our software 'escapes' leaving a bloody trail of designers and quality
assurance people in it's wake.
silly question, will this work on windows (2k or more current)?
Pascal Bourguignon wrote:
> ····@mail.ru (Timofei Shatrov) writes:
>
> > On Tue, 03 Jan 2006 15:55:22 -0500, Sam Steingold <···@gnu.org> tried to
> > confuse everyone with this message:
> >
> >>> * Timofei Shatrov <····@znvy.eh> [2006-01-03 20:28:06 +0000]:
> >>>
> >>> Everyone's talking about GUI, but I actually prefer good old text
> >>> interfaces. What is the Lisp solution for managing a text console? I
> >>> thought CL-Curses is what I want, but it seems outdated and uses Ncurses
> >>> instead of portable PDCurses. Is there anything else?
> >>
> >>http://clisp.cons.org/impnotes/screen.html
> >>
> >
> > It seems there is no color support, which is a necessary feature for me.
>
> I've got a ecma048 package which exports functions to generate all the
> standard escape codes including color.
>
> http://www.informatimago.com/develop/lisp/index.html
>
> cvs -z3 -d ··················@cvs.informatimago.com:/usr/local/cvs/public/chrooted-cvs/cvs co common/makedir
> cvs -z3 -d ··················@cvs.informatimago.com:/usr/local/cvs/public/chrooted-cvs/cvs co common/common-lisp
>
>
> The package can generate functions with various options:
>
> - generating 8-bit escape codes or 7-bit escape codes.
> - print the output or just return it.
> - put the result in a string or in a byte vector.
>
>
>
> Example:
> ------------------------------------------------------------------------
> #!/usr/local/bin/clisp
> (load (make-pathname :name ".clisprc" :type "lisp"
> :defaults (user-homedir-pathname)))
> (package:load-package "COM.INFORMATIMAGO.COMMON-LISP.UTILITY")
> (use-package "COM.INFORMATIMAGO.COMMON-LISP.UTILITY")
> (package:load-package "COM.INFORMATIMAGO.COMMON-LISP.ECMA048")
>
> ;; The above could now be substituted by:
> ;; (asdf:operate 'asdf:load-op :com.informatimago.common-lisp)
> ;; (use-package "COM.INFORMATIMAGO.COMMON-LISP.UTILITY")
>
> (defpackage "ECMA048" (:use))
> (in-package "ECMA048")
> (COM.INFORMATIMAGO.COMMON-LISP.ECMA048:generate-all-functions
> :verbose common-lisp:nil
> :compile common-lisp:t
> :export common-lisp:t
> :8-bit common-lisp:nil
> :print common-lisp:t
> :result-type 'common-lisp:string)
> (common-lisp:in-package "COMMON-LISP-USER")
>
>
> (defenum sgr-codes
> "
> 0 normal (reset)
> 1 bold or increased intensity
> 2 faint, decreased intensity or second colour
> 3 italicized
> 4 singly underlined
> 5 slowly blinking (less then 150 per minute)
> 6 rapidly blinking (150 per minute or more)
> 7 negative image
> 8 concealed characters
> 9 crossed-out (characters still legible but marked as to be deleted)
> 10 primary (default) font
> 11 first alternative font
> 12 second alternative font
> 13 third alternative font
> 14 fourth alternative font
> 15 fifth alternative font
> 16 sixth alternative font
> 17 seventh alternative font
> 18 eighth alternative font
> 19 ninth alternative font
> 20 Fraktur (Gothic)
> 21 doubly underlined
> 22 normal colour or normal intensity (neither bold nor faint)
> 23 not italicized, not fraktur
> 24 not underlined (neither singly nor doubly)
> 25 steady (not blinking)
> 26 (reserved for proportional spacing as specified in CCITT Recommendation
> T.61)
> 27 positive image
> 28 revealed characters
> 29 not crossed out
> 30 black display
> 31 red display
> 32 green display
> 33 yellow display
> 34 blue display
> 35 magenta display
> 36 cyan display
> 37 white display
> 38 (reserved for future standardization; intended for setting
> character foreground colour as specified in ISO 8613-6 [CCITT
> Recommendation T.416])
> 39 default display colour (implementation-defined)
> 40 black background
> 41 red background
> 42 green background
> 43 yellow background
> 44 blue background
> 45 magenta background
> 46 cyan background
> 47 white background
> 48 (reserved for future standardization; intended
> for setting character background colour as specified in ISO 8613-6
> [CCITT Recommendation T.416])
> 49 default background colour (implementation-defined)
> 50 (reserved for cancelling the effect of the rendering aspect
> established by parameter value 26)
> 51 framed
> 52 encircled
> 53 overlined
> 54 not framed, not encircled
> 55 not overlined
> 56 (reserved for future standardization)
> 57 (reserved for future standardization)
> 58 (reserved for future standardization)
> 59 (reserved for future standardization)
> 60 ideogram underline or right side line
> 61 ideogram double underline or double line on the right side
> 62 ideogram overline or left side line
> 63 ideogram double overline or double line on the left side
> 64 ideogram stress marking
> 65 cancels the effect of the rendition aspects established by
> parameter values 60 to 64.
> "
> normal
> bold faint italic underline slow-blink fast-blink invert hidden
> crossed-out primary-font first-font second-font third-font fourth-font
> fifth-font sixth-font seventh-font eighth-font ninth-font gothic
> double-underline no-bold no-italic no-underline no-blink reserved-1
> no-invert no-hidden no-crossed-out black-foreground red-foreground
> green-foreground yellow-foreground blue-foreground magenta-foreground
> cyan-foreground white-foreground reseved-2 default-foreground
> black-background red-background green-background yellow-background
> blue-background magenta-background cyan-background white-background
> reserved-3 default-background reserved-4 framed encircled overlined
> not-framed not-verlined reserved-5 reserved-6 reserved-7 reserved-8
> ideogram-underline ideogram-double-underline ideogram-overline
> ideogram-double-overline ideogram-stress ideogram-cancel )
> (defconstant blink slow-blink)
>
>
> (ecma048:ris)
>
> (let ((y 0)
> (x 0)
> bb ff)
> (flet ((label (col)
> (format nil "~8a"
> (subseq (string (sgr-codes-label col)) 0
> (position (character "-")
> (string (sgr-codes-label col)))))))
> (dolist (b (list WHITE-background
> CYAN-background MAGENTA-background YELLOW-background
> BLUE-background GREEN-background RED-background
> BLACK-background))
> (setf bb (label b))
> (dolist (f (list WHITE-foreground
> CYAN-foreground MAGENTA-foreground YELLOW-foreground
> BLUE-foreground GREEN-foreground RED-foreground
> BLACK-foreground))
> (setf ff (label f))
> (ecma048:cup y x)
> (incf y)
> (when (= y 16) (setf y 0 x (+ x 20)))
> (ecma048:sgr b)
> (ecma048:sgr f)
> (format t "~A on ~A " ff bb)
> (ecma048:sgr normal)))))
>
> (let ((y 16)
> (x 0)
> jin jbl jun jbo)
> (flet ((label (mode)
> (format nil "~8a"
> (subseq (string (sgr-codes-label mode)) 0
> (min (length (string (sgr-codes-label mode)))
> 8)))))
> (dolist (in (list no-invert invert))
> (setf jin (label in))
> (dolist (bl (list no-blink blink))
> (setf jbl (label bl))
> (dolist (un (list no-underline underline))
> (setf jun (label un))
> (dolist (bo (list no-bold bold))
> (setf jbo (label bo))
> (ecma048:cup y x)
> (incf y)
> (ecma048:sgr in)
> (ecma048:sgr bl)
> (ecma048:sgr un)
> (ecma048:sgr bo)
> (format t " ~A ~A ~A ~A " jin jbl jun jbo)
> (ecma048:sgr normal))))
> (setf y 16 x 40))))
>
> (finish-output)
>
> ;;;; ansi-test.lisp -- -- ;;;;
> ------------------------------------------------------------------------
>
> --
> __Pascal Bourguignon__ http://www.informatimago.com/
>
> What is this talk of 'release'? Klingons do not make software 'releases'.
> Our software 'escapes' leaving a bloody trail of designers and quality
> assurance people in it's wake.
"yello62" <·······@yahoo.com> writes:
> silly question, will this work on windows (2k or more current)?
It's pure Common Lisp, so it should generate the code sequences from
any implementation, on any system.
Now, what you do with these code sequences is your problem^Wquestion.
Where do you send them?
I use a terminal emulator which understands and interprets a number of
these code sequences, including the color settings (namely, good old
xterm). xterm can display on X servers who run MS-Windows. And xterm
can also run on MS-Windows. So this gives a couple of existance
proofs to answer "Yes" to your question, but I don't know what you
want to do and nothing more about MS-Windows.
I named this package ECMA-048 because that's the protocol documents
that were freely available on the web. ISO still makes pay for them,
so only rich corporations can know and implement them. But note the
package nicknames include: "ISO6429"; theorically they're identical
AFAIK. So, does your "terminal" implement ECMA-048 aka ISO6429?
--
__Pascal Bourguignon__ http://www.informatimago.com/
CAUTION: The mass of this product contains the energy equivalent of
85 million tons of TNT per net ounce of weight.
exerpt from
http://kjell.haxx.se/man/man.cgi?page=Term::ANSIColor§ion=3perl
The codes generated by this module are standard terminal control codes,
complying with ECMA-48 and ISO 6429 (generally referred to as "ANSI
color" for the color codes). The non-color control codes (bold,
dark,
italic, underline, and reverse) are part of the earlier ANSI X3.64
standard for control sequences for video terminals and peripherals.
Note that not all displays are ISO 6429-compliant, or even
X3.64-com-
pliant (or are even attempting to be so). This module will not
work as
expected on displays that do not honor these escape sequences, such
as
cmd.exe, 4nt.exe, and command.com under either Windows NT or Windows
2000. They may just be ignored, or they may display as an ESC
charac-
ter followed by some apparent garbage.
Jean Delvare provided the following table of different common
terminal
emulators and their support for the various attributes and others
have
helped me flesh it out:
clear bold dark under blink reverse
conceal
------------------------------------------------------------------------
xterm yes yes no yes bold yes
yes
linux yes yes yes bold yes yes
no
rxvt yes yes no yes bold/black yes
no
dtterm yes yes yes yes reverse yes
yes
teraterm yes reverse no yes rev/red yes
no
aixterm kinda normal no yes no yes
yes
PuTTY yes color no yes no yes
no
Windows yes no no no no yes
no
Cygwin SSH yes yes no color color color
yes
Mac Terminal yes yes no yes yes yes
yes
Windows is Windows telnet, Cygwin SSH is the OpenSSH implementation
under Cygwin on Windows NT, and Mac Terminal is the Terminal
applica-
tion in Mac OS X. Where the entry is other than yes or no, that
emula-
tor displays the given attribute as something else instead. Note
that
on an aixterm, clear doesn't reset colors; you have to explicitly
set
the colors back to what you want. More entries in this table are
wel-
come.
Note that codes 3 (italic), 6 (rapid blink), and 9 (strikethrough)
are
specified in ANSI X3.64 and ECMA-048 but are not commonly supported
by
most displays and emulators and therefore aren't supported by this
mod-
ule at the present time. ECMA-048 also specifies a large number of
other attributes, including a sequence of attributes for font
changes,
Fraktur characters, double-underlining, framing, circling, and
overlin-
ing. As none of these attributes are widely supported or useful,
they
also aren't currently supported by this module.
On Wed, 04 Jan 2006 23:13:53 +0100, Pascal Bourguignon
<····@mouse-potato.com> wrote:
> "yello62" <·······@yahoo.com> writes:
>> silly question, will this work on windows (2k or more current)?
>
> It's pure Common Lisp, so it should generate the code sequences from
> any implementation, on any system.
>
> Now, what you do with these code sequences is your problem^Wquestion.
> Where do you send them?
>
> I use a terminal emulator which understands and interprets a number of
> these code sequences, including the color settings (namely, good old
> xterm). xterm can display on X servers who run MS-Windows. And xterm
> can also run on MS-Windows. So this gives a couple of existance
> proofs to answer "Yes" to your question, but I don't know what you
> want to do and nothing more about MS-Windows.
>
>
> I named this package ECMA-048 because that's the protocol documents
> that were freely available on the web. ISO still makes pay for them,
> so only rich corporations can know and implement them. But note the
> package nicknames include: "ISO6429"; theorically they're identical
> AFAIK. So, does your "terminal" implement ECMA-048 aka ISO6429?
>
>
>
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
John Thingstad <··············@chello.no> wrote:
> exerpt from
> http://kjell.haxx.se/man/man.cgi?page=Term::ANSIColor§ion=3perl
...
> Jean Delvare provided the following table of different common terminal
> emulators and their support for the various attributes and others have
> helped me flesh it out:
> clear bold dark under blink reverse conceal
> ------------------------------------------------------------------------
> xterm yes yes no yes bold yes yes
xterm implements blink (has done so for a few years).
> linux yes yes yes bold yes yes no
> rxvt yes yes no yes bold/black yes no
> dtterm yes yes yes yes reverse yes yes
> teraterm yes reverse no yes rev/red yes no
hmm - "dark" isn't mentioned in the lisp code. Perhaps you mean "dim".
> aixterm kinda normal no yes no yes yes
> PuTTY yes color no yes no yes no
> Windows yes no no no no yes no
> Cygwin SSH yes yes no color color color yes
> Mac Terminal yes yes no yes yes yes yes
Cygwin SSH is not a terminal emulator. There's a console window terminal
emulator within which one can run telnet or ssh.
PuTTY does bold.
Tera Term uses color (blue) for bold.
The comments about "clear" don't fit dtterm (it doesn't implement the same
color model as xterm, etc).
--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
"John Thingstad" <··············@chello.no> writes:
> exerpt from
> http://kjell.haxx.se/man/man.cgi?page=Term::ANSIColor§ion=3perl
> Jean Delvare provided the following table of different common
> terminal
> emulators and their support for the various attributes and
> others have
> helped me flesh it out:
On Linux (and perhaps other Unices) the proper way of finding out
the capabilities of a terminal and their escape sequences is terminfo.
An interface to terminfo is provided by ncurses (man curs_terminfo).
It's usually better to use ncurses for the whole screen management
instead of emitting escape sequences directly.
--
__("< Marcin Kowalczyk
\__/ ······@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
at this point, i don't have any specific application in mind. i'm
thinking long-term. i believe most of the terminal emulators i've seen
in the hospitals i've worked in can or have implemented those
protocols. as i understand what you're implying, the application
itself can reside on any type of host system as long as the terminal
connecting to the application can communicate with that protocol, it
doesn't matter what system is connecting...
Timofei Shatrov wrote:
> Everyone's talking about GUI, but I actually prefer good old text
> interfaces. What is the Lisp solution for managing a text console? I
> thought CL-Curses is what I want, but it seems outdated and uses Ncurses
> instead of portable PDCurses. Is there anything else?
Any VT100/ANSI terminal programmer will immediately understand what you
are trying to achieve and will have useful thoughts about implementation
details.
But any Lisp programmer will immediately understand that Emacs is the
proper, lisp-programmable solution to your problem. You program can
be written in any language or implementation you like, but Emacs can be
devised to provide bulletproof interaction real estate for any kind of
text, with fonts, I18N, and colorization. You may beed to build an
entire customer command table (to keep users from getting into trouble)
but don't disregard this potential solution.
On Sun, 08 Jan 2006 06:05:37 +0100, Steven M. Haflich <···@alum.mit.edu>
wrote:
> Timofei Shatrov wrote:
>> Everyone's talking about GUI, but I actually prefer good old text
>> interfaces. What is the Lisp solution for managing a text console? I
>> thought CL-Curses is what I want, but it seems outdated and uses Ncurses
>> instead of portable PDCurses. Is there anything else?
>
> Any VT100/ANSI terminal programmer will immediately understand what you
> are trying to achieve and will have useful thoughts about implementation
> details.
>
> But any Lisp programmer will immediately understand that Emacs is the
> proper, lisp-programmable solution to your problem. You program can
> be written in any language or implementation you like, but Emacs can be
> devised to provide bulletproof interaction real estate for any kind of
> text, with fonts, I18N, and colorization. You may beed to build an
> entire customer command table (to keep users from getting into trouble)
> but don't disregard this potential solution.
This is true and it has in fact been done.
I believe a Norwgian company called NetFonds (www.NetFonds.no) sells
a stock exchange program written in emacs elisp and Lisp.
But Espen Vestre would be the one to ask.
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
"John Thingstad" <··············@chello.no> writes:
> > But any Lisp programmer will immediately understand that Emacs is the
> > proper, lisp-programmable solution to your problem. You program can
> > be written in any language or implementation you like, but Emacs can be
> > devised to provide bulletproof interaction real estate for any kind of
> > text, with fonts, I18N, and colorization. You may beed to build an
> > entire customer command table (to keep users from getting into trouble)
> > but don't disregard this potential solution.
>
> This is true and it has in fact been done.
> I believe a Norwgian company called NetFonds (www.NetFonds.no) sells
> a stock exchange program written in emacs elisp and Lisp.
> But Espen Vestre would be the one to ask.
Well, we don't sell any programs, we sell services (internet stock
trading), but otherwise you're right. We used to have a lot of stuff
running in elisp, but nowadays it's mainly an internal application
(but an important one). The UI is elisp, but a lot of the backend is
done in CL.
--
(espen)
see, this is what i'm talking about. i've been working with emacs for
a little while (one or two years) and i'm thinking to myself that this
has to be an environment that can be used to provide a user interface
that can be a front-end to virtually anything you can think of. i
haven't figured out how to do it yet, although i'm closer today than i
was six months ago or one year ago. i've seen too many customizations
that provide cool tools, i.e., the widget stuff. i have to believe
that that can provide a nice base for a user interface. one day my
knowledge of how to do will catch up with my ideas of what to do...
"yello62" <·······@yahoo.com> writes:
> was six months ago or one year ago. i've seen too many customizations
> that provide cool tools, i.e., the widget stuff. i have to believe
> that that can provide a nice base for a user interface. one day my
> knowledge of how to do will catch up with my ideas of what to do...
It's more fun to program a common-lisp based editor, though.
About the first lisp program I made of any use to anyone else than
myself, was an extension of FRED (Fred Resembles Emacs Deliberately)
that I made around 1990. MCL was Object Lisp back then, which was
great fun to work with.
Hmm.. I actually still have that code - an excerpt:
(defobject *punch* *fred-window*)
(defobfun (exist *punch*)(init-list)
(have 'my-punch-info)
(have 'pcolumn)
(have 'pline)
(usual-exist init-list))
This code defined a subclass/subobject *punch* (classes and objects were
basically the same) of fred, and the exist-function added slots with
"have".
Looks very strange now, but I loved it 15 years ago :-)
--
(espen)
"Steven M. Haflich" <···@alum.mit.edu> writes:
> But any Lisp programmer will immediately understand that Emacs is the
> proper, lisp-programmable solution to your problem. You program can
> be written in any language or implementation you like, but Emacs can be
> devised to provide bulletproof interaction real estate for any kind of
> text, with fonts, I18N, and colorization.
I disagree. Emacs-21.4a, the latest release, has poor support for
Unicode (e.g. doesn't show Cyrillic in UTF-8, doesn't handle combining
accents), and doesn't support modern font technology (fontconfig /
FreeType / Pango). It uses the old X11 technology, which doesn't
support antialiasing nor using system-wide configuration of font
substitution.
A text terminal is in some respects worse (doesn't support
proportional fonts nor inline graphics), but in others better
(uses modern fonts and has better Unicode support).
--
__("< Marcin Kowalczyk
\__/ ······@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
On 9351 day of my life Marcin Kowalczyk wrote:
>> ... but Emacs can be devised to provide bulletproof interaction
>> real estate for any kind of text, with fonts, I18N, and
>> colorization.
>
> I disagree. Emacs-21.4a, the latest release, has poor support for
> Unicode (e.g. doesn't show Cyrillic in UTF-8, doesn't handle combining
> accents), and doesn't support modern font technology (fontconfig /
> FreeType / Pango). It uses the old X11 technology, which doesn't
> support antialiasing nor using system-wide configuration of font
> substitution.
AFAIK, most of it is fixed in CVS version (that will be Emacs 22).
--
Ivan Boldyrev
XML -- new language of ML family.