Print this page
12212 typos in some section 3tecla man pages

Split Close
Expand all
Collapse all
          --- old/usr/src/man/man3tecla/pca_lookup_file.3tecla
          +++ new/usr/src/man/man3tecla/pca_lookup_file.3tecla
↓ open down ↓ 16 lines elided ↑ open up ↑
  17   17  .\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
  18   18  .\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
  19   19  .\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
  20   20  .\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  21   21  .\"
  22   22  .\" Except as contained in this notice, the name of a copyright holder
  23   23  .\" shall not be used in advertising or otherwise to promote the sale, use
  24   24  .\" or other dealings in this Software without prior written authorization
  25   25  .\" of the copyright holder.
  26   26  .\" Portions Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
  27      -.TH PCA_LOOKUP_FILE 3TECLA "Aug 13, 2007"
       27 +.TH PCA_LOOKUP_FILE 3TECLA "January 18, 2020"
  28   28  .SH NAME
  29   29  pca_lookup_file, del_PathCache, del_PcaPathConf, new_PathCache,
  30   30  new_PcaPathConf, pca_last_error, pca_path_completions, pca_scan_path,
  31   31  pca_set_check_fn, ppc_file_start, ppc_literal_escapes \- lookup a file in a
  32   32  list of directories
  33   33  .SH SYNOPSIS
  34      -.LP
  35   34  .nf
  36   35  cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-ltecla\fR [ \fIlibrary\fR\&.\|.\|. ]
  37   36  #include <libtecla.h>
  38   37  
  39   38  \fBchar *\fR\fBpca_lookup_file\fR(\fBPathCache *\fR\fIpc\fR, \fBconst char *\fR\fIname\fR,
  40   39       \fBint\fR \fIname_len\fR, \fBint\fR \fIliteral\fR);
  41   40  .fi
  42   41  
  43   42  .LP
  44   43  .nf
↓ open down ↓ 40 lines elided ↑ open up ↑
  85   84  .nf
  86   85  \fBvoid\fR \fBppc_file_start\fR(\fBPcaPathConf *\fR\fIppc\fR, \fBint\fR \fIstart_index\fR);
  87   86  .fi
  88   87  
  89   88  .LP
  90   89  .nf
  91   90  \fBvoid\fR \fBppc_literal_escapes\fR(\fBPcaPathConf *\fR\fIppc\fR, \fBint\fR \fIliteral\fR);
  92   91  .fi
  93   92  
  94   93  .SH DESCRIPTION
  95      -.sp
  96      -.LP
  97   94  The \fBPathCache\fR object is part of the \fBlibtecla\fR(3LIB) library.
  98   95  \fBPathCache\fR objects allow an application to search for files in any colon
  99   96  separated list of directories, such as the UNIX execution \fBPATH\fR
 100   97  environment variable. Files in absolute directories are cached in a
 101   98  \fBPathCache\fR object, whereas relative directories are scanned as needed.
 102   99  Using a \fBPathCache\fR object, you can look up the full pathname of a simple
 103  100  filename, or you can obtain a list of the possible completions of a given
 104  101  filename prefix. By default all files in the list of directories are targets
 105  102  for lookup and completion, but a versatile mechanism is provided for only
 106  103  selecting specific types of files. The obvious application of this facility is
 107  104  to provide Tab-completion and lookup of executable commands in the UNIX
 108      -\fBPATH\fR, so an optional callback which rejects all but executable files, is
      105 +\fBPATH\fR, so an optional callback which rejects all but executable files is
 109  106  provided.
 110  107  .SS "An Example"
 111      -.sp
 112      -.LP
 113  108  Under UNIX, the following example program looks up and displays the full
 114  109  pathnames of each of the command names on the command line.
 115  110  .sp
 116  111  .in +2
 117  112  .nf
 118  113  #include <stdio.h>
 119  114  #include <stdlib.h>
 120  115  #include <libtecla.h>
 121  116  
 122  117  int main(int argc, char *argv[])
↓ open down ↓ 39 lines elided ↑ open up ↑
 162  157  .nf
 163  158  $ ./example less more blob
 164  159  The full pathname of 'less' is /usr/bin/less
 165  160  The full pathname of 'more' is /bin/more
 166  161  The full pathname of 'blob' is unknown
 167  162  $
 168  163  .fi
 169  164  .in -2
 170  165  
 171  166  .SS "Function Descriptions"
 172      -.sp
 173      -.LP
 174  167  To use the facilities of this module, you must first allocate a \fBPathCache\fR
 175  168  object by calling the \fBnew_PathCache()\fR constructor function. This function
 176  169  creates the resources needed to cache and lookup files in a list of
 177  170  directories. It returns \fINULL\fR on error.
 178  171  .SS "Populating The Cache"
 179      -.sp
 180      -.LP
 181  172  Once you have created a cache, it needs to be populated with files. To do this,
 182  173  call the \fBpca_scan_path()\fR function. Whenever this function is called, it
 183  174  discards the current contents of the cache, then scans the list of directories
 184  175  specified in its path argument for files. The path argument must be a string
 185  176  containing a colon-separated list of directories, such as
 186  177  "\fB/usr/bin\fR:\fB/home/mcs/bin\fR:". This can include directories specified
 187  178  by absolute pathnames such as "\fB/usr/bin\fR", as well as sub-directories
 188  179  specified by relative pathnames such as "." or "\fBbin\fR". Files in the
 189  180  absolute directories are immediately cached in the specified \fBPathCache\fR
 190  181  object, whereas subdirectories, whose identities obviously change whenever the
 191  182  current working directory is changed, are marked to be scanned on the fly
 192  183  whenever a file is looked up.
 193  184  .sp
 194  185  .LP
 195  186  On success this function return 0. On error it returns 1, and a description of
 196  187  the error can be obtained by calling \fBpca_last_error\fR(\fIpc\fR).
 197  188  .SS "Looking Up Files"
 198      -.sp
 199      -.LP
 200  189  Once the cache has been populated with files, you can look up the full pathname
 201  190  of a file, simply by specifying its filename to \fBpca_lookup_file()\fR.
 202  191  .sp
 203  192  .LP
 204  193  To make it possible to pass this function a filename which is actually part of
 205  194  a longer string, the \fIname_len\fR argument can be used to specify the length
 206  195  of the filename at the start of the \fIname\fR[] argument. If you pass -1 for
 207  196  this length, the length of the string will be determined with \fIstrlen\fR. If
 208  197  the \fIname\fR[] string might contain backslashes that escape the special
 209  198  meanings of spaces and tabs within the filename, give the \fIliteral\fR
 210  199  argument the value 0. Otherwise, if backslashes should be treated as normal
 211  200  characters, pass 1 for the value of the \fIliteral\fR argument.
 212  201  .SS "Filename Completion"
 213      -.sp
 214      -.LP
 215  202  Looking up the potential completions of a filename-prefix in the filename cache
 216  203  is achieved by passing the provided \fBpca_path_completions()\fR callback
 217  204  function to the \fBcpl_complete_word\fR(3TECLA) function.
 218  205  .sp
 219  206  .LP
 220  207  This callback requires that its data argument be a pointer to a PcaPathConf
 221  208  object. Configuration objects of this type are allocated by calling
 222  209  \fBnew_PcaPathConf()\fR.
 223  210  .sp
 224  211  .LP
↓ open down ↓ 18 lines elided ↑ open up ↑
 243  230  delimiting the start of the filename. These backslashes are thus ignored while
 244  231  looking for completions, and subsequently added before spaces, tabs and literal
 245  232  backslashes in the list of completions. To have unescaped backslashes treated
 246  233  as normal characters, call \fBppc_literal_escapes()\fR with a non-zero value in
 247  234  its literal argument.
 248  235  .sp
 249  236  .LP
 250  237  When you have finished with a \fBPcaPathConf\fR variable, you can pass it to
 251  238  the \fBdel_PcaPathConf()\fR destructor function to reclaim its memory.
 252  239  .SS "Being Selective"
 253      -.sp
 254      -.LP
 255  240  If you are only interested in certain types or files, such as, for example,
 256  241  executable files, or files whose names end in a particular suffix, you can
 257  242  arrange for the file completion and lookup functions to be selective in the
 258  243  filenames that they return. This is done by registering a callback function
 259  244  with your \fBPathCache\fR object. Thereafter, whenever a filename is found
 260  245  which either matches a filename being looked up or matches a prefix which is
 261  246  being completed, your callback function will be called with the full pathname
 262  247  of the file, plus any application-specific data that you provide. If the
 263  248  callback returns 1 the filename will be reported as a match. If it returns 0,
 264  249  it will be ignored. Suitable callback functions and their prototypes should be
 265  250  declared with the following macro. The \fBCplCheckFn\fR typedef is also
 266      -provided in case you wish to declare pointers to such functions
      251 +provided in case you wish to declare pointers to such functions.
 267  252  .sp
 268  253  .in +2
 269  254  .nf
 270  255  #define CPL_CHECK_FN(fn) int (fn)(void *data, const char *pathname)
 271  256  typedef CPL_CHECK_FN(CplCheckFn);
 272  257  .fi
 273  258  .in -2
 274  259  
 275  260  .sp
 276  261  .LP
↓ open down ↓ 18 lines elided ↑ open up ↑
 295  280  thousands. If your callback does anything time consuming, this could result in
 296  281  an unacceptable delay for the user, so callbacks should be kept short.
 297  282  .sp
 298  283  .LP
 299  284  To improve performance, whenever one of these callbacks is called, the choice
 300  285  that it makes is cached, and the next time the corresponding file is looked up,
 301  286  instead of calling the callback again, the cached record of whether it was
 302  287  accepted or rejected is used. Thus if somebody tries to complete an empty
 303  288  string, and hits tab a second time when nothing appears to happen, there will
 304  289  only be one long delay, since the second pass will operate entirely from the
 305      -cached dispositions of the files. These cached dipositions are discarded
      290 +cached dispositions of the files. These cached dispositions are discarded
 306  291  whenever \fBpca_scan_path()\fR is called, and whenever \fBpca_set_check_fn()\fR
 307  292  is called with changed callback function or \fIdata\fR arguments.
 308  293  .SS "Error Handling"
 309      -.sp
 310      -.LP
 311  294  If \fBpca_scan_path()\fR reports that an error occurred by returning 1, you can
 312  295  obtain a terse description of the error by calling
 313  296  \fBpca_last_error\fR(\fIpc\fR). This returns an internal string containing an
 314  297  error message.
 315  298  .SS "Cleaning Up"
 316      -.sp
 317      -.LP
 318  299  Once you have finished using a \fBPathCache\fR object, you can reclaim its
 319  300  resources by passing it to the \fBdel_PathCache()\fR destructor function. This
 320  301  takes a pointer to one of these objects, and always returns \fINULL\fR.
 321  302  .SS "Thread Safety"
 322      -.sp
 323      -.LP
 324  303  It is safe to use the facilities of this module in multiple threads, provided
 325  304  that each thread uses a separately allocated \fBPathCache\fR object. In other
 326  305  words, if two threads want to do path searching, they should each call
 327  306  \fBnew_PathCache()\fR to allocate their own caches.
 328  307  .SH ATTRIBUTES
 329      -.sp
 330      -.LP
 331  308  See \fBattributes\fR(5) for descriptions of the following attributes:
 332  309  .sp
 333  310  
 334  311  .sp
 335  312  .TS
 336  313  box;
 337  314  c | c
 338  315  l | l .
 339  316  ATTRIBUTE TYPE  ATTRIBUTE VALUE
 340  317  _
 341  318  Interface Stability     Evolving
 342  319  _
 343  320  MT-Level        MT-Safe
 344  321  .TE
 345  322  
 346  323  .SH SEE ALSO
 347      -.sp
 348      -.LP
 349  324  \fBcpl_complete_word\fR(3TECLA), \fBef_expand_file\fR(3TECLA),
 350  325  \fBgl_get_line\fR(3TECLA), \fBlibtecla\fR(3LIB), \fBattributes\fR(5)
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX