Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*
* File handling for LPR * * Read from an init file. * Read from a file, expanding tabs. */
#include <windef.h>
#include <stdio.h>
#include <string.h>
#include "lpr.h"
extern BOOL fVerify; /* From lpr.c - for verifying our progression */
#define cchIniMax 80 /* length of line in tools.ini file */
#define cchPathMax 128 /* maximum length of USER env var. */
/* from fgetl.c - expand tabs and return lines w/o separators */
int colTab = 8; /* Tab stops every colTab columns */
char* __cdecl fgetl(sz, cch, fh) /* returns line from file (no CRLFs); returns NULL if EOF */ /* Maps nulls read in into .'s */ char *sz; int cch; FILE *fh; { register int c; register char *p;
/* remember NUL at end */ cch--; p = sz; while (cch) { c = getc(fh); if (c == EOF || c == '\n') break; if (c != '\r') if (c != '\t') { *p++ = (char)((unsigned)c ? (unsigned)c : (unsigned)'.'); cch--; } else { c = (int)(min(colTab - ((p-sz) % colTab), cch)); memset(p, ' ', c); p += c; cch -= c; } } *p = 0; return (!( (c == EOF) && (p == sz) )) ? sz : NULL; }
char *SzFindPath(szDirlist, szFullname, szFile) /* SzFindPath -- Creates szFullname from first entry in szDirlist and szFile.
* The remaining directory list is returned. If the directory * list is empty, NULL is returned. */ char *szDirlist; char *szFullname; char *szFile; { #define chDirSep ';' /* seperator for entries in directory list */
#define chDirDelim '\\' /* end of directory name character */
register char *pch; register char *szRc; /* returned directory list */
if ((pch = strchr(szDirlist, chDirSep)) != 0) { *pch = (char)NULL; /* replace ';' with null */ szRc = pch + 1; } else { pch = strchr(szDirlist,'\0'); szRc = NULL; }
strcpy(szFullname,szDirlist); if (szRc != NULL) { /* We MUST restore the input string */ *(szRc-1) = chDirSep; }
/* if directory name doesn't already end with chDirDelim, append it */ if (*(pch-1) != chDirDelim) { pch = szFullname + strlen(szFullname); *pch++ = chDirDelim; *pch = (char)NULL; }
strcat(szFullname,szFile);
return(szRc); }
|