- strncpy(filename, infodir, sizeof(filename) - 3);
- strcat(filename, "//");
- strncat(filename, fData.cFileName,
- sizeof(filename) - 1 - strlen(filename));
- fp = fopen(filename, "r");
- alreadyhit = 0;
- nll = nlhl = 0;
- if (fp != NULL) {
- while (fgets(fbuf, 256, fp)) {
- lowerit(lbuf, 256, fbuf);
- if (strstr(lbuf, lbp)) {
- if (!alreadyhit) {
- pr("*** %s ***\n", fData.cFileName);
- alreadyhit = 1;
- nhf++;
+ if ((fData.dwFileAttributes != (DWORD)-1) &&
+ ((fData.dwFileAttributes == FILE_ATTRIBUTE_NORMAL) ||
+ (fData.dwFileAttributes == FILE_ATTRIBUTE_ARCHIVE) ||
+ (fData.dwFileAttributes == FILE_ATTRIBUTE_READONLY))) {
+ _snprintf(filename, sizeof(filename), "%s\\%s", infodir,
+ fData.cFileName);
+ fp = fopen(filename, "r");
+ alreadyhit = 0;
+ nll = nlhl = 0;
+ if (fp != NULL) {
+ while (fgets(fbuf, 256, fp)) {
+ lowerit(lbuf, 256, fbuf);
+ if (strstr(lbuf, lbp)) {
+ if (!alreadyhit) {
+ pr("*** %s ***\n", fData.cFileName);
+ alreadyhit = 1;
+ nhf++;
+ }
+ fbuf[74] = '\n';
+ fbuf[75] = 0;
+ pr(" %s", fbuf);
+ nlhl++;
+ /*
+ * break if too many lines
+ */
+ if ((nhl + nlhl) > lhitlim)
+ break;