This file is indexed.

/usr/share/jed/jed-extra/view.sl is in jed-extra 2.5.6-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
% view.sl: A generic view mode for readonly buffers
% 
% Copyright (c) 2006 Günter Milde and Paul Boekholt
% Released under the terms of the GNU General Public License (ver. 2 or later)
% 
% Versions
% -------- 
%            1.0 first public release
% 2005-04-05 1.1 merge of GM and PB versions, bugfix in enable edit
% 2005-04-07 1.2 added require("keydefs") (Rafael Laboissiere)
% 2006-03-20 1.3 repeat_search() only defined if not already existent
% 2006-09-07 1.4 bugfix in enable_edit() if there is no buffer_filename
% 2007-06-06 1.5 view_mode: folding_mode() -> fold_mode() to respect the 
% 	     	 setting of `Fold_Mode_Ok' without asking.
% 	     	 Moved definition of set_view_mode_if_readonly() to
% 	     	 Customization documentation.
% 2007-09-21 1.5.1 bugfix in enable_edit(): fall back to no_mode().
% 
% Customization
% -------------
% 
% If you want to change the keybindings for all readonly buffers based
% on the "view" keymap you either just change this file, or insert in your 
% jed.rc file something like
% 
%   require("view");
%   definekey("close_and_insert_word", "i", "view");
%   
% After that, in all modes that copy the view keymap, pressing key 'i'
% closes the buffer and inserts the current word into the calling buffer
% (if the binding  is not overwritten in the mode).
%   
% To use view mode as default for readonly buffers, insert lines similar to
% 
%   define set_view_mode_if_readonly()
%   {
%      if (is_readonly)
%        % if ((what_mode(), pop) == "") % no mode
%          view_mode;
%   }
%   append_to_hook("_jed_find_file_after_hooks", &set_view_mode_if_readonly);

private variable mode = "view";

% requirements
autoload("close_buffer", "bufutils");
autoload("set_help_message", "bufutils");
autoload("help_message", "bufutils");
autoload("close_and_insert_word", "bufutils");
autoload("close_and_replace_word", "bufutils");

require("keydefs");  % in stadandard library but not loaded by all emulations

% customization
% Ask before going to edit mode?
custom_variable("View_Edit_Ask", 1);

% --- helper functions ---

% Make a readonly buffer editable (based on the same function in most.sl)
define enable_edit()
{
   if(View_Edit_Ask)
     !if (get_y_or_n("Edit this buffer") == 1)
       return;
   
   set_readonly(0);
   set_status_line("", 0);  % reset to global
   if (strlen(file_type(buffer_filename)))
     runhooks("mode_hook", file_type(buffer_filename));
   else
     no_mode();
}

#ifnexists repeat_search
% this one is also in cuamisc.sl (and hopefully one day in site.sl)!
define repeat_search()
{
   go_right (1);
   !if (fsearch(LAST_SEARCH)) 
     error ("Not found.");
}
#endif

% --- the mode ---

% a generic keymap for readonly buffers (use for view-mode or
% as base for your specific map with copy_keymap(mode, "view"))
!if (keymap_p(mode))
{
   make_keymap(mode);
%    _for ('a', 'z', 1)
%      definekey(char, "error(help_message)", _stk_roll(2), mode);
   definekey("close_buffer",                     "\e\e\e", mode); % Escape
   definekey("page_up", 		         Key_BS,   mode);
   definekey("page_down",                        " ",      mode);
   % TODO: Key_Return/Key_BS  scroll one line down/up
   definekey("bob",                              "<",      mode);
   definekey("eob; recenter(window_info('r'));", ">",      mode);
   definekey("re_search_forward",                "/",      mode);
   definekey("repeat_search",                    "\\",     mode);
   definekey("help_message",                     "?",      mode);
   definekey("search_backward",                  "b",	   mode);
   definekey("enable_edit",                      "e",      mode);
   definekey("search_forward",                   "f",	   mode);
   definekey("goto_line",                        "g",      mode);
%    definekey("close_and_insert_word",            "i",      mode);
   definekey("describe_mode",                    "h",      mode);
%    definekey("page_down",                        "n",      mode);
%    definekey("page_up",                          "p",      mode);
   definekey("close_buffer",                     "q",      mode);
%   definekey("close_and_replace_word",           "r",      mode);
   definekey("isearch_forward",                  "s",      mode);
   _for (0, 9, 1)
     definekey("digit_arg", string(exch()), mode);
}

% view menu (appended to an possibly existing mode menu)
static define view_menu();
static define view_menu(menu)
{
   
   variable init_menu = get_blocal_var("init_mode_menu");
   if (andelse{init_menu != NULL}{init_menu != &view_menu})
     {
	@init_menu(menu);
	menu_append_separator(menu);
     }
   menu_append_item(menu, "&Edit",          "enable_edit");
   menu_append_item(menu, "&Close", "close_buffer");
}

public define view_mode()
{
   % If it's folded and Fold_Mode_Ok is True, 
   % add the folding keybindings to the view map
   if(blocal_var_exists("fold_start"))
     {
	use_keymap(mode);
	fold_mode;
     }
   set_readonly(1);
   set_buffer_modified_flag(0);
   define_blocal_var("init_mode_menu", mode_get_mode_info("init_mode_menu"));
   use_keymap(mode);
   set_mode(mode, 0);
   mode_set_mode_info(mode, "init_mode_menu", &view_menu);
   set_help_message(
     "SPC:pg_dn BS:pg_up f:search_fw b:search_bw q:quit e:edit ?:this_help");
   run_mode_hooks(mode);
}

provide(mode);