| Deutsch English Français Italiano |
|
<vlmb6q$2sblj$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Rich <rich@example.invalid>
Newsgroups: comp.lang.tcl
Subject: Re: Tcl9: source files are interpreted as utf-8 by default
Date: Wed, 8 Jan 2025 17:04:26 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 41
Message-ID: <vlmb6q$2sblj$1@dont-email.me>
References: <vjhiar$3f9go$1@dont-email.me> <vljmj2$29vdo$1@dont-email.me> <20250107160810.07ddbbe6@lud1.home> <vlllha$2nvqo$2@dont-email.me> <20250108113519.42eb3746@lud1.home> <20250108114254.7f56f049@lud1.home> <vlm45q$2qvor$2@dont-email.me> <20250108124055.15c92a05@lud1.home>
Injection-Date: Wed, 08 Jan 2025 18:04:27 +0100 (CET)
Injection-Info: dont-email.me; posting-host="bfc47b907fca7cd15e0f04fd46849852";
logging-data="3026611"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+FJHknT4rCIj9IQdyVAbZJ"
User-Agent: tin/2.6.1-20211226 ("Convalmore") (Linux/5.15.139 (x86_64))
Cancel-Lock: sha1:NDWOiZ79LawkexL3xzCQEickLaA=
Bytes: 3119
Luc <luc@sep.invalid> wrote:
> On Wed, 8 Jan 2025 16:04:26 +0100, Uwe Schmitz wrote:
>
>>> Another idea: force all scripts to source a set_encoding.tcl file
>>> stored somewhere. If you ever have to change, you change the one file
>>> and move on. You could even make it blank if convenient or necessary.
>>>
>>>
>>Nice try, but I don't think it's possible to set the encoding within the
>>file. And that for one simple reason: the file has already been read.
> **************************
>
> That doesn't sound quite true to me. Why is there an 'encoding' command
> then? Is it useless because whenever you use it it's too late because
> the file has already been read? Unlikely.
>
> Source the set_encoding.tcl file before anything else, before you even
> try to read anything. If you can set the encoding on the command line,
> you can set it on the first line of the script that command line is
> supposed to run.
Uwe's issue is two part:
1) encoding for scripts his 'main' script itself sources. Your
suggestion for renaming 'source' early would avoid having to change
every [source] invocation from that point forward in the main script
or in any script it sources.
2) encoding for the 'main' script itself (the very first one loaded
when his application is started). This one is "sourced" by the main
Tcl interpreter, and is read in and parsed using the default
character encoding the interpreter is using, before any commands in
that script are run. So this situation creates a chicken-or-the-egg
situation. If the script is iso-8859 encoded, but Tcl's default
parsing reads it as UTF-8, then all of the iso-8859 characters
inside are already corrupted *before* even the first command in the
script is executed. So there's no way to "source" a
"set_encoding.tcl" /in the main script itself/, that would adjust
the encoding before the main script is parsed using the wrong
encoding.