aboutsummaryrefslogtreecommitdiff
path: root/pkg/ecl/eparam.h
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /pkg/ecl/eparam.h
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'pkg/ecl/eparam.h')
-rw-r--r--pkg/ecl/eparam.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/pkg/ecl/eparam.h b/pkg/ecl/eparam.h
new file mode 100644
index 00000000..72ef1ab2
--- /dev/null
+++ b/pkg/ecl/eparam.h
@@ -0,0 +1,108 @@
+/*
+ * EPARAM.H -- Definition of the string editing capabilities. The mapping
+ * of the commands is defined by the *.ed files in DEV.
+ */
+
+#define FIRST_CMD 3 /* first command escape sequence */
+#define NUM_COMMANDS 35 /* number of recognized commands */
+#define MAX_COMMANDS 50 /* max commands recognized by edcap */
+#define SZ_ESCAPE 10 /* terminal escape sequence */
+#define SZ_KEYSTROKE 12 /* keystroke command name */
+
+#define G_TOPLINE 6 /* top of eparam scrolling region */
+#define G_BOTLINE 22 /* bottom of eparam scrolling region */
+#define G_STARTCOL 11 /* start of eparam edit area */
+#define G_CMDLINE 24 /* command line for messages & exit */
+
+#define G_MAXPARAM 100 /* maximum number of parameters */
+#define G_MAXPAGES 12 /* maximum number of pages */
+#define G_MAXSTRING 80 /* maximum size of the edit string */
+#define G_BIGSIZE 2048 /* sum of sizes of value fields */
+#define MAXPROMPT 2048 /* maximum characters in multiline pr. */
+#define PROMPTOFFSET 32 /* where the prompt starts */
+#define VALUEOFFSET 11 /* where the value field starts */
+#define MAX_ON_ROW 6 /* the number of %10.10s fields */
+
+#define FWD 1
+#define AFT 0
+
+/* eparam() context structure.
+ */
+struct ep_context {
+ int e_init; /* set on first call */
+ XINT e_topd; /* save top of dictionary */
+ int e_topkey; /* saved context variables */
+ int e_line; /* " */
+ int e_col; /* " */
+ int e_nextkey; /* " */
+ int e_nextline; /* " */
+ struct pfile *e_mpfp; /* master pfile descriptor */
+ struct pfile *e_cpfp; /* pfilecopy descriptor */
+ char e_pset[SZ_FNAME+1]; /* pset name (task or file) */
+};
+
+/* eparam() colon commands and exit status codes.
+ */
+#define EP_EOF 1 /* update pfile and pop context */
+#define EP_EDIT 2 /* discard context and edit */
+#define EP_DESCEND 3 /* push context and edit pfile */
+#define EP_RUN 4 /* exit and run task */
+
+/* Editor initialization and termination sequences (these have to be first
+ * in case a 'define key' capability is added).
+ */
+#define EDITOR_ID 0 /* editor's name */
+#define EDIT_INIT 1 /* editor initialization sequence */
+#define EDIT_TERM 2 /* editor termination sequence */
+
+/* edit commands */
+
+#define MOVE_UP 3 /* move the cursor up one line */
+#define MOVE_DOWN 4 /* move the cursor down one line */
+#define MOVE_RIGHT 5 /* move the cursor one char to the right */
+#define MOVE_LEFT 6 /* move the cursor one char to the left */
+#define NEXT_WORD 7 /* move the cursor one word to the right */
+#define PREV_WORD 8 /* move the cursor one word to the left */
+#define MOVE_EOL 9 /* move the cursor to the end of line */
+#define MOVE_BOL 10 /* move the cursor to the beginning */
+#define NEXT_PAGE 11 /* move to the next page */
+#define PREV_PAGE 12 /* move to the previous page */
+#define MOVE_START 13 /* move to the start of the text */
+#define MOVE_END 14 /* move to the end of the text */
+
+/* these commands are for EDT type editors */
+#define SET_FWD 15 /* set the direction forwards */
+#define SET_AFT 16 /* set the direction aftwards */
+#define TOGGLE_DIR 17 /* change the direction */
+
+#define DEL_LEFT 18 /* delete the character to the left */
+#define DEL_CHAR 19 /* delete the character under the cursor */
+#define DEL_WORD 20 /* delete up to and including next delimiter */
+#define DEL_LINE 21 /* delete up to the end of line */
+#define UNDEL_CHAR 22 /* undelete the character */
+#define UNDEL_WORD 23 /* undelete the word */
+#define UNDEL_LINE 24 /* undelete the line */
+
+#define FIND_FWD 25 /* find forward */
+#define FIND_AFT 26 /* find aftward */
+#define FIND_NEXT 27 /* find next */
+#define GET_HELP 28 /* display help information */
+#define REPAINT 29 /* clear and repaint the screen */
+#define EXIT_UPDATE 30 /* exit the editor */
+#define EXIT_NOUPDATE 31 /* exit the editor with no update */
+
+#define NEXT_LINE 32 /* move to the next line */
+#define NOMORE_COMMANDS 99 /* last command terminator */
+
+struct edit_commands {
+ int cmd;
+ char escape[SZ_ESCAPE+1];
+ char keystroke[SZ_KEYSTROKE+1];
+};
+
+extern struct edit_commands command[MAX_COMMANDS];
+extern char *cmdnames[MAX_COMMANDS];
+extern int numcommands;
+
+char *enumin(), *minmax();
+char *host_editor();