C
CBFalconer
Doug said:You don't honestly believe that citizens of Canada, Mexico, or
Brazil think of themselves as "Americans", do you?
Certainly do. They may even add a North, South, Central to it. Or
nothing.
Doug said:You don't honestly believe that citizens of Canada, Mexico, or
Brazil think of themselves as "Americans", do you?
Doug said:Moreover, once one has been informed that the use of a
particular word, phrase, etc. causes offense, to continue to use
that word, phrase, etc. *is* being deliberately offensive.
Doug said:You don't honestly believe that citizens of Canada, Mexico, or Brazil think of
themselves as "Americans", do you?
Doug Miller said:
Fine. For future reference, I find these following terms deeply upsetting,
and would appreciate your refraining from their usage:
"a", "been", "being", "causes", "continue", "deliberately", "etc", "has",
"informed", "is", "moreover", "of", "offense", "offensive", "once", "one",
"particular", "phrase", "that", "the", "to", "use", "word".
and I found your paragraph very disturbing.
You now have some choices:
(a) refuse to believe that I find those words offensive (as I refuse to
believe that anyone can seriously find the word "Usanian" offensive);
(b) consider that I'm being ridiculous (as I consider that anyone finding
the word "Usanian" offensive is being ridiculous);
(c) refrain from using any of the words I mentioned above in all
comp.lang.c articles, from now on.
Choice (c), the only choice in keeping with your position, is untenable.
The other two choices reflect my position nicely.
So let me see if I got this right...
Off-topic:
- Future C standards
There is said:- Programs written in C
Joe said:What? I speak for myself of course. But if you ask a Canadian if
he's an American he'll say "No, I'm Canadian". Every time.
.... snip ...
So let me see if I got this right...
Off-topic:
- Networking in C
- Threading in C
- Creating directories in C
- Future C standards
- Programs written in C
On-topic:
- Prototyping main()
- (Not) casting malloc() calls
- Proper use of English words
- Nationalities abbreviations
Default User said:Please try not to use odd abbreviations that are not standard English.
Default User said:
Well, no. You see, I know that lots of people think "faith" means
"believing in stuff even though you know it's not true",
but I actually
think it means the opposite - believing in stuff because you know it *is*
true, even when it might seem not to be.
When I'm looking at
a diagnostic message, it is faith in the compiler that leads me to suspect
my own code to be faulty even though I can see absolutely nothing wrong
with it.
What offensive usage? What's offensive about [usanian]? I don't understand
that at all.
Fine - given that you live in the U.K., we'll refer to you henceforth as a Ukian.
I am one and I don't find the term offensive. I *use* the word.
Tho' I don't use "usanian"- American seems fine to me.
Richard said:Why? Do you USAliens not have the graps of the English language
to understand them?
Complete non sequitur.Doug Miller said:
I don't honestly believe that calling a trunk an elephant makes it an
elephant.
No, not really. But okay, it's obvious you didn't get that, so I'll give
you a more direct answer: yes, I do believe that there are plenty of
people in the countries you mentioned who understand the concept of
"continent", and who realise that they are Americans (as well as being
Canadians, Mexicans, Brazilians or whatever), just as there are French
people who know they are French, Germans or whatever but also understand
that they are Europeans.
Richard said:Doug Miller said:
Fine. For future reference, I find these following terms deeply
upsetting, and would appreciate your refraining from their usage:
"a", "been", "being", "causes", "continue", "deliberately", "etc",
"has", "informed", "is", "moreover", "of", "offense", "offensive",
"once", "one", "particular", "phrase", "that", "the", "to", "use",
"word".
(e-mail address removed) said:
No, not really.
Nor that. Go tell Default User, why don't you? All I did was say "Usanian",
but he's acting like I said "Jehovah" or something. Sheesh.
Even *I* could and did write a 'fake finger' from the brief
description.
[...] and programmers are left with the take-home
lesson: use gets() and the Russian mob will take
over your machine and the rest of the world.Uh ... the Russian mob *does* use hackers ...
Uh ... yes. But watch the conclusion you're about to reach
and see if blind dogma is subverting rational thought.
No. fingerd's special nature was that stdin was directed
to a socket connected to an (untrusted) external machine.
Obviously gets()'er's in that environment deserve to have
their n*ts c** *ff. No one has implied anything different.
You managed to write several paragraphs on this subtopic
without even hinting that you understand that the gets()'s
we're "defending" are simply not subject to Russian mob
exploitations!
I've time to read very few Usenet groups these days.
Are many as totally devoid of humor as c.l.c?
Did anyone seriously think I was worried about the warning message?
[...] (I *do* use a simple 'grep -v' to remove
one irrelevant gcc warning, but haven't bothered for
the friendly "dangerous" message.)
Another poster implied that a reason gets() is "dangerous"
is that it will disappear when the pedants take over
libc!
a 'pendant'. said:[...] Does anyone think any of us would have trouble
writing our own gets() when it goes missing from libc?
(This would also be a trivial way to get rid of the
"dangerous" message.) In fact, at the risk of encouraging
the mob to Repeat_The_Obvious One_More_Time I'll put a
gets implementation in the public domain right now:
/* Not tested*/
char *gets(char *s)
{
s = fgets(s, 1000000, stdin);
/* core-dump immediately if a cosmic ray has
* damaged the terminating LineFeed:
*/ if (s) 0[index(s, '\n')] = 0;
return s;
}
Hmmm. Surprised that the pedants don't add a string length
count to index() to deal with unterminated strings.
![]()
![]()
![]()
![]()
"Narrow" is unclear. I'll assume you meant something
worse, but are being polite!
[...] In any event *most* of
the example programs at my website are just that:
*examples* rather than library functions intended for
immediate reuse.
I think there may be some useful ideas at my site.
For example, real-time programmers might benefit from a
glance at
http://james.fabpedigree.com/lesson9.htm#p94
but I imagine if you condescend to comment further
it will be to nitpick or to gloat when you find some
fragment still written in old-fashioned K&R C.
Recently I added functions to operate on compressed
sparse bit strings:
http://james.fabpedigree.com/sofa.c
which *is* intended as a small but useful (for some)
downloadable package. Paul (and anyone else) is welcome
to examine it and offer comments.
I guess I've not uploaded my cuckoo hash implementation
yet, so you're referring to the hash table I introduced some
years ago under a Subject like "Reusable Source code".
To say that program "can only ever support one [hash table]"
is to ignore that its source code can be modified!
It's My Own(tm) code for My Own(tm) projects; I use
Just-In-Time Programming(tm) for My Own(tm) projects,
and have found this code easy to modify. As it turns
out, not supporting the feature you mention was the correct
Just-In-Time Programming(tm) decision, as that routine has
been superseded by my cuckoo hash implementation which
*does* support multiple users.
[...] But the whole point was completely lost, as Chuck reacted
defensively re his own hashlib (without ever explaining how
the user needing two bytes maximum could cope with hashlib's
eight-byte minimum), and Paul enlightened us with code in
which Paul (or his dog?) proudly allows the programmer to
replace the confusing, error-prone predicate
(! p->curr)
with an invocation of the function
int utilGenLinkedListIteratorEndReached \
(struct genLinkedListIterator * iter) {
if (iter == NULL) return -__LINE__;
return NULL == iter->curr;
}
Is this the kind of code you think I need to improve
my pedigree generator, Paul?
Hunh? The OS performed to customer spec, which was
to do a MS-DOS lookalike on MC68000 chip.
My customer (who got exclusive rights -- I never claimed
to be a businessman) ended up selling the source to
A Very Big Company You've All Heard Of(tm) and recovering
his payment to me. (The Company's representative spent
several days on-site at my customer's examining the source
"eyes only" and concluded with a comment: "Originally I
was almost sure we'd develop our own in-house instead,
but after examining the source ... Sold!")
With your "honestly", one is tempted to guess you might
not even be joking! If so: Wow! Words fail me.
I'm afraid I'll have to (cheerfully) retract that concession
in your case, Paul.
As I compose this reply, I'm reading, in another window, about
present-day Internet security problems, despite the Billion$
of $$$ spent on $oftware by Micro$oft and others. Frankly,
I doubt that the problem is programmers using simple
functions to do simple things, but is more likely to be
the overly complex methods some of you seem to advocate.
Call it a fetish if you wish, but I *do* like to program in C.
My brain isn't completely dormant here, raising my kids and
smelling the roses: I read up on a variety of topics, e.g.
historical linguistics. Learning a new programming language
is *not* a priority and wasn't even before I retired, unless
you count LaTeX as a "programming" language.
LOL, chuckle! Call me simplistic but I process one line
at a time. The PC I use has relatively little memory,
but it's enough to spare one (1) 2000-byte buffer
for one (1) 200-byte string.![]()
Moreover, your comments show another confusion: one uses
the "over-sized buffer" whether one gets()'s or fgets()'s.
In either case, if the string needs to be preserved,
one strlen()'s, malloc()'s, and strcpy()'s (*) Yes, one can
hire Chuck F. to implement this trivial functionality, but
so what? (* - or do the pedants use strncpy() instead of
strcpy() even when they've just strlen()'ed on the off-chance
a gamma-ray zapped the null terminator?
True, the fgets() *can* handle lines too long to fit in
the already "over-sized" buffer, but if you're doing that
handling in more than 2% of your fgets() applications you must
be coding like a masochist! The whole point of gets()/fgets()
is the simplicity of reading exactly one line: if you lose
that, you might as well just use fread().
If you've been reading my website, you're misquoting!
I revere T&R (not K&R) as if they were human, but excellent
and creative designers.
I'm agnostic about whether the taxpayers should have been
required to fund the expensive test; the point is that the
flaw would have surfaced readily (with the $50 test) in a
less pedantic testing environment. You seem to have missed
this point; indeed you seem to be arguing that *no* test is
too expensive for the taxpayers! ... Where do you fit on the
political spectrum, Paul?![]()
Regarding my claim, which you contested, that one
SHOULD SPEND ONE'S THOROUGHNESS WISELY
consider again the table hander you deprecated as
single instance. Making it multi-instance *would* have
complicated it and did indeed prove unnecessary.
Flash said:It has taken both of you for this argument to run on, so by now in my
opinion you are both just as guilty of holding a long-running off-topic
argument and for *this* group it is completely irrelevant which if you
is right or wrong.
So let me see if I got this right...
Off-topic:
- Networking in C
- Threading in C
- Creating directories in C
- Future C standards
- Programs written in C
On-topic:
- Prototyping main()
- (Not) casting malloc() calls
- Proper use of English words
- Nationalities abbreviations
You are BOTH just giving the trolls an excuse for more bitching about
topicality rules and hypocrisy and this time they have a point. You BOTH
know that this is completely inappropriate for this group.
Be careful about what you say. Are you referring to me when you say
"troll"? I'm not (at least no one's ever called me that before).
You're deliberately calling a "troll" someone who isn't one and for no
reason. That makes *you* a troll.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.