From: Mark Daniel [mark.daniel@wasd.vsm.com.au] Sent: Wednesday, July 19, 2000 2:31 PM To: Info-VAX@Mvb.Saic.Com Subject: Re: Web browser and VMS mail Hi Carl, Carl Perkins wrote: > I also had to make several alterations to yahMAIL, all due to C RTL issues - > in fact, 2 out of 3 types of errors were due to fprintf issues and the 3rd > was an sprintf issue. There was a problem with long output in one place which > lost a few dozen bytes in the middle of data from a single fprintf, so I > split it into two fprintf statments. Also fprintf did not deal well with null > pointers - if passed a null pointer for a %s argument it had an ACCVIO as it > tried to use a string starting at virtual address 0, so I put in tests for > every string parameter (there are a lot of these - thank heavens for cut & > paste!). There was also an incorrect format string in a sprintf() involving > an unnecessarily escaped "#" character. (YahMAIL also throws vast numbers > of warning when compiled with /WARN=ENABLE=ALL, mostly but not entirely due > to innumerable cases of ignoring the return value of functions. These, and a > lot of the others, are due to some rather questionable coding practices - but > questionable practices or not, it does work once the version related issues > were dealt with. My suggestion to the author of the program: compile with > /WARN=ENABLE=ALL and fix everything so that you get no output from doing this.) Thanks for (finally) feeding this information back to me, and for the benefit to other users of yahMAIL. Speaking of which, with all these problems I'm surprised anyone can get it to work ;^) I am particularly concerned about the "breaking" *printf()s ... more amazed it produces any output at all, let alone across WASD, OSU and Purveyor (that I know about). I have had some problems reported by users, some of these were coding and were corrected, others were wish-list or just to let me know that it was considered a valuable addition to their sites. Thanks people, the freeware developer generally needs (at least) some stroking from time-to-time. The %s ACCVIO is a complete mystery. My understanding is (from looking at the behaviour) that the DECC developers had the foresight (with such a common error) to merely output the comment "(null)". On questionable coding practices, (although doing most of my VMS programming using C) I often stop and wonder that the C language itself might be such. It's true, I developed sloppy habits at the breast of VAXC, but these days am trying harder to use the valuable lint-like capabilities of the latest batches of DECC (thanks). For instance, the latest builds use # pragma message enable (ALL) # if (__DECC_VER > 60000000) # pragma message enable (ALL) # pragma message disable (PREOPTW,NORETURNVAL1,MACROREDEF) # else # pragma message disable (ALL) # endif (The reason for the version check is I can't keep across which messages are unknown in versions of DECC earlier than I currently am developing under.) With this only gently permissive collection of indulgences it produces no compile-time messages. Of course I haven't made the /STANDARD=VAXC into /STANDARD=RELAXED_ANSI yet, but we have to crawl before we can stand upright and hold our heads up high ;^) Thanks again, for (finally) sharing some of your yahMAIL development insights with the rest of the yahMAIL/VMS community. BTW. There will be a minor update to yahMAIL released shortly. Just corrects a couple of minor formatting issues and provides a JavaScript-driven message when no recipient is specified. (dismounts high horse) Cheers, +-------------------------------------------------------------------+ Mark Daniel Opinions my own ... and on loan from others. mailto:Mark.Daniel@wasd.vsm.com.au (Mark.Daniel@dsto.defence.gov.au) +-------------------------------------------------------------------+