The Old New Thing

What this batch file needs is more escape characters

(Employing the snowclone "What this X needs is more Y.") Each time you add a parsing pass to the batch processor, you have to add another layer of escaping. This is just a special case of the more general rule of thumb: any problem in quoting can be solved by adding another layer of escaping. (Okay, it's not actually true, nor is it a ...

Warning: Not much useful content inside

Remember, this Web site is for entertainment purposes only. Sometimes it takes people a little while before they realize this: I apologize for posting the link to the "Old New Thing" blog. [...] I have read a few articles in the "Old New Thing" blog and so far I have not seen much that is useful there...

Freudian typo: The accidental emoticon

Some time ago, I ran across the following Freudian typo in a mail thread discussing plans for the project after Milestone 3, commonly abbreviated M3. I'd like to talk with you about your plans for this area after <3. On the US-English keyboard layout, the M and comma keys are adjacent, and a shifted comma is a less-than sign. A ...

Why won't my computer go to sleep? Where is the energy going?

The utility has been around for a while, but in Windows 7, it gained a little bit more awesome. will analyze your computer's power consumption and report on things like devices that prevent the computer from sleeping, devices which won't suspend, and processes which are increasing your battery drain. Another neat flag is which will...

Yes, there's a new desktop window manager, but no, I don't know any more about it than you do

Sean W. requests, via the suggestion box, "an in-depth discussion of the use of the shell's new Desktop Window Manager (Dwm*) functions in Win32." The desktop window manager is not actually part of the shell. It operates at the window manager level. (Notice that DWM is active even when Explorer isn't running.) You probably should have posted...

If you have to cast, you can't afford it

A customer reported a crash inside a function we'll call : The title of today's entry gives the answer away. (The title is also an exaggeration, but it's a pun on the saying If you have to ask, you can't afford it.) The last parameter to the function is declared as a : A pointer to a generic pointer. Note that it is not itself a ...