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--