The Weird and The Wonderful
The Weird and The Wonderful forum is a place to post Coding Horrors,
Worst Practices, and the occasional flash of brilliance.
We all come across code that simply boggles the mind. Lazy kludges, embarrasing mistakes, horrid
workarounds and developers just not quite getting it. And then somedays we come across - or write -
the truly sublime.
Post your Best, your worst, and your most interesting. But please - no
programming questions . This forum is purely for amusement and discussions on code snippets. All
actual programming questions will be removed.
|
|
 |

|
Looks like you've pulled
|
|
|
|

|
He was a first timer... little lax was on my part
|
|
|
|

|
I can beat that - I discovered a bug where new records were failing to be added.
After a number of false trails, I homed in on the following SQL user function:
ALTER function [dbo].[ufn_GetNextID](@IDTable as varchar(100), @IDColumn as varchar(100))
returns integer
as
begin
declare @NewID as integer
set @NewID=0
return @NewID
end
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|

|
Gryphons Are Awesome! Gryphons Are Awesome!
|
|
|
|

|
I don't see anything wrong there, what does "0" mean anyway?
|
|
|
|

|
richcb wrote: what does "0" mean anyway?
I believe its the shape of my mouth every time I come across examples like this!
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|

|
Nice, that had me rollin for a minute!
|
|
|
|

|
if(SomeThing == SomeOtherThing);
{
DoSomeThing;
}
This one has been sitting in the codebase for a couple of years...
At least it did SomeThing...
|
|
|
|

|
Which language? The C# compiler will give you a warning for that: "Possible mistaken empty statement".
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|

|
Even C back in the old days gave you a warning for that.
|
|
|
|

|
Wich compiler ?
while (*dest++ = *source++);
is completely correct, isn't it ?
|
|
|
|

|
It's a warning, not an error, for that reason. This was back when I used Zortech's ANSI C compiler.
|
|
|
|

|
Klaus-Werner Konrad wrote: Wich compiler? FTFY: Witch compiler
Actually, in this case the C# produces three useless wormings: both for the "while(...);" (an empty statment), "x=y" (an assigment instead of a comparison) and the "*" (an "unsafe" code), does it?
Greetings - Jacek
|
|
|
|

|
Thanks for the correction.
My example was - as a reply to the mention of C, of course a C code snippet,
and is the full working function body for strcpy().
Of course, it's unsafe - but lightning fast
|
|
|
|

|
Just in case you didn't get the joke there, he's making a funny about the compiler being witchcraft. The word you meant to use is 'which'.
|
|
|
|

|
They're not useless warnings, they're warning you that you did something unintended. Actually this wouldn't compile at all in C#, even with unsafe mode turned on, because the result type isn't boolean. It's a classic and well known piece of C code, and I think you only got a warning for the empty loop body (and if you did if(a = 3) by accident you were just screwed, hence writing if(3 == a) instead which is an error if you screw it up).
|
|
|
|

|
Right.
Greetings - Jacek
|
|
|
|

|
Does that even compile?
/ravi
|
|
|
|

|
No, it doesn't. But that's just the bug: it doesn't compile!
[EDIT]
I'm sorry, I didn't see the semicolon after the if statement. That's the bug!
modified 3 days ago.
|
|
|
|

|
It seems that problem is in semicolon after "if" statement.
DoSomeThing will be fired any time the code executes.
|
|
|
|

|
anton_l wrote: It seems that problem is in semicolon after "if" statement. It seems that's the reason he posted it!
|
|
|
|

|
This is one of the dangers of C syntax (and friends). That's the price you pay for willing conciseness. Block-only statements like VB's
If Condition Then
Statement
End If
or Modula's
IF Condition THEN
Statement
END
are safer.
|
|
|
|

|
Or Pascal:if condition then
begin
DoStuff();
end
else
begin
DoOtherStuff();
end; Sort an 'are you sure?' prompt for every single conditional.
Software Zen: delete this;
|
|
|
|

|
Can't you do if condition then one-statement else other-statement though if you don't need a block?
|
|
|
|

|
Yes, but I've always hated doing those, unless you write it on a single line:if condition then DoSomething() else DoOtherThing(); That's the only way in my mind to avoid stupid mistakes like this:if condition then
DoThing1();
DoThing2();
DoThing3();
MainStuff();DoThing2() and DoThing3() look like they're part of the if, but they're not. I do the same thing in C-style languages. If an if-statement occupies more than one line, it gets braced.
Software Zen: delete this;
|
|
|
|
 |
|
|
General
News
Suggestion
Question
Bug
Answer
Joke
Rant
Admin
Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.