Skip site navigation (1)Skip section navigation (2)
Date:      1 Apr 1997 23:36:18 +0200
From:      sec@42.org (Stefan `Sec` Zehl)
To:        freebsd-questions@freebsd.org
Subject:   Re: 'GET A LIFE' doesn't work
Message-ID:  <slrn5k2vuh.583.sec@matrix.42.org>
References:  <199704010048.QAA29694@gabber.c2.net>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <199704010048.QAA29694@gabber.c2.net>, sameer wrote:
> Why doesn't:
> 
> echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc
> 
> 	work as expected on freebsd?

I traced it down a little (heavily relying on the Manpage :)
it does nothing more that continually dividing the number 
(3135071790101768542287578439)
by 256 and printing the reminders...

# store letter 'q' in register a
[q]sa

# store command "ln0=aln256%Pln256/snlbx" in register b
[ln0=aln256%Pln256/snlbx]sb

# store number "3135071790101768542287578439" in register n
3135071790101768542287578439sn

# load register b on stack and execute as command
lbx

# quit
q


While the command in "b" does:
# load reg. a on stack, compare it with 0, if true execute reg. a (= quit)
ln 0 =a

# load reg. a on stack, do modulo 256 and Print this value
ln 256 % P

# load reg. a on stack, divide (integer) by 256 an store it in reg. n again
ln 256 / sn

# load reg. b on stack and execute as command (recursion)
lbx


So, so far for the difficult part, now why doesn't this work on FreeBSD ? 

it's the 'P' command of FreeBSD's dc
on FreeBSD: echo '71Pq'|dc	yields "71"
on SunOS:   echo '71Pq'|dc	yields "G"


from the SunOS manpage:
     P         Interpret the top of the stack as an ASCII string,
               remove and print it.

from the FreeBSD manpage:
     P         Prints  the  value  on the top of the stack, popping it
               off, and does not print a newline after.


so they don't even claim to do the same.... 
The magic question is now, should this behavior be changed ? 

CU,
	Sec
-- 
Fuer die Raupe ist es das Ende der Welt,
Fuer den Rest der Welt ist es ein Schmetterling
							    Error 0: No error



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?slrn5k2vuh.583.sec>