THE WELCH COMPANY
440 Davis Court #1602
San Francisco, CA 94111-2496
415 781 5700
rodwelch@pacbell.net


S U M M A R Y


DIARY: November 7, 2002 11:52 PM Thursday; Rod Welch

Create new function to update outline numbers in SDS.

1...Summary/Objective
2...Outlining and Lists Aid Flexible Structure to Augment Intelligence
3...Outline and Lists Support Flexible Structure for Planning and Analysis
...........Tab Begins Outlining on Col 6 in Editor and 13 in SDS
...........Outline Lists Begin on Column 6 in Editor and 13 in SDS
4...User Interface Transparent with F2 Save Function
5...000000 Macro 207 List and Outline Refresh Order and Sequencing
....Numerical Outline List Maximum Two Characters 1 - 99
6...000008 Macro 153 Change PF2 to Call Macro 207 with Save Command
7...000008 Macro 142 Save Add Call to Outline Macro 207
8...Tab Sets Outline Structure for Editor and SDS Macro 138 in 000008
9...000008 Macro 138 Tab Sets Consistent Outline Structure Editor and SDS


..............
Click here to comment!

CONTACTS 

SUBJECTS
Outline Update Numbers and Letters for Lists
Outline Nums and Letters Update
Outline Numbers Letters for Lists
Save, Primary, F2, macro 142, 0702051
F02 Save Macro 207 Update Outline Structures and Lists

0807 -
0807 -    ..
0808 - Summary/Objective
0809 -
080901 - Follow up ref SDS 10 0000, ref SDS 5 0001.
080902 -
080903 - Created support to make outlining and lists fast and easy.  Processing
080904 - occurs automatically with the F2 "save" function and so requires
080905 - nothing to learn.  Users simply rely on understanding how outlining
080906 - and lists are commonly used, and need only be concerned with setting
080907 - the start of an outline with 1, A or a, and a dot or an ending
080908 - parenthese.  When F2 is pressed, all structures, including segmented
080909 - lists, are all updated.  Support is transparent so that people do not
080910 - have to stop and select outline format choices, but merely move to a
080911 - column and begin work.  This lowers the learning curve and saves time
080912 - switching between format modes.
080914 -      ..
080915 -     [On 021109 changed support for unordered lists using a bullet
080916 -     format. ref SDS 11 0001
080918 -      ..
080919 -     [On 021110 notified Gary Johnson about improvement. ref SDS 12
080920 -     0001
080922 -      ..
080923 -     [On 030115 Gary Johnson commented on advantages of SDS editing
080924 -     support. ref SDS 13 YM7H
080925 -
080926 -
080927 -
080929 -  ..
0810 -
0811 -
0812 - Evaluation
0813 -
081301 - Outlining and Lists Aid Flexible Structure to Augment Intelligence
081302 -
081303 - The new system of outline support complements the underline feature
081304 - created on 021016, ref SDS 5 0001, and the extra security for
081305 - confidentiality, created earlier today. ref SDS 10 0001
081307 -  ..
081308 - Numerical lists are limited to "99" entries, per below, ref SDS 0
081309 - 9T3M, which seems more than would be required for outlining in an SDS
081310 - record, since typically outlining has multiple nested levels.
081312 -  ..
081313 - Usablity is fairly fast and easy enabling people to create outlines
081314 - and lists by merely moving the cursor to a column of choice, and start
081315 - typing.  The system can freeze if outlining becomes very random; but,
081316 - maintaining alignment of structure, once established, gives the user a
081317 - very fast and facile outlining tool, see below. ref SDS 0 WG6G  The
081318 - Tab key separates 5 levels by 4 columns, so this makes using outlining
081319 - fast and easy without having to rememeber or relearn formatting.
081320 - ref SDS 0 PX8H  The code maintains a uniform outline structure, simply
081321 - by pressing F2 to save the record or file, based on finding an element
081322 - of the outline structure in the column of choice.
081324 -       ..
081325 -      [On 030115 Gary comments on unique advantages of SDS editing.
081326 -      ref SDS 13 YM7H
081328 -       ..
081329 -      [On 030124 developed feature to shift text to another left margin
081330 -      without using cut and paste. ref SDS 16 0001
081332 -  ..
081333 - Testing the record on 010725, which has over 2000 lines, shows the
081334 - "save" command, with all of the overhead tasks it has been doing, and
081335 - now increased by updating outline structures, still takes less than
081336 - one second to run. ref SDS 3 0001  POIMS has nearly 4K lines, and
081337 - takes less than 2 seconds, barely a pause in the thought process.  For
081338 - most files, adding outline support is completely transparent,
081339 - requiring no time nor preparation.
081341 -  ..
081342 - Processing common formats (see below, ref SDS 0 W18M) offers flexible
081343 - usability for outlining and managing lists in most of the ways that
081344 - typically occur to the imagination.  The new system incorporated into
081345 - the "save" command, called by F2, adds value to existing work practice
081346 - by saving a lot of time maintaining complex structures automatically
081347 - when changed by moving, adding and deleting new elements to a list and
081348 - an outline.
081350 -  ..
081351 - We start today processing only three (6) formats. ref SDS 0 W18M  If
081352 - this works, we can add support for other common formats that use
081353 - double parentheses and possibly Roman Numerals.  The only big issue is
081354 - time.  The more times we have to march through a file, the longer it
081355 - takes. Will also bump up against compiler space before too long.
081356 -
081357 -    [On 030118 outlining code scheme for macro 207 was improved.
081358 -    ref SDS 14 0001
081360 -  ..
081361 - Problems....
081362 -
081363 -    1.  The current code created today requires attention to alignment,
081364 -        so that structures once adopted be maintained, rather than
081365 -        simply jump around.  Alignment means keeping consistent columns
081366 -        for the dot and the closing parentheses that punctuate outline
081367 -        structures.  Even though it is not good practice, would like
081368 -        for the user to have the option of creating whatever alignment
081369 -        seems useful at the moment, and let the system adjust to it;
081370 -        but, we do not seem to be there yet.
081371 -
081372 -            [On 020506 this worked was performed. ref SDS 18 0001
081374 -         ..
081375 -        If the structures are not aligned, the program seems to freeze
081376 -        up.  In most records this is not a problem, because outlines
081377 -        are simple enough to visually grasp alignment.  However, in a
081378 -        large record with a lot of variety in outline structures, and
081379 -        where levels are separated by narrative, it is harder to
081380 -        visually grasp all of the issues.  Therefore, while the user
081381 -        can begin outline levels anywere, care is needed to start new
081382 -        structures on different column alignment, if a prior structure
081383 -        is intended to be continued.
081385 -         ..
081386 -        Practice has shown that outline levels should be separated by
081387 -        four (4) columns.  The Tab key is configured to facilitate four
081388 -        column separation, and also maintains consistent structures,
081389 -        per below. ref SDS 0 PV3K
081391 -              ..
081392 -             [On 020504 example is review of FAR that is quite long and
081393 -             has a lot of variety to correlate with a federal
081394 -             publication.  This record combines editor outlining to
081395 -             list points of analysis, and also outlining that
081396 -             correlates to the original document to aid understanding.
081397 -             ref SDS 4 XS7N
081399 -         ..
081400 -    2.  Code does not support double parenthese, e.g., (a), (1), even
081401 -        though this format is supported for justify and adding anchors.
081402 -        If double parentheses are encountered by macro 207, the format
081403 -        is maintained for the first entry, but then the opening "("
081404 -        parentheses is removed for each subsequent entry in the same
081405 -        list, which creates a mismatch in the format that is not
081406 -        acceptable.  For the time being the solution is to use a single
081407 -        parentheses, if the original source has double.
081409 -         ..
081410 -        This seems like it might be easy to fix, but no time right now.
081411 -        So, at this time only support "open" partheses e.g., 3).
081412 -
081413 -            [On 020506 this work was performed. ref SDS 18 0001
081415 -         ..
081416 -    3.  Do not have a good way to allow the user to start a structure
081417 -        at an intermediate level below 1, a or A, and to skip around.
081418 -        The code is designed to force order, so that the user can edit
081419 -        easily by moving things around and F2 to save record
081420 -        automatically resets the order. This saves time when that is
081421 -        needed, which generally is the primary need for outlining
081422 -        support; but, it, also, has the effect of not allowing out of
081423 -        order structures.
081425 -         ..
081426 -        There are two solutions.
081428 -              ..
081429 -         a.  An out of order structure can be started at any level, if
081430 -             it is not in the line of an ordered structure above it.
081431 -             This provides flexibility to simply list outline entries
081432 -             at random, and avoid having order forced.  This is an easy
081433 -             solution, but it is not easy to remember when it comes up
081434 -             only rarely.
081435 -
081436 -                  [On 020504 example is review of FAR that starts an
081437 -                  outline structure with letter "l", and this is
081438 -                  accomplished by indenting beyond other structures, so
081439 -                  that the order from above is not imposed. ref SDS 4
081440 -                  PL6N
081442 -              ..
081443 -         b.  Another solution where the desire is to start an ordered
081444 -             structure and have the system maintain the structure is to
081445 -             simply plug empty parts of an outline that are not needed
081446 -             with empty data.
081447 -
081448 -                  [On 020504 example is review of FAR. ref SDS 4 VV5G
081449 -
081450 -
081451 -
081452 -
081453 -
081454 -
081455 -
081456 -
081458 -  ..
0815 -
0816 -
0817 - Planning
0818 -
081801 - Outline and Lists Support Flexible Structure for Planning and Analysis
081802 -
081803 - List and outline format is created in SDS by moving the cursor to a
081804 - position of choice, and start typing.  SDS will support numeric
081805 - listings from 1 - 99, per below, ref SDS 0 9T3M, since with nested
081806 - levels, this offers a very large array, illustrated by examples cited
081807 - below. ref SDS 0 LP8L
081809 -  ..
081810 - The ease and flexiblity of this procedure supports objectives for
081811 - flexible structure accomplished with SDS line numbers, explained on
081812 - 890523. ref SDS 1 T1VQ  Other features that enable flexible structure
081813 - are Control Fields to segment narrative based on context, and subjects
081814 - that associate and organize information into organic structures that
081815 - leverage understanding and increase the speed of retrieval.
081816 - Similarly, Reference fields permit entering an unlimited citations to
081817 - other records forward and backward in time, and constructing
081818 - biblography with links to original sources cited in the narrative.
081819 - Now, today, flexible outlining extends this design concept.
081821 -     ..
081822 -    [On 030118 outlining code scheme for macro 207 was improved.
081823 -    ref SDS 14 0001
081825 -  ..
081826 - Would like SDS to automatically maintain sequencing of lists and
081827 - outline formats in documents and SDS, as shown at the following
081828 - records...
081829 -
081830 -   •  Nested list...................... 021019, ref SDS 6 RZ3N
081831 -
081832 -        Shown further at............... 021019, ref SDS 6 IT8F
081834 -       ..
081835 -   •  Numerical list................... 021031, ref SDS 8 QX5L
081837 -       ..
081838 -   •  Numerical list................... 021103, ref SDS 9 OF6F
081840 -       ..
081841 -   •  Num list with para............... 021103, ref SDS 9 I16O
081842 -
081844 -  ..
081845 - There are two big issues....
081846 -
081847 -    [On 030118 outlining code scheme for macro 207 was improved.
081848 -    ref SDS 14 0001
081849 -
081850 -       1.  What establishes an outline so the code can end processing?
081852 -            ..
081853 -           We can look for a standard format that starts an outline
081854 -           using the following criteria....
081855 -
081856 -                          ssn.s
081857 -                          ssn)s
081858 -
081859 -           ...which is read as space, space, number, dot, space, or
081860 -           parentheses, typically rendered as follows...
081861 -
081862 -                  1.  Standard formats to start outline or list
081863 -                  A.
081864 -                  a.
081866 -                       ..
081867 -                  1)
081868 -                  A)
081869 -                  a)
081871 -            ..
081872 -           This provides 6 formats for outlining.  We might add formats
081873 -           for double parentheses (1), which is common, and possibly
081874 -           roman numerals, I., II, -  these are a little trickery for
081875 -           long lists, requires building a special counting processor.
081877 -            ..
081878 -           Implementation begins with the Tab key to set an outline
081879 -           level on standard 4 column offsets, per above. ref SDS 0
081880 -           PP9H  Enters a supported format to start a list/outline, (1,
081881 -           A, a with a dot or ending parentheses), and then can enter
081882 -           any character to start a subsidiary element of the list in
081883 -           the same column on subsequent lines.  The code zones this
081884 -           one column, and investigates the entire file for lines that
081885 -           qualify as an outline based on the starting structure.  When
081886 -           a possible outline structure is encountered, the line is
081887 -           further tested, and the lines above and below it are tested
081888 -           to verify this is a continuing outline structure, and not a
081889 -           body of somthing else, or the start of a new outline, as
081890 -           follows...
081892 -            ..
081893 -           Example...
081894 -
081895 -                        1.    A.     a.
081896 -                        2.    B.     b.
081897 -                        3.    C.     c.
081899 -            ..
081900 -           Example...
081901 -                        1)    A)     a)
081902 -                        2)    B)     b)
081903 -                        3)    C)     c)
081905 -            ..
081906 -           Tab Begins Outlining on Col 6 in Editor and 13 in SDS
081907 -           Outline Lists Begin on Column 6 in Editor and 13 in SDS
081908 -
081909 -           Use macro a 1361 that reads a string of 6 characters to
081910 -           evaluate whether the dot space condition is an actual
081911 -           outline.  This design means that in the editor, outlining
081912 -           and lists must begin with the dot at least on column 7, per
081913 -           below. ref SDS 0 I94O
081915 -            ..
081916 -           Once the code determines there is an outline structure it
081917 -           will zone four columns that meet that test, ref SDS 0 3W6O,
081918 -           and then increment everything in those columns until
081919 -           something is encountered that does not meet the test using
081920 -           the macro 1361 method described above. ref SDS 0 TC6H  So in
081921 -           this case, the string "d List" in the heading line of the
081922 -           paragraph above falls below the list above it that ends with
081923 -           number "3." and so fails the test for an outline structure,
081924 -           which ends the loop, and then looks for another dot space on
081925 -           the dot space columns to see if the outline is continued in
081926 -           a segmented structure, per below. ref SDS 0 3W6O
081928 -            ..
081929 -       2.  Nested lists support flexible structure.
081931 -            ..
081932 -           Targeting a generic condition of ssnn.s, will find all of
081933 -           the following formats...
081934 -
081935 -              A.
081936 -              B.
081937 -                  1.
081938 -                  2.
081940 -                           ..
081941 -                      a.
081942 -                      b.
081943 -                          1)
081944 -                          2)
081945 -                      c.
081947 -                       ..
081948 -                  3.
081949 -              C.
081950 -              D.
081952 -            ..
081953 -       3.  Support for segmented lists is provided because a lot of
081954 -           times we have paragraphs of a document separated by control
081955 -           fields to assign subjects, and narrative for analyses.  We
081956 -           want the code to jump a body of text and recognize that a
081957 -           list continues, as in the following example, continuing the
081958 -           outline from above.
081960 -                   ..
081961 -              E.  This is an example of a segmented list that is
081962 -                  supported by the outline processing.
081964 -            ..
081965 -           The code starts over if it encounters a segmented list that
081966 -           begins with a new set of parameters for 1, A or a. The next
081967 -           outline illustrates this feature.
081968 -
081969 -              A.  This is an example of starting a new sequence for
081970 -                  outlini 3.
081971 -                  ..
081972 -              B.  Here is a second item in the sample list.
081973 -
081975 -            ..
081976 -       4.  When an outline structure is processed, change the dot space
081977 -           to unique symbols that will be passed over on the next
081978 -           search for potential outline structures ssn.s....
081979 -
081980 -              A^[
081981 -              C.
081982 -                  1^[
081983 -                  2.
081985 -                       ..
081986 -                      a^[
081987 -                      d.
081989 -                   ..
081990 -                  3.
081992 -               ..
081993 -              D.
081995 -            ..
081996 -           When all outline structures in the file have been processed,
081997 -           restore dot or parenths space with a global change to the
081998 -           temporary symbols.
081999 -
082000 -
082002 -  ..
082003 - User Interface Transparent with F2 Save Function
082004 -
082005 - Initially developed the code if a file called tst, and worked on 4 or
082006 - 5 different schemes that could be tested using the same tst file.
082008 -  ..
082009 - Eventually got some code to run; after a day or so of refinement,
082010 - settled on a particular design, and put it in a macro file 04412. Used
082011 - this to test operation on SDS records and on documents, particularly
082012 - POIMS and N 4.  This revealed more refinements needed to make the
082013 - system operate without any effort by the User other than what has been
082014 - done all along creating lists and outlines when and as needed.
082016 -  ..
082017 - Once the code was "debugged" decided to try and compile the operation
082018 - in order to increase the speed and reduce the overhead of loading
082019 - another macro fi 4.  Put it in macro 207 in 000000 and was fortunate
082020 - that this compiled without any errors saying we have exceeded compiler
082021 - space, which was a big problem on 021025. ref SDS 7 N66O
082023 -  ..
082024 - Wound up deleting macro file 01 04 044120 and sds 03 04412, which was
082025 - set up initially on the asumption that this additional code could not
082026 - be compiled.
082028 -  ..
082029 - Since this is a common activity would like it to occur without any
082030 - attention by the user.  The way to do this is to make macro 207 part
082031 - of the save function.
082033 -  ..
082034 - Save occurs in two ways...
082035 -
082036 -      1.  Documents F2 under macro 153 the main profile in 000008. see
082037 -          below, ref SDS 0 SU4L
082038 -
082039 -      2.  SDS records in macro 1421, as part of macro 142 in 000008.
082040 -          see below, ref SDS 0 X35O
082042 -  ..
082043 - Automatic outline support can be accomplished with the "save" op
082044 - called by F2 for editor files by putting "save" at the end of macro
082045 - 207, so that after the outline and list structures have been
082046 - refreshed, the file is saved. ref SDS 0 4R4M
082048 -  ..
082049 - F2 in Editor files can be set in 000008 to call macro 207 instead of
082050 - just the save command, and similarly, macro 142 can call macro 207
082051 - to maintain outline structures. ref SDS 0 4R4M
082052 -
082053 -    [On 030118 outlining code scheme for macro 207 was improved.
082054 -    ref SDS 14 0001
082056 -     ..
082057 -    [On 030118 correlation between save and outlining for SDS records
082058 -    was modified to support confidentiality features.
082060 -  ..
082061 - Under this scheme whenever a file is saved outlining and lists are
082062 - updated.
082063 -
082064 -    [On 030121 "save" op for SDS records called by F2 added a feature
082065 -    to add anchors to every para automatically.  This requires running
082066 -    the macro 207 outline process before adding anchors so that the
082067 -    outline structure is in place for automated processing of anchors.
082068 -    ref SDS 15 934M
082069 -
082070 -
082071 -
082073 -  ..
0821 -
0822 -
0823 - Progress
0824 -
082401 - 000000  Macro 207 List and Outline Refresh Order and Sequencing
082402 -
082403 - Line 860, ref OF 2 F27I -entry 207 in 000000
082404 -
082405 - The purpose of this code is to generate traditional outline
082406 - structures, including numerical lists with a maximum of 2 digits,
082407 - i.e., up to 99.
082409 -        ..
082410 -       [On 030118 modified this scheme considerably. ref SDS 14 AG6N
082412 -     ..
082413 -    macro 22
082414 -
082415 -       Save original condition to restore at the end.
082417 -     ..
082418 -    top
082419 -    macro 20
082420 -    errorcnt 0 0
082421 -
082422 -       Start at top of file, and save this location, turn on error
082423 -       flags so we can get out of loops.
082424 -
082426 -  ..
082427 - Line 900, ref OF 2 VE4M, -entry 207 in 000000 about 20 lines below
082428 -
082429 -    -if @47 != 2 -goto lpn1
082430 -
082431 -       If not SDS, jump to start process.
082432 -
082433 -    z 1 2
082434 -    l /04/
082435 -    z 5 5
082436 -    nb
082437 -    Macro 20
082439 -        ..
082440 -       In SDS jump to the bottom of References and to bottom of first
082441 -       control field; set marker for doing all this work, since that is
082442 -       where outlining occurs, and this saves a little time by avoiding
082443 -       looking through stuff that does not apply.
082445 -  ..
082446 - Line 910, ref OF 2 GL4I, -label lpn1 in 000000
082447 -
082448 -    -label lpn1
082449 -    macro 21
082450 -    setcnt 0 0
082451 -    setcnt 14 0
082453 -        ..
082454 -       Main loop looking for potential outline structures to process.
082456 -        ..
082457 -       Reset error counter each pass so we know when the thing is over.
082458 -       Start counter 14 at 0 so it can process segmented lists, per
082459 -       plannng above, ref SDS 0 P25H, and explained further below.
082460 -
082462 -  ..
082463 - Line 940, ref OF 2 LT4K, -label lpn1 in 000000
082464 -
082465 -    z 4 50
082466 -
082467 -       Set zone for document files to 5 40, so we use about half the
082468 -       file.  We could increase this to 50.  It is a compromise to keep
082469 -       the speed up, and starting at 5 is necessary in documents so
082470 -       that macro 1361 that reads a string of 6 characters can be used
082471 -       to verify the characters represent an outline structure, or do
082472 -       not.
082474 -     ..
082475 -    -if @47 = 2 z 11 40
082476 -
082477 -       SDS has a different zone that starts on column 11 because a list
082478 -       has to start a few columns in from the default left margin of
082479 -       10.
082481 -  ..
082482 - Line 950, ref OF 2 QU6H, -label lpn1 in 000000
082483 -
082484 -    setcnt 11 0
082485 -    l / 1. /
082486 -    -if @0 = 0 -goto procOL
082487 -    macro 21
082488 -    setcnt 0 0
082489 -    l / A. /
082490 -    -if @0 = 0 -goto procOL
082491 -    macro 21
082492 -    setcnt 0 0
082493 -    l / a. /
082494 -    -if @0 = 0 -goto procOL
082496 -     ..
082497 -    setcnt 11 1
082498 -    l / 1) /
082499 -    -if @0 = 0 -goto procOL
082500 -    macro 21
082501 -    setcnt 0 0
082502 -    l / A) /
082503 -    -if @0 = 0 -goto procOL
082504 -    macro 21
082505 -    setcnt 0 0
082506 -    l / a) /
082507 -    -if @0 = 0 -goto procOL
082508 -    -goto endT
082510 -        ..
082511 -       Set flag for standard outline structure 11 0, and look for "1."
082512 -       then "A." and then "a."  For each outline structure type, if
082513 -       none are found, reset error counter 0 0 and call macro 21 to
082514 -       return to the top of the narrative part of the record and look
082515 -       for the next outline type.  After all of the dot type outlines
082516 -       have been processed, set flag 11 1 to identify this is
082517 -       processing a parenthese type outline structure, and look for
082518 -       same elements with an ending parantheses symbol.  If any of
082519 -       these are found go process as a new outline structure.
082520 -       ref SDS 0 EQ9M   When all have been checked, found and processed
082521 -       or not found, then end this routine. ref SDS 0 4R4M
082522 -
082523 -
082525 -  ..
082526 - Line 910, ref OF 2 JZ5M, -label procOL in 000000
082527 -
082528 -    -label procOL
082529 -    loc_cur 0 5
082530 -    -if @47 = 2 loc_cur 0 10
082531 -
082532 -       Position cursor in an editor file on col 5 so that outline with
082533 -       a dot must begin on that column.  This is needed to avoid a
082534 -       complex programming to avoid processing SDS macro files.
082536 -        ..
082537 -       SDS records start cursor on left margin for date entry to right
082538 -       of line number field.
082540 -  ..
082541 - Line 950, ref OF 2 ZW6I, -label lpn1 in 000000 about 60 lines below
082542 -
082543 -    z 5 41
082544 -    fr /. /
082545 -    rel_cur 0 -1
082546 -
082547 -       Set zone 1 more than needed for locate command because fr needs
082548 -       an extra space to find the same stuff that locate finds.
082550 -        ..
082551 -       Move cursor to right of target location where there may an
082552 -       outline structure, and backup 1 position to set up for
082553 -       capturing location data.
082555 -     ..
082556 -    setcur 1 0
082557 -    setcnt 20 @1
082558 -    addcnt 20 1
082559 -
082560 -       Capture cursor position of the dot location to set right margin
082561 -       for zoning to find another entry in this list.  Save this value
082562 -       in counter 20 and increase it by one, so the step later in the
082563 -       process of searching for segmented outline items can be located
082564 -       by zoning for the dot and a space.
082566 -  ..
082567 - Line 960, ref OF 2 G37G, -label lpn1 in 000000 about 60 lines below
082568 -
082569 -    setcnt 18 @1
082570 -    subcnt 1 2
082571 -    z @1 @20
082572 -
082573 -       Save cursor position for the location of the dot in another
082574 -       counter for use later to set a zone for dot space that looks for
082575 -       segmented outline structures, when the end of the current
082576 -       segment is reached, based on using macro 1361, explained below.
082577 -       ref SDS 0 I94O  Subtracting 2 from counter with the location of
082578 -       the dot widens the zone so that a structure of 4 columns must
082579 -       all be blank to establish an continuing outline structure.  Set
082580 -       zone 4 columns wide, 2 in front of the dot, the dot and the
082581 -       space behind the dot, that are used with nb command later to
082582 -       find the next element in the outline/list.
082584 -  ..
082585 - Line 1090, ref OF 2 EG8H, -label lpn1 in 000000 about 60 lines below
082586 -
082587 -    rel_cur 0 -5
082588 -    savescr 4
082589 -    -gosub tsfols
082590 -
082591 -       The cursor is positioned on the space behind the dot, so backup
082592 -       5 positions, save this location, and run subroutine to call
082593 -       macro 1361 below, ref SDS 0 F55G, to read 6 characters for
082594 -       evaluating if the dot space is an actual outline structure,
082595 -       based on criteria set out above. ref SDS 0 W18M Backing up 5
082596 -       columns, means that outlining must begin with the dot at least
082597 -       on column 5 in the editor, explained above, ref SDS 0 TC6H,
082598 -       otherwise rel_cur 0 -5 fails.  SDS records do not have this
082599 -       limitation, because outlining occurs beyond the line number
082600 -       field beginning on column 10, so backing up 5 columns does not
082601 -       cause processing to fail in SDS.
082603 -        ..
082604 -       Tab key code changes today support outlining requirments.  In
082605 -       the Editor the first Tab is to column 6, and in SDS to column
082606 -       13, the next four Tab offsets separate outling levels by 4
082607 -       columns, see below, ref SDS 0 PX8H, and this helps maintain
082608 -       uniform structure to avoid outlining problems, discussed above.
082609 -       ref SDS 0 WG6G
082610 -
082611 -
082613 -  ..
082614 - Line 1220, ref OF 2 X46J, -label numO in 000000 about 90 lines below
082615 -
082616 -    loc_cur 0 @18
082617 -    rel_cur 0 2
082618 -    chrcnt 1 0
082619 -    getscr 4
082620 -    -if @1 != 32 -goto numO
082621 -
082622 -        This code avoids a loop when outline levels are offset by only
082623 -        one column.  It has been a continuing problem; not sure all
082624 -        instances are solved, but seems to handle some specific
082625 -        problems.
082627 -         ..
082628 -        The code at this point has found an outline level, and is
082629 -        rolling up the file looking for continuations of an initial
082630 -        level identified by 1 A or a, with dots and parentheses, and
082631 -        based on the left margin be the column in counter 18.  The code
082632 -        has now found something in column 18, and so concludes it might
082633 -        be a continuation of an outline. The code has completed
082634 -        determining that this line does not start a new outline level,
082635 -        and is about to determine if the structure is a continuation.
082636 -        The code above moves the cursor to the column in counter 18,
082637 -        which is the left margin.  Move over 2 columns to see if there
082638 -        is a space.  This tests the condition that otherwise hangs the
082639 -        process in a loop when the numberical level changes from 1 to 2
082640 -        columns, as when going from 9 to 10.  In that case, the code
082641 -        can be looking at an outline level where the left margin is in
082642 -        a particular column, but finds a number with the right margin
082643 -        in the same column.  It then processes this and gets into a
082644 -        loop.  This makes some progress, until the next arcane
082645 -        condition occurs.
082646 -
082647 -
082649 -  ..
082650 - Line 1250, ref OF 2 KP5L, -label lpj1 in 000000
082651 -
082652 -    -if @47 = 1 -goto upnow
082653 -
082654 -        If this is not SDS, go do editor stuff.
082655 -
082656 -    loc_cur 0 5
082657 -    chrcnt 1 0
082658 -
082659 -        It is SDS, so see if we have landed on a control field
082660 -
082661 -    -if @1 > 32 -goto upnow
082662 -    z 5 5
082663 -    nb
082664 -    -label upnow
082665 -
082666 -        If column 5 is blank it is a control field, so zone the
082667 -        column and jump to a non-blank line, which will be the first
082668 -        narrative line in the next segment.
082670 -     ..
082671 -    setcnt 28 937
082672 -    macro 541
082673 -    setcnt 28 0
082674 -
082675 -        The cursor is on the first narrative line, so set a flag and
082676 -        jump the cursor to the left margin.
082678 -     ..
082679 -    down
082680 -    -if @4 > @18 -goto numO
082681 -
082682 -        If the left margin is greater than the outline level column,
082683 -        then jump to the code that zones the outline level and does a
082684 -        nb command to find the next outline level.
082685 -
082687 -  ..
082688 - Line 1250, ref OF 2 KP5L, -label upnow in 000000
082689 -
082690 -    -if @117 != 11 -if @4 > @18 -goto numO
082691 -
082692 -        Changed this code on 030219 to add the param for 117 11 which
082693 -        identifies when a bullet is encontered that does not qualify
082694 -        for outline treatments, per below. ref SDS 0 IV4J
082695 -
082696 -            [On 030319 report of problem that required this adjustment.
082697 -            ref SDS 17 SO9N
082698 -
082699 -
082701 -     ..
082702 -    Numerical Outline List Maximum Two Characters 1 - 99
082703 -
082704 -    4.
082705 - Line 1520, ref OF 2 4P6M, -label list1 in 000000 macro 207
082706 -    5.
082707 -    -label list1
082708 -    rel_cur 0 -4
082709 -    addcnt 14 1
082710 -    -if @14 != 58 -goto dltr
082711 -    -if @128 != 999 setcnt 13 48
082712 -    setcnt 128 999
082713 -    addcnt 13 1
082714 -    setcnt 14 48
082715 -    -label dltr
082716 -    ic @13
082717 -    ic @14
082718 -
082719 -        This is where the outline structure is entered for a maximum
082720 -        of two (2) characters, e.g., 1... 99.  Planning indicates that
082721 -        99 entries should be ample for typical nested outline levels.
082722 -        ref SDS 0 W16K
082723 -
082724 -            [On 051111 increased outline support up to 199. ref SDS 19
082725 -            9T3M
082726 -
082727 -
082729 -  ..
082730 - Line 1270, ref OF 2 1345, -label endT in 000000
082731 -
082732 -    macro 21
082733 -    z 3 55
082734 -    c/**/**/* 5
082735 -    macro 23
082737 -        ..
082738 -       All outline structures have been processed, so return to top of
082739 -       narrative, with macro 21, and change all of the temp symbols
082740 -       back to dot space, then restore the original file postion when
082741 -       the User pressed F2 to save the record.
082742 -
082744 -  ..
082745 - Line 1280, ref OF 2 EP9F, -label endT in 000000
082746 -
082747 -    -if @47 != 1 -exit
082748 -    save
082749 -    errormsg  Saved
082750 -
082751 -       Save in Editor so can call with a single op assigned to F2 in
082752 -       Editor, per below. ref SDS 0 SU4L  Save is executed separately
082753 -       in SDS so we can manage confidentiality.
082755 -           ..
082756 -          [On 021107 improved confidentiality feature. ref SDS 10 MHWU
082757 -
082759 -  ..
082760 - Line 1370, ref OF 2 G28L, -label tsfols in 000000
082761 -
082762 -    -label tsfols
082763 -    macro 1361
082764 -    getgbl 6 6
082765 -    setcnt 117 0
082766 -
082767 -       This is a subroutine code, called above. ref SDS 0 I94O, to test
082768 -       a string for outline structure using macro 1361 as a convenient
082769 -       way to read a string of six characters.  Counter 117 is reset
082770 -       each pass for positive means to establish an outline structure
082771 -       should be processed.
082773 -  ..
082774 - Line 1390, ref OF 2 SO4F, -label mboln in 000000
082775 -
082776 -    -if @47 = 2 -if @1 = 45 -if @2 = 32 -if @4 != 32 -goto mboln
082777 -    -if @1 = 32 -if @2 = 32 -if @4 != 32 -goto mboln
082778 -    -return
082779 -
082780 -         If the first part of the structure does not qualify as an
082781 -         outline, just return.
082782 -
082783 -    -label mboln
082784 -    -if @5 = 46 -if @6 = 32 setcnt 117 1
082785 -    -if @5 = 41 -if @6 = 32 setcnt 117 1
082786 -    -if @5 = 32 -if @6 = 32 setcnt 117 1
082787 -
082788 -         If the second part passes the test for an outline, then
082789 -         assign the outline flag.
082791 -     ..
082792 -    -if @4 = 4 setcnt 117 11
082793 -    -return
082794 -
082795 -         If it is a bullet, it does not qualify for ourline treatment
082796 -         so set a different flag to use above. ref SDS 0 M16N
082797 -
082798 -            [On 030319 report of problem that required this adjustment.
082799 -            ref SDS 17 SO9N
082800 -
082801 -
082802 -
082803 -
082804 -
082805 -
082806 -
082807 -
082808 -
0829 -

SUBJECTS
F02 Save Macro 207 Update Outline Structures and Lists

0903 -
090401 -  ..
090402 - 000008  Macro 153 Change PF2 to Call Macro 207 with Save Command
090403 -
090404 - Line 350, ref OF 3 NY5O, -entry 1531 in 000008 about 120 lines below
090405 -
090406 -    pf2 macro 207
090407 -
090408 -       Previously, pf2 was assigned to "save" command, but today,
090409 -       created macro 207 to update outline structures, per above.
090410 -       ref SDS 0 838M; see also planning, ref SDS 0 656X,
090412 -        ..
090413 -       After updating outlining, macro 20 calls "save" so we still
090414 -       only need one call to save the file.
090415 -
090416 -
090417 -
090418 -
090419 -
090420 -
0905 -

SUBJECTS
142 Macro F2 Save Sort References, Action Items, 0702051
SAA F2 Save Avoid Sort References and Archive Pointers Macro 142 Does
Save SAA Avoid Sort References and Archive Pointers Macro 142 Does No

1405 -
140601 -  ..
140602 - 000008  Macro 142 Save Add Call to Outline Macro 207
140603 -
140604 - Line 2460, ref OF 3 RM6M, -entry 142 in 000008 about 20 lines below
140605 -
140606 -    macro 0
140607 -    -if @241 = 1 -goto SAAo
140608 -    macro 207
140609 -    linecnt 1 0
140611 -        ..
140612 -       When F2 is pressed to save an SDS record, macro 0 is called to
140613 -       update line numbers.  -if @241 = 1 this is an SAA record so jump
140614 -       the code that calls macro file 0702051 to sort references and
140615 -       capture pointers, because SAA does not have any pointers to
140616 -       capture and because the list of follow up action items should be
140617 -       maintained in the order set by the User, similar to an "In"
140618 -       basket.  Skipping the sort op for SAA further preserves the list
140619 -       of repetitive dates at the bottom for common visibility rather
140620 -       than spread them throughout the chronology which requires
140621 -       hunting them down.  If this is not an SAA record, then call the
140622 -       new macro developed today to maintain outline structures, per
140623 -       above. ref SDS 0 65UP
140625 -     ..
140626 -    [On 030121 "save" op for SDS records called by F2 added a feature
140627 -    to add anchors to every para automatically.  This requires running
140628 -    the macro 207 outline process before adding anchors so that the
140629 -    outline structure is in place for automated processing of anchors.
140630 -    ref SDS 15 934M
140631 -
140632 -
140633 -
140634 -
1407 -

SUBJECTS
Tab Sets 5 Outline Levels Separated by 4 Columns for Uniform Structu
Tab Macro 138 Advance Word (AW) Recycle at End of Current Line

1704 -
170501 -  ..
170502 - Tab Sets Outline Structure for Editor and SDS Macro 138 in 000008
170503 - 000008  Macro 138 Tab Sets Consistent Outline Structure Editor and SDS
170504 -
170505 - Line 2430, ref OF 3 1M5G, -label tab1j in 000008 about 20 lines below
170506 -
170507 -    -label tab1j
170508 -    -if @47 != 2 settabs 6 10 14 18 22 30 40 50 60 70 75 90 110 130 150 170 190 220
170509 -    -if @47 = 2 settabs 13 17 21 25 29 40 50 60 70 75 90 110 130 150 170 190 220
170510 -
170511 -        This code sets 5 tab levels for consistent outline structures
170512 -        in the Editor beginning on column 6, and in SDS beginning on
170513 -        column 13.  Helps solve requirement allowing users flexibility
170514 -        to create outline structures at random, yet maintain uniformity
170515 -        once an outline level is started, per above. ref SDS 0 FI4W
170516 -
170517 -
170518 -
170519 -
170520 -
170521 -
170522 -
170523 -
170524 -
170525 -
170526 -
170527 -
170528 -
170529 -
170530 -
170531 -
170532 -
170533 -
170534 -
1706 -