Article 31303 of dec.notes.networking.internet_tools: Title: NCSA Mosaic V2.7 beta 4 Reply Title: (none) .14> Mosaic*BackupDataFiles: True Sigh. This was a can of worms, although easy to find and "fix". There are three problems here. In random order: 1) Here's yet another case of SURPRISE ! due to too many !(@&* knobs. I can offer my apologies for not finding this one before putting the images up, but there's simply no way that I'm going to find all of these. 2) NCSA got a bit better about their code, and is using more and more "system independent" programming. What that means in this case is that they put together a "my_sterrror" function to handle error number to error string conversion for all systems. Not bad, not bad. However, when they plugged it all back into the code, they didn't always account for the fact that in some cases they return NULL. That's the actual, immediate cause of this crash. I've fixed this particular problem. 3) The start of this thread was file naming. Mosaic uses a few files, and many of these are hidden on UNIX systems by having a name that starts with a ".". For VMS, I removed most of these initial dots for a few reasons. First, null file names are a bit of a pain, and secondly, a seperate extension is often added to the name. That would lead to 2 "."s in a name and trouble. Unfortunately, that's what happened here. 2 dots led to a bad name, and a failure in fopen. That tried to obtain the error string for printing, which returned a NULL, which ... The wordy response to your crash is above. I'm now going to delve a little more into the file naming, which has always been something of an irritation and on which I've never spent much time. Some of the original file names are (with the VMS version on the right): .mosaic-global-history mosaic.global-history .mosaic-x-history mosaic.x-history .mosaic-hotlist-default mosaic-hotlist-default .mosaic-personal-annotations mosaic-personal-annotations /usr/local/lib/mosaic/documents.menu documents.menu .mime.types mime.types .mailcap mailcap. /usr/local/lib/mosaic/no_proxy mosaic-proxy. /usr/local/lib/mosaic/proxy mosaic-no_proxy. .mosaiccciport mosaiccciport. .mosaic-user-defs mosaic.user-defs .mosaicpid mosaic.pid .mosaic-spoof-agents mosaic.spoof-agents .mosaic-newsrc-%s mosaic-newsrc-%s You'll notice that there are two "styles". Replace the leading "." with nothing (or a trailing "."), and turn .mosaic-foo-bar into mosaic.foo-bar. There is little consistency in the names. Simply removing the leading dash works (exceptions in a minute) most of the time. If you're lazy and want all mosaic files, you'll need to look for mosaic*.*. The second form of replacement places all files into a nice little pile labelled MOSAIC.something. This boils down to a beauty contest and not much more. Now, fold in two more possibilites: First, mosaic often adds its own little file extensions. Examples are .old, .backup and .html. For VMS, if you didn't already have a "." in the name, you're ok. So, we really did need to remove those leading dots. Unfortunately, these extensions are additive in some cases, such as something.HTML.BACKUP. Oops. That leads us into the second problem area: the file names are resources and can be ANYTHING the user wanted. Nice feature, but it raises trouble with the extensions. There is also trouble when Mosaic really wants to prefix the value of HOME to the string, but the string may already have some use logical name in it. The fun just doesn't end... Now, what I would like to do is to clean this up some more as time permits. I've been resisting, because 1) I didn't want to think about it and 2) changing names always causes heartburn with someone. With the approach of the final 2.7, it seems like a good time to consider this. I don't think that any of the cases is any less work than any other. I have no real preference, which may partially explain why I've been ignoring this for so long. Finally, if you've read this far, what's your preference ? (Note that the use of ".extension" will still have to be changed to "-extension" as mentioned above): - Just remove the leading "." - make as many names as possible conform to "mosaic.something" ? - leave the current, inconsistent naming as it is ? - something altogether different ? I don't know if I'll have the time to do anything with this, but I'd like to hear any feedback on the chance that I do. Thanks, b Article 31303 of dec.notes.networking.internet_tools: Title: NCSA Mosaic V2.7 beta 4 Reply Title: (none) .14> Mosaic*BackupDataFiles: True Sigh. This was a can of worms, although easy to find and "fix". There are three problems here. In random order: 1) Here's yet another case of SURPRISE ! due to too many !(@&* knobs. I can offer my apologies for not finding this one before putting the images up, but there's simply no way that I'm going to find all of these. 2) NCSA got a bit better about their code, and is using more and more "system independent" programming. What that means in this case is that they put together a "my_sterrror" function to handle error number to error string conversion for all systems. Not bad, not bad. However, when they plugged it all back into the code, they didn't always account for the fact that in some cases they return NULL. That's the actual, immediate cause of this crash. I've fixed this particular problem. 3) The start of this thread was file naming. Mosaic uses a few files, and many of these are hidden on UNIX systems by having a name that starts with a ".". For VMS, I removed most of these initial dots for a few reasons. First, null file names are a bit of a pain, and secondly, a seperate extension is often added to the name. That would lead to 2 "."s in a name and trouble. Unfortunately, that's what happened here. 2 dots led to a bad name, and a failure in fopen. That tried to obtain the error string for printing, which returned a NULL, which ... The wordy response to your crash is above. I'm now going to delve a little more into the file naming, which has always been something of an irritation and on which I've never spent much time. Some of the original file names are (with the VMS version on the right): .mosaic-global-history mosaic.global-history .mosaic-x-history mosaic.x-history .mosaic-hotlist-default mosaic-hotlist-default .mosaic-personal-annotations mosaic-personal-annotations /usr/local/lib/mosaic/documents.menu documents.menu .mime.types mime.types .mailcap mailcap. /usr/local/lib/mosaic/no_proxy mosaic-proxy. /usr/local/lib/mosaic/proxy mosaic-no_proxy. .mosaiccciport mosaiccciport. .mosaic-user-defs mosaic.user-defs .mosaicpid mosaic.pid .mosaic-spoof-agents mosaic.spoof-agents .mosaic-newsrc-%s mosaic-newsrc-%s You'll notice that there are two "styles". Replace the leading "." with nothing (or a trailing "."), and turn .mosaic-foo-bar into mosaic.foo-bar. There is little consistency in the names. Simply removing the leading dash works (exceptions in a minute) most of the time. If you're lazy and want all mosaic files, you'll need to look for mosaic*.*. The second form of replacement places all files into a nice little pile labelled MOSAIC.something. This boils down to a beauty contest and not much more. Now, fold in two more possibilites: First, mosaic often adds its own little file extensions. Examples are .old, .backup and .html. For VMS, if you didn't already have a "." in the name, you're ok. So, we really did need to remove those leading dots. Unfortunately, these extensions are additive in some cases, such as something.HTML.BACKUP. Oops. That leads us into the second problem area: the file names are resources and can be ANYTHING the user wanted. Nice feature, but it raises trouble with the extensions. There is also trouble when Mosaic really wants to prefix the value of HOME to the string, but the string may already have some use logical name in it. The fun just doesn't end... Now, what I would like to do is to clean this up some more as time permits. I've been resisting, because 1) I didn't want to think about it and 2) changing names always causes heartburn with someone. With the approach of the final 2.7, it seems like a good time to consider this. I don't think that any of the cases is any less work than any other. I have no real preference, which may partially explain why I've been ignoring this for so long. Finally, if you've read this far, what's your preference ? (Note that the use of ".extension" will still have to be changed to "-extension" as mentioned above): - Just remove the leading "." - make as many names as possible conform to "mosaic.something" ? - leave the current, inconsistent naming as it is ? - something altogether different ? I don't know if I'll have the time to do anything with this, but I'd like to hear any feedback on the chance that I do. Thanks, b