From: Timofei Shatrov
Subject: Text console
Date: 
Message-ID: <43badce7.7632238@news.readfreenews.net>
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]

From: Sam Steingold
Subject: Re: Text console
Date: 
Message-ID: <u3bk5f2v9.fsf@gnu.org>
> * 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!
From: Timofei Shatrov
Subject: Re: Text console
Date: 
Message-ID: <43bb9267.9767946@news.readfreenews.net>
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]
From: Pascal Bourguignon
Subject: Re: Text console
Date: 
Message-ID: <873bk4gp1b.fsf@thalassa.informatimago.com>
····@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.
From: yello62
Subject: Re: Text console
Date: 
Message-ID: <1136411147.613245.149560@f14g2000cwb.googlegroups.com>
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.
From: Pascal Bourguignon
Subject: Re: Text console
Date: 
Message-ID: <87bqyrfxpa.fsf@thalassa.informatimago.com>
"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.
From: John Thingstad
Subject: Re: Text console
Date: 
Message-ID: <op.s2vxeuakpqzri1@mjolner.upc.no>
exerpt from  
http://kjell.haxx.se/man/man.cgi?page=Term::ANSIColor&section=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/
From: Thomas Dickey
Subject: Re: Text console
Date: 
Message-ID: <11rq0pudeqrsa6@corp.supernews.com>
John Thingstad <··············@chello.no> wrote:
> exerpt from  
> http://kjell.haxx.se/man/man.cgi?page=Term::ANSIColor&section=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
From: Marcin 'Qrczak' Kowalczyk
Subject: Re: Text console
Date: 
Message-ID: <87vewqhpq1.fsf@qrnik.zagroda>
"John Thingstad" <··············@chello.no> writes:

> exerpt from
> http://kjell.haxx.se/man/man.cgi?page=Term::ANSIColor&section=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/
From: yello62
Subject: Re: Text console
Date: 
Message-ID: <1136471800.840429.230990@g47g2000cwa.googlegroups.com>
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...
From: Steven M. Haflich
Subject: Re: Text console
Date: 
Message-ID: <B41wf.46490$BZ5.39085@newssvr13.news.prodigy.com>
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.
From: John Thingstad
Subject: Re: Text console
Date: 
Message-ID: <op.s219u4lkpqzri1@mjolner.upc.no>
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/
From: Espen Vestre
Subject: Re: Text console
Date: 
Message-ID: <m1d5j1oiyu.fsf@mordac.netfonds.no>
"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)
From: yello62
Subject: Re: Text console
Date: 
Message-ID: <1136836166.907590.301440@o13g2000cwo.googlegroups.com>
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...
From: Espen Vestre
Subject: Re: Text console
Date: 
Message-ID: <m1ek3ekhwg.fsf@mordac.netfonds.no>
"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)
From: Marcin 'Qrczak' Kowalczyk
Subject: Re: Text console
Date: 
Message-ID: <87r77ehpas.fsf@qrnik.zagroda>
"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/
From: Ivan Boldyrev
Subject: Re: Text console
Date: 
Message-ID: <ls8h93-nnv.ln1@ibhome.cgitftp.uiggm.nsc.ru>
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.