zsh-workers
 help / color / mirror / code / Atom feed
From: Peter Stephenson <pws@csr.com>
To: zsh-workers@sunsite.dk (Zsh hackers list)
Subject: Re: questions - calling matheval() for printf
Date: Mon, 15 Oct 2001 13:54:15 +0100	[thread overview]
Message-ID: <13071.1003150455@csr.com> (raw)
In-Reply-To: "Oliver Kiddle"'s message of "Fri, 12 Oct 2001 15:03:45 BST." <3BC6F841.8AB53A42@yahoo.co.uk>

Sorry I didn't reply to this (the bits Bart didn'g) earlier...

Oliver Kiddle wrote:
> argument	stdout		stderr
> 5a		5		printf: "5a" not completely converted
> 
> In the first case, the different error message doesn't worry me but
> math evaluation doesn't return `5'. It is conceivable that someone
> relies on this in a script, passing a string starting with a number and
> redirecting stderr. I could successively chop characters off the right
> of the string until matheval returns without an error. This would need
> a hack to avoid repeated error messages from matheval(). Any other,
> perhaps better suggestions?

If we need this, it would be better to hack matheval to give it an option
to stop and return a pointer to the end, just like strtol().  But I don't
think we need to adhere to POSIX printf semantics that closely.  I'd be
more interested in what other shells do.

> Is there any way I can find out when arithmetic overflows have occurred
> for the second and third cases? matheval() just allows the numbers to
> wrap?

Again, this would be more work and I'm not sure it's worth it in a shell.

> Can a 64-bit integer be something other than long long? It seems I only
> have ZSH_64_BIT_TYPE to check and it might need a different format
> specifier for printf(3) if this is something other than long long.

On Alpha, it will normally be long rather than long long.  However, I
compiled sizeof(long long) with gcc on the Alpha at Sourceforge, and that
seems to be 64-bit too.  I don't think it's a good idea to rely on that,
though --- there's no standard for such things.

Can we make %q do just the same as what ${(q)foo} would do?

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK                          Tel: +44 (0)1223 392070


**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential 
and/or privileged material. 
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by 
persons or entities other than the intended recipient is 
prohibited.  
If you received this in error, please contact the sender and 
delete the material from any computer.
**********************************************************************


  parent reply	other threads:[~2001-10-15 12:55 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-12 14:03 Oliver Kiddle
2001-10-12 14:19 ` Bart Schaefer
2001-10-15 12:54 ` Peter Stephenson [this message]
2001-10-15 17:11   ` Oliver Kiddle
2001-10-15 17:28     ` Peter Stephenson

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=13071.1003150455@csr.com \
    --to=pws@csr.com \
    --cc=zsh-workers@sunsite.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).