T
Thomas G. Marshall
Dik T. Winter said:...
Refixing the bad quotes:
But your observation was about questions asked.
So? You said *I'd* better ask in a newsgroup related to my platform. There
is nothing to ask.
....[rip]...
My newsreader munges nothing. It inserts my quotation sequence reliably
before every line I quote. When I see lines grow to long I readjust those
lines to suitable length, shifting text from one line to the next. It
appears that your newsreader thinks it is smart enough to reformat
quotations, but isn't. My newsreader does not think it is as smart as
that, so it does not reformat.
Yes, you're completely correct, I'm sorry. I've never seen OE_QuoteFix
behave this way before. I have no idea what happened to it all of a sudden.
Perhaps it's something in your message source. Perhaps it's the phase of
the moon. I shut it off for now.
But I do not understand what likely behaviour is. That is *my* point.
Perhaps. But it is indeed not portable.
Of course not.
I have worked on two machines,
one of them byte addressable, 32 bit data, 32 bit instruction, where the
output would *not* be 4. On one of them the output would be "1" (while
sizeof(long) == 8), on the other it would be "2" (with sizeof(long) == 4).
Try porting, say, the Bourne shell to such machines.
I have worked on machines where the sizeof char, short, and long were all 1,
were all 32 bits, and that example produces 1 for that reason. In my DSP
image processing days in particular I came across a number of odd chips.
But what /byte addressable/ 32 bit data 32 bit instruction machine produced
a 1 for that example /while at the same time/ has a sizeof(long) == 8 ?????
I don't think that's possible: Doesn't C increment a pointer internally by
the sizeof() the object?
understand.
I think the intent is to set "sizeof(long)" chars to 0. There are machines
where that will set "sizeof(long) * 2" chars to 0.
Huh? Which? Seriously, an honest question. It is converted to a long
pointer, the contents of which (a long) are filled with 0. A long filled
with 0 says nothing about the number of characters involved. What goes
"into" that location had better be sizeof(long).
There is a large number
of compilers that will flag it as an error. And indeed, it is not allowed
in standard C, for a good reason. Also it may happen that when you
execute that statement on a byte addressable, 32 bit machine, after that
statement some library functions will fail to work (there are machines where
shared libraries are mapped to high addresses). So, what is the purpose of
understanding that statement?
In most operating systems, such libraries are most likely in a text segment,
disallowing such manipulation anyway. But it is important to understand the
statement because it might be needed in any number of device drivers or
embedded systems without VM.
....[rip]...