%   User Initialization file for the JED editor
%   If a user does not have a startup file in the user's home directory,
%   JED will automatically load this from JED_LIBRARY.   Thus is is easier
%   for a system manager to make defaults for all users.

%   Do not edit this file directly.  Instead, copy it to your home 
%   directory (sys$login:jed.rc on VMS or $HOME/.jedrc on Unix) and edit
%   the resulting file.  

%   To uncomment a line, simply remove any leading '%' characters.

%   This file is divided into various sections.  The first section pertains
%   to keybindings (e.g., Wordstar, Emacs, EDT, etc...) and the following
%   sections pertain to user preferences such as default TAB sizes, line 
%   and column numbers on status line, colors, indentation style, etc...

if (BATCH == 0)
{
%----------------------------------------------------------------------
%  Keybindings  (not loaded for batch processes)
%  
%    Default bindings are Emacs-like with EDT emulation on Unix and VMS.
%    For the PC, only Emacs is enabled by default.  If you do not want EDT
%    bindings, simply coment out the appropriate line.   
%
%    For Wordstar like bindings, comment out EDT and Emacs lines and
%    uncomment Wordstar line.
%

   evalfile("emacs"); pop();           % Emacs-like bindings
#ifndef MSDOS OS2
   evalfile("edt"); pop();             % EDT--- Unix and VMS
#else
%      evalfile("edt"); pop();         % EDT--- IBMPC
#endif

%     evalfile("wordstar"); pop();     % Wordstar
   
%----------------------------------------------------------------------
%
%   TAB key setting  -- by default, the tab key is bound to 'indent_line_cmd'.
%                       If you want a real tab inserted, uncomment next line.
%
%   setkey("self_insert_cmd", "^I");
   
%----------------------------------------------------------------------
%  
%  Initial help screen --- comment out to disable.
%  Note that for the help to be valid, it must occur AFTER bindings are 
%  loaded.
   
help();               % Pops up a help window-- bound to Control-H Control-H

}  %Batch

%----------------------------------------------------------------------
% JED global variables  --- defaults shown
%
#ifdef VMS UNIX
%USE_ANSI_COLORS = 1;   % if non-zero, JED will display colors on a color
                        % terminal (Unix and VMS only) See doc/color.txt 
                        % for more discussion and look below for setting
                        % the colors.
#endif
Startup_With_File = 0;  % if non-zero, force JED to prompt for a file
                        %   if none is specified on the command line.
DISPLAY_TIME    = 1;    % non-zero enables the time to be displayed on 
                        %  status line, zero disables it.  If this value
                        %  is -1, 24 hour time will be used.
HIGHLIGHT	= 1;	% non-zero for region highlighting
WANT_SYNTAX_HIGHLIGHT = 1;
                        % Highlight syntax in C mode.  See section on colors
                        %  below for choosing how to highlight.  On Unix and 
                        %  VMS systems, USE_ANSI_COLORS must also be non-zero.
HORIZONTAL_PAN	= 20;	% if zero, no automatic panning.  If positive, only
                        % the current line is panned.  If negative, pan window.
#ifdef MSDOS		% For msdos, panning window might be better:
  HORIZONTAL_PAN  = -1;
#endif

#ifdef MSDOS
  LINENUMBERS	= 2;	% A value of zero means do NOT display line number on 
#else                   % status line line.  A value of 1, means to display
  LINENUMBERS	= 1;	% the linenumber. A value greater than 1 will also
#endif			% display column number information.  I recommend a 
			% value of 2 only at high baud rates

BLINK		= 1;	% if non zero, blink matching parenthesis
TAB_DEFAULT	= 8;	% Tab size  (also try edit_tab_stops)
WRAP		= 78;	% wrap column
ADD_NEWLINE	= 1;	% add newline to file when writing if one not present
IGNORE_BEEP	= 0;	% If non zero, to not beep terminal during error msgs.
_traceback	= 0;	% Non zero means dump traceback on S-Lang errors
WRAP_INDENTS	= 0;	% Non zero indents next line after wrapping current.
			%  Make this a 1 if you want indented text mode.
KILL_LINE_FEATURE = 1;
			% If non-zero, kill line will kill through end of the 
			%  line if Point is at the beginning of the line. For
			%  emacs-like behavior, set this to zero.
#ifndef MSDOS OS2
OUTPUT_RATE    = 0;     % Should be set automatically by JED. It is the 
                        % of chars sent to terminal / second.  (0 = Infinity)
			% 
			% If JED pauses during screen updates, then you need
			% to set your baud rate properly or simply set this
			% variable to zero.  JED is not slow, rather it assumes
			% your terminal is, so JED sleeps when writing to the
			% terminal.  By default, this is set to zero.  I 
			% suggest that you comment it out and let JED set it 
			% ASSUMING YOUR BAUD RATE IS CORRECT.  For example, on
                        % Unix, enter 'stty 2400' at the shell prompt to set
			% the baud rate to 2400.  Setting this variable
			% properly will synchronize JED's screen writes to
			% your terminal output rate for increased performance.
#endif

%                           C-mode variables:

C_INDENT	= 3;	% amount of space to indent within block.
C_BRACE		= 2;	% amount of space to indent brace
C_BRA_NEWLINE   = 0;    % If non-zero, insert a newline first before inserting
                        % a '{'.  Many C programmers like this to be 0. A zero
			% value will force '{' to be on same line as insertion.
				
			% Note that in C mode, the keys '{' and '}' are bound
			% to the commands 'brace_bra_cmd' and 'brace_ket_cmd'
			% respectively.


#ifdef UNIX
% JED Email.  JED uses the UC Berkeley mail program for Email.   Most systems
% have this.  Try ^Xm mail and you get an error, uncomment this next line 
% restart JED and try again.  This is definitely the case for Linux.  Again,
% only uncomment out this line if mail fails!

% variable UCB_Mailer; UCB_Mailer = "/bin/mail";
#endif

#ifdef MSDOS
% Alt-key handling on PC systems.  Setting this variable controls how the
% Alt key is handled.  By default it is set to 27 (Ascii ESCAPE).  This means
% that any key pressed in conjunction with the alt key produces ESCAPE 
% followed by the key itself.  If ALT-X is pressed, an ESCAPE-X is generated.
% Set it to zero to turn off Alt key processing.
ALT_CHAR = 27;

#endif

%
% 8 bit stuff  -- see documentation for a complete discussion
%

META_CHAR	= -1;	% All chars with hi bit set will self insert

#ifdef MSDOS OS2
  DISPLAY_EIGHT_BIT = 1;
#else
  DISPLAY_EIGHT_BIT = 160; % Other systems assume ISO Latin 1
#endif

#ifndef XWINDOWS
%  COLORS: 
%
%  Note that to use the colors below with MS-Kermit, do 
%  'set term color 30 47' at the MS-Kermit prompt.
%  (See the file 'colors.txt' for a description of using JED with color 
%  terminals.)

%  Foreground and background:
%    "black", "blue", "green", "cyan", "red", "magenta", "brown", "lightgray"
%  Foreground Only:
%    "gray", "brightblue", "brightgreen", "brightcyan", "brightred", 
%    "brightmagenta", "yellow", "white"
%  This is a limitation of video adapters on PC systems.  For MSDOS, I 
%  reprogram the controller so that high intensity background colors may be
%  displayed.  There does not seem to be a way to do this in MS-Kermit.

   $1 = "black"; $2 = "white";
   set_color("normal", $1, $2);
   set_color("status", "yellow", "blue");
   set_color("region", "yellow", "brightmagenta");
   set_color("operator", $1, $2);      % +, -, etc..
   set_color("number", "brightblue", $2);    % 10, 2.71, etc..
   set_color("comment", "magenta", "brightcyan");% /* comment */
   set_color("string", "brightblue", $2);    % "string" or 'char'
   set_color("keyword", "brightred", $2);    % if, while, unsigned, ...
   set_color("delimeter", $1, $2);     % {}[](),.;...

#ifdef UNIX VMS
if (USE_ANSI_COLORS) call ("redraw");
#else
   call("redraw");
#endif
#endif  XWindows

#ifdef UNIX
%
%  Terminal type.  By default, on unix termcap is used.  However, some
%  (if not all) termcaps do not include AL, DL strings for vtxxx terminals.
%
%  True blue vt100 terminals cannot insert and delete lines so the AL and DL
%  termcap entries are not appropriate for them.  However, almost no one
%  uses a true vt100 terminal anymore but they set their TERM variable to
%  vt100 just the same.  If you do not like the way your terminal scrolls,
%  and it is more than a vt100, either set your TERM variable appropriately
%  or add vt100 to the list below. 
%  
  $1 = "vt102 vt200 vt220 vt300 vt320 vt420 xterms";

  if (is_substr($1, getenv("TERM"))) set_term_vtxxx(0);

#endif
  

variable compile_parse_error_function;
%
%  Compiler interface--- select your compiler:
%
% compile_parse_error_function = "gcc";
#ifdef UNIX
%      compile_parse_error_function = "Ultrix_cc";
#else
#ifdef MSDOS
       compile_parse_error_function = "bcc";
#endif
#endif

%
%  Hooks:
%
%     is_paragraph_separator  is used to determine if current line delimits
%          a paragraph.
%
%     By default, jed considers any line which is either empty, begins with
%      a backslash, or a percent char to delimit a paragraph.  In slang, this
%      is expressed as:
%
%     define is_paragraph_separator ()
%     {
%       bol();
%       if (looking_at("\\") or looking_at("%")) return (1);
%       
%       skip_while();
%       return (eolp());
%     }
%
%     The default implementation is in C.
%
%     This particular definition was chosen since is it is useful for (La)TeX
%


%
%  Insert contents of other window
%
define insert_other_window()
{
  if (nwindows() != 2) return;
  otherwindow();
  whatbuf();
  otherwindow();
  insbuf();
}

% This sets terminals to vt320 on vt320s of course:
%"\e[63;1\"p"  tt_send
