RECOVER_BUFFER
Reconstructs the work done in the buffer whose name you specify.
TPU creates a new buffer using the specified buffer name and, using
the information in the original buffer's journal file, recovers all the
changes made to records in the original file. The resulting recovery
is written to the newly created buffer.
Syntax
new_buffer := RECOVER_BUFFER (old_buffer_name, [, [journal_file_name]
template_buffer]])
Parameters
old_buffer_name The name of the buffer you are trying to recover.
journal_file_name The name of the journal file you want TPU to
use to recover your buffer. If you did not set a
journal file name using SET (JOURNALING), in most
cases TPU will have created the journal file
using its default journal file naming algorithm.
If the journal file was named by default, you need
not specify a journal file name with
RECOVER_BUFFER. If you specified a journal file
name using SET (JOURNALING), use the same name
with RECOVER_BUFFER.
template_buffer The buffer whose attributes you want applied to
the newly created buffer. For more information on
using a buffer as a template, see HELP or the DEC
Text Processing Utility Manual on the
CREATE_BUFFER built-in.
Comments
Only the first parameter (the old buffer name) is required. If you
want to specify the third parameter but not the second, you must use a
comma as a placeholder, as follows:
RECOVER_BUFFER ("junk.txt", , template_buffer);
The third parameter is completely optional.
If TPU returns a message that it cannot find the journal file, and
if the buffer you are trying to recover is small, the reason may be
that records from the buffer were never written to the journal file
because there were not enough records to trigger the first write
operation to the journal file. Similarly, if some text is missing
after recovery, the reason may be that the last few operations did not
trigger a write operation. For more information on how TPU manages
write operations to a journal file, see HELP on the SET (JOURNALING)
built-in.
Buffer change journaling does not journal changes in buffer attributes
(such as modifiability of the buffer or visibility of tabs). Buffer
change journaling only tracks changes to records in the buffer, such as
addition, deletion, or modification of a record, or changes in a
record's attributes.
If you press CTRL/C during a recovery, TPU aborts the recovery,
closes the journal file, and deletes the newly created buffer.
After a successful recovery, TPU continues journaling new changes
into the journal file that was used during the recovery.
Example
1. RECOVER_BUFFER ("junk.txt")
Directs TPU to find the buffer-change journal file associated
with the original buffer JUNK.TXT. Creates a new buffer called
JUNK.TXT. Using the information from the journal file, recovers
the changes made in the original JUNK.TXT buffer and places the
results of the recovery in the new JUNK.TXT buffer.
2. The following code fragment creates a defaults buffer, changes an
attribute of the defaults buffer, and creates a user buffer. The
fourth statement turns on buffer-change journaling and designates
the file named USER1_JOURNAL.TPU$JOURNAL as the journaling file.
At some later point in the session (represented by the elipses) the
RECOVER_BUFFER statement is used to recover the contents of the old
USER1.TXT by recovering the contents of the journal file,
USER1_JOURNAL.TPU$JOURNAL. The attributes of the defaults buffer
are applied to the newly created buffer USER1.TXT. In this case,
the new buffer has the end-of-buffer text "[That's all, folks!]".
defaults_buffer := CREATE_BUFFER ("Defaults");
SET (EOB_TEST, defaults_buffer, "[That's all, folks!]");
user_buffer := CREATE_BUFFER ("user1.txt", "", defaults_buffer);
SET (JOURNALING, user_buffer, ON, "user1_journal.tpu$journal");
.
.
.
RECOVER_BUFFER ("user1.txt", "user1_journal.tpu$journal",
defaults_buffer);
Related Topics
CREATE_BUFFER GET_INFO(BUFFER_VARIABLE)
GET_INFO(STRING_VARIABLE) JOURNAL_OPEN
JOURNAL_CLOSE SET(JOURNALING)