Parsing /etc/TIMEZONE
Dennis L. Mumaugh
seismo!cuuxb!dlm
Mon Dec 15 15:56:21 UTC 1986
I wrote a simpler and better parse of /etc/TIMEZONE. Also note that
since /etc/init already does so one could steal its code. He is my short
parse. Note, it does parse System V Release 3.1 versions which
have OTHER lines of garbage (comments and such):
===
#include <stdio.h>
#include <string.h>
char def_timezone[] = "GMT0";
char *
gettz()
{
FILE * tzfp;
register char *bp;
register char *tbp;
static char buf[132];
if ( (tzfp = fopen("/etc/TIMEZONE", "r") ) == NULL) {
return(def_timezone);
}
while ( fgets(buf, sizeof buf, tzfp) != NULL ) {
if ( buf[0] == '#' || buf[0] == '\n' )
continue;
buf[strlen(buf)-1] = '\0'; /* strip newline */
if ( strchr(buf, '=') == NULL )
continue;
for (tbp = buf; ; ) {
bp = strtok(tbp, "; \t");
if ( bp == NULL )
break;
/* should be xx=xxx; */
if ( strchr(bp, '=') != NULL
&& strncmp( bp, "TZ=",3) == 0 )
break;
tbp = NULL;
}
fclose(tzfp);
return(strchr(bp,'=')+1);
}
fclose(tzfp);
return(def_timezone);
}
=====
Note that we use the stdio AND SysV string functions.
--
=Dennis L. Mumaugh
Lisle, IL ...!{ihnp4,cbosgd,lll-crg}!cuuxb!dlm
More information about the tz
mailing list