Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornComputing_199407.adf » 9407 » 10_10Frnch/TechForum/help_gen/notes

10_10Frnch/TechForum/help_gen/notes

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornComputing_199407.adf » 9407
Filename: 10_10Frnch/TechForum/help_gen/notes
Read OK:
File size: 1732 bytes
Load address: 0000
Exec address: 0000
File contents
Re Acorn's C RISC_OSLib & support of interactive help on menu entries, using
the help functions, via the msgs functions & an application message file.

The following concerns the accompanying C source code, which gives improved
support for context sensitive help - see the notes within the code & below
for details.

Context sensitivity includes making text conditional on the shaded &/or
ticked status of each menu entry.

This information usually isn't readily available within the help functions.
Fortunately, however, you can call Wimp_GetIconInfo for the menu window/icon
handle pair supplied by the wimp in the help request, & read the flags from
this!

Faded status can be read directly.

Additionally, if you are willing to make a small assumption about how menu's
are dealt with by the wimp, you can also read the menu icon data to see if
the current entry is ticked - though I can't guarantee this is valid in RISC
OS 3.5 or will remain valid in later OS.

Assuming icons in menus come in triples, with the low numbered one
corresponding to the tick, & with its flags set to no text or sprite when
there is no tick, for a request of help on icon i in a menu, read flags=flags
of icon (i/3)*3 and we will then have (flags&3) non-zero if and only if the
selected item is ticked - this is certainly true under RISC OS 3.10,
regardless of the direction menus are linked.

Copyright: Michael Rozdoba, 27/4/94.

****************************************************************************

Menu maker functions should call help_register_handler & it is anticipated
that they will be using help_simplehandler.

This code modifies the function help_genmessage, as used by
help_simplehandler.

To understand how, consider the following example menu:

 title 1
 ~~~~~~~
  item 1
  item 2
  item 3 => title 2
  item 4    ~~~~~~~
             item a
             item b - ticked
             item c - faded & ticked
             ...... - dotted line item separatorr
             item d - faded
             item e

This is meant to show a menu with 4 entries, & a submenu attached to the
3rd one, itself containing 5 entries.

Suppost help_register_handler was given the prefix "HLP"

Old help_genmessage would return messages from tags

 HLP0 for item 1
 HLP1          2
 HLP2          3
 HLP3          4
 HLP20         a
 HLP21         b
 HLP22         c
 HLP23         d
 HLP24         e

etc.


NEW BEHAVIOUR
~~~~~~~~~~~~~

For item b above, new code will try 

 HLP2T1         - read as HLP2, (T)icked 1
 HLP2TM         - read as HLP2, (T)icked (M)ulti-purpose
 HLP21          - read as HLP21
 HLP2M          - read as HLP2, (M)ulti-purpose

Where the top one will be sought first, & if not found, the next will be
tried, & so on. If all fail to yield a message tag which exists, no help
will be given.

This allows help text specific to the ticked case for item b, & if not
present, will then look for some general help text for that submenu,
describing all ticked entries. If still not found, it defaults to the old
case, & if that doesn't exist, a general multi-purpose tag for the submenu
is tried.

*****************

For item c, new code will try

 HLP2G2         - read as HLP2, (G)reyed-out 2
 HLP2GM         - etc
 HLP2T2
 HLP2TM
 HLP22
 HLP2M

As this entry is greyed out (faded), code first looks for tag describing
this, as it is more significant than ticked status. If not present, try
general greyed-out help, & if still not found, behave as for an unfaded
entry.

*****************

Notice that when over the dotted line separator, old code tries tag
 HLP2 which is inappropriate.

New code will try
 HLP2N          - read as HLP2, (N)o item selected
 HLP2M

*****************

If menu maker function registered a string pointer with
help_register_insert, this text may be included within a message by
including the character pair '%s' within the message text. A message text
may include only one such reference.

*****************

All messages may contain the menu item text itself, by including the
character pair '%t' within the message text. The menu item text,
automatically surrounded by quotes, may be included with the pair '%q'.
Only one such pair may appear in a message text.

*****************


EXAMPLES OF USE
~~~~~~~~~~~~~~~

Consider a menu containing a variable length run-time dependent list of
objects, with a single one ticked, marking some form of user selected
choice.

Suppose this contains the items: john, paul, george & ringo.

For prefix HLP, as above, we can obtain help of the form "Choose 'john' by
clicking Select or Adjust" etc or "'paul' is the currently selected object",
as appropriate, with just two messages:

HLPTM:%q is the currently selected object
HLPM:Choose %q by clicking Select or Adjust

*****************

For a more complex case, consider a menu copying the root menu of the RISC
OS 3 Filer.

Here, we can supply old style tags specific to each item, but make the file
specific one include the text '<file name>' or 'the selected objects' by
using the %s characters & making the corresponding menu maker function
register a suitable string with help_register_insert.

This example also illustrates that while each item needs its own help text,
to cover the faded cases we can use a single message. Thus:

HLPGM:This option is greyed out because there are no selected objects.

Will cover all such cases.

*****************

Still with the above example, notice how with the real filer, moving over a
submenu & positioning the pointer between the title & top item (so that no
item is selected), causes RISC OS 3  to give inappropriate help, as though
we were still in the parent menu.

This new code allows your own programs to avoid such errors - with a
suitable 'N' type tag, you can provide a message describing the general
purpose of the submenu concerned.

However, even if you omit this, at worst you get no help, which is rather
better than misleading directions.
00000000  0a 52 65 20 41 63 6f 72  6e 27 73 20 43 20 52 49  |.Re Acorn's C RI|
00000010  53 43 5f 4f 53 4c 69 62  20 26 20 73 75 70 70 6f  |SC_OSLib & suppo|
00000020  72 74 20 6f 66 20 69 6e  74 65 72 61 63 74 69 76  |rt of interactiv|
00000030  65 20 68 65 6c 70 20 6f  6e 20 6d 65 6e 75 20 65  |e help on menu e|
00000040  6e 74 72 69 65 73 2c 20  75 73 69 6e 67 0a 74 68  |ntries, using.th|
00000050  65 20 68 65 6c 70 20 66  75 6e 63 74 69 6f 6e 73  |e help functions|
00000060  2c 20 76 69 61 20 74 68  65 20 6d 73 67 73 20 66  |, via the msgs f|
00000070  75 6e 63 74 69 6f 6e 73  20 26 20 61 6e 20 61 70  |unctions & an ap|
00000080  70 6c 69 63 61 74 69 6f  6e 20 6d 65 73 73 61 67  |plication messag|
00000090  65 20 66 69 6c 65 2e 0a  0a 54 68 65 20 66 6f 6c  |e file...The fol|
000000a0  6c 6f 77 69 6e 67 20 63  6f 6e 63 65 72 6e 73 20  |lowing concerns |
000000b0  74 68 65 20 61 63 63 6f  6d 70 61 6e 79 69 6e 67  |the accompanying|
000000c0  20 43 20 73 6f 75 72 63  65 20 63 6f 64 65 2c 20  | C source code, |
000000d0  77 68 69 63 68 20 67 69  76 65 73 20 69 6d 70 72  |which gives impr|
000000e0  6f 76 65 64 0a 73 75 70  70 6f 72 74 20 66 6f 72  |oved.support for|
000000f0  20 63 6f 6e 74 65 78 74  20 73 65 6e 73 69 74 69  | context sensiti|
00000100  76 65 20 68 65 6c 70 20  2d 20 73 65 65 20 74 68  |ve help - see th|
00000110  65 20 6e 6f 74 65 73 20  77 69 74 68 69 6e 20 74  |e notes within t|
00000120  68 65 20 63 6f 64 65 20  26 20 62 65 6c 6f 77 0a  |he code & below.|
00000130  66 6f 72 20 64 65 74 61  69 6c 73 2e 0a 0a 43 6f  |for details...Co|
00000140  6e 74 65 78 74 20 73 65  6e 73 69 74 69 76 69 74  |ntext sensitivit|
00000150  79 20 69 6e 63 6c 75 64  65 73 20 6d 61 6b 69 6e  |y includes makin|
00000160  67 20 74 65 78 74 20 63  6f 6e 64 69 74 69 6f 6e  |g text condition|
00000170  61 6c 20 6f 6e 20 74 68  65 20 73 68 61 64 65 64  |al on the shaded|
00000180  20 26 2f 6f 72 0a 74 69  63 6b 65 64 20 73 74 61  | &/or.ticked sta|
00000190  74 75 73 20 6f 66 20 65  61 63 68 20 6d 65 6e 75  |tus of each menu|
000001a0  20 65 6e 74 72 79 2e 0a  0a 54 68 69 73 20 69 6e  | entry...This in|
000001b0  66 6f 72 6d 61 74 69 6f  6e 20 75 73 75 61 6c 6c  |formation usuall|
000001c0  79 20 69 73 6e 27 74 20  72 65 61 64 69 6c 79 20  |y isn't readily |
000001d0  61 76 61 69 6c 61 62 6c  65 20 77 69 74 68 69 6e  |available within|
000001e0  20 74 68 65 20 68 65 6c  70 20 66 75 6e 63 74 69  | the help functi|
000001f0  6f 6e 73 2e 0a 46 6f 72  74 75 6e 61 74 65 6c 79  |ons..Fortunately|
00000200  2c 20 68 6f 77 65 76 65  72 2c 20 79 6f 75 20 63  |, however, you c|
00000210  61 6e 20 63 61 6c 6c 20  57 69 6d 70 5f 47 65 74  |an call Wimp_Get|
00000220  49 63 6f 6e 49 6e 66 6f  20 66 6f 72 20 74 68 65  |IconInfo for the|
00000230  20 6d 65 6e 75 20 77 69  6e 64 6f 77 2f 69 63 6f  | menu window/ico|
00000240  6e 0a 68 61 6e 64 6c 65  20 70 61 69 72 20 73 75  |n.handle pair su|
00000250  70 70 6c 69 65 64 20 62  79 20 74 68 65 20 77 69  |pplied by the wi|
00000260  6d 70 20 69 6e 20 74 68  65 20 68 65 6c 70 20 72  |mp in the help r|
00000270  65 71 75 65 73 74 2c 20  26 20 72 65 61 64 20 74  |equest, & read t|
00000280  68 65 20 66 6c 61 67 73  20 66 72 6f 6d 0a 74 68  |he flags from.th|
00000290  69 73 21 0a 0a 46 61 64  65 64 20 73 74 61 74 75  |is!..Faded statu|
000002a0  73 20 63 61 6e 20 62 65  20 72 65 61 64 20 64 69  |s can be read di|
000002b0  72 65 63 74 6c 79 2e 0a  0a 41 64 64 69 74 69 6f  |rectly...Additio|
000002c0  6e 61 6c 6c 79 2c 20 69  66 20 79 6f 75 20 61 72  |nally, if you ar|
000002d0  65 20 77 69 6c 6c 69 6e  67 20 74 6f 20 6d 61 6b  |e willing to mak|
000002e0  65 20 61 20 73 6d 61 6c  6c 20 61 73 73 75 6d 70  |e a small assump|
000002f0  74 69 6f 6e 20 61 62 6f  75 74 20 68 6f 77 20 6d  |tion about how m|
00000300  65 6e 75 27 73 0a 61 72  65 20 64 65 61 6c 74 20  |enu's.are dealt |
00000310  77 69 74 68 20 62 79 20  74 68 65 20 77 69 6d 70  |with by the wimp|
00000320  2c 20 79 6f 75 20 63 61  6e 20 61 6c 73 6f 20 72  |, you can also r|
00000330  65 61 64 20 74 68 65 20  6d 65 6e 75 20 69 63 6f  |ead the menu ico|
00000340  6e 20 64 61 74 61 20 74  6f 20 73 65 65 20 69 66  |n data to see if|
00000350  0a 74 68 65 20 63 75 72  72 65 6e 74 20 65 6e 74  |.the current ent|
00000360  72 79 20 69 73 20 74 69  63 6b 65 64 20 2d 20 74  |ry is ticked - t|
00000370  68 6f 75 67 68 20 49 20  63 61 6e 27 74 20 67 75  |hough I can't gu|
00000380  61 72 61 6e 74 65 65 20  74 68 69 73 20 69 73 20  |arantee this is |
00000390  76 61 6c 69 64 20 69 6e  20 52 49 53 43 0a 4f 53  |valid in RISC.OS|
000003a0  20 33 2e 35 20 6f 72 20  77 69 6c 6c 20 72 65 6d  | 3.5 or will rem|
000003b0  61 69 6e 20 76 61 6c 69  64 20 69 6e 20 6c 61 74  |ain valid in lat|
000003c0  65 72 20 4f 53 2e 0a 0a  41 73 73 75 6d 69 6e 67  |er OS...Assuming|
000003d0  20 69 63 6f 6e 73 20 69  6e 20 6d 65 6e 75 73 20  | icons in menus |
000003e0  63 6f 6d 65 20 69 6e 20  74 72 69 70 6c 65 73 2c  |come in triples,|
000003f0  20 77 69 74 68 20 74 68  65 20 6c 6f 77 20 6e 75  | with the low nu|
00000400  6d 62 65 72 65 64 20 6f  6e 65 0a 63 6f 72 72 65  |mbered one.corre|
00000410  73 70 6f 6e 64 69 6e 67  20 74 6f 20 74 68 65 20  |sponding to the |
00000420  74 69 63 6b 2c 20 26 20  77 69 74 68 20 69 74 73  |tick, & with its|
00000430  20 66 6c 61 67 73 20 73  65 74 20 74 6f 20 6e 6f  | flags set to no|
00000440  20 74 65 78 74 20 6f 72  20 73 70 72 69 74 65 20  | text or sprite |
00000450  77 68 65 6e 0a 74 68 65  72 65 20 69 73 20 6e 6f  |when.there is no|
00000460  20 74 69 63 6b 2c 20 66  6f 72 20 61 20 72 65 71  | tick, for a req|
00000470  75 65 73 74 20 6f 66 20  68 65 6c 70 20 6f 6e 20  |uest of help on |
00000480  69 63 6f 6e 20 69 20 69  6e 20 61 20 6d 65 6e 75  |icon i in a menu|
00000490  2c 20 72 65 61 64 20 66  6c 61 67 73 3d 66 6c 61  |, read flags=fla|
000004a0  67 73 0a 6f 66 20 69 63  6f 6e 20 28 69 2f 33 29  |gs.of icon (i/3)|
000004b0  2a 33 20 61 6e 64 20 77  65 20 77 69 6c 6c 20 74  |*3 and we will t|
000004c0  68 65 6e 20 68 61 76 65  20 28 66 6c 61 67 73 26  |hen have (flags&|
000004d0  33 29 20 6e 6f 6e 2d 7a  65 72 6f 20 69 66 20 61  |3) non-zero if a|
000004e0  6e 64 20 6f 6e 6c 79 20  69 66 20 74 68 65 0a 73  |nd only if the.s|
000004f0  65 6c 65 63 74 65 64 20  69 74 65 6d 20 69 73 20  |elected item is |
00000500  74 69 63 6b 65 64 20 2d  20 74 68 69 73 20 69 73  |ticked - this is|
00000510  20 63 65 72 74 61 69 6e  6c 79 20 74 72 75 65 20  | certainly true |
00000520  75 6e 64 65 72 20 52 49  53 43 20 4f 53 20 33 2e  |under RISC OS 3.|
00000530  31 30 2c 0a 72 65 67 61  72 64 6c 65 73 73 20 6f  |10,.regardless o|
00000540  66 20 74 68 65 20 64 69  72 65 63 74 69 6f 6e 20  |f the direction |
00000550  6d 65 6e 75 73 20 61 72  65 20 6c 69 6e 6b 65 64  |menus are linked|
00000560  2e 0a 0a 43 6f 70 79 72  69 67 68 74 3a 20 4d 69  |...Copyright: Mi|
00000570  63 68 61 65 6c 20 52 6f  7a 64 6f 62 61 2c 20 32  |chael Rozdoba, 2|
00000580  37 2f 34 2f 39 34 2e 0a  0a 2a 2a 2a 2a 2a 2a 2a  |7/4/94...*******|
00000590  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000005d0  2a 2a 2a 2a 2a 0a 0a 4d  65 6e 75 20 6d 61 6b 65  |*****..Menu make|
000005e0  72 20 66 75 6e 63 74 69  6f 6e 73 20 73 68 6f 75  |r functions shou|
000005f0  6c 64 20 63 61 6c 6c 20  68 65 6c 70 5f 72 65 67  |ld call help_reg|
00000600  69 73 74 65 72 5f 68 61  6e 64 6c 65 72 20 26 20  |ister_handler & |
00000610  69 74 20 69 73 20 61 6e  74 69 63 69 70 61 74 65  |it is anticipate|
00000620  64 0a 74 68 61 74 20 74  68 65 79 20 77 69 6c 6c  |d.that they will|
00000630  20 62 65 20 75 73 69 6e  67 20 68 65 6c 70 5f 73  | be using help_s|
00000640  69 6d 70 6c 65 68 61 6e  64 6c 65 72 2e 0a 0a 54  |implehandler...T|
00000650  68 69 73 20 63 6f 64 65  20 6d 6f 64 69 66 69 65  |his code modifie|
00000660  73 20 74 68 65 20 66 75  6e 63 74 69 6f 6e 20 68  |s the function h|
00000670  65 6c 70 5f 67 65 6e 6d  65 73 73 61 67 65 2c 20  |elp_genmessage, |
00000680  61 73 20 75 73 65 64 20  62 79 0a 68 65 6c 70 5f  |as used by.help_|
00000690  73 69 6d 70 6c 65 68 61  6e 64 6c 65 72 2e 0a 0a  |simplehandler...|
000006a0  54 6f 20 75 6e 64 65 72  73 74 61 6e 64 20 68 6f  |To understand ho|
000006b0  77 2c 20 63 6f 6e 73 69  64 65 72 20 74 68 65 20  |w, consider the |
000006c0  66 6f 6c 6c 6f 77 69 6e  67 20 65 78 61 6d 70 6c  |following exampl|
000006d0  65 20 6d 65 6e 75 3a 0a  0a 20 74 69 74 6c 65 20  |e menu:.. title |
000006e0  31 0a 20 7e 7e 7e 7e 7e  7e 7e 0a 20 20 69 74 65  |1. ~~~~~~~.  ite|
000006f0  6d 20 31 0a 20 20 69 74  65 6d 20 32 0a 20 20 69  |m 1.  item 2.  i|
00000700  74 65 6d 20 33 20 3d 3e  20 74 69 74 6c 65 20 32  |tem 3 => title 2|
00000710  0a 20 20 69 74 65 6d 20  34 20 20 20 20 7e 7e 7e  |.  item 4    ~~~|
00000720  7e 7e 7e 7e 0a 20 20 20  20 20 20 20 20 20 20 20  |~~~~.           |
00000730  20 20 69 74 65 6d 20 61  0a 20 20 20 20 20 20 20  |  item a.       |
00000740  20 20 20 20 20 20 69 74  65 6d 20 62 20 2d 20 74  |      item b - t|
00000750  69 63 6b 65 64 0a 20 20  20 20 20 20 20 20 20 20  |icked.          |
00000760  20 20 20 69 74 65 6d 20  63 20 2d 20 66 61 64 65  |   item c - fade|
00000770  64 20 26 20 74 69 63 6b  65 64 0a 20 20 20 20 20  |d & ticked.     |
00000780  20 20 20 20 20 20 20 20  2e 2e 2e 2e 2e 2e 20 2d  |        ...... -|
00000790  20 64 6f 74 74 65 64 20  6c 69 6e 65 20 69 74 65  | dotted line ite|
000007a0  6d 20 73 65 70 61 72 61  74 6f 72 72 0a 20 20 20  |m separatorr.   |
000007b0  20 20 20 20 20 20 20 20  20 20 69 74 65 6d 20 64  |          item d|
000007c0  20 2d 20 66 61 64 65 64  0a 20 20 20 20 20 20 20  | - faded.       |
000007d0  20 20 20 20 20 20 69 74  65 6d 20 65 0a 0a 54 68  |      item e..Th|
000007e0  69 73 20 69 73 20 6d 65  61 6e 74 20 74 6f 20 73  |is is meant to s|
000007f0  68 6f 77 20 61 20 6d 65  6e 75 20 77 69 74 68 20  |how a menu with |
00000800  34 20 65 6e 74 72 69 65  73 2c 20 26 20 61 20 73  |4 entries, & a s|
00000810  75 62 6d 65 6e 75 20 61  74 74 61 63 68 65 64 20  |ubmenu attached |
00000820  74 6f 20 74 68 65 0a 33  72 64 20 6f 6e 65 2c 20  |to the.3rd one, |
00000830  69 74 73 65 6c 66 20 63  6f 6e 74 61 69 6e 69 6e  |itself containin|
00000840  67 20 35 20 65 6e 74 72  69 65 73 2e 0a 0a 53 75  |g 5 entries...Su|
00000850  70 70 6f 73 74 20 68 65  6c 70 5f 72 65 67 69 73  |ppost help_regis|
00000860  74 65 72 5f 68 61 6e 64  6c 65 72 20 77 61 73 20  |ter_handler was |
00000870  67 69 76 65 6e 20 74 68  65 20 70 72 65 66 69 78  |given the prefix|
00000880  20 22 48 4c 50 22 0a 0a  4f 6c 64 20 68 65 6c 70  | "HLP"..Old help|
00000890  5f 67 65 6e 6d 65 73 73  61 67 65 20 77 6f 75 6c  |_genmessage woul|
000008a0  64 20 72 65 74 75 72 6e  20 6d 65 73 73 61 67 65  |d return message|
000008b0  73 20 66 72 6f 6d 20 74  61 67 73 0a 0a 20 48 4c  |s from tags.. HL|
000008c0  50 30 20 66 6f 72 20 69  74 65 6d 20 31 0a 20 48  |P0 for item 1. H|
000008d0  4c 50 31 20 20 20 20 20  20 20 20 20 20 32 0a 20  |LP1          2. |
000008e0  48 4c 50 32 20 20 20 20  20 20 20 20 20 20 33 0a  |HLP2          3.|
000008f0  20 48 4c 50 33 20 20 20  20 20 20 20 20 20 20 34  | HLP3          4|
00000900  0a 20 48 4c 50 32 30 20  20 20 20 20 20 20 20 20  |. HLP20         |
00000910  61 0a 20 48 4c 50 32 31  20 20 20 20 20 20 20 20  |a. HLP21        |
00000920  20 62 0a 20 48 4c 50 32  32 20 20 20 20 20 20 20  | b. HLP22       |
00000930  20 20 63 0a 20 48 4c 50  32 33 20 20 20 20 20 20  |  c. HLP23      |
00000940  20 20 20 64 0a 20 48 4c  50 32 34 20 20 20 20 20  |   d. HLP24     |
00000950  20 20 20 20 65 0a 0a 65  74 63 2e 0a 0a 0a 4e 45  |    e..etc....NE|
00000960  57 20 42 45 48 41 56 49  4f 55 52 0a 7e 7e 7e 7e  |W BEHAVIOUR.~~~~|
00000970  7e 7e 7e 7e 7e 7e 7e 7e  7e 0a 0a 46 6f 72 20 69  |~~~~~~~~~..For i|
00000980  74 65 6d 20 62 20 61 62  6f 76 65 2c 20 6e 65 77  |tem b above, new|
00000990  20 63 6f 64 65 20 77 69  6c 6c 20 74 72 79 20 0a  | code will try .|
000009a0  0a 20 48 4c 50 32 54 31  20 20 20 20 20 20 20 20  |. HLP2T1        |
000009b0  20 2d 20 72 65 61 64 20  61 73 20 48 4c 50 32 2c  | - read as HLP2,|
000009c0  20 28 54 29 69 63 6b 65  64 20 31 0a 20 48 4c 50  | (T)icked 1. HLP|
000009d0  32 54 4d 20 20 20 20 20  20 20 20 20 2d 20 72 65  |2TM         - re|
000009e0  61 64 20 61 73 20 48 4c  50 32 2c 20 28 54 29 69  |ad as HLP2, (T)i|
000009f0  63 6b 65 64 20 28 4d 29  75 6c 74 69 2d 70 75 72  |cked (M)ulti-pur|
00000a00  70 6f 73 65 0a 20 48 4c  50 32 31 20 20 20 20 20  |pose. HLP21     |
00000a10  20 20 20 20 20 2d 20 72  65 61 64 20 61 73 20 48  |     - read as H|
00000a20  4c 50 32 31 0a 20 48 4c  50 32 4d 20 20 20 20 20  |LP21. HLP2M     |
00000a30  20 20 20 20 20 2d 20 72  65 61 64 20 61 73 20 48  |     - read as H|
00000a40  4c 50 32 2c 20 28 4d 29  75 6c 74 69 2d 70 75 72  |LP2, (M)ulti-pur|
00000a50  70 6f 73 65 0a 0a 57 68  65 72 65 20 74 68 65 20  |pose..Where the |
00000a60  74 6f 70 20 6f 6e 65 20  77 69 6c 6c 20 62 65 20  |top one will be |
00000a70  73 6f 75 67 68 74 20 66  69 72 73 74 2c 20 26 20  |sought first, & |
00000a80  69 66 20 6e 6f 74 20 66  6f 75 6e 64 2c 20 74 68  |if not found, th|
00000a90  65 20 6e 65 78 74 20 77  69 6c 6c 20 62 65 0a 74  |e next will be.t|
00000aa0  72 69 65 64 2c 20 26 20  73 6f 20 6f 6e 2e 20 49  |ried, & so on. I|
00000ab0  66 20 61 6c 6c 20 66 61  69 6c 20 74 6f 20 79 69  |f all fail to yi|
00000ac0  65 6c 64 20 61 20 6d 65  73 73 61 67 65 20 74 61  |eld a message ta|
00000ad0  67 20 77 68 69 63 68 20  65 78 69 73 74 73 2c 20  |g which exists, |
00000ae0  6e 6f 20 68 65 6c 70 0a  77 69 6c 6c 20 62 65 20  |no help.will be |
00000af0  67 69 76 65 6e 2e 0a 0a  54 68 69 73 20 61 6c 6c  |given...This all|
00000b00  6f 77 73 20 68 65 6c 70  20 74 65 78 74 20 73 70  |ows help text sp|
00000b10  65 63 69 66 69 63 20 74  6f 20 74 68 65 20 74 69  |ecific to the ti|
00000b20  63 6b 65 64 20 63 61 73  65 20 66 6f 72 20 69 74  |cked case for it|
00000b30  65 6d 20 62 2c 20 26 20  69 66 20 6e 6f 74 0a 70  |em b, & if not.p|
00000b40  72 65 73 65 6e 74 2c 20  77 69 6c 6c 20 74 68 65  |resent, will the|
00000b50  6e 20 6c 6f 6f 6b 20 66  6f 72 20 73 6f 6d 65 20  |n look for some |
00000b60  67 65 6e 65 72 61 6c 20  68 65 6c 70 20 74 65 78  |general help tex|
00000b70  74 20 66 6f 72 20 74 68  61 74 20 73 75 62 6d 65  |t for that subme|
00000b80  6e 75 2c 0a 64 65 73 63  72 69 62 69 6e 67 20 61  |nu,.describing a|
00000b90  6c 6c 20 74 69 63 6b 65  64 20 65 6e 74 72 69 65  |ll ticked entrie|
00000ba0  73 2e 20 49 66 20 73 74  69 6c 6c 20 6e 6f 74 20  |s. If still not |
00000bb0  66 6f 75 6e 64 2c 20 69  74 20 64 65 66 61 75 6c  |found, it defaul|
00000bc0  74 73 20 74 6f 20 74 68  65 20 6f 6c 64 0a 63 61  |ts to the old.ca|
00000bd0  73 65 2c 20 26 20 69 66  20 74 68 61 74 20 64 6f  |se, & if that do|
00000be0  65 73 6e 27 74 20 65 78  69 73 74 2c 20 61 20 67  |esn't exist, a g|
00000bf0  65 6e 65 72 61 6c 20 6d  75 6c 74 69 2d 70 75 72  |eneral multi-pur|
00000c00  70 6f 73 65 20 74 61 67  20 66 6f 72 20 74 68 65  |pose tag for the|
00000c10  20 73 75 62 6d 65 6e 75  0a 69 73 20 74 72 69 65  | submenu.is trie|
00000c20  64 2e 0a 0a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |d...************|
00000c30  2a 2a 2a 2a 2a 0a 0a 46  6f 72 20 69 74 65 6d 20  |*****..For item |
00000c40  63 2c 20 6e 65 77 20 63  6f 64 65 20 77 69 6c 6c  |c, new code will|
00000c50  20 74 72 79 0a 0a 20 48  4c 50 32 47 32 20 20 20  | try.. HLP2G2   |
00000c60  20 20 20 20 20 20 2d 20  72 65 61 64 20 61 73 20  |      - read as |
00000c70  48 4c 50 32 2c 20 28 47  29 72 65 79 65 64 2d 6f  |HLP2, (G)reyed-o|
00000c80  75 74 20 32 0a 20 48 4c  50 32 47 4d 20 20 20 20  |ut 2. HLP2GM    |
00000c90  20 20 20 20 20 2d 20 65  74 63 0a 20 48 4c 50 32  |     - etc. HLP2|
00000ca0  54 32 0a 20 48 4c 50 32  54 4d 0a 20 48 4c 50 32  |T2. HLP2TM. HLP2|
00000cb0  32 0a 20 48 4c 50 32 4d  0a 0a 41 73 20 74 68 69  |2. HLP2M..As thi|
00000cc0  73 20 65 6e 74 72 79 20  69 73 20 67 72 65 79 65  |s entry is greye|
00000cd0  64 20 6f 75 74 20 28 66  61 64 65 64 29 2c 20 63  |d out (faded), c|
00000ce0  6f 64 65 20 66 69 72 73  74 20 6c 6f 6f 6b 73 20  |ode first looks |
00000cf0  66 6f 72 20 74 61 67 20  64 65 73 63 72 69 62 69  |for tag describi|
00000d00  6e 67 0a 74 68 69 73 2c  20 61 73 20 69 74 20 69  |ng.this, as it i|
00000d10  73 20 6d 6f 72 65 20 73  69 67 6e 69 66 69 63 61  |s more significa|
00000d20  6e 74 20 74 68 61 6e 20  74 69 63 6b 65 64 20 73  |nt than ticked s|
00000d30  74 61 74 75 73 2e 20 49  66 20 6e 6f 74 20 70 72  |tatus. If not pr|
00000d40  65 73 65 6e 74 2c 20 74  72 79 0a 67 65 6e 65 72  |esent, try.gener|
00000d50  61 6c 20 67 72 65 79 65  64 2d 6f 75 74 20 68 65  |al greyed-out he|
00000d60  6c 70 2c 20 26 20 69 66  20 73 74 69 6c 6c 20 6e  |lp, & if still n|
00000d70  6f 74 20 66 6f 75 6e 64  2c 20 62 65 68 61 76 65  |ot found, behave|
00000d80  20 61 73 20 66 6f 72 20  61 6e 20 75 6e 66 61 64  | as for an unfad|
00000d90  65 64 0a 65 6e 74 72 79  2e 0a 0a 2a 2a 2a 2a 2a  |ed.entry...*****|
00000da0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0a 0a 4e 6f  |************..No|
00000db0  74 69 63 65 20 74 68 61  74 20 77 68 65 6e 20 6f  |tice that when o|
00000dc0  76 65 72 20 74 68 65 20  64 6f 74 74 65 64 20 6c  |ver the dotted l|
00000dd0  69 6e 65 20 73 65 70 61  72 61 74 6f 72 2c 20 6f  |ine separator, o|
00000de0  6c 64 20 63 6f 64 65 20  74 72 69 65 73 20 74 61  |ld code tries ta|
00000df0  67 0a 20 48 4c 50 32 20  77 68 69 63 68 20 69 73  |g. HLP2 which is|
00000e00  20 69 6e 61 70 70 72 6f  70 72 69 61 74 65 2e 0a  | inappropriate..|
00000e10  0a 4e 65 77 20 63 6f 64  65 20 77 69 6c 6c 20 74  |.New code will t|
00000e20  72 79 0a 20 48 4c 50 32  4e 20 20 20 20 20 20 20  |ry. HLP2N       |
00000e30  20 20 20 2d 20 72 65 61  64 20 61 73 20 48 4c 50  |   - read as HLP|
00000e40  32 2c 20 28 4e 29 6f 20  69 74 65 6d 20 73 65 6c  |2, (N)o item sel|
00000e50  65 63 74 65 64 0a 20 48  4c 50 32 4d 0a 0a 2a 2a  |ected. HLP2M..**|
00000e60  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0a  |***************.|
00000e70  0a 49 66 20 6d 65 6e 75  20 6d 61 6b 65 72 20 66  |.If menu maker f|
00000e80  75 6e 63 74 69 6f 6e 20  72 65 67 69 73 74 65 72  |unction register|
00000e90  65 64 20 61 20 73 74 72  69 6e 67 20 70 6f 69 6e  |ed a string poin|
00000ea0  74 65 72 20 77 69 74 68  0a 68 65 6c 70 5f 72 65  |ter with.help_re|
00000eb0  67 69 73 74 65 72 5f 69  6e 73 65 72 74 2c 20 74  |gister_insert, t|
00000ec0  68 69 73 20 74 65 78 74  20 6d 61 79 20 62 65 20  |his text may be |
00000ed0  69 6e 63 6c 75 64 65 64  20 77 69 74 68 69 6e 20  |included within |
00000ee0  61 20 6d 65 73 73 61 67  65 20 62 79 0a 69 6e 63  |a message by.inc|
00000ef0  6c 75 64 69 6e 67 20 74  68 65 20 63 68 61 72 61  |luding the chara|
00000f00  63 74 65 72 20 70 61 69  72 20 27 25 73 27 20 77  |cter pair '%s' w|
00000f10  69 74 68 69 6e 20 74 68  65 20 6d 65 73 73 61 67  |ithin the messag|
00000f20  65 20 74 65 78 74 2e 20  41 20 6d 65 73 73 61 67  |e text. A messag|
00000f30  65 20 74 65 78 74 0a 6d  61 79 20 69 6e 63 6c 75  |e text.may inclu|
00000f40  64 65 20 6f 6e 6c 79 20  6f 6e 65 20 73 75 63 68  |de only one such|
00000f50  20 72 65 66 65 72 65 6e  63 65 2e 0a 0a 2a 2a 2a  | reference...***|
00000f60  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0a 0a  |**************..|
00000f70  41 6c 6c 20 6d 65 73 73  61 67 65 73 20 6d 61 79  |All messages may|
00000f80  20 63 6f 6e 74 61 69 6e  20 74 68 65 20 6d 65 6e  | contain the men|
00000f90  75 20 69 74 65 6d 20 74  65 78 74 20 69 74 73 65  |u item text itse|
00000fa0  6c 66 2c 20 62 79 20 69  6e 63 6c 75 64 69 6e 67  |lf, by including|
00000fb0  20 74 68 65 0a 63 68 61  72 61 63 74 65 72 20 70  | the.character p|
00000fc0  61 69 72 20 27 25 74 27  20 77 69 74 68 69 6e 20  |air '%t' within |
00000fd0  74 68 65 20 6d 65 73 73  61 67 65 20 74 65 78 74  |the message text|
00000fe0  2e 20 54 68 65 20 6d 65  6e 75 20 69 74 65 6d 20  |. The menu item |
00000ff0  74 65 78 74 2c 0a 61 75  74 6f 6d 61 74 69 63 61  |text,.automatica|
00001000  6c 6c 79 20 73 75 72 72  6f 75 6e 64 65 64 20 62  |lly surrounded b|
00001010  79 20 71 75 6f 74 65 73  2c 20 6d 61 79 20 62 65  |y quotes, may be|
00001020  20 69 6e 63 6c 75 64 65  64 20 77 69 74 68 20 74  | included with t|
00001030  68 65 20 70 61 69 72 20  27 25 71 27 2e 0a 4f 6e  |he pair '%q'..On|
00001040  6c 79 20 6f 6e 65 20 73  75 63 68 20 70 61 69 72  |ly one such pair|
00001050  20 6d 61 79 20 61 70 70  65 61 72 20 69 6e 20 61  | may appear in a|
00001060  20 6d 65 73 73 61 67 65  20 74 65 78 74 2e 0a 0a  | message text...|
00001070  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00001080  2a 0a 0a 0a 45 58 41 4d  50 4c 45 53 20 4f 46 20  |*...EXAMPLES OF |
00001090  55 53 45 0a 7e 7e 7e 7e  7e 7e 7e 7e 7e 7e 7e 7e  |USE.~~~~~~~~~~~~|
000010a0  7e 7e 7e 0a 0a 43 6f 6e  73 69 64 65 72 20 61 20  |~~~..Consider a |
000010b0  6d 65 6e 75 20 63 6f 6e  74 61 69 6e 69 6e 67 20  |menu containing |
000010c0  61 20 76 61 72 69 61 62  6c 65 20 6c 65 6e 67 74  |a variable lengt|
000010d0  68 20 72 75 6e 2d 74 69  6d 65 20 64 65 70 65 6e  |h run-time depen|
000010e0  64 65 6e 74 20 6c 69 73  74 20 6f 66 0a 6f 62 6a  |dent list of.obj|
000010f0  65 63 74 73 2c 20 77 69  74 68 20 61 20 73 69 6e  |ects, with a sin|
00001100  67 6c 65 20 6f 6e 65 20  74 69 63 6b 65 64 2c 20  |gle one ticked, |
00001110  6d 61 72 6b 69 6e 67 20  73 6f 6d 65 20 66 6f 72  |marking some for|
00001120  6d 20 6f 66 20 75 73 65  72 20 73 65 6c 65 63 74  |m of user select|
00001130  65 64 0a 63 68 6f 69 63  65 2e 0a 0a 53 75 70 70  |ed.choice...Supp|
00001140  6f 73 65 20 74 68 69 73  20 63 6f 6e 74 61 69 6e  |ose this contain|
00001150  73 20 74 68 65 20 69 74  65 6d 73 3a 20 6a 6f 68  |s the items: joh|
00001160  6e 2c 20 70 61 75 6c 2c  20 67 65 6f 72 67 65 20  |n, paul, george |
00001170  26 20 72 69 6e 67 6f 2e  0a 0a 46 6f 72 20 70 72  |& ringo...For pr|
00001180  65 66 69 78 20 48 4c 50  2c 20 61 73 20 61 62 6f  |efix HLP, as abo|
00001190  76 65 2c 20 77 65 20 63  61 6e 20 6f 62 74 61 69  |ve, we can obtai|
000011a0  6e 20 68 65 6c 70 20 6f  66 20 74 68 65 20 66 6f  |n help of the fo|
000011b0  72 6d 20 22 43 68 6f 6f  73 65 20 27 6a 6f 68 6e  |rm "Choose 'john|
000011c0  27 20 62 79 0a 63 6c 69  63 6b 69 6e 67 20 53 65  |' by.clicking Se|
000011d0  6c 65 63 74 20 6f 72 20  41 64 6a 75 73 74 22 20  |lect or Adjust" |
000011e0  65 74 63 20 6f 72 20 22  27 70 61 75 6c 27 20 69  |etc or "'paul' i|
000011f0  73 20 74 68 65 20 63 75  72 72 65 6e 74 6c 79 20  |s the currently |
00001200  73 65 6c 65 63 74 65 64  20 6f 62 6a 65 63 74 22  |selected object"|
00001210  2c 0a 61 73 20 61 70 70  72 6f 70 72 69 61 74 65  |,.as appropriate|
00001220  2c 20 77 69 74 68 20 6a  75 73 74 20 74 77 6f 20  |, with just two |
00001230  6d 65 73 73 61 67 65 73  3a 0a 0a 48 4c 50 54 4d  |messages:..HLPTM|
00001240  3a 25 71 20 69 73 20 74  68 65 20 63 75 72 72 65  |:%q is the curre|
00001250  6e 74 6c 79 20 73 65 6c  65 63 74 65 64 20 6f 62  |ntly selected ob|
00001260  6a 65 63 74 0a 48 4c 50  4d 3a 43 68 6f 6f 73 65  |ject.HLPM:Choose|
00001270  20 25 71 20 62 79 20 63  6c 69 63 6b 69 6e 67 20  | %q by clicking |
00001280  53 65 6c 65 63 74 20 6f  72 20 41 64 6a 75 73 74  |Select or Adjust|
00001290  0a 0a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..**************|
000012a0  2a 2a 2a 0a 0a 46 6f 72  20 61 20 6d 6f 72 65 20  |***..For a more |
000012b0  63 6f 6d 70 6c 65 78 20  63 61 73 65 2c 20 63 6f  |complex case, co|
000012c0  6e 73 69 64 65 72 20 61  20 6d 65 6e 75 20 63 6f  |nsider a menu co|
000012d0  70 79 69 6e 67 20 74 68  65 20 72 6f 6f 74 20 6d  |pying the root m|
000012e0  65 6e 75 20 6f 66 20 74  68 65 20 52 49 53 43 0a  |enu of the RISC.|
000012f0  4f 53 20 33 20 46 69 6c  65 72 2e 0a 0a 48 65 72  |OS 3 Filer...Her|
00001300  65 2c 20 77 65 20 63 61  6e 20 73 75 70 70 6c 79  |e, we can supply|
00001310  20 6f 6c 64 20 73 74 79  6c 65 20 74 61 67 73 20  | old style tags |
00001320  73 70 65 63 69 66 69 63  20 74 6f 20 65 61 63 68  |specific to each|
00001330  20 69 74 65 6d 2c 20 62  75 74 20 6d 61 6b 65 20  | item, but make |
00001340  74 68 65 20 66 69 6c 65  0a 73 70 65 63 69 66 69  |the file.specifi|
00001350  63 20 6f 6e 65 20 69 6e  63 6c 75 64 65 20 74 68  |c one include th|
00001360  65 20 74 65 78 74 20 27  3c 66 69 6c 65 20 6e 61  |e text '<file na|
00001370  6d 65 3e 27 20 6f 72 20  27 74 68 65 20 73 65 6c  |me>' or 'the sel|
00001380  65 63 74 65 64 20 6f 62  6a 65 63 74 73 27 20 62  |ected objects' b|
00001390  79 0a 75 73 69 6e 67 20  74 68 65 20 25 73 20 63  |y.using the %s c|
000013a0  68 61 72 61 63 74 65 72  73 20 26 20 6d 61 6b 69  |haracters & maki|
000013b0  6e 67 20 74 68 65 20 63  6f 72 72 65 73 70 6f 6e  |ng the correspon|
000013c0  64 69 6e 67 20 6d 65 6e  75 20 6d 61 6b 65 72 20  |ding menu maker |
000013d0  66 75 6e 63 74 69 6f 6e  0a 72 65 67 69 73 74 65  |function.registe|
000013e0  72 20 61 20 73 75 69 74  61 62 6c 65 20 73 74 72  |r a suitable str|
000013f0  69 6e 67 20 77 69 74 68  20 68 65 6c 70 5f 72 65  |ing with help_re|
00001400  67 69 73 74 65 72 5f 69  6e 73 65 72 74 2e 0a 0a  |gister_insert...|
00001410  54 68 69 73 20 65 78 61  6d 70 6c 65 20 61 6c 73  |This example als|
00001420  6f 20 69 6c 6c 75 73 74  72 61 74 65 73 20 74 68  |o illustrates th|
00001430  61 74 20 77 68 69 6c 65  20 65 61 63 68 20 69 74  |at while each it|
00001440  65 6d 20 6e 65 65 64 73  20 69 74 73 20 6f 77 6e  |em needs its own|
00001450  20 68 65 6c 70 20 74 65  78 74 2c 0a 74 6f 20 63  | help text,.to c|
00001460  6f 76 65 72 20 74 68 65  20 66 61 64 65 64 20 63  |over the faded c|
00001470  61 73 65 73 20 77 65 20  63 61 6e 20 75 73 65 20  |ases we can use |
00001480  61 20 73 69 6e 67 6c 65  20 6d 65 73 73 61 67 65  |a single message|
00001490  2e 20 54 68 75 73 3a 0a  0a 48 4c 50 47 4d 3a 54  |. Thus:..HLPGM:T|
000014a0  68 69 73 20 6f 70 74 69  6f 6e 20 69 73 20 67 72  |his option is gr|
000014b0  65 79 65 64 20 6f 75 74  20 62 65 63 61 75 73 65  |eyed out because|
000014c0  20 74 68 65 72 65 20 61  72 65 20 6e 6f 20 73 65  | there are no se|
000014d0  6c 65 63 74 65 64 20 6f  62 6a 65 63 74 73 2e 0a  |lected objects..|
000014e0  0a 57 69 6c 6c 20 63 6f  76 65 72 20 61 6c 6c 20  |.Will cover all |
000014f0  73 75 63 68 20 63 61 73  65 73 2e 0a 0a 2a 2a 2a  |such cases...***|
00001500  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0a 0a  |**************..|
00001510  53 74 69 6c 6c 20 77 69  74 68 20 74 68 65 20 61  |Still with the a|
00001520  62 6f 76 65 20 65 78 61  6d 70 6c 65 2c 20 6e 6f  |bove example, no|
00001530  74 69 63 65 20 68 6f 77  20 77 69 74 68 20 74 68  |tice how with th|
00001540  65 20 72 65 61 6c 20 66  69 6c 65 72 2c 20 6d 6f  |e real filer, mo|
00001550  76 69 6e 67 20 6f 76 65  72 20 61 0a 73 75 62 6d  |ving over a.subm|
00001560  65 6e 75 20 26 20 70 6f  73 69 74 69 6f 6e 69 6e  |enu & positionin|
00001570  67 20 74 68 65 20 70 6f  69 6e 74 65 72 20 62 65  |g the pointer be|
00001580  74 77 65 65 6e 20 74 68  65 20 74 69 74 6c 65 20  |tween the title |
00001590  26 20 74 6f 70 20 69 74  65 6d 20 28 73 6f 20 74  |& top item (so t|
000015a0  68 61 74 20 6e 6f 0a 69  74 65 6d 20 69 73 20 73  |hat no.item is s|
000015b0  65 6c 65 63 74 65 64 29  2c 20 63 61 75 73 65 73  |elected), causes|
000015c0  20 52 49 53 43 20 4f 53  20 33 20 20 74 6f 20 67  | RISC OS 3  to g|
000015d0  69 76 65 20 69 6e 61 70  70 72 6f 70 72 69 61 74  |ive inappropriat|
000015e0  65 20 68 65 6c 70 2c 20  61 73 20 74 68 6f 75 67  |e help, as thoug|
000015f0  68 0a 77 65 20 77 65 72  65 20 73 74 69 6c 6c 20  |h.we were still |
00001600  69 6e 20 74 68 65 20 70  61 72 65 6e 74 20 6d 65  |in the parent me|
00001610  6e 75 2e 0a 0a 54 68 69  73 20 6e 65 77 20 63 6f  |nu...This new co|
00001620  64 65 20 61 6c 6c 6f 77  73 20 79 6f 75 72 20 6f  |de allows your o|
00001630  77 6e 20 70 72 6f 67 72  61 6d 73 20 74 6f 20 61  |wn programs to a|
00001640  76 6f 69 64 20 73 75 63  68 20 65 72 72 6f 72 73  |void such errors|
00001650  20 2d 20 77 69 74 68 20  61 0a 73 75 69 74 61 62  | - with a.suitab|
00001660  6c 65 20 27 4e 27 20 74  79 70 65 20 74 61 67 2c  |le 'N' type tag,|
00001670  20 79 6f 75 20 63 61 6e  20 70 72 6f 76 69 64 65  | you can provide|
00001680  20 61 20 6d 65 73 73 61  67 65 20 64 65 73 63 72  | a message descr|
00001690  69 62 69 6e 67 20 74 68  65 20 67 65 6e 65 72 61  |ibing the genera|
000016a0  6c 0a 70 75 72 70 6f 73  65 20 6f 66 20 74 68 65  |l.purpose of the|
000016b0  20 73 75 62 6d 65 6e 75  20 63 6f 6e 63 65 72 6e  | submenu concern|
000016c0  65 64 2e 0a 0a 48 6f 77  65 76 65 72 2c 20 65 76  |ed...However, ev|
000016d0  65 6e 20 69 66 20 79 6f  75 20 6f 6d 69 74 20 74  |en if you omit t|
000016e0  68 69 73 2c 20 61 74 20  77 6f 72 73 74 20 79 6f  |his, at worst yo|
000016f0  75 20 67 65 74 20 6e 6f  20 68 65 6c 70 2c 20 77  |u get no help, w|
00001700  68 69 63 68 20 69 73 20  72 61 74 68 65 72 0a 62  |hich is rather.b|
00001710  65 74 74 65 72 20 74 68  61 6e 20 6d 69 73 6c 65  |etter than misle|
00001720  61 64 69 6e 67 20 64 69  72 65 63 74 69 6f 6e 73  |ading directions|
00001730  2e 0a                                             |..|
00001732