/* * Help functions for sc * R. Bond, 1988 * $Revision: 6.8 $ */ #include #include "sc.h" char *intro[] = { " ", " Overview:", " ", " A: This overview", " B: Options", " C: Cursor movement commands", " D: Cell entry and editing commands", " E: Line Editing", " F: File commands", " G: Row and column commands", " H: Range commands", " I: Miscellaneous commands", " J: Variable names/Expressions", " K: Range functions", " L: Numeric functions", " M: String functions", " N: Financial functions", " O: Time and date functions", " ", " Q: Return to main spreadsheet", (char *)0 }; char *options[] = { " ", " B: Options", " ", " ^To Toggle options. Toggle one option selected by o:", " ", " a Recalculate automatically or on ``@'' commands.", " c Current cell highlighting enable/disable.", " e External function execution enable/disable.", " n If enabled, a digit starts a numeric value.", " t Top line display enable/disable.", " x Encrypt/decrypt database and listing files.", " $ Dollar prescale. If enabled, all numeric constants.", " (not expressions) entered are multipled by 0.01.", " ", " S Set options. Options include:", " ", " byrows Recalculate in row order. (default)", " bycols Recalculate in column order.", " iterations=n Set the number of iterations allowed. (10)", " tblstyle=xx Set ``T'' output style to:", " 0 (none), tex, latex, or tbl.", (char *)0 }; char *cursor[] = { " ", " C: Cell cursor movement (always OK):", " ", " ^N ^P ^B ^F Down, up, back, forward", " ^Ed Go to end of range. Follow ^E by a direction indicator", " such as ^P or j.", " Arrow keys (if the terminal and termcap support them.)", " ", " Cell cursor movement if no prompt active:", " j,k,l,h Down, up, right, left", " SPACE Forward", " ^H Back", " TAB Forward, otherwise starts/ends a range", " ^ Up to row 0 of the current column.", " # Down to the last valid row of the current column.", " 0 Back to column A. Preface with ^U if numeric mode.", " $ Forward to the last valid column of the current row.", " b Back then up to the previous valid cell.", " w Forward then down to the next valid cell.", " g Go to a cell. Cell name, range name, quoted string,", " or a number specify which cell.", (char *)0 }; char *cell[] = { " ", " D: Cell entry and editing commands:", " ", " = Enter a numeric constant or expression.", " < Enter a left justified string or string expression.", " \",> Enter a right justified string or string expression.", " e Edit the current cell's numeric value.", " E Edit the current cell's string part.", " x Clear the current cell.", " c Copy the last marked cell to the current cell.", " m Mark a cell to be used as the source for ``c''", " + Increment numeric part", " - Decrement numeric part", " ", " In numeric mode, a decimal digit, ``+'', ``-'', and ``.'' all start", " a new numeric constant or expression.", (char *)0 }; char *vi[] = { " ", " E: Line Editor", " ", " Hitting the ESC key while entering any command on the top line", " will start a one-line vi-style editor. Supported commands:", " ", " ESC q Abort command entry.", " h l Move cursor forward, backward.", " 0 $ Move cursor to the beginning, end of the line.", " b w Move cursor forward/back one word.", " fc Move cursor to character c.", " tc Move the cursor the the character before c.", " i a Enter insert mode before/after the cursor.", " I Move to cursor column 0 and enter insert mode.", " x X Delete the character under/before the cursor.", " rc Replace the character under the cursor with c.", " cm Change - m = b,f,h,l,t or w.", " dm Delete - m = b,f,h,l,t or w.", " R Enter replace (overstrike) mode.", " + j - k / Forward/backward/search the command history.", " n Repeat last history search.", " . u Repeat/undo the last command.", (char *)0 }; char *file[] = { " ", " F: File commands:", " ", " G Get a new database from a file. ", " M Merge a new file into the current database.", " P Put the current database into a file.", " W Write a listing of the current database into a file in", " a form that matches its appearance on the screen.", " T Write a listing of the current database to a file, but", " put delimiters between each pair of fields.", " Optionally brackets output with control lines for ``tbl'',", " ``LaTeX'', or ``TeX''.", " ", " If encryption mode is set, file I/O will be encrypted/decrypted.", " ``\"| program\"'' for a file name will pipe (unencrypted) output to", " a program for Put, Write and Table. If a cell name is used", " as the file name, the cell's string part will be used as the", " file name.", (char *)0 }; char *row[] = { " ", " G: Row and column commands:", " ", " ir, ic Insert a new, empty row (column)", " ar, ac Append a new copy of the current row (column)", " dr, dc Delete the current row (column)", " pr, pc, pm Pull deleted cells back into the spreadsheet", " Insert rows, columns or merge the cells.", " vr, vc Remove expressions from the affected rows (columns),", " leaving only the values.", " zr, zc Hide (``zap'') the current row (column)", " sr, sc Show hidden rows (columns)", " f Set the output format to be used with the values of", " each cell in this column. Enter field width and", " number of fractional digits. A preceding count can be", " used to change more than one column.", " ", " Commands which move or copy cells also modify the row and column ", " references in the new cell expressions. Use ``fixed'' or the", " ``$'' style cell reference to supress the change.", (char *)0 }; char *range[] = { " ", " H: Range commands:", " ", " /x Clear a range. ", " /v Remove the expressions from a range of cells, leaving ", " just the values.", " /c Copy a source range to a destination range.", " /f Fill a range with constant values starting with a given", " value and increasing by a given increment.", " /d Assign a name to a cell or a range of cells. Give the", " the name, surrounded by quotes, and either a cell name such", " as ``A10'' or a range such as ``a1:b20''.", " /s Shows the currently defined range names. Pipe output to", " sort, then to less.", " /u Use this command to undefine a previously defined range", " name.", " ", " Range operations affect a rectangular region on the screen", " defined by the upper left and lower right cells in the region.", " A range is specified by giving the cell names separated by ``:'',", " such as ``a20:k52''. Another way to refer to a range is to use", " a name previously defined using ``/d''.", (char *)0 }; char *misc[] = { " ", " I: Miscellaneous commands:", " ", " Q q ^C Exit from the program.", " ^G ESC Abort entry of the current command.", " ? Help", " ! Shell escape. Enter a command to run. ``!!'' repeats", " the last command. Just ``!'' starts an interactive shell.", " ^L Redraw the screen.", " ^R Redraw the screen. Highlight cells with values but no", " expressions.", " ^X Redraw the screen. Show formulas, not values.", " @ Recalculate the spreadsheet.", " ^V Type, in the command line, the name of the current cell.", " ^W Type, in the command line, the current cell's expression.", " ^A Type, in the command line, the current cell's numeric value.", " TAB When the character cursor is on the top line TAB can be used", " to start or stop the display of the default range.", (char *)0 }; char *var[] = { " ", " J: Variable names:", " ", " K20 Row and column can vary on copies.", " $K$20 Row and column stay fixed on copies.", " $K20 Row can vary; column stays fixed on copies.", " K$20 Row stays fixed; column can vary on copies.", " fixed holds following expession fixed on copies.", " Cells and ranges can be given a symbolic name via ``/d''.", " ", " Expressions:", " -e Negation e<=e Less than or equal", " e+e Addition e=e Equal", " e-e Subtraction e!=e Not Equal", " e*e Multiplication e>=e Greater than or equal", " e/e Division e>e Greater than", " e%e Modulo e