October 1, 1979 HOUSE FUNCTIONS POP IMP-INSERT POINTER


&P


&P POP Implied Insert Pointer __________________________________
&POP "pops" (removes) the specified number of Implied Insert
Pointers from the top of the Stack.


&Pop <n>°
1 _


<n>...the number of pointers to pop from the Implied Insert
Pointer Stack
NOTES _____
The Implied Insert Stack is a stack of pointers used both in
normal editing, and in the creation of Blocks. If the user
does not specify an <lp> for a command which has an <iip>
listed in its specification, the <iip> defaults to the pointer
on top of the Implied Insert Stack (the Implied Insert
Pointer).
Two entries are made in the Stack when IBLOCK, IDBLOCK,
MBLOCK, or MDBLOCK is used: one points at the character
before the Block-end, the other at the last character of
the Block-end of the new Block. A new Block can thus
easily be made nested in (inside of), or at the same
level as (immediately after), the previous one.
The Implied Insert Pointer (pointer on top of the Stack)
points at the character before the Block-end of the Block
just inserted or created.
The pointer directly beneath those &POPped becomes the new
Implied Insert Pointer.
If there is only one pointer in the Stack, as with ordinary
non-Blocked text editing, an error message is returned and the
pointer stays in effect.
264 -- Section 6 Release 9.1 FRESS Resource Manual
October 1, 1979 HOUSE FUNCTIONS POP IMP-INSERT POINTER
RESTRICTIONS ____________
The Implied Insert Stack currently holds only eight pointers
(e.g., four successive MBLOCK commands with no intervening
&POP's). When pointers are added to a full Stack, pointers
from the oldest Block are deleted and the new pointers are
added normally to the top.
EXAMPLES ________
Example 1 _________
This example uses non-Decimal Blocks to show the position of
the Implied Insert Pointer(s) as pointers are created and popped.
Each entry shows the position of the Implied Insert Pointer(s)
(under the appropriate character(s) with numbers denoting their
position in the Implied Insert Stack.
[given]=> "...text in old file..."
[user] ibl/file/text inside the first Block
[system] %<text inside the first Block%>
pointer(s)--> 1 2
[user] mb/inside
[system] %<inside%> the first Block%>
pointer(s)--> 1 2 3 4
[user] i/ the second Block
[system] %<inside the second Block%> the first Block%>
pointer(s)--> 1 2 3 4
[user] &POP
[system] %<inside the second Block%> the first Block%>
pointer(s)--> 1 2 3
b [user] i/popped text/
[system] %>popped text the first Block%>
pointer(s)--> 1 2 3
[user] &POP
[system] %>popped text the first Block%>
pointer(s)--> 1 2
[user] &POP
[system] %>popped text the first Block%>
pointer(s)--> 1
FRESS Resource Manual Release 9.1 FRESS RSection 6.2 -- 265
Previous Page Next Page