Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connectionsPath: ...!feeds.phibee-telecom.net!news.mixmin.net!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: "Peter J. Holzer"
Newsgroups: comp.lang.python
Subject: Re: Terminal Emulator
Date: Sat, 18 May 2024 17:08:43 +0200
Lines: 81
Message-ID:
References:
<4Vf6jx1MWJznVGB@mail.python.org>
<20240518150843.knm67o3uhpcdr4dz@hjp.at>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
protocol="application/pgp-signature"; boundary="jrt2la52cu3cb7wf"
X-Trace: news.uni-berlin.de NbbEot18ZERmjK/ckZlNww9T6DH7JdVaAoliQs3HSjxA==
Cancel-Lock: sha1:nMO/5MC3oZORAo7yU6AdKUHAnEQ= sha256:8rT5NAQUGhIQmmr/JixRHDWEo+uEW/S8x9CJ6QkpRfI=
Return-Path:
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.001
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'content-
type:multipart/signed': 0.05; 'fairly': 0.05; 'e.g.': 0.07;
'python.': 0.08; 'ansi': 0.09; 'content-type:application/pgp-
signature': 0.09; 'filename:fname piece:asc': 0.09;
'filename:fname piece:signature': 0.09;
'filename:fname:signature.asc': 0.09; 'terminal': 0.09; 'that.':
0.15; '"creative': 0.16; '__/': 0.16; 'challenge!"': 0.16;
'database.': 0.16; 'from:addr:hjp-python': 0.16;
'from:addr:hjp.at': 0.16; 'from:name:peter j. holzer': 0.16;
'gauld': 0.16; 'hjp@hjp.at': 0.16; 'holzer': 0.16; 'idea.': 0.16;
'reality.': 0.16; 'right.': 0.16; 'stross,': 0.16; 'subset': 0.16;
'terminals': 0.16; 'url-ip:212.17.106/24': 0.16; 'url-
ip:212.17/16': 0.16; 'url-ip:75/8': 0.16; 'url:hjp': 0.16;
'|_|_)': 0.16; 'wrote:': 0.16; 'python': 0.16; 'grant': 0.17;
'probably': 0.17; "aren't": 0.19; 'to:addr:python-list': 0.20;
"i'd": 0.24; 'idea': 0.24; 'anything': 0.25; 'expect': 0.28;
'sense': 0.28; 'putting': 0.31; 'python-list': 0.32; 'but': 0.32;
'there': 0.33; 'use,': 0.33; 'header:In-Reply-To:1': 0.34;
'display': 0.36; 'really': 0.37; 'could': 0.38; 'means': 0.38;
'quite': 0.39; 'text': 0.39; 'use': 0.39; 'break': 0.39; 'decide':
0.39; 'alan': 0.40; 'something': 0.40; 'want': 0.40; 'try': 0.40;
'sharing': 0.60; 'provide': 0.60; 'apps': 0.62; 'received:212':
0.62; 'true': 0.63; 'browser': 0.64; 'your': 0.64; 'url-ip:198/8':
0.65; 'well': 0.65; 'wish': 0.66; 'received:userid': 0.66; '[1]':
0.67; 'url:index': 0.68; 'url-ip:212/8': 0.69; 'ignore': 0.71;
"you'll": 0.73; 'life': 0.77; 'easier,': 0.84; 'received:at':
0.84; 'exists': 0.91
Mail-Followup-To: python-list@python.org
Content-Disposition: inline
In-Reply-To: <4Vf6jx1MWJznVGB@mail.python.org>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-Mailman-Original-Message-ID: <20240518150843.knm67o3uhpcdr4dz@hjp.at>
X-Mailman-Original-References:
<4Vf6jx1MWJznVGB@mail.python.org>
Bytes: 6972
--jrt2la52cu3cb7wf
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On 2024-05-14 16:03:33 -0400, Grant Edwards via Python-list wrote:
> On 2024-05-14, Alan Gauld via Python-list wrote:
> > On 14/05/2024 18:44, Gordinator via Python-list wrote:
> >
> >> I wish to write a terminal emulator in Python. I am a fairly
> >> competent Python user, and I wish to try a new project idea. What
> >> references can I use when writing my terminal emulator? I wish for
> >> it to be a true terminal emulator as well, not just a Tk text
> >> widget or something like that.
> >
> > The first thing is to decide which terminal.
>=20
> If you want to make life easier, make it a superset of a terminal that
> already exists in the terminfo database.
>=20
> Going with some sort of ANSI terminal will probably provide
> operability even with dumb apps which ignore $TERM and just spit out
> basic ANSI escape sequences.
And if you want to go for a superset, xterm might be one of the more
useful: https://www.xfree86.org/current/ctlseqs.html
> If you really want to break trail, you could invent your own control
> sequences, which means you'll have to write terminfo and/or termcap
> entries as well as the terminal emulator.
Right. A saner model than ANSI and its supersets might be a good idea
conceptionally. But I'd expect quite a few programs to break.
> > A VT100 is very different from a 3270. And even a VT330 is quite
> > different from a VT100 although sharing a common subset of control
> > codes. And if you start looking at graphical terminals things get
> > even more interesting!
>=20
> "Intersting" is putting it mildly...
Yup. Also there aren't many programs which use, e.g. xterm's
pixel-graphics capabilities.
OTOH, there is something like domterm[1], which can (theoretically)
display anything a browser can display.
hp
[1] https://domterm.org/index.html
--=20
_ | Peter J. Holzer | Story must make more sense than reality.
|_|_) | |
| | | hjp@hjp.at | -- Charles Stross, "Creative writing
__/ | http://www.hjp.at/ | challenge!"
--jrt2la52cu3cb7wf
Content-Type: application/pgp-signature; name="signature.asc"
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEETtJbRjyPwVTYGJ5k8g5IURL+KF0FAmZIxHYACgkQ8g5IURL+
KF0IXBAAoQFTpO6zc9CUgW9Y3wWpzyrQeSV1HlsVu8XnfMbIQV/8oUxzVzDZN0pA
r9nKVvgvPoFinDZAZllmhkvQD4OfpVtjQyt9Wwo57XjQrL/KFPBe7k6JI0owmZ6T
ZWwV5vLKjEBSGUkVsHm+t8uoV0ANgnUXZraKY/72BksefxeubnSg42SzmDBZMHrw
xxUOlHNmgbHvsYQACdA/EIQIimL+czAXRnN6JcbHoMYTJb6oBLnIPtUUQMGJsEev
gjnRWPpdqM6lPJdvsahkUrhuPtsNMncWYG5BxWQw6atcV0+7Yat4n8uKh9ZGKqPq
lVzXSwsHgRCFFz+PCkSl8dJKmhttlKZOrqa6ApmfJSnrEMbevaVcRrIeO59ObtM4
S9zx7vFJRgc0mRm33Pa/I8/5DY48vB+qukBubOmHPC6tgMbrea7M45/Zsw031Y/1
mOeaG5IFhCJ4hTnCmXmSPoqr01/0QTQk979u7Vq+E7AJSp1vXT6hh/I6VuMGtFFi
YVvnp+BiRmIZLFazw07m5pUsg6cLFMZL5vztQC2354r2Felre3UO2rJV8ZGGbKVT
a6VelL6zDzVAmoaNuASPJwV484A9Pvq001x0YaSV/5CIoNwaMoYACW8yD5UoQzEC
ZLbfhp6VqsP04D+bIGnfVeqlvrcDmsEywVqrk9kAtqrYR3M8OiE=
=4loP
-----END PGP SIGNATURE-----
--jrt2la52cu3cb7wf--