### 7.3 Other Variables

#### 7.3.1 USER

If “configure” detects that UIDs are not supported on the system you are running on (that is, you are compiling on a system that doesn’t look at all like Unix) then the environment variable USER is used to determine the invoking user’s name. This is then the name which is used in the p-file and in the delta information for new deltas. This username is also compared against the list of authorised users by `delta`. Of course, this doesn’t provide much security but in the absence of user ID support, CSSC can’t tell who users really are anyway.

The behaviour of CSSC with respect to this option is not sensitive to whether or not programs are installed set-user-id, because this variable is only consulted on systems where set-user-id is not supported. This may be a problem on systems where it is possible to grant enhanced privileges to a program, but which do not look like Unix to the “configure” program.

#### 7.3.2 CSSC_SHOW_SEQSTATE

If set, the environment variable `CSSC_SHOW_SEQSTATE` will cause CSSC to emit debugging information about the delta table to stderr. This is only of use when debugging CSSC.

#### 7.3.3 PROJECTDIR

The `PROJECTDIR` environment variable is used only by the `sccs` driver program. This variable is ignored if the `sccs` program is installed with the set-user-ID bit set. See Known Problems, for other remarks concerning setuid execution.

The `PROJECTDIR` variable is used to locate the SCCS history file corresponding to a filename given on the command line. If the value of `PROJECTDIR` starts with a ‘/’, it is used as an absolute directory name. If `PROJECTDIR` does not start with a slash, it is assumed to be the name of a user, and SCCS files are assumed to be in the subdirectory “src” or “source” beneath their home directory.

#### 7.3.4 PATH

Normally, the `sccs` driver program locates the other tools by searching the directories specified in `PATH`, but if it is running set-user-id or set-group-id, a compiled-in value is used instead. By default, this value is `/usr/sccs`.

If SCCS is not privileged, it will fall back on the compiled-in value in order to find the other tools if they are not found in any of the directories in `$PATH`.

In normal operation, `sccs diffs` will use the system `diff` command by searching the `PATH` environment variable. This doesn’t happen if it is running set-user-id or set-group-id.

#### 7.3.5 LD_LIBRARY_PATH

None of the programs in the CSSC suite take any specific action regarding the `LD_LIBRARY_PATH` environment variable, but your system libraries may take notice of it (or decide not to do so, for example when a program is running set-user-id or set-group-id).

#### 7.3.6 TMPDIR

The `sccsdiff` program ignores the setting of the `TMPDIR` environment variable. Temporary files with predictable names are created in the `/tmp` directory. See Known Problems.

#### 7.3.7 Locale variables

The `sccs` driver program uses the `setlocale` function, whose behaviour depends on several implementation-dependent environment variables. If you are using the GNU C library, these variables are `LC_COLLATE`, `LC_CTYPE`, `LC_MESSAGES`, `LC_MONETARY`, `LC_NUMERIC`, `LC_TIME`, and `LANG`. The `setlocale` function is not called if SCCS is running set-user-id or set-group-id.