From: Peter Stephenson <pws@ibmth.df.unipi.it>
To: zsh-workers@sunsite.auc.dk
Subject: Re: "cat -v" in zsh (and a minor bug)
Date: Sun, 26 Sep 1999 16:31:02 +0200 [thread overview]
Message-ID: <9909261431.AA27874@ibmth.df.unipi.it> (raw)
In-Reply-To: ""Bart Schaefer""'s message of "Sat, 25 Sep 1999 18:48:31 DFT." <990925184831.ZM30850@candle.brasslantern.com>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1404 bytes --]
"Bart Schaefer" wrote:
> The bug is demonstrated by:
>
> a='å' # That's meta-a, or 228 decimal
> (( #a == #\å )) || echo oops
Seems to be 229, here.
Here's a function that allows you to enter a numeric argument to get a
character with a given number, sort of like quoted insert. Have I missed
something simpler (i.e. can you really not process a character code in
decimal)?
# Insert the ASCII character given by the numeric argument (0 -- 255)
typeset -i 16 x
x=${NUMERIC:-0}
if (( x < 0 || x > 255 )); then
return 1
else
eval LBUFFER=\$LBUFFER\$\'\\x${x##???}\'
fi
> The problem is that #a is unsigned but #\a is signed, so for values above
> 127 decimal the #\a form returns a negative number.
(except when it isn't, of course). The problem looks like it's in
getkeystring(), which converts a char to an int by direct casting instead
of taking the usual care with STOUC(). I can't imagine getkeystring() has
to be different from the rest of the shell in this respect.
--- Src/utils.c.stouc Sun Sep 26 15:32:08 1999
+++ Src/utils.c Sun Sep 26 16:20:07 1999
@@ -3407,7 +3407,7 @@
t++;
}
if (fromwhere == 6 && t != tmp) {
- *misc = (int) tmp[0];
+ *misc = STOUC(tmp[0]);
return s + 1;
}
}
--
Peter Stephenson <pws@ibmth.df.unipi.it> Tel: +39 050 844536
WWW: http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy
next parent reply other threads:[~1999-09-26 15:06 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <990925184831.ZM30850@candle.brasslantern.com>
1999-09-26 14:31 ` Peter Stephenson [this message]
1999-09-26 20:15 ` Bart Schaefer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9909261431.AA27874@ibmth.df.unipi.it \
--to=pws@ibmth.df.unipi.it \
--cc=zsh-workers@sunsite.auc.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).