<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to implement multi-line input recall? in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963969#M22813</link>
    <description>Thanks to all for your help here. Ian's sample code showed me just how easy this was to do with SMG$READ_COMPOSED_LINE.</description>
    <pubDate>Fri, 10 Mar 2006 06:06:42 GMT</pubDate>
    <dc:creator>Galen Tackett</dc:creator>
    <dc:date>2006-03-10T06:06:42Z</dc:date>
    <item>
      <title>How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963955#M22799</link>
      <description>There are a number of system utilities, for example SYSMAN and LANCP, that provide the ability to scroll back through multiple lines of previous input.&lt;BR /&gt;&lt;BR /&gt;The last time I checked (which I admit was years ago) the terminal driver itself provided only single line input recall. &lt;BR /&gt;&lt;BR /&gt;I know that you can get 20 line input recall by using SMG$. But I'm guessing that these utilities may do it some other way. Does anyone know how?&lt;BR /&gt;</description>
      <pubDate>Thu, 02 Mar 2006 06:23:25 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963955#M22799</guid>
      <dc:creator>Galen Tackett</dc:creator>
      <dc:date>2006-03-02T06:23:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963956#M22800</link>
      <description>You could check with ANALYZE/IMAGE whether they are linked against SMGRTL.&lt;BR /&gt;&lt;BR /&gt;$ pipe analyze/image sys$system:lancp.exe | search sys$input smg&lt;BR /&gt;                        global section name: "SMGSHR_001"&lt;BR /&gt;                5)  "SMGSHR"&lt;BR /&gt;$</description>
      <pubDate>Thu, 02 Mar 2006 06:35:52 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963956#M22800</guid>
      <dc:creator>Uwe Zessin</dc:creator>
      <dc:date>2006-03-02T06:35:52Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963957#M22801</link>
      <description>I use SMG (SMG$CREATE_VIRTUAL_KEYBOARD, and SMG$READ_COMPOSED_LINE) and so does LANCP and SYSMAN. &lt;BR /&gt;&lt;BR /&gt;I do have the source code to a routine which does do reading a command from the terminal and handing command line recall. I don't know the original author and its written in C.&lt;BR /&gt;</description>
      <pubDate>Thu, 02 Mar 2006 06:41:37 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963957#M22801</guid>
      <dc:creator>Ian Miller.</dc:creator>
      <dc:date>2006-03-02T06:41:37Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963958#M22802</link>
      <description>Uwe,&lt;BR /&gt;&lt;BR /&gt;Thanks for your suggestion. For some reason I hadn't thought of that, though it's obvious now. But before I could try it I also read Ian's reply that made it unnecessary.&lt;BR /&gt;&lt;BR /&gt;Ian,&lt;BR /&gt;&lt;BR /&gt;Can you attach the code to which you refer to a reply here? If you'd rather not (since you don't know the author) we can probably arrange some other way of exchanging the details.&lt;BR /&gt;&lt;BR /&gt;Way back when SMG$ was new (boy, how long ago was that??) I did quite a bit of programming with it. I can't claim to remember much now but I'm sure it would come back quickly.&lt;BR /&gt;&lt;BR /&gt;Meanwhile, time allowing, I'll do some experimenting.</description>
      <pubDate>Thu, 02 Mar 2006 08:04:46 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963958#M22802</guid>
      <dc:creator>Galen Tackett</dc:creator>
      <dc:date>2006-03-02T08:04:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963959#M22803</link>
      <description>If my memory hasn't degraded too much, SMG was introduced in VAX/VMS V4.4. I had put some efford to change an order of manuals to the current version, so I am fairly sure.</description>
      <pubDate>Thu, 02 Mar 2006 08:16:04 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963959#M22803</guid>
      <dc:creator>Uwe Zessin</dc:creator>
      <dc:date>2006-03-02T08:16:04Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963960#M22804</link>
      <description>here is the code. I don't recall where I originally got it.&lt;BR /&gt;&lt;BR /&gt;If you need reminding of SMG$ then my other utilities use SMG$ routines for command line recall.</description>
      <pubDate>Thu, 02 Mar 2006 09:04:42 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963960#M22804</guid>
      <dc:creator>Ian Miller.</dc:creator>
      <dc:date>2006-03-02T09:04:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963961#M22805</link>
      <description>Ian,&lt;BR /&gt;&lt;BR /&gt;My thanks. :)&lt;BR /&gt;&lt;BR /&gt;I do have some of your utilities and will take a look at how they do this.&lt;BR /&gt;&lt;BR /&gt;Galen</description>
      <pubDate>Thu, 02 Mar 2006 09:12:08 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963961#M22805</guid>
      <dc:creator>Galen Tackett</dc:creator>
      <dc:date>2006-03-02T09:12:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963962#M22806</link>
      <description>Galen,&lt;BR /&gt;&lt;BR /&gt;  Don't forget, you can use just the input side of SMG, without using any of the output functions.&lt;BR /&gt;&lt;BR /&gt;  I've attached a very simple program in Pascal which uses SMG$READ_COMPOSED_LINE. It also demonstrates that you can specify more than 20 lines of recall when you create the virtual keyboard.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;But I'm guessing that these utilities &lt;BR /&gt;&amp;gt;may do it some other way.&lt;BR /&gt;&lt;BR /&gt;  Since a good programmer is a lazy plagurist, and one of the objectives of OpenVMS is user interface consistency, I'd be hoping that everyone uses SMG for this task.&lt;BR /&gt;&lt;BR /&gt;  If you want to find out exactly what routines they're calling, and how, use my FAKE_RTL procedure to build a FAKE_SMGSHR and trace the arguments.&lt;BR /&gt;&lt;BR /&gt; A quick check of SYSMAN shows SMG$CREATE_VIRTUAL_KEYBOARD, SMG#CREATE_KEY_TABLE and SMG$READ_COMPOSED_LINE.&lt;BR /&gt;&lt;BR /&gt;(Also interesting to note that the SYSMAN programmer uses the sneaky trick of passing the string descriptor for the input line as the "RESULTANT-LENGTH" argument)</description>
      <pubDate>Thu, 02 Mar 2006 16:17:36 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963962#M22806</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2006-03-02T16:17:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963963#M22807</link>
      <description>Slightly off subject but thought it worth posting. From DCL, $inquire p1 "" allowes recall using up arrow, but $read/prompt="" sys$command p1 doesn't (you can only recall last input). I logged this with Mr DCL (Guy), who is treating this as a bug and hopes to fix it in v8.3&lt;BR /&gt;&lt;BR /&gt;John.</description>
      <pubDate>Fri, 03 Mar 2006 04:33:02 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963963#M22807</guid>
      <dc:creator>John Abbott_2</dc:creator>
      <dc:date>2006-03-03T04:33:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963964#M22808</link>
      <description>John G.,&lt;BR /&gt;&lt;BR /&gt;Thanks very much for our excellent suggestions and sample code, and also for FAKE_RTL. I've skimmed your journal article and found it very interesting but haven't read it thoroughly. I hope to try out this technique some time.&lt;BR /&gt;&lt;BR /&gt;John A.,&lt;BR /&gt;&lt;BR /&gt;I first noticed that difference between $ READ and $ INQUIRE long ago when command line recall was still pretty new. I always assumed it was just meant to be that way, so it's nice to hear that the DCL Guy :-) is treating it as a bug.&lt;BR /&gt;&lt;BR /&gt;The original version of VMSLICENSE.COM used INQUIRE instead of READ. This was handy when entering multiple similar licenses. You could just up-arrow to whatever field changed between such licenses (often just the authorization and checksum), edit them, and hit &lt;CR&gt; for all the others (since they defaulted to the last value entered in that field.)&lt;BR /&gt;&lt;BR /&gt;Later VMSLICENSE.COM was changed to use READ (among other changes) and multi line recall stopped working. I quickly made a modified version of the new procedure that still used INQUIRE. But that was long ago in another life...&lt;BR /&gt;&lt;BR /&gt;Galen&lt;/CR&gt;</description>
      <pubDate>Fri, 03 Mar 2006 07:49:17 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963964#M22808</guid>
      <dc:creator>Galen Tackett</dc:creator>
      <dc:date>2006-03-03T07:49:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963965#M22809</link>
      <description>I don't see how you can call the command line recall difference between INQUIRE and READ SYS$COMMAND a bug.  Yes they're different, but they've always worked that way (since command recall was added).&lt;BR /&gt;&lt;BR /&gt;Some command procedures I write use READ to input lots of individual parameters and I don't want them filling up my command recall buffer.  On the other hand I use INQUIRE a few places where I want command recall to work, like in a procedure to execute commands on a remote node vis DECnet.&lt;BR /&gt;&lt;BR /&gt;There is one behavior of INQUIRE I detest though.  It's not a bug either, but it is a bug magnet!  There is no way with INQUIRE to differentiate between empty input and end-of-file - they both set the symbol name to the null string.  Could we get /END=label added to INQUIRE?&lt;BR /&gt;&lt;BR /&gt;Also I hate it when some innocent little bit of DCL code using INQUIRE that was originally written for interactive use but is then incorrectly submitted as a batch job gets into an infinite loop without so much as an error message:&lt;BR /&gt;&lt;BR /&gt;$reprompt:&lt;BR /&gt;$ inquire string "Prompt"&lt;BR /&gt;$ if (string .eqs. "") then goto reprompt&lt;BR /&gt;$ show symbol string&lt;BR /&gt;$ exit&lt;BR /&gt;&lt;BR /&gt;On the other hand READ SYS$COMMAND even with /END=, when run from a batch job will actually read the next line of DCL ($ and all) in the command procedure as input. That DCL line won't execute.  Now that's just wrong!</description>
      <pubDate>Tue, 07 Mar 2006 18:56:50 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963965#M22809</guid>
      <dc:creator>Jess Goodman</dc:creator>
      <dc:date>2006-03-07T18:56:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963966#M22810</link>
      <description>Jess,&lt;BR /&gt;&lt;BR /&gt;&amp;gt; I don't see how you can call the command line recall difference between&lt;BR /&gt;&amp;gt; INQUIRE and READ SYS$COMMAND a bug.&lt;BR /&gt;&lt;BR /&gt;Ah, but Mr. DCL Guy himself apparently called it a bug before I merely echoed him, as you'll see in the reply just before the one where I used the word myself. :-)&lt;BR /&gt;&lt;BR /&gt;I just thought that the story about the change in VMSLICENSE.COM might be an interesting historical note. &lt;BR /&gt;&lt;BR /&gt;However I have a strange idea of what's interesting. As an acquaintance long ago put it, perhaps echoing someone famous:&lt;BR /&gt;&lt;BR /&gt;"Everything must be interesting, because if there were something which weren't, that alone would make it interesting."&lt;BR /&gt;&lt;BR /&gt;(I believe I first heard this back around 1977 from an older denizen of the Cal State University, Hayward Computing Lab who was named Leo. He was a campus math/CS wiz who had what may have been a German accent. Also his hair was generally in disarray, but that's all the resemblance that he bore to A. Einstein.)&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;&lt;BR /&gt;Galen</description>
      <pubDate>Wed, 08 Mar 2006 06:21:59 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963966#M22810</guid>
      <dc:creator>Galen Tackett</dc:creator>
      <dc:date>2006-03-08T06:21:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963967#M22811</link>
      <description>The mother of programs using smg$read_composed_line was written 1988 by Hunter Goatley in Vax Macro as &lt;BR /&gt; HG$GET_INPUT.MAR as a replacement for LIB$GET_INPUT.&lt;BR /&gt;I kept it in &lt;A href="http://wwwvms.mppmu.mpg.de/vmssig/src/mar/hg$get_input.mar" target="_blank"&gt;http://wwwvms.mppmu.mpg.de/vmssig/src/mar/hg$get_input.mar&lt;/A&gt;  &lt;BR /&gt;&lt;BR /&gt;And for those not believing Vax macro will work beyond Alpha, here is a version in C:&lt;BR /&gt; &lt;A href="http://wwwvms.mppmu.mpg.de/~huber/util/hg$get_input.c" target="_blank"&gt;http://wwwvms.mppmu.mpg.de/~huber/util/hg$get_input.c&lt;/A&gt; &lt;BR /&gt;&lt;BR /&gt;Servus,</description>
      <pubDate>Wed, 08 Mar 2006 09:59:45 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963967#M22811</guid>
      <dc:creator>Joseph Huber_1</dc:creator>
      <dc:date>2006-03-08T09:59:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963968#M22812</link>
      <description>Jess, the best thing you can do is email dcl@hp.com your thoughts. &lt;BR /&gt;&lt;BR /&gt;I've always recieved a reply from Guy that's had some thought put into it! You never know, what you ask might just get added !!&lt;BR /&gt;&lt;BR /&gt;Kind Regards,&lt;BR /&gt;John.</description>
      <pubDate>Wed, 08 Mar 2006 10:21:20 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963968#M22812</guid>
      <dc:creator>John Abbott_2</dc:creator>
      <dc:date>2006-03-08T10:21:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to implement multi-line input recall?</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963969#M22813</link>
      <description>Thanks to all for your help here. Ian's sample code showed me just how easy this was to do with SMG$READ_COMPOSED_LINE.</description>
      <pubDate>Fri, 10 Mar 2006 06:06:42 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-implement-multi-line-input-recall/m-p/4963969#M22813</guid>
      <dc:creator>Galen Tackett</dc:creator>
      <dc:date>2006-03-10T06:06:42Z</dc:date>
    </item>
  </channel>
</rss>

