rem: kdedir = getenv("KDEDIR"); for (n=0; n < 2; n++) { if (kdedir != NULL) strcpy(buf,kdedir); else strcpy(buf,"/opt/kde"); strcat(buf,"/share/apps/korganizer/holiday_"); strcat(buf,holidays); filename = resolve_tilde(n ? buf : "~/.kde/share/apps/korganizer/holiday"); if (access(filename, R_OK)) continue;  yyin = fopen(filename, "r"); if (!yyin) continue; *errormsg = 0; yylineno = 0; yyparse(); if (piped) pclose(yyin); else fclose(yyin); if (*errormsg) return(errormsg); }
add: filename = holidays; if (access(filename, R_OK)) return(0); yyin = fopen(filename, "r"); if (!yyin) return(0); *errormsg = 0; yylineno = 0; yyparse(); if (piped) pclose(yyin); else fclose(yyin); if (*errormsg) return(errormsg);
context: char *parse_holidays(const char *holidays, int year, short force){  register struct holiday *hp;  register int		d, n;  short			piped = 0;  char			buf[200];  char *kdedir;  if (year == parse_year && !force)      return(0);  if (year < 0)      year = parse_year;  parse_year = year;  easter_julian = calc_easter(year + 1900);    for (hp=holiday, d=0; d < 366; d++, hp++)      if (hp->string) {	  if (!hp->dup)	      free(hp->string);	  hp->string      = 0;      }  /*  for (hp=sm_holiday, d=0; d < 366; d++, hp++)      if (hp->string) {      if (!hp->dup)      free(hp->string);      hp->string      = 0;      }*/    kdedir = getenv("KDEDIR");  for (n=0; n < 2; n++) {    if (kdedir != NULL)      strcpy(buf,kdedir);    else      strcpy(buf,"/opt/kde");    strcat(buf,"/share/apps/korganizer/holiday_");    strcat(buf,holidays);    filename = resolve_tilde(n ? buf : 			     "~/.kde/share/apps/korganizer/holiday");    if (access(filename, R_OK))      continue;        yyin = fopen(filename, "r");    if (!yyin)      continue;    *errormsg = 0;    yylineno = 0;    yyparse();    if (piped)      pclose(yyin);    else      fclose(yyin);    if (*errormsg)      return(errormsg);  }  return(0);}