GetString ~~~~~~~~~ A small utility for the Shell By Diego Caravana 1. Legal Stuff ============== GetString is placed in the Public Domain for the Amiga. No fee is requested to use it, nor anyone can ask anything for it (except for the media). Feel free to use it, but AT YOUR OWN RISK, as I cannot be considered responsible for any damage caused to your system. Have Fun! 2. What is ? ============ GetString is a small utility that I have written mainly for me, but I think it can be very useful also for you. It is a Shell-only program and its work should be clear: it opens a string requester and store the result in an environment variable (either local or global), that can be used in Shell scripts in a very simple way. 3. How to use ============= It requires OS 2.04+ and the fabulous ReqTools.library (hi Nico!). As said above, GetString is a Shell-only program, so do not try to use from Workbench. It uses the standard parser of OS 2.x. Try to execute GetString with a `?' as argument and you will get something like this: TITLE/A,STRING,VAR=VARIABLE/K,GLOBAL/S Now, a little explanations of arguments: TITLE/A you MUST supply a string that will be the title of the requester; if you do not do, there will be an error. STRING/K is a string that will appear in the string gadget inside the requester and then will be the default string returned. VAR=VARIABLE/K is the name of the environment variable that will contain the input of the user; it must obey to the rules of DOS; the default is `GetStringResult'. GLOBAL/S if present (/S determines this behaviour), the variable will be global; the default is local. The keywords above followed by `/K' MUST appear in the command line followed by their argument. Remember to use apices when necessary! A simple example of how to use GetString is given below: ; stuff... GetString "Insert Date:" STRING "24-02-1972 4:00" VAR tmpDate date $tmpDate unset tmpDate ; even more stuff... Note that in the GetString line, you must NOT include the $ sign before the variable name! Again, note that the title MUST ALWAYS be supplied; this is a feature, because it is fundamental when the requester appears. Try to imagine a requester without a title appearing in front of you... :) 4. The Language =============== I have used E language to write GetString. What? E ?! Yea! But why? Because it is a very powerful simple-to-use language dedicated explicitly to our Amiga. It offers an incredibly vast number of features, some of which follows directly from the `mouth' of the author: "E is a procedural higher programming language, mainly influenced by languages such as C and Modula2. It is an all-purpose programming language, and the Amiga implementation is specifically targeted at programming system applications. The major features of the language/this implementation include: - Compilation speed of 10.000 to 35.000 lines/minute on a 7mhz Amiga 500, 25.000 to 85.000 l/m on a 14mhz Amiga 1200 (both _without_ fastram) - Produces small and fast executables from sourcecode in one go: linker, assembler and other program modules integrated into the compiler - True Inline Assembly with identifier sharing - Module system for import of library definitions/constants/functions (much like TurboPascals UNITs) - Large amount of integrated system functions: OpenW(), OpenS(), Gadget(), WriteF(), TextF(), and numerous string/list/IO functions. - All librarycalls of Exec, Dos, Intuition and Graphics of 2.04 integrated as system functions into the compiler: call them without opening the library or including files. All other libraries accessible too. - All commodore's 2.04 includes available as E modules - Flexible and powerfull "type" system: one basic non-complex 32bit LONG variable, and datatypes ARRAY, STRING, LIST and OBJECT, code-security and generallity through low-level polymorphism. - LISP functionality: quoted expressions, functions like Eval(), ForAll(), Exists() - immediate lists, typed lists - exception handling a la ADA - compiles compact small programs with SMALL code/data model and large applications with LARGE model in seconds - Managable development system: one executable (the compiler/assembler/ linker) and optionally a set of Module files is all you will need." Cool, eh? Try it, if you do not believe to your eyes ! :-) How to contact the author: Wouter van Oortmerssen ($#%!) Levendaal 87 2311 JG Leiden HOLLAND or if you have access to Email: Wouter@alf.let.uva.nl (E-programming support) or: Wouter@mars.let.uva.nl (personal) or: Oortmers@gene.fwi.uva.nl (other) 5. The Author ============= If you want to send me bug-reports or a time-bomb *:-(, I can be contacted in the following manners: by snail-mail Diego Caravana V. Liguria, 24 10071 Borgaro (TO) Italy by e-mail FIDO 2:334/308 2:334/308.9 AMIGANET 39:101/3 Internet To find me and the E language stuff, you can call the BBS on which I am CoSysOp: The New ATH ~~~~~~~~~~~ TEL +39-11-5629284 +39-11-5629290 FIDO 2:334/308 AMIGANET 39:101/3 Internet