The Natural program editor is used to create and modify the source code of a Natural object of the type program, subprogram, subroutine, helproutine, copycode, text, class or function.
Note
The Natural program editor has been disabled in your environment by default. For more
information, see NaturalONE as the Default
Development Environment in the Editors
documentation.
The Program Editor documentation is organized in the following parts:
For information on Unicode and code page support for Natural editors, see Editors in the SPoD Environment in the Unicode and Code Page Support documentation.
To invoke the program editor
Use the system command EDIT as described in the System
Commands documentation.
When the program editor is invoked, an editor screen similar to the example below appears:
> > + Program SAGDEMO Lib SAGTEST
All ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 ** EXAMPLE 'SAGDEMO': DISPLAY
0020 ************************************************************************
0030 DEFINE DATA LOCAL
0040 1 VIEWEMP VIEW OF EMPLOYEES
0050 2 PERSONNEL-ID
0060 2 NAME
0070 2 BIRTH
0080 2 JOB-TITLE
0090 END-DEFINE
0100 *
0110 READ (3) VIEWEMP BY BIRTH
0120 DISPLAY PERSONNEL-ID NAME JOB-TITLE
0130 END-READ
0140 END
....
0280
....+....1....+....2....+....3....+....4....+....5....+... S 14 L 1 |
The editor screen contains the following items (from top to bottom): the editor command line, the top information line, the editing area and the bottom information line. These items are explained in the following sections.
Note
If Natural ISPF is installed and the editor profile option ISPF Editor as Program Editor is set to
Y, instead of the program editor, either the Natural ISPF main menu (if the
EDIT command is entered without an object name) or the
Natural ISPF editor screen with the specified object is invoked.
The editor command line is indicated by the leftmost greater than sign (>) in the top line of the editor screen. In the command line, you can enter one of the following:
For example: The system command CHECK can be used for checking the syntax
of source code and SAVE for saving source code (see also
Saving and Cataloging
Sources).
For other system commands related to maintaining and using object sources, see Managing Applications with Natural Objects in the System Commands documentation.
One or more editor commands.
The name of a Natural program to be executed.
Additionally, the top line can contain the following items (from left to right):
| Direction
Indicator:
|
The direction indicator can be set to control the direction of the editor
commands ADD and SCAN, and
of the line commands .C, .I
and .M. The plus sign (+) indicates after and
the minus sign (-) indicates before. The exact interpretation is
described with the relevant command description. See also the editor profile
option Direction
Indicator described in Editor
Profile.
|
| Object Type | The type of object currently in the source work area. If no object type or
object name is specified when the program editor is invoked, object type
Program is displayed by default.
The object type can be
changed by using the editor command |
| Modification
Indicator:
|
An asterisk (*) indicates whether the source code currently in
the source work area contains unsaved modifications. The asterisk (*) also appears
for new source code that has not yet been saved as a source object.
The
asterisk (*) is only visible if the editor profile option Source Status
Message is set to The asterisk (*) disappears when you execute a successful See also Exit Function. |
| Object Name | The name of the object currently in the source work area. No name is
displayed if the source work area is empty or if the current source code has not
yet been saved as a source object with the SAVE, CATALOG or
STOW
command.
|
| Lib | The library to which you are currently logged on. |
The top information line of the editor screen is a scale line. It can contain the following:
A message indicating object modification. This information is only displayed if the
editor profile option Source Status Message is set to Y
(see Editor
Profile).
The programming mode (structured or reporting) currently in effect. When a Natural
object is read into the source work area, the mode is set to the one which was in
effect when the object was saved with the SAVE or STOW command. This information is only
displayed if the editor profile option Source Size Information is set to Y
(see Editor
Profile).
For information on the differences between structured and reporting mode, see Purpose of Programming Modes in the Programming Guide.
The editing area of the editor screen contains the numbered lines where you add or modify source code.
The editing area is either empty or contains source code that was last read into the
source work area with the command EDIT or
READ as shown in the example of a program in Invoking the Program
Editor.
When you read in the source of an existing object, the entire source code is loaded into the source work area and is available for editing. However, depending on the size of the source, the editing area may not show all of the lines that belong to the source. In this case, you have to scroll down the source (see Editor Commands for Positioning) to go to the line you want to view or modify.
In addition, if you use split-screen mode, the editing area displays fewer lines of source code. See also Split-Screen Mode.
To create or edit source code, you can perform multiple functions:
Type in or update code directly in the relevant source line.
Use one or more editor commands as described in the relevant section.
Use one or more line commands as described in the relevant section.
When performing multiple functions, consider the following:
Only one insert line command (.I) can be performed at a
time.
You can enter multiple commands in the command line of the editor: you can enter more than one editor command, but only the last command entered in the editor command line can be a system command. For example:
SC 'MOVE',-2,RENUMBER
Note
Natural treats the editor command N like a system
command. N corresponds to the system command
RENUMBER.
If you have changed the source code by typing in a modification or by using an editor command, a system command cannot be entered until you press ENTER.
You can activate or deactivate dynamic conversion to upper case, by setting the
appropriate editor profile
options Editing in Lower
Case and Dynamic Conversion of Lower Case to Y
(see Editor
Profile). All source code you enter in the editing area is then
converted to upper case, with the following exceptions:
The contents of a Natural object of the type text remain as entered.
A text string that is not
a hexadecimal constant or
a Unicode hexadecimal constant
and is enclosed in apostrophes or quotation marks remains as you enter it.
DBCS characters enclosed in shift-out and shift-in characters remain as you enter them.
A comment indicated by the character string blank-slash-asterisk ( /*) remains as you enter it.
Caution
If the character string slash-asterisk (/*) denotes an executable part of a
statement, it must be specified without a blank character in front of the
string (/*). The string will otherwise be considered a comment.
The bottom information line of the editor screen is a scale line. It can contain the following:
The size (number of characters) of the current source. As source lines are stored in
variable length in the source work area, trailing blanks within a source line are not
counted; leading and embedded blanks are counted. This information is only displayed
if the editor profile option Source Size Information is set to Y
(see Editor
Profile).
The number of characters still available in the source work area. This information is
only displayed if the editor profile option Source Size
Information is set to Y (see Editor
Profile).
S
The size (number of lines) of the source being edited.
L
The number of the source line currently displayed as the top line.
Editor commands are entered in the command line of the program editor. The command parameters must be separated either by the input delimiter character as defined with the Natural session parameter ID (the default delimiter character is comma (,)) or by a blank. When multiple commands are entered, these must also be separated by the delimiter character or by blanks.
The editor commands available are described in the following table and in the section Editor Commands for Positioning. For explanations of the syntax symbols used in the editor commands, refer to System Command Syntax in the System Commands documentation. An underlined portion of a command denotes a valid abbreviation.
| Editor Command | Function | |
|---|---|---|
ADD[(n)] |
Adds n blank lines.
If the direction
indicator is set to + (plus sign), the lines are added
after the last line of the object being edited; if the direction indicator is set
to - (minus sign), the lines are added before the first line of the
object.
The value for n can be in the range from 1 to 9. If n is not (or not correctly) specified, 9 lines (4 in split-screen mode) are added by default. With the next ENTER, lines that are still left blank are removed. |
|
CANCEL
or
(a period) |
Leaves the editor. Any modifications made since
the last time the SAVE command was entered are not
saved.
|
|
CATALOG
[object-name]
|
Executes the system command
CATALOG which checks and catalogs the current source
code.
You must supply an object name with the command if you catalog new source code or if you want to copy the current source code. See also Saving and Cataloging Sources. |
|
CHANGE
['scan-value'replace-value'] |
Scans the source code for the character string
entered as scan-value and replaces each such
scan-value found with the character string entered as
replace-value.
Each line in which a character
string is replaced is marked with an Any special character which is not valid within a Natural variable name can be used as the delimiter character. If you enter |
|
CHECK |
Executes the system command CHECK which
checks the syntax of the current source code. If an error is found, the erroneous
line is marked with an E and an appropriate error message appears in
the message line. If no errors are found, a message appears indicating successful
completion of the check.
|
|
CLEAR |
Executes the system command CLEAR which
clears the source work area (including the object name and the line markers
X and Y).
|
|
DX
or
|
Deletes the X-marked or the Y-marked line. | |
DX-Y |
Deletes the block of lines delimited by the
X and Y markers.
|
|
EX
or
|
Deletes lines from the top of the editing area to, but not including, the X-marked line; or from the line following the Y-marked line to the bottom of the editing area. | |
EX-Y |
Deletes all lines in the editing area excluding
the block delimited by X and Y.
|
|
EXIT |
Leaves the editor. Any modifications to the source are saved depending on the setting of the editor profile described in Exit Function. | |
LET |
Undoes all modifications made to the current
screen since the last time ENTER was pressed. In
addition, LET ignores all line commands already entered
but not yet executed.
|
|
N [(nnnn)] |
This command corresponds to the system command
RENUMBER. It renumbers the lines of the
source code currently in the source work area.
If you only enter
If the value specified for n is too big, lines are numbered in increments of 5. Note |
|
PROFILE [name] |
Invokes the Editor Profile screen where you can view or change your current editor profile settings. For details, see the section Editor Profile. | |
REN ON|OFF |
ON |
Renumbers the lines of a source whenever the CHECK, RUN, SAVE, CATALOG or
STOW
command is executed on the source.
|
OFF |
Indicates that automatic renumbering is not in effect. | |
|
The default is The Note |
||
RESET |
Deletes the current X and
Y line markers and any marker previously set with the line command
.N. See
also the line commands .X and .Y.
|
|
SAVE
[object-name]
|
Executes the system command
SAVE which saves the current source code.
You must supply an object name if you save new source code or if you want to copy the current source code. See also Saving and Cataloging Sources. |
|
SCAN
['scan-value'] |
Scans the source code for a character string
(scan-value).
Each line in which the
scan-value is found is marked with an
If the supplied scan-value is entered without
delimiter characters, for example, Note If the direction indicator is set to If you enter
|
|
SCAN=[+|-] |
Scans for the next occurrence of
scan-value specified with the SCAN command.
The direction for a given scan command can be explicitly specified by
entering Note |
|
SET ABS
[ON|OFF] |
ON |
The SCAN and CHANGE
commands operate in absolute mode, which means that the
scan-value and the
replace-value need not be delimited by blanks or
special characters.
|
OFF |
The SCAN and CHANGE
commands do not operate in absolute mode, which means that the
scan-value and the
replace-value must be delimited by blanks or special
characters.
|
|
|
The default is The |
||
SET CAPS
[ON|OFF|ALL] |
This command affects the settings of the editor profile options Editing in Lower Case and Dynamic Conversion of Lower Case described in Editor Profile. |
|
ON |
Converts all lowercase characters displayed on the current
screen to upper case, except for those characters placed in a comment or enclosed
in apostrophes or quotation marks.
Sets Editing in Lower
Case to |
|
OFF |
Characters are not converted, they remain as entered.
Sets
Editing in Lower Case to |
|
ALL |
Converts all characters to uppercase.
Sets
Editing in Lower Case to |
|
|
The default is |
||
SET ESCAPE
character |
The escape character which must precede each line command. The default escape character is the period (.). | |
SET IGNORECASE
[ON|OFF] |
ON |
The SCAN and
CHANGE commands operate in ignore case mode which
means that any combination of upper and lower-case scan value will be
found.
|
OFF |
The SCAN and
CHANGE commands do not operate in ignore case mode
which means that only the exact scan value will be found.
|
|
|
The default is The |
||
SET NUL
[ON|OFF] |
ON |
All occurrences of a value scanned with the
SCAN command are deleted. After the deletion of the
scanned value, the SET NUL command is automatically set
to OFF.
|
|
The default is |
||
SET RANGE
[ON|OFF] |
ON |
The SCAN and
CHANGE commands operate in range mode, which means
that the value to be scanned/changed must be located within the range of lines
delimited by the X and Y line markers.
|
OFF |
The SCAN and
CHANGE commands operate in non-range mode, which
means that no range limit is to be in effect.
|
|
|
The default is The |
||
SET RELINE
[ON|OFF] |
ON |
Removes empty lines from the source of an object (except text objects) when you press ENTER. |
OFF |
Empty lines are retained. | |
|
The default is This command corresponds to the Empty Line Suppression option described in Editor Profile. |
||
SET
SEQ [ON|OFF] |
OFF |
If your input is numeric, the first four positions in the
editing area are considered as the line number and are moved to the line number
position once you press ENTER.
This feature is useful, for example, if a statement line is to be referenced by a source code line number in another statement line; when you renumber the source code, the referencing line number is renumbered, too. |
ON |
Numeric input in the first four positions remains as entered. | |
|
The default is The |
||
SET SIZE
[ON|OFF] |
ON |
The size of the source is displayed at the bottom information line of the editor screen and the programming mode is displayed on the scale line. |
OFF |
This information is not displayed. | |
|
The default is The |
||
SET
STAY [ON|OFF] |
ON |
The current screen will stay when ENTER is pressed. Forward and backward positioning can be done by positioning commands only. |
OFF |
Pressing ENTER positions to the next screen. | |
|
The default is The |
||
SET
TYPE object-type |
This command is used to change the object type
(displayed in the editor command line) for the source currently contained in the
source work area.
object-type represents one of the following values that must be specified with the command: |
|
P |
or PROGRAM |
|
S |
or SUBROUTINE |
|
N |
or SUBPROGRAM |
|
H |
or HELPROUTINE |
|
T |
or TEXT |
|
C |
or COPYCODE |
|
4 |
or CL or CLASS |
|
7 |
or FUNCTION |
|
SHIFT
[-nn|+nn] |
This command shifts each line delimited by the
X and Y markers to the left or right. The
nn parameter represents the number of characters the
line is to be shifted. Comment lines are not shifted.
|
|
SHIFT -- |
This command shifts each line delimited by the
X and Y markers to the leftmost position. Comment
lines are not shifted.
|
|
SHIFT ++ |
This command shifts each line delimited by the
X and Y markers to the rightmost position (maximum 99
positions). Comment lines are not shifted.
|
|
SPLIT
[parameter]
|
This command splits the editor screen and
displays the source of another Natural object in one half of the screen as
described in Split-Screen Mode.
parameter represents a parameter that must be specified with the command as described in Split-Screen Commands
If |
|
STOW
[object-name] |
Executes the system command
STOW which saves and catalogs the current source
code.
You must supply an object name if you |
|
STRUCT [DISPLAY] |
This command performs structural indentation of
source code. The default indentation is in increments of two positions.
If
|
|
* |
This command displays the editor command most recently entered. | |
*= |
This command again executes the command most recently entered in the command line. | |
Editor commands for positioning are entered in the command line of the program editor. The following commands are available for positioning:
| Command | Function |
|---|---|
| ENTER
or
or
|
Position forwards one page. |
-P
or
|
Position backwards one page. |
+H |
Position forwards half a page. |
-H |
Position backwards half a page. |
T
or
|
Position to top of source. |
B
or
|
Position to bottom of source. |
+nnnn |
Position forwards nnnn lines (maximum 4 digits). |
-nnnn |
Position backwards nnnn lines (maximum 4 digits). |
nnnn |
Position to line number nnnn. |
X |
Position to the line marked with an X.
|
Y |
Position to the line marked with a Y.
|
POINT |
Positions to the line in which the line command .N was entered.
See also the line command |
Line commands are entered in the first position of a source line. The line commands
provided by the program editor are listed below. The notation
(nn) or (nnnn) indicates a
repetition factor. The default repetition value is 1 (with the exception of the
.I command; see below). For explanations of the syntax
symbols used in this section, refer to System Command Syntax in the System
Commands documentation.
Note
We recommend that you enter a blank at the end of each line command. This prevents
the editor from attempting to interpret any information existing on the line as part of
the line command.
| Line Command | Function |
|---|---|
.C[(nnnn)] |
Copies the line in which the command was entered. |
.CX[(nnnn)]
or .CY[(nnnn)] |
Copies the X-marked or the Y-marked line. See also the line commands
.X and .Y as well as
Notes for Line
Commands.
|
.CX-Y[(nnnn)] |
Copies the block of lines delimited by the X and Y
markers. (See also Notes for
Line Commands.)
|
.D[(nnnn)] |
Deletes one or more lines beginning with the line in which you enter the command towards the end of the source (regardless of any direction indicator setting). The default is 1 line. |
.I[(nn)] |
Inserts nn empty lines, where
nn can range from 1 to the total number of lines
shown in the editing area minus two. For example, if a total of 28 lines is shown
in the editing area, you can insert a maximum of 26 lines.
If nn is not (or not correctly) specified, 9 lines (4 lines in split-screen mode) are inserted by default. Lines that are left blank are then removed from the source, depending on the setting of the editor profile options Empty Line Suppression and Empty Line Suppression for Text described in Editor Profile. See also Notes for Line Commands. |
.I(obj,ssss,nnnn) |
Includes into the source an object contained in the current library or in the
steplib (the default steplib is SYSTEM).
Depending on the direction indicator, the object is inserted before or after the line in which you enter the command. If you want to include only part of the object, you specify as
ssss the first line to be included (for example,
If you enter multiple commands, this command is always executed after all other line and/or editor commands have been executed. If the object is a map, an If the object is a data area, the entire data area is included, except comment
lines. Only local and parameter data areas that were saved and cataloged with
the If the object is an adapter, a |
.J |
Joins the current line with the next line.
If the resulting line exceeds
the length of the editor screen line, the line is marked with an |
.L |
Undoes all modifications that have been made to the line since the last time ENTER was pressed. |
.MX
or
|
Moves the X-marked or the Y-marked line. See also the line commands
.X and .Y as well as
Notes for Line
Commands.
|
.MX-Y |
Moves the block of lines delimited by the X and Y
markers (see also Notes for
Line Commands).
|
.N |
Marks (invisibly) a line to be positioned at the beginning of the source work
area by the editor command POINT.
The mark is automatically
deleted when an error with a line command or editor command occurs, or when the
|
.P |
Positions the line marked with this command to the top of the screen. |
.S |
Splits the line at the position marked with the cursor. |
.X |
Marks a line with an X (see also Notes for Line
Commands).
|
.Y |
Marks a line with a Y (see also Notes for Line
Commands).
|
If both the commands .X and .Y
are applied to one line, it is treated as being marked with an X and with
a Y; the line marker actually shown to reflect this status is a
Z.
If the direction
indicator is set to + (plus sign), the copied, inserted or
moved lines are placed after the line in which the corresponding command was
entered; if the direction indicator is set to - (minus sign), the copied,
inserted or moved lines are placed before the line in which the command was
entered.
The following special functions can also be controlled using PF keys:
| Function | Explanation |
|---|---|
*CURSOR |
A line split function can be combined with the command
.I, .CX,
.CX-Y, .MX or
.MX-Y. This is accomplished by assigning the value
*CURSOR to a PF key in the editor profile (see PF and PA
Keys in Editor Profile). If this PF key is then pressed
instead of ENTER after a line command has been entered, the line in
which the command was entered is first split at the cursor position and then the
line command is executed. See also Example of *CURSOR on PF Key.
|
*X
or *Y |
If a PF key is assigned the value *X or *Y in the
editor profile (see PF and
PA Keys in Editor
Profile), the cursor position is marked X or
Y whenever this PF key is used. These position markers are then
used to determine which portion of a line is to be included in the command
operation. See also Example of
*X and *Y on PF Keys.
|
The following are instructions for using a PF key to which the value *CURSOR
is assigned.
In the PF and PA Keys section of the Editor
Profile screen (see Editor Profile), enter *CURSOR next to
PF6.
Open the program editor, type in the following text, and press ENTER:
> > + Program Lib SAGTEST
All ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 MOVE A TO B
0020 WRITE A B C
0030 MOVE C TO B MOVE A TO C
0040
0050
0060
0070
0080
0090
0100
....
0280
....+....1....+....2....+....3....+....4....+....5....+... S 3 L 1 |
In line 0020, enter the line command .X and
press ENTER.
The line is marked as indicated by the X next to it.
In line 0030, enter the line command .CX,
place the cursor on the M of the second MOVE, and press
PF6.
The screen then looks similar to the one below:
> > + Program Lib SAGTEST
All ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 MOVE A TO B
X 0020 WRITE A B C
0030 MOVE C TO B
0020 WRITE A B C
0030 MOVE A TO C
0040
0050
0060
0070
0080
0090
0100
....
0260
....+....1....+....2....+....3....+....4....+....5....+... S 5 L 1 |
Line 0030 is split before the cursor position, line 0020 is
copied to the line after the line in which you entered the
.CX command, and the second half of the split line is
moved to the last line.
The following are instructions for using PF keys to which the values *X and
*Y are assigned.
In the PF and PA Keys section of the Editor
Profile screen (see Editor Profile), enter *X next to
PF4 and *Y next to PF5.
Open the program editor, type in the following text, and press ENTER:
> > + Text Lib SAGTEST
All ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 THIS PORTION
0020 OF TEXT IS
0030 FOR DEMONSTRATION OF
0040 PF-KEY ASSIGNMENTS.
0050
0060
0070
0080
0090
0100
....
0280
....+....1....+....2....+....3....+....4....+....5....+... S 0 L 1
|
In line 0010, place the cursor on the letter P and press
PF4.
The position of P is marked as shown on the following example
screen.
In line 0030, place the cursor on the blank character behind
DEMONSTRATION and press PF5.
The screen then looks similar to the one below:
> > + Text Lib SAGTEST
All ....+X...1....+..Y.2....+....3....+....4....+....5....+....6....+....7..
X 0010 THIS PORTION
0020 OF TEXT IS
Y 0030 FOR DEMONSTRATION OF
0040 PF-KEY ASSIGNMENTS.
0050
0060
0070
0080
0090
0100
....
0280
....+X...1....+..Y.2....+....3....+....4....+....5....+... S 4 L 1 |
The positions of the characters (P and blank) are marked as indicated by
the X and Y respectively, which appear in the top and bottom
information lines and next to the source lines that contain the marked characters.
In line 0040, enter the line command .MX-Y
and press ENTER.
The screen then looks similar to the one below:
> > + Text Lib SAGTEST
All X...+....1....+.Y..2....+....3....+....4....+....5....+....6....+....7..
0010 THIS
0030 OF
0040 PF-KEY ASSIGNMENTS.
X 0010 PORTION
0020 OF TEXT IS
Y 0030 FOR DEMONSTRATION
0040
0050
0060
0070
0080
0090
0100
....
0250
X...+....1....+.Y..2....+....3....+....4....+....5....+... S 6 L 1 |
The block of text starting with P in line 0010 and ending
with N in line 0030 is moved to the line below the line in
which you entered the command. The moved block of text and the remaining text in line
0010 and 0030 are left-justified.
Cursor-sensitive commands are entered without any parameters but with the cursor positioned anywhere on the editor screen (except in the command line).
To use a cursor-sensitive command
Enter a cursor-sensitive command in the editor command line.
Position the cursor on any character string contained on the editor screen (except in the command line).
Press ENTER.
Alternatively, you can use a PF key:
Position the cursor on any character string contained on the editor screen (except in the command line).
Press the PF key to which the required cursor-sensitive command is assigned (see PF and PA Keys in Editor Profile).
The following topics are covered below:
The cursor-sensitive SCAN command searches the current
source for the character string on which the cursor is positioned. (If the cursor is
positioned on a blank character, however, the SCAN/REPLACE window
is invoked.)
In split-screen mode, the cursor can be placed on a string in the split-screen area, too.
When using the SPLIT SCAN command, the same applies as for
the SCAN command, but the scan operation is performed in the
split-screen area only (see also the section Split-Screen
Commands).
For more information on SCAN, see the relevant description in
Editor
Commands.
Instead of using object-specific SPLIT commands to display
the source of an object (see the section Split-Screen
Commands), you can use the cursor-sensitive
SPLIT command.
If you use the cursor-sensitive SPLIT command and position the cursor on a
character string that corresponds to an object name or extended name (long name), the
source code of the respective object is displayed in the split-screen area of the
editor. The required object must be contained in the current library.
This feature is particularly useful, for example, if you do not know the object name that corresponds to the extended name (long name) of an object (for example, a subroutine) referenced in the current source.
If you use the cursor-sensitive EDIT or
LIST command and position the cursor on a character string
that corresponds to an object name or extended name (long name), the source of the
respective object is shown:
With the EDIT command, the source is loaded into the
editing area. If necessary, even a different editor is invoked.
With the LIST command, the source is listed, even if a
view (DDM) has been referenced.
The objects to be edited or listed must be contained in the current library.
For more information on EDIT and LIST, see the System
Commands documentation.
You can save the source code currently in the source work area as a source object and also as a cataloged object, which are stored in a Natural library in a Natural system file.
To save and/or catalog the current source
Use the system command SAVE, CATALOG
or STOW as described in Saving
and Cataloging Objects in the Using
Natural documentation.
Note
When you leave the program editor with the EXIT
editor command, the current source code is saved automatically if the appropriate
editor profile option
is set accordingly as described in Exit
Function.
To keep a copy of the current source
Use the editor options Source Save into and Auto Save Numbers as described in Editor Profile.
A copy of the source edited last with any of the Natural editors is then automatically saved as a source object in the current Natural environment.
The exit function is used to terminate the current editor session by issuing the
EXIT command.
The effect of the EXIT command depends on the setting of the
editor profile option
Prompt
Window for Exit Function:
If the option is set to Y (default setting), the
EXIT command invokes the EXIT
Function window whenever you execute the command on a source that
contains unsaved modifications (see also Modification Indicator). If no modifications were made to the source,
the window does not appear and the editor closes without saving the
source.
The EXIT Function window provides the following options:
| Option | Explanation |
|---|---|
| Save and Exit | Saves all modifications made to the current source code and leaves the editor. See also SAVE Object Window. |
| Exit without Saving | Leaves the editor without saving any modifications made to the current source code since it was last saved. |
| Resume Function | Neither leaves the editor nor saves any modifications; the prompt window is closed and the current function is resumed. |
If the option is set to N, the EXIT command
executes the Save and Exit function: saves all modifications made
to the current source and leaves the editor. See also SAVE Object
Window.
The Save and Exit function invokes the SAVE Object window if no object name has yet been defined for the current source code (as indicated in the editor command line).
This window prompts you to enter an object name and type. If you confirm your entries with ENTER, the source is saved under the specified name as a new object in the current library and the editor is terminated. PF3 closes the window without any action and the editor session is retained.