468,512 Members | 1,413 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,512 developers. It's quick & easy.

Screen Editing

I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.

Aug 17 '06 #1
51 3498
someone <ra************@gmail.comwrote:
I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.
Not portably, since a standard-conformant implementation need not
involve anything resembling a "screen". There are a number of choices
available depending on your needs and platform, but none of them are
topical here.

--
C. Benson Manica | I *should* know what I'm talking about - if I
cbmanica(at)gmail.com | don't, I need to know. Flames welcome.
Aug 17 '06 #2
"someone" <ra************@gmail.comwrites:
I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.
There is no portable way to do this.

The comp.lang.c FAQ is at <http://www.c-faq.com/>. You have asked
question 19.4.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Aug 17 '06 #3
printf("\033[2J"); /* clear screen */
printf("\033[%d;%dH", 10, 20); /* move cursor (row 10, col 20) */
printf("Hello, ");
printf("\033[7mworld\033[0m!"); /* inverse video */

I tried upper commands. Seems does not work proper as the explanations.

printf("\033[2J"); display"<-2j"
...........
could anyone tell me his results?
------------------------------------------------------
"Keith Thompson" <ks***@mib.org??????:ln************@nuthaus.mib.or g...
"someone" <ra************@gmail.comwrites:
>I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.

There is no portable way to do this.

The comp.lang.c FAQ is at <http://www.c-faq.com/>. You have asked
question 19.4.

--
Keith Thompson (The_Other_Keith) ks***@mib.org
<http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*>
<http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.

Aug 17 '06 #4
Chen Shusheng wrote:
printf("\033[2J"); /* clear screen */
printf("\033[%d;%dH", 10, 20); /* move cursor (row 10, col 20) */
printf("Hello, ");
printf("\033[7mworld\033[0m!"); /* inverse video */
flush the output, stdout might be buffered.
I tried upper commands. Seems does not work proper as the explanations.

printf("\033[2J"); display"<-2j"
..........
could anyone tell me his results?
Perhaps your output device doesn't understand these ansi escape
codes, read its documentation.

Aug 17 '06 #5

someone wrote:
I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.
There is no "C" way to do this, as C precedes most CRT terminals,

Even the few that existed back then cost about $3 to $15 THOUSAND
dollars each, and each had its own quirky control sequence for clearing
the screen. The first one I ever saw was in 1969, at a trade show,
made by Univac, and cost $15,000, retail.

and it's not clear terminal control falls under the baliwick of the C
language or th standard C libraries..
The most portable way is dorky, but works most every place I can think
of:
for( i=1; i <= 66 + 24 /* for those TALL full page displays,plus
lagniappe */; i++ )
puts( "\n" );
If your intended terminal has some alleged "ANSI" control code
capability, there's something gross, like puts( "\033;2J" ) that does
the trick, google for "termcap vt100" or ANSI and see the "cl" entry.

Aug 17 '06 #6
On 2006-08-17, Ancient_Hacker <gr**@comcast.netwrote:
>
The most portable way is dorky, but works most every place I can think
of:

for( i=1; i <= 66 + 24 /* for those TALL full page displays,plus
lagniappe */; i++ )
puts( "\n" );

If your intended terminal has some alleged "ANSI" control code
capability, there's something gross, like puts( "\033;2J" ) that does
the trick, google for "termcap vt100" or ANSI and see the "cl" entry.
Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a
similar kind of assumption to backspace will move the cursor left
which seems pretty much standard these days.

I'd agree looking at the termcap manual would be a good idea, though,
at least if the OP is talking about a serial terminal or an emulation
of one.

--
Andrew Smallshaw
an*****@sdf.lonestar.org
Aug 17 '06 #7
Ancient_Hacker wrote:
someone wrote:
>I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.

There is no "C" way to do this, as C precedes most CRT terminals,
Strange. Those CRT terminals that I was using regularly for more than
10 years before C existed. In fact, the first PDP-1 of 1957 had a CRT
display (which is iconized in the DECUS logo). I used plenty of VT05s
and VT52s (the later are still 4 years before C). Even the ANSI
standard X3.64 predates the publication of K&R1, although Heath's
implementation and DEC's VT100 were not yet out at K&R1's publication date.
Aug 17 '06 #8
On Thu, 17 Aug 2006 00:33:37 UTC, "someone" <ra************@gmail.com>
wrote:
I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.
No, because C does know nothing about a screen, TTY, printer or other
devises. So you may ask in a group related to POSIX or to your OS to
get a solution beside standard C.

--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2 Deutsch ist da!
Aug 17 '06 #9
Andrew Smallshaw <an*****@sdf.lonestar.orgwrote:
Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a
you're confused. Whether you've observed a particular terminal driver,
or a user application is probably irrelevant.

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #10
On Thu, 17 Aug 2006, Thomas Dickey wrote:
Andrew Smallshaw <an*****@sdf.lonestar.orgwrote:
>Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a

you're confused. Whether you've observed a particular terminal driver,
or a user application is probably irrelevant.
I don't think Andrew is confused. I think you are.

Tak-Shing
Aug 17 '06 #11
On Thu, 17 Aug 2006, Herbert Rosenau wrote:
On Thu, 17 Aug 2006 00:33:37 UTC, "someone" <ra************@gmail.com>
wrote:
>I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.
No, because C does know nothing about a screen, TTY, printer or other
devises. So you may ask in a group related to POSIX or to your OS to
get a solution beside standard C.
C does know about character display semantics (ISO 9899/1990
*and* 1999, 5.2.2), specifically backspaces ('\b'), form feeds
('\f'), and carriage returns ('\r'). So yes, it is possible to
``edit'' something already printed on a display device (however,
quality of implementation differs).

Tak-Shing
Aug 17 '06 #12
On Thu, 17 Aug 2006, Ancient_Hacker wrote:
someone wrote:
>I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.

There is no "C" way to do this, as C precedes most CRT terminals,
What about ISO 9899:1990, 5.2.2, where escape sequences for
display devices (such as '\f', '\b' and '\r') are defined? The
only problem with these are quality of implementation issues.

Tak-Shing
Aug 17 '06 #13
Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Thu, 17 Aug 2006, Thomas Dickey wrote:
>Andrew Smallshaw <an*****@sdf.lonestar.orgwrote:
>>Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a

you're confused. Whether you've observed a particular terminal driver,
or a user application is probably irrelevant.
I don't think Andrew is confused. I think you are.
hmm. I have a list in mind. Which "modern" one clears the screen
when you send a form-feed to it?

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #14
Thomas Dickey <di****@saltmine.radix.netwrote:
Tak-Shing Chan <t.****@gold.ac.ukwrote:
>On Thu, 17 Aug 2006, Thomas Dickey wrote:
>>Andrew Smallshaw <an*****@sdf.lonestar.orgwrote:

Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a

you're confused. Whether you've observed a particular terminal driver,
or a user application is probably irrelevant.
> I don't think Andrew is confused. I think you are.
hmm. I have a list in mind. Which "modern" one clears the screen
when you send a form-feed to it?
It occurs to me that you don't know
(googling to get a sense of your background makes that apparent).

A quick check shows putty doing this. vt100/etc don't. putty, of course,
is not a vt100 emulator (or xterm, etc). xterm and anything that emulates
vt100 will simply move the cursor to the next line.

There's some useful information on vt100.net which you might read before
wasting more bandwidth.

bye

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #15
On Thu, 17 Aug 2006, Thomas Dickey wrote:
Tak-Shing Chan <t.****@gold.ac.ukwrote:
>On Thu, 17 Aug 2006, Thomas Dickey wrote:
>>Andrew Smallshaw <an*****@sdf.lonestar.orgwrote:

Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a

you're confused. Whether you've observed a particular terminal driver,
or a user application is probably irrelevant.
> I don't think Andrew is confused. I think you are.

hmm. I have a list in mind. Which "modern" one clears the screen
when you send a form-feed to it?
Andrew wrote: ``it's not guaranteed''. Which part of ``it's
not guaranteed'' you don't understand?

Tak-Shing
Aug 17 '06 #16
On Thu, 17 Aug 2006, Thomas Dickey wrote:
Thomas Dickey <di****@saltmine.radix.netwrote:
>Tak-Shing Chan <t.****@gold.ac.ukwrote:
>>On Thu, 17 Aug 2006, Thomas Dickey wrote:
>>>Andrew Smallshaw <an*****@sdf.lonestar.orgwrote:

Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a

you're confused. Whether you've observed a particular terminal driver,
or a user application is probably irrelevant.
>> I don't think Andrew is confused. I think you are.
>hmm. I have a list in mind. Which "modern" one clears the screen
when you send a form-feed to it?

It occurs to me that you don't know
(googling to get a sense of your background makes that apparent).

A quick check shows putty doing this. vt100/etc don't. putty, of course,
is not a vt100 emulator (or xterm, etc). xterm and anything that emulates
vt100 will simply move the cursor to the next line.

There's some useful information on vt100.net which you might read before
wasting more bandwidth.
All irrelevant to my point. By the way, PuTTY is more
"modern" than vt100, but I suppose you are not aware of this
(judging from what you wrote above).

Tak-Shing
Aug 17 '06 #17
Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Thu, 17 Aug 2006, Thomas Dickey wrote:
>Tak-Shing Chan <t.****@gold.ac.ukwrote:
>>On Thu, 17 Aug 2006, Thomas Dickey wrote:
>>>Andrew Smallshaw <an*****@sdf.lonestar.orgwrote:

Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a

you're confused. Whether you've observed a particular terminal driver,
or a user application is probably irrelevant.
>> I don't think Andrew is confused. I think you are.

hmm. I have a list in mind. Which "modern" one clears the screen
when you send a form-feed to it?
Andrew wrote: ``it's not guaranteed''. Which part of ``it's
not guaranteed'' you don't understand?
Indeed. You don't know the answer to my question, so you're attempting
to justify it by changing the question.

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #18
On Thu, 17 Aug 2006, Thomas Dickey wrote:
Tak-Shing Chan <t.****@gold.ac.ukwrote:
>On Thu, 17 Aug 2006, Thomas Dickey wrote:
>>Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Thu, 17 Aug 2006, Thomas Dickey wrote:

Andrew Smallshaw <an*****@sdf.lonestar.orgwrote:
>
>Most terminals, particularly modern ones, will clear the screen if
>you simply send them a formfeed. It's not guaranteed, but it's a
>
you're confused. Whether you've observed a particular terminal driver,
or a user application is probably irrelevant.

I don't think Andrew is confused. I think you are.

hmm. I have a list in mind. Which "modern" one clears the screen
when you send a form-feed to it?
> Andrew wrote: ``it's not guaranteed''. Which part of ``it's
not guaranteed'' you don't understand?

Indeed. You don't know the answer to my question, so you're attempting
to justify it by changing the question.
I don't need to know the answer, since Steve Summit's C-FAQ
19.4 covered this (``for clearing the screen, a halfway portable
solution is to print a form-feed character ('\f'), which will
cause some displays to clear''). Presumably, those displays that
would clear are still in use.

Tak-Shing
Aug 17 '06 #19
Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Thu, 17 Aug 2006, Thomas Dickey wrote:
>Thomas Dickey <di****@saltmine.radix.netwrote:
>>Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Thu, 17 Aug 2006, Thomas Dickey wrote:
>>>>Andrew Smallshaw <an*****@sdf.lonestar.orgwrote:
>
>Most terminals, particularly modern ones, will clear the screen if
>you simply send them a formfeed. It's not guaranteed, but it's a
>
you're confused. Whether you've observed a particular terminal driver,
or a user application is probably irrelevant.
>>> I don't think Andrew is confused. I think you are.
>>hmm. I have a list in mind. Which "modern" one clears the screen
when you send a form-feed to it?

It occurs to me that you don't know
(googling to get a sense of your background makes that apparent).

A quick check shows putty doing this. vt100/etc don't. putty, of course,
is not a vt100 emulator (or xterm, etc). xterm and anything that emulates
vt100 will simply move the cursor to the next line.

There's some useful information on vt100.net which you might read before
wasting more bandwidth.
All irrelevant to my point. By the way, PuTTY is more
"modern" than vt100, but I suppose you are not aware of this
(judging from what you wrote above).
not at all. The statement was that

"most terminals, particularly modern ones",

fall into this category. Offhand, I know that xterm, gnome-terminal,
konsole, mlterm, rxvt (and kindred) all emulate this feature of vt100.
Even Linux console, now that I think of it.

Now again - where's your list?

I'll give a hint: one is smaller than six (even lumping together rxvt,
Eterm, aterm, wterm, mterm and rxvt-unicode). There are of course
other terminal emulators running only in Windows - but most of those
emulate vt100 reasonably well (and it's unlikely that many of them would
have such an easily observed defect). Still, you're welcome to make a
list, and (for the edification of _your_ peers), convince them that
a list of one item makes a general case.

bye

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #20
Tak-Shing Chan <t.****@gold.ac.ukwrote:
I don't need to know the answer, since Steve Summit's C-FAQ
rofl...
19.4 covered this (``for clearing the screen, a halfway portable
solution is to print a form-feed character ('\f'), which will
cause some displays to clear''). Presumably, those displays that
would clear are still in use.
The faq does contain some archaisms (and outright errors).

p.s: appeals to authority are generally regarded as inferior to direct
observation - something to consider if you choose to pursue a
technical career ;-)

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #21
On Thu, 17 Aug 2006, Thomas Dickey wrote:
Tak-Shing Chan <t.****@gold.ac.ukwrote:
> I don't need to know the answer, since Steve Summit's C-FAQ

rofl...
>19.4 covered this (``for clearing the screen, a halfway portable
solution is to print a form-feed character ('\f'), which will
cause some displays to clear''). Presumably, those displays that
would clear are still in use.

The faq does contain some archaisms (and outright errors).

p.s: appeals to authority are generally regarded as inferior to direct
observation - something to consider if you choose to pursue a
technical career ;-)
Direct observations aren't always statistically significant.

Tak-Shing
Aug 17 '06 #22
Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Thu, 17 Aug 2006, Thomas Dickey wrote:
>The faq does contain some archaisms (and outright errors).

p.s: appeals to authority are generally regarded as inferior to direct
observation - something to consider if you choose to pursue a
technical career ;-)
Direct observations aren't always statistically significant.
You forgot to cite an authority for that claim.

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #23
On Thu, 17 Aug 2006 22:40:44 +0100, in comp.lang.c , Tak-Shing Chan
<t.****@gold.ac.ukwrote:

(stuff to some guy called Dickey).

Chan, given that my kill filters automatically picked this guy up, I
suspect "Dickey" is a sock puppet for an existing troll. I suggest you
killfile him.
--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
Aug 17 '06 #24
Mark McIntyre <ma**********@spamcop.netwrote:
On Thu, 17 Aug 2006 22:40:44 +0100, in comp.lang.c , Tak-Shing Chan
<t.****@gold.ac.ukwrote:
(stuff to some guy called Dickey).
hmm - this seems to be your usual level, so I won't follow your lead.
Chan, given that my kill filters automatically picked this guy up, I
suspect "Dickey" is a sock puppet for an existing troll. I suggest you
killfile him.
not at all.
Unlike present company, I happen to know what I'm talking about.

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #25
"Ancient_Hacker" <gr**@comcast.netwrites:
[...]
and it's not clear terminal control falls under the baliwick of the C
language or th standard C libraries..
In fact, it's perfectly clear that terminal control does *not* fall
under the bailiwick of the standard C language and library.
The most portable way is dorky, but works most every place I can think
of:
for( i=1; i <= 66 + 24 /* for those TALL full page displays,plus
lagniappe */; i++ )
puts( "\n" );
There's no reason to assume that the terminal window is no taller than
66 rows. I'm typing this in a 65-row window, and I could easily
expand it.

Also, depending on what kind of terminal or emulator you're using, the
"erased" lines can just be scrolled off the top of the screen/window,
where they can be recovered. If I clear the screen, it's often
because I want to erase some sensitive information, and scrolling it
out of sight isn't good enough.

And, of course, it leaves the cursor at the bottom of the window.

Clearing the screen, or, more generally, controlling cursor position,
is one of those things that can *almost* be done in standard C with
some really ugly tricks, but there's almost always a much cleaner
system-specific solution. Don't waste your time trying to do it
portably.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Aug 17 '06 #26
Andrew Smallshaw <an*****@sdf.lonestar.orgwrites:
[...]
Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a
similar kind of assumption to backspace will move the cursor left
which seems pretty much standard these days.
I haven't found that to be the case for any of the terminal emulators
I use. I've just tried xterm, dtterm, gnome-terminal, a Windows
command window, the GNU "screen" program, and rxvt; none of them clear
the screen in response to a formfeed character.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Aug 17 '06 #27
On Thu, 17 Aug 2006, Thomas Dickey wrote:
Mark McIntyre <ma**********@spamcop.netwrote:
>On Thu, 17 Aug 2006 22:40:44 +0100, in comp.lang.c , Tak-Shing Chan
<t.****@gold.ac.ukwrote:
>(stuff to some guy called Dickey).

hmm - this seems to be your usual level, so I won't follow your lead.
>Chan, given that my kill filters automatically picked this guy up, I
suspect "Dickey" is a sock puppet for an existing troll. I suggest you
killfile him.

not at all.
Unlike present company, I happen to know what I'm talking about.
Really? Do you know anything about these 120 terminals?
According to my termcap (yes, appealing to authority again), they
all respond to form feeds by clearing the screen:

glasstty|classic glass tty interpreting ASCII control characters:\
pmcons|pmconsole|PMAX console:\
ibmpcx|xenix|ibmx|IBM PC xenix console display:\
ofcons:\
rcons|BSD rasterconsole:\
rcons-color|BSD rasterconsole with ANSI color:\
bsdos-sparc|Sun SPARC BSD/OS Console:\
mterm|mouse-sun|Der Mouse term:\
mgr|Bellcore MGR (non X) window system terminal emulation:\
mgr-sun|Mgr window with Sun keyboard:\
mgr-linux|Mgr window with Linux keyboard:\
oldsun|Sun Microsystems Workstation console:\
sun-il|Sun Microsystems console with working insert-line:\
sun-cgsix|sun-ss5|Sun SparcStation 5 console:\
sun|sun1|sun2|Sun Microsystems Inc. workstation console:\
sun-s|Sun Microsystems Workstation window with status line:\
sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs:\
sun-48|Sun 48-line window:\
sun-34|Sun 34-line window:\
sun-24|Sun 24-line window:\
sun-17|Sun 17-line window:\
sun-12|Sun 12-line window:\
sun-1|Sun 1-line window for sysline:\
sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character:\
sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history:\
sun-type4|Sun Workstation console with type 4 keyboard:\
psterm|psterm-basic|NeWS psterm-80x34:\
psterm-96x48|NeWS psterm 96x48:\
psterm-90x28|NeWS psterm 90x28:\
psterm-80x24|NeWS psterm 80x24:\
psterm-fast|NeWS psterm fast version (flaky ctrl chars):\
next|NeXT console:\
wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on:\
rbcomm|IBM PC with RBcomm and EMACS keybindings:\
rbcomm-nam|IBM PC with RBcomm without autowrap:\
rbcomm-w|IBM PC with RBcomm in 132 column mode:\
att5620-s|tty5620-s|layer|vitty|5620 S layer:\
aas1901|Ann Arbor K4080 w/S1901 mod:\
regent|Adds Regent Series:\
regent100|Adds Regent 100:\
regent20|Adds Regent 20:\
regent25|Adds Regent 25:\
regent40|Adds Regent 40:\
regent40+|Adds Regent 40+:\
regent60|regent200|Adds Regent 60:\
viewpoint|addsviewpoint|adds viewpoint:\
screwpoint|adds viewpoint with ^O bug:\
vp60|viewpoint60|addsvp60|adds viewpoint60:\
cdc721|CDC Viking:\
cdc721ll|CDC Vikingll:\
cdc721-esc|Control Data 721:\
dg-generic|Generic Data General terminal in DG mode:\
dg200|data general dasher 200:\
dg211|Data General d211:\
dg450|dg6134|data general 6134:\
dg6053-old|dg100|data general 6053:\
dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053:\
d200|d200-dg|Data General DASHER D200:\
d210-dg|d214-dg|Data General DASHER D210 series in DG mode:\
d211-dg|d215-dg|Data General DASHER D211 series in DG mode:\
d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode:\
d220-dg|Data General DASHER D220 color terminal in DG mode:\
d230c-dg|d230-dg|Data General DASHER D230C in DG mode:\
d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series:\
d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode:\
d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode:\
d430c-dg|d430-dg|Data General D430C in DG mode:\
d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors:\
d470c-dg|d470-dg|Data General DASHER D470C in DG mode:\
d555-dg|Data General DASHER D555 series in DG mode:\
d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode:\
dm1520|dm1521|datamedia 1520:\
dt80-sas|Datamedia DT803/DTX for SAS usage:\
hz1000|hazeltine 1000:\
ibm-apl|apl|IBM apl terminal simulator:\
i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100):\
addrinfo:\
infoton:\
prism9|p9|P9|MDC Prism-9 in ANSII mode:\
prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode:\
prism12|p12|P12|MDC Prism-12 in ANSI mode:\
prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode:\
prism14|p14|P14|MDC Prism-14 in ANSII mode:\
prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode:\
p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition:\
mime314|mm314|mime 314:\
ncr7900i|ncr7900|ncr 7900 model 1:\
ncr7900iv|ncr 7900 model 4:\
ncr7901|ncr 7901 model:\
uts30|sperry uts30 with cp/m@1R1:\
vc415|volker-craig 415:\
ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS):\
appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface:\
apple-ae|ASCII Express:\
appleII|apple ii plus:\
apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell:\
apple-uterm|Ultraterm for Apple micros:\
lisa|apple lisa console display (black on white):\
liswb|apple lisa console display (white on black):\
mac|macintosh|Macintosh with MacTerminal:\
mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode:\
trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M:\
trs16|trs-80 model 16 console:\
minitel1|minitel 1:\
minitel1b|minitel 1-bistandard (in 40cols mode):\
blit|jerq|blit running teletype rom:\
cbblit|fixterm|blit running columbus code:\
oblit|ojerq|first version of blit rom:\
cg7900|chromatics|chromatics 7900:\
intertube|intertec|Intertec InterTube:\
intertube2|intertec data systems intertube 2:\
rca|rca vp3301/vp3501:\
swtp|ct82|southwest technical products ct82:\
t3700|dumb teleray 3700:\
t3800|teleray 3800 series:\
apollo|apollo console:\
aws|Convergent Technologies AWS workstation under UTX and Xenix:\
awsc|Convergent Technologies AWS workstation under CTOS:\
aj510|Anderson-Jacobson model 510:\
d132|datagraphix|datagraphix 132a:\
teletec|Teletec Datascreen:\

Tak-Shing
Aug 17 '06 #28
On Thu, 17 Aug 2006, Keith Thompson wrote:
Andrew Smallshaw <an*****@sdf.lonestar.orgwrites:
[...]
>Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a
similar kind of assumption to backspace will move the cursor left
which seems pretty much standard these days.

I haven't found that to be the case for any of the terminal emulators
I use. I've just tried xterm, dtterm, gnome-terminal, a Windows
command window, the GNU "screen" program, and rxvt; none of them clear
the screen in response to a formfeed character.
I have just posted a long list elsethread.

Tak-Shing
Aug 17 '06 #29
Keith Thompson writes:
>Andrew Smallshaw <an*****@sdf.lonestar.orgwrites:
>Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but...

I haven't found that to be the case for any of the terminal emulators
I use. I've just tried xterm, dtterm, gnome-terminal, a Windows
command window, the GNU "screen" program, and rxvt; none of them clear
the screen in response to a formfeed character.
I had no idea that \f had fallen into disuse.
I'm updating FAQ 19.4 accordingly.
--
Steve Summit
sc*@eskimo.com
Aug 17 '06 #30
Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Thu, 17 Aug 2006, Thomas Dickey wrote:
>Mark McIntyre <ma**********@spamcop.netwrote:
>>On Thu, 17 Aug 2006 22:40:44 +0100, in comp.lang.c , Tak-Shing Chan
<t.****@gold.ac.ukwrote:
>>(stuff to some guy called Dickey).

hmm - this seems to be your usual level, so I won't follow your lead.
>>Chan, given that my kill filters automatically picked this guy up, I
suspect "Dickey" is a sock puppet for an existing troll. I suggest you
killfile him.

not at all.
Unlike present company, I happen to know what I'm talking about.
Really? Do you know anything about these 120 terminals?
Sure. And I know how to use google too. Since you don't, I'll help:

xterm supports ANSI color, VT220 emulation and UTF-8
There's an faq at
http://invisible-island.net/xterm/xterm.faq.html
ftp://invisible-island.net/xterm/

The current version of ncurses is 5.5 (20051010)
There's an faq at
http://invisible-island.net/ncurses/ncurses.faq.html
According to my termcap (yes, appealing to authority again), they
all respond to form feeds by clearing the screen:
Let's stick to "most" and "modern". Do you understand the terms?
I'm assuming you don't, given the list you presented -
even ignoring the duplicates.
(and no, I won't waste time here by giving a chronology ;-)

most+modern would imply something like "in widespread use during the past
ten years". There - add that to your glossary.

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #31
Keith Thompson <ks***@mib.orgwrites:
"Ancient_Hacker" <gr**@comcast.netwrites:
>The most portable way is dorky, but works most every place I can think
of:
for( i=1; i <= 66 + 24 /* for those TALL full page displays,plus
lagniappe */; i++ )
puts( "\n" );

There's no reason to assume that the terminal window is no taller than
66 rows. I'm typing this in a 65-row window, and I could easily
expand it.
(The above actually works with displays up to 180 rows high.)

For some reason, no one liked this suggestion of mine when I
brought it during the last discussion of this issue:

for (;;)
putchar('\n');

It should be effective just about everywhere, even on very tall
terminals or those with a circular scrollback buffer. It will
even get the attention of those using printing terminals.
--
int main(void){char p[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv wxyz.\
\n",*q="kl BIcNBFr.NKEzjwCIxNJC";int i=sizeof p/2;char *strchr();int putchar(\
);while(*q){i+=strchr(p,*q++)-p;if(i>=(int)sizeof p)i-=sizeof p-1;putchar(p[i]\
);}return 0;}
Aug 17 '06 #32
On Thu, 17 Aug 2006, Thomas Dickey wrote:
Tak-Shing Chan <t.****@gold.ac.ukwrote:
>On Thu, 17 Aug 2006, Thomas Dickey wrote:
>>Mark McIntyre <ma**********@spamcop.netwrote:
On Thu, 17 Aug 2006 22:40:44 +0100, in comp.lang.c , Tak-Shing Chan
<t.****@gold.ac.ukwrote:

(stuff to some guy called Dickey).

hmm - this seems to be your usual level, so I won't follow your lead.

Chan, given that my kill filters automatically picked this guy up, I
suspect "Dickey" is a sock puppet for an existing troll. I suggest you
killfile him.

not at all.
Unlike present company, I happen to know what I'm talking about.
> Really? Do you know anything about these 120 terminals?

Sure. And I know how to use google too. Since you don't, I'll help:

xterm supports ANSI color, VT220 emulation and UTF-8
There's an faq at
http://invisible-island.net/xterm/xterm.faq.html
ftp://invisible-island.net/xterm/

The current version of ncurses is 5.5 (20051010)
There's an faq at
http://invisible-island.net/ncurses/ncurses.faq.html
Irrelevant.
>According to my termcap (yes, appealing to authority again), they
all respond to form feeds by clearing the screen:

Let's stick to "most" and "modern". Do you understand the terms?
I'm assuming you don't, given the list you presented -
even ignoring the duplicates.
(and no, I won't waste time here by giving a chronology ;-)

most+modern would imply something like "in widespread use during the past
ten years". There - add that to your glossary.
Are you saying that Sun SPARC machines are not ``in
widespread use during the past ten years''? That is news to me.

By the way, I believe that ``modern'' on comp.lang.c means
post-1989 (when ANSI C is born).

Tak-Shing
Aug 17 '06 #33
Tak-Shing Chan <t.****@gold.ac.ukwrote:
Are you saying that Sun SPARC machines are not ``in
widespread use during the past ten years''? That is news to me.
You cited several duplicates. "Widespread" is debatable in this case,
since (aside from the rarely-used console, Sun hasn't supported a terminal
emulator for this for more than ten years - it's been that long that the
openwin programs have been regarded as unsupported/legacy/doomed).

For the others - spend a few moments to see how long it's been since the
actual terminals were sold as new.
By the way, I believe that ``modern'' on comp.lang.c means
post-1989 (when ANSI C is born).
no - the topic changed from ANSI C to terminal emulators, and the modern
era for that was the related curses work in X/Open. 1996.

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 17 '06 #34
On Thu, 17 Aug 2006, Thomas Dickey wrote:
Tak-Shing Chan <t.****@gold.ac.ukwrote:
> Are you saying that Sun SPARC machines are not ``in
widespread use during the past ten years''? That is news to me.

You cited several duplicates. "Widespread" is debatable in this case,
since (aside from the rarely-used console, Sun hasn't supported a terminal
emulator for this for more than ten years - it's been that long that the
openwin programs have been regarded as unsupported/legacy/doomed).

For the others - spend a few moments to see how long it's been since the
actual terminals were sold as new.
> By the way, I believe that ``modern'' on comp.lang.c means
post-1989 (when ANSI C is born).

no - the topic changed from ANSI C to terminal emulators, and the modern
era for that was the related curses work in X/Open. 1996.
That is only true if you are using UNIX. Many modern systems
do not use curses.

Tak-Shing
Aug 17 '06 #35
Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Thu, 17 Aug 2006, Thomas Dickey wrote:
>no - the topic changed from ANSI C to terminal emulators, and the modern
era for that was the related curses work in X/Open. 1996.
That is only true if you are using UNIX. Many modern systems
do not use curses.
Those that don't, either use vt100-compatible terminals (OpenVMS), or do
not make use of terminals (barring the miniscule fraction running Plan 9 ;-)

hmm - a few readers of this group could tell if 9term clears the screen
on a form-feed (it doesn't appear so to me, from reading its code).

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 18 '06 #36
On Thu, 17 Aug 2006, Thomas Dickey wrote:
xterm supports ANSI color, VT220 emulation and UTF-8
There's an faq at
http://invisible-island.net/xterm/xterm.faq.html
ftp://invisible-island.net/xterm/

The current version of ncurses is 5.5 (20051010)
There's an faq at
http://invisible-island.net/ncurses/ncurses.faq.html
No wonder you are so keen on xterm and ncurses---I just
noticed that you are the current maintainer of both!

Tak-Shing
Aug 18 '06 #37
On Fri, 18 Aug 2006, Thomas Dickey wrote:
Tak-Shing Chan <t.****@gold.ac.ukwrote:
>On Thu, 17 Aug 2006, Thomas Dickey wrote:
>>no - the topic changed from ANSI C to terminal emulators, and the modern
era for that was the related curses work in X/Open. 1996.
> That is only true if you are using UNIX. Many modern systems
do not use curses.

Those that don't, either use vt100-compatible terminals (OpenVMS), or do
not make use of terminals (barring the miniscule fraction running Plan 9 ;-)
There are embedded Linux systems without curses.

Tak-Shing
Aug 18 '06 #38

Tak-Shing Chan wrote:
On Thu, 17 Aug 2006, Keith Thompson wrote:
Andrew Smallshaw <an*****@sdf.lonestar.orgwrites:
[...]
Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a
similar kind of assumption to backspace will move the cursor left
which seems pretty much standard these days.
I haven't found that to be the case for any of the terminal emulators
I use. I've just tried xterm, dtterm, gnome-terminal, a Windows
command window, the GNU "screen" program, and rxvt; none of them clear
the screen in response to a formfeed character.

I have just posted a long list elsethread.
You posted a long list which has no obvious relevance to the point in
question. The list is a long way from "most terminals" and few of the
ones listed count as modern (one was recently sold as a rare antique
computer, many are archaic museum pieces).

Aug 18 '06 #39
Tak-Shing Chan <t.****@gold.ac.ukwrote:
No wonder you are so keen on xterm and ncurses---I just
noticed that you are the current maintainer of both!
That's been the case for more than ten years.

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 18 '06 #40
Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Fri, 18 Aug 2006, Thomas Dickey wrote:
>Those that don't, either use vt100-compatible terminals (OpenVMS), or do
not make use of terminals (barring the miniscule fraction running Plan 9 ;-)
There are embedded Linux systems without curses.
Which are the ones running a widely-used non-vt100-compatible terminal?

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 18 '06 #41
On Fri, 18 Aug 2006, Thomas Dickey wrote:
Tak-Shing Chan <t.****@gold.ac.ukwrote:
>On Fri, 18 Aug 2006, Thomas Dickey wrote:
>>Those that don't, either use vt100-compatible terminals (OpenVMS), or do
not make use of terminals (barring the miniscule fraction running Plan 9 ;-)
> There are embedded Linux systems without curses.

Which are the ones running a widely-used non-vt100-compatible terminal?
Widely-used? I don't know. But there exists systems where
you can access the console thru the serial port---I've seen a
few of those.

Tak-Shing
Aug 18 '06 #42
Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Fri, 18 Aug 2006, Thomas Dickey wrote:
>Tak-Shing Chan <t.****@gold.ac.ukwrote:
>>On Fri, 18 Aug 2006, Thomas Dickey wrote:
>>>Those that don't, either use vt100-compatible terminals (OpenVMS), or do
not make use of terminals (barring the miniscule fraction running Plan 9 ;-)
>> There are embedded Linux systems without curses.

Which are the ones running a widely-used non-vt100-compatible terminal?
Widely-used? I don't know. But there exists systems where
you can access the console thru the serial port---I've seen a
few of those.
A serial port is a data connection (a wire)
It doesn't present data (a terminal).

Again, unless it's widely used, it doesn't add to the "most" category.

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 18 '06 #43
On Fri, 17 Aug 2006, J. J. Farrell wrote:
>
Tak-Shing Chan wrote:
>On Thu, 17 Aug 2006, Keith Thompson wrote:
>>Andrew Smallshaw <an*****@sdf.lonestar.orgwrites:
[...]
Most terminals, particularly modern ones, will clear the screen if
you simply send them a formfeed. It's not guaranteed, but it's a
similar kind of assumption to backspace will move the cursor left
which seems pretty much standard these days.

I haven't found that to be the case for any of the terminal emulators
I use. I've just tried xterm, dtterm, gnome-terminal, a Windows
command window, the GNU "screen" program, and rxvt; none of them clear
the screen in response to a formfeed character.

I have just posted a long list elsethread.

You posted a long list which has no obvious relevance to the point in
question. The list is a long way from "most terminals" and few of the
ones listed count as modern (one was recently sold as a rare antique
computer, many are archaic museum pieces).
OK. Let me trim it down to just one item: the Sun console.
It is certainly still in use today, and it does clear the screen
with '\f'. But you are absolutely right, this has little
relevance to ``most terminals''. Perhaps I should s/most/some/g.

Tak-Shing
Aug 18 '06 #44
On Fri, 18 Aug 2006, Thomas Dickey wrote:
Tak-Shing Chan <t.****@gold.ac.ukwrote:
>On Fri, 18 Aug 2006, Thomas Dickey wrote:
>>Which are the ones running a widely-used non-vt100-compatible terminal?
> Widely-used? I don't know. But there exists systems where
you can access the console thru the serial port---I've seen a
few of those.

A serial port is a data connection (a wire)
It doesn't present data (a terminal).
The serial driver doesn't, but the console driver does.
Again, unless it's widely used, it doesn't add to the "most" category.
Fair enough.

Tak-Shing
Aug 18 '06 #45
Tak-Shing Chan <t.****@gold.ac.ukwrote:
On Fri, 17 Aug 2006, J. J. Farrell wrote:
>You posted a long list which has no obvious relevance to the point in
question. The list is a long way from "most terminals" and few of the
ones listed count as modern (one was recently sold as a rare antique
computer, many are archaic museum pieces).
OK. Let me trim it down to just one item: the Sun console.
It is certainly still in use today, and it does clear the screen
with '\f'. But you are absolutely right, this has little
relevance to ``most terminals''. Perhaps I should s/most/some/g.
yes - "some". As a colleague pointed out to me (quite a while ago),
as I was modifying a terminal driver to do form-feeds, _printers_
do form-feeds, terminals are not expected to do this.

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
Aug 18 '06 #46
Tak-Shing Chan wrote:
On Fri, 18 Aug 2006, Thomas Dickey wrote:
>Tak-Shing Chan <t.****@gold.ac.ukwrote:
>>On Fri, 18 Aug 2006, Thomas Dickey wrote:

>>>Which are the ones running a widely-used non-vt100-compatible terminal?

>> Widely-used? I don't know. But there exists systems where
you can access the console thru the serial port---I've seen a
few of those.


A serial port is a data connection (a wire)
It doesn't present data (a terminal).


The serial driver doesn't, but the console driver does.
>Again, unless it's widely used, it doesn't add to the "most" category.


Fair enough.
Getting rather off topic....

--
Ian Collins.
Aug 18 '06 #47
On Fri, 18 Aug 2006, Ian Collins wrote:
Tak-Shing Chan wrote:
>On Fri, 18 Aug 2006, Thomas Dickey wrote:
>>Tak-Shing Chan <t.****@gold.ac.ukwrote:

On Fri, 18 Aug 2006, Thomas Dickey wrote:
Which are the ones running a widely-used non-vt100-compatible terminal?
Widely-used? I don't know. But there exists systems where
you can access the console thru the serial port---I've seen a
few of those.
A serial port is a data connection (a wire)
It doesn't present data (a terminal).


The serial driver doesn't, but the console driver does.
>>Again, unless it's widely used, it doesn't add to the "most" category.


Fair enough.
Getting rather off topic....
Sorry. I should volunterily ban myself from comp.lang.c
for a month...

Tak-Shing
Aug 18 '06 #48
Tak-Shing Chan <t.****@gold.ac.ukwrites:
On Thu, 17 Aug 2006, Ancient_Hacker wrote:
>someone wrote:
>>I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.

There is no "C" way to do this, as C precedes most CRT terminals,

What about ISO 9899:1990, 5.2.2, where escape sequences for
display devices (such as '\f', '\b' and '\r') are defined? The
only problem with these are quality of implementation issues.
It says that \f (form feed) "moves the active position to the initial
position at the start of the next logical page."

I don't see anything there about clearing the screen.

I think we all know by now that *some* terminals and terminal
emulators will clear the screen in response to a formfeed characters,
and some will not. (It happens that most of the ones I use or have
access to don't. I suspect my experience in this case is typical; I
certainly don't claim that it's universal.)

In my opinion, the statement in question 19.4 of the FAQ that clearing
the display by printing a formfeed character is "halfway portable" is
incorrect, or at least over-stated.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Aug 18 '06 #49
On Fri, 18 Aug 2006, Keith Thompson wrote:
Tak-Shing Chan <t.****@gold.ac.ukwrites:
>On Thu, 17 Aug 2006, Ancient_Hacker wrote:
>>someone wrote:
I was just wondering if there is any way of editing anything already
printed on the screen with out using the system("cls") command.

There is no "C" way to do this, as C precedes most CRT terminals,

What about ISO 9899:1990, 5.2.2, where escape sequences for
display devices (such as '\f', '\b' and '\r') are defined? The
only problem with these are quality of implementation issues.

It says that \f (form feed) "moves the active position to the initial
position at the start of the next logical page."

I don't see anything there about clearing the screen.

I think we all know by now that *some* terminals and terminal
emulators will clear the screen in response to a formfeed characters,
and some will not. (It happens that most of the ones I use or have
access to don't. I suspect my experience in this case is typical; I
certainly don't claim that it's universal.)

In my opinion, the statement in question 19.4 of the FAQ that clearing
the display by printing a formfeed character is "halfway portable" is
incorrect, or at least over-stated.
I agree with you vis-a-vis '\f', but my reply above was an
attempt to paint a larger picture---that it is indeed possible to
``edit'' something that is already written on the screen, if not
by '\f', then by '\r' or '\b' on the current line.

Tak-Shing
Aug 18 '06 #50

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

6 posts views Thread by news.microsoft.com | last post: by
3 posts views Thread by Simon East | last post: by
1 post views Thread by Patrick.O.Ige | last post: by
65 posts views Thread by Leslie Kis-Adam | last post: by
reply views Thread by NPC403 | last post: by
1 post views Thread by fmendoza | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.