This file is indexed.

/usr/share/octave/packages/3.2/statistics-1.0.10/__tbl_delim__.m is in octave-statistics 1.0.10-1.

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
## Copyright (C) 2008 Bill Denney
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program.  If not, see <http://www.gnu.org/licenses/>.

## -*- texinfo -*-
## @deftypefn {Function File} {[@var{d}, @var{err}] = } tblread (@var{d})
## Return the delimiter for tblread or tblwrite.
##
## The delimeter, @var{d} may be any single character or
## @itemize
## @item "space" " " (default)
## @item "tab" "\t"
## @item "comma" ","
## @item "semi" ";"
## @item "bar" "|"
## @end itemize
##
## @var{err} will be empty if there is no error, and @var{d} will be NaN
## if there is an error.  You MUST check the value of @var{err}.
## @seealso{tblread, tblwrite}
## @end deftypefn

## Author: Bill Denney <bill@denney.ws>

function [d, err] = __tbl_delim__ (d)

  ## Check arguments
  if nargin != 1
    print_usage ();
  endif

  err = "";
  ## Format the delimiter
  if ischar (d)
    ## allow for escape characters
    d = sprintf (d);
    if numel (d) > 1
      ## allow the word forms
      s.space = " ";
      s.tab = "\t";
      s.comma = ",";
      s.semi = ";";
      s.bar = "|";
      if ! ismember (d, fieldnames (s))
        err = ["tblread: delimiter must be either a single " ...
               "character or one of\n" ...
               sprintf("%s, ", fieldnames (s){:})(1:end-2)];
        d = NaN;
      else
        d = s.(d);
      endif
    endif
  else
    err = "delimiter must be a character";
    d = NaN;
  endif
  if isempty (d)
    err = "the delimiter may not be empty";
    d = NaN;
  endif

endfunction

## Tests
## The defaults
%!test
%! [d err] = __tbl_delim__ (" ");
%! assert (d, " ");
%! assert (err, "");
## Named delimiters
%!test
%! [d err] = __tbl_delim__ ("space");
%! assert (d, " ");
%! assert (err, "");
%!test
%! [d err] = __tbl_delim__ ("tab");
%! assert (d, sprintf ("\t"));
%! assert (err, "");
%!test
%! [d err] = __tbl_delim__ ("comma");
%! assert (d, ",");
%! assert (err, "");
%!test
%! [d err] = __tbl_delim__ ("semi");
%! assert (d, ";");
%! assert (err, "");
%!test
%! [d err] = __tbl_delim__ ("bar");
%! assert (d, "|");
%! assert (err, "");
## An arbitrary character
%!test
%! [d err] = __tbl_delim__ ("x");
%! assert (d, "x");
%! assert (err, "");
## An arbitrary escape string
%!test
%! [d err] = __tbl_delim__ ('\r');
%! assert (d, sprintf ('\r'))
%! assert (err, "");
## Errors
%!test
%! [d err] = __tbl_delim__ ("bars");
%! assert (isnan (d));
%! assert (! isempty (err));
%!test
%! [d err] = __tbl_delim__ ("");
%! assert (isnan (d));
%! assert (! isempty (err));
%!test
%! [d err] = __tbl_delim__ (5);
%! assert (isnan (d));
%! assert (! isempty (err));
%!test
%! [d err] = __tbl_delim__ ({"."});
%! assert (isnan (d));
%! assert (! isempty (err));