%   User Initialization file for the JED editor  -*- slang -*-
%   If a user does not have a startup file in the user's home directory,
%   JED will automatically load this from JED_ROOT/lib.   Thus it 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.  A similar statement applies for BRIEF,
%    and for Borland IDE-like bindings.
%
%  () = evalfile("emacs");           % Emacs-like bindings
%  () = evalfile("edt");             % EDT emulation
%  () = evalfile ("ide");            % Borland IDE (see also doc/ide-mode.txt)   
%  () = evalfile ("brief");          % Brief Keybindings (MSDOS only!!)
%  () = evalfile("wordstar");        % obsolete --- use ide instead)
%  () = evalfile ("cua");            % CUA-like key bindings
%  Note: For EDT emulation, jed386.exe requires that the GOLD.COM TSR 
%        be loaded.  This TSR is available from space.mit.edu:/pub/davis/jed.

% Some of the above emulations may set keys that conflict with access to
% the menubars.  For example, emacs uses ESC-f to move by words.  The 
% next line causes the keys to activate the menus.  Comment this out
% to preserve the emulation.
   enable_menu_keys ();

% If you use jed inside an XTerminal, you can use the mouse to access the 
% menus and move the cursor by uncommenting the next line:
%  enable_xmouse ();
   
% What should the Ctrl-H key do??  
%
%  setkey ("bol", "^H");              % causes ^H to go to beg of line (EDT)
%  setkey ("help_prefix", "^H");      % Uncomment to have Ctrl-H as help

#ifdef XWINDOWS
   % See xjed.txt for information regarding the delete key under X Windows.
   %    x_set_keysym (0xFFFF, 0, "\e[3~");
   %    setkey ("delete_char_cmd", "\e[3~");
#endif
   %  !!!!  ^S/^Q flow control problems !!!!
   %  if you experience problems with JED suddenly going into search mode
   %  for some reason then you are a victim of the emacs emulation's 
   %  binding of the ^S key to the search function.
   %  TO prevent this from happening, either find out how to 
   %  prevent unwanted ^S/^Q characters or uncomment the next line:
#ifdef UNIX   
   %enable_flow_control (1);
#endif
   
%----------------------------------------------------------------------

%  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

}  %Batch

%%%%%%%%%%%%%%%% top menu bar %%%%%%%%%%%%%%%

% To disable it, uncomment the next line.  Note that menus will still be
% available but the menubar will be hidden when not in use.
% enable_top_status_line (0);


%---------------------------------------------------------------------------
% User Information (used by some modes, automatically determined on Unix)
%---------------------------------------------------------------------------
% set_realname ("John Doe");
% set_username ("jd");
% set_hostname ("no.where.com");
% set_emailaddress ("jd@no.where.com");


%----------------------------------------------------------------------
% 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
No_Backups = 0;         % If non-zero, backup files will not be created.
Startup_With_File = 1;  % if greater then zero, force JED to prompt for a file
                        %   if none is specified on the command line.  If 
                        %   negative, inhibit startup message.
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, Fortran, and TeX modes.
                        % 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 IBMPC_SYSTEM
  HORIZONTAL_PAN  = -1; % For msdos, panning window might be better:
#endif

#ifdef IBMPC_SYSTEM
  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)
USE_TABS	= 1;	% Use tabs when generating whitespace.

Tab_Always_Inserts_Tab = 0; % Set this to 1 if you want the tab key to insert
                            % tabs.

WRAP_DEFAULT	= 72;	% wrap column
ADD_NEWLINE	= 1;	% add newline to file when writing if one not present
IGNORE_BEEP	= 3;	% Beep terminal during error messages---
                        %  1 == sound only, 2 = visible bell only, 3 = both
_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 = 0;
			% 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.

%---------------------------------------------------------------------------
% C-mode indentation style
%---------------------------------------------------------------------------
c_set_style ("knf"); % or "jed" or "linux", "gnu", "bsd", "k&r"

#ifdef IBMPC_SYSTEM
% If non-zero, treat file names as case sensitive
Case_Sensitive_Filenames = 0;
#endif

%---------------------------------------------------------------------------

#ifdef MSDOS XWINDOWS MSWINDOWS
% Alt-key handling.  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.  On XWindow systems, setting
% this to zero will cause the high bit to be set on the character.
%ALT_CHAR = 27;

#endif

%    Mute (dead or accent) keys 
%    Valid Mute keys are:
%      ^, ~, ', `, \d168 (ISO Diaeresis), \d180 (ISO Acute), and \".
%    This means pressing this key then the key you want to accent yields
%     the accented character.  If you do not know what this is, you do not
%     need them.  By default, they are turned off.

%mute_set_mute_keys (" ^ ~ ' ` \d168 \d180 \"  ");  % choose all or subset

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

#ifdef IBMPC_SYSTEM
%  DISPLAY_EIGHT_BIT = 128;
#else
%  DISPLAY_EIGHT_BIT = 160; % Other systems assume ISO Latin 1
#endif

% Color Settings
% Look at jed/lib/colors/README for a description of predefined color
% schemes.
%set_color_scheme ("black3");
%set_color_scheme ("blue2");

#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. 
%  

if (0)
{
   $1 = "vt102 vt200 vt220 vt300 vt320 vt420 xterms";
   if (is_substr($1, getenv("TERM"))) set_term_vtxxx(0);
}
#endif
  

%  Compiler interface --- uncomment one of the following:
% 
% variable Compile_Default_Compiler = "gcc";           % GNU compiler
% variable Compile_Default_Compiler = "Ultrix_cc";     % cc on Ultrix
% variable Compile_Default_Compiler = "bcc";           % Borlands BCC
% variable Compile_Default_Compiler = "sun_acc";       % SunOS C++ and ACC
% variable Compile_Default_Compiler = "hp_cc";         % HPUX cc
#ifdef WIN32
variable W32shell_Perform_Globbing = 0;
#endif

%
%  Hooks:  read jed/doc/hooks.sl for more information
%
define global_mode_hook (hook_name)
{
   % if (hook_name != "c_mode_hook")
   %   local_setkey ("self_insert_cmd", "\t");
}

define dired_hook ()
{
   %local_unsetkey ("^K");
   %local_setkey ("dired_kill_line", "^K");
}

define c_set_style_hook (style)
{  
   if (strlow(style) == "knf")
     {
	TAB_DEFAULT = 8;
	USE_TABS = 1;
	ADD_NEWLINE = 1;
	C_INDENT = 8;
	C_BRACE = 0;
	C_BRA_NEWLINE = 0;
	C_CONTINUED_OFFSET = 0;
	C_Colon_Offset = 0;
	C_Comment_Column = 0;
     }
}
