dln_find.c File Reference
`#include "dln.h"`
`#include <strings.h>`
`#include <stdio.h>`
`#include <sys/types.h>`
`#include <sys/stat.h>`

Go to the source code of this file.

## Macros

#define | dln_notimplement --->>> dln not implemented <<<---
#define | dln_memerror abort
#define | dln_exit exit
#define | dln_warning fprintf
#define | dln_warning_arg stderr,
#define | free(x) xfree(x)
#define | S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#define | MAXPATHLEN 1024
#define | PATHNAME_TOO_LONG()
#define | RETURN_IF(expr) if (expr) return (char *)fname;

## Functions

static void | dln_loaderror (const char *format,...)
void * | xmalloc ()
void * | xcalloc ()
void * | xrealloc ()
char * | getenv ()
static char * | dln_find_1 (const char *fname, const char *path, char *buf, size_t size, int exe_flag)
char * | dln_find_exe_r (const char *fname, const char *path, char *buf, size_t size)
char * | dln_find_file_r (const char *fname, const char *path, char *buf, size_t size)
char * | dln_find_exe (const char *fname, const char *path)
char * | dln_find_file (const char *fname, const char *path)

## Variables

static char | fbuf [MAXPATHLEN]

## Macro Definition Documentation

#define dln_exit exit

Definition at line 23 of file dln_find.c.

#define dln_memerror abort

Definition at line 22 of file dln_find.c.

#define dln_notimplement --->>> dln not implemented <<<---

Definition at line 21 of file dln_find.c.

#define dln_warning fprintf

Definition at line 24 of file dln_find.c.

Referenced by dln_find_1().

#define dln_warning_arg stderr,

Definition at line 25 of file dln_find.c.

Referenced by dln_find_1().

#define free | ( |  | x | ) | xfree(x)

Definition at line 54 of file dln_find.c.

#define MAXPATHLEN 1024

Definition at line 71 of file dln_find.c.

#define PATHNAME_TOO_LONG | ( |  | ) |

Value:
dln_warning(dln_warning_arg pathname_too_long, \
((bp - fbuf) > 100 ? 100 : (int)(bp - fbuf)), fbuf, \
((bp - fbuf) > 100 ? "..." : ""), \
(fnlen > 100 ? 100 : (int)fnlen), fname, \
(fnlen > 100 ? "..." : ""))

Referenced by dln_find_1().

#define RETURN_IF | ( |  | expr | ) | if (expr) return (char *)fname;

Referenced by dln_find_1().

#define S_ISDIR | ( |  | m | ) | (((m) & S_IFMT) == S_IFDIR)

Definition at line 64 of file dln_find.c.

Referenced by dln_find_1().

## Function Documentation

static char * dln_find_1 | ( | const char * | fname,
|  | const char * | path,
|  | char * | buf,
|  | size_t | size,
|  | int | exe_flag
| ) |  |

static

Definition at line 128 of file dln_find.c.

References bp, CharNext, dln_warning, dln_warning_arg, dp, eaccess(), fbuf, getenv(), i, NULL, p, PATH_SEP, PATHNAME_TOO_LONG, RETURN_IF, S_ISDIR, stat, STRCASECMP, strchr(), strlcpy(), strlen(), and X_OK.

Referenced by dln_find_exe_r(), and dln_find_file_r().

char* dln_find_exe | ( | const char * | fname,
|  | const char * | path
| ) |  |

Definition at line 116 of file dln_find.c.

References dln_find_exe_r(), and fbuf.

char* dln_find_exe_r | ( | const char * | fname,
|  | const char * | path,
|  | char * | buf,
|  | size_t | size
| ) |  |

Definition at line 85 of file dln_find.c.

References buf, dln_find_1(), free, getenv(), PATH_ENV, and strdup.

Referenced by dln_find_exe(), proc_exec_v(), rb_proc_exec(), rb_w32_aspawn_flags(), and rb_w32_spawn().

char* dln_find_file | ( | const char * | fname,
|  | const char * | path
| ) |  |

Definition at line 122 of file dln_find.c.

References dln_find_file_r(), and fbuf.

char* dln_find_file_r | ( | const char * | fname,
|  | const char * | path,
|  | char * | buf,
|  | size_t | size
| ) |  |

Definition at line 107 of file dln_find.c.

References dln_find_1().

Referenced by dln_find_file(), process_options(), and ruby_init_loadpath_safe().

static void dln_loaderror | ( | const char * | format,
|  |  | ...
| ) |  |

static

char* getenv | ( |  | ) |

void* xcalloc | ( |  | ) |

void* xmalloc | ( |  | ) |

void* xrealloc | ( |  | ) |

## Variable Documentation

char fbuf[MAXPATHLEN]

static

Definition at line 113 of file dln_find.c.

Referenced by dln_find_1(), dln_find_exe(), dln_find_file(), proc_exec_v(), process_options(), rb_proc_exec(), rb_str_format(), rb_w32_aspawn_flags(), rb_w32_spawn(), and ruby_init_loadpath_safe().