> From: paulgboul...@aim.com > Actually, no. The vast majority of ISPF applications _are_ case > sensitive (although they don't need to be). If they were case > insensitive, there'd be no need to convert their input to upper case.
I think we're just using a different interpretation of 'case sensitive'. Most ISPF panels convert input to uppercase, so dialogs test for uppercase commands. But if ISPF panels converted input to lowercase, dialogs would simply test for lowercase commands. In other words, dialogs couldn't care less what case something was entered in, as long as it's converted to some sort of standard format that the dialogs can easily test for. This is completely unlike UNIX, where commands cannot be converted to uppercase or lowercase because they're case sensitive. But ISPF commands are not case sensitive, so it's okay to convert them to uppercase or lowercase (as long as it's known in advance which way they're being converted). > I'd like someone to confirm or refute my conjecture that > 'TSO' is detected and handled by the input processor, not by the code > specific to the panel. Yes you are correct; individual ISPF panels don't generally have logic to detect and process ISPF commands. This includes 'TSO' (which is an ISPF command), as well as other ISPF commands such as SPLIT, SWAP, HELP (etc). These and other ISPF commands are all processed automatically by ISPF, and are not processed by the panel. In other words, there is generally no logic in either the panel or the program that displayed the panel that processes regular ISPF commands. There are exceptions, but discussing that would be misleading for the purpose of this discussion. > If the 'TSO' command is processed by the input routine and not > by the individual panel code, it would be a minor change to > swap the order of detecting 'TSO' to before rather than after > conversion to upper case. That would make processing of the > 'TSO' command not only correct, but consistent among all panels. When a command is entered on a command line, ISPF checks to see if the command is recognized as an ISPF command. If it is (for example, if it's SPLIT, SWAP, HELP, TSO, etc) then ISPF processes the command and the underlying dialog (e.g. the ISPF panel) is completely unaware a command was even entered. If the command isn't recognized by ISPF (e.g. if a user enters DOG, FISH, DOIT, etc) the command is passed through to the dialog. The dialog can then process the command, or reject it if the command is unknown. Suppose 'TsO' is entered on a command line that has (or defaults) to CAPS(ON). I'm guessing (but not 100% sure) that the panel attributes cause the command to be uppercased to 'TSO' even *before* the data stream is sent to the mainframe for processing. If this is true, it means even ISPF itself has no idea what was actually entered on the command line, and therefore has no possible opportunity to preserve the original case of the command. If this assumption is wrong I'd think it would be fairly easy for ISPF to preserve the original case of the command. But as this isn't being done, I have to conclude that the order of processing is something like this: 1) A user enters a command on a command line and presses an interrupt key (e.g. ENTER). 2) The data on the panel is pre-processed by the terminal (or emulator) based on the attributes of the panel; e.g. if the command line is defined as (or defaults) to CAPS(ON), the command is converted to uppercase. 3) The data stream is then sent to the mainframe, where it is inspected by ISPF. 4) ISPF converts the first 'word' of the command to uppercase (just in case it was entered on a command line that isn't defined as CAPS(ON)). 5) If the command is recognized by ISPF (e.g. SPLIT,SWAP, HELP, TSO, etc) then it's processed by ISPF. Otherwise, ISPF passes the command through to the underlying dialog (e.g. the procedure that displayed the ISPF panel). I don't know anything about data streams and how they're passed back and forth between terminals and the mainframe, but it would certainly be interesting if someone on this list could confirm whether commands are converted to uppercase before they're sent to the mainframe? In other words, if step 2 above is incorrect and no conversion takes place prior to the data stream being sent to the mainframe, then maybe there is an opportunity for ISPF to preserve the original case of the TSO command? > In Windows, it's easy enough to open a command window > (or several) while editing a file (or several) with WordPad > without disrupting one's edit session(s) and Copy and Paste > among the WordPad and command windows. Isn't this the same as splitting the screen and going into ISPF option 6? In other words, you don't have to disrupt whatever session you happen to be in, and can have a command window where TSO commands can be entered? > If ISPF had this facility, there'd be little point in being able to issue a > TSO command from its command line. Unless I misunderstand, ISPF does have facility. So does this mean the problem is solved? ;-) Dave Salt SimpList(tm) - try it; you'll get it! http://www.mackinney.com/products/program-development/simplist.html _________________________________________________________________ ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html