+ if (strncmp(protostr, "//#include ", 11) == 0) {
+ finc_name = protostr + 11;
+ p = strpbrk(finc_name, "\r\n ");
+ if (p != NULL)
+ *p = 0;
+
+ path[0] = 0;
+ p = strrchr(hdrfn_saved, '/');
+ if (p) {
+ memcpy(path, hdrfn_saved,
+ p - hdrfn_saved + 1);
+ path[p - hdrfn_saved + 1] = 0;
+ }
+ snprintf(fname_inc, sizeof(fname_inc), "%s%s",
+ path, finc_name);
+ finc = fopen(fname_inc, "r");
+ if (finc == NULL) {
+ printf("%s:%d: can't open '%s'\n",
+ fname_inc, line, finc_name);
+ continue;
+ }
+ ret = do_protostrs(finc, finc_name);
+ fclose(finc);
+ if (ret < 0)
+ break;
+ continue;
+ }
+ if (strncmp(sskip(protostr), "//", 2) == 0)
+ continue;
+
+ p = protostr + strlen(protostr);
+ for (p--; p >= protostr && my_isblank(*p); --p)
+ *p = 0;
+ if (p < protostr)
+ continue;
+
+ hdrfline = line;
+
+ ret = b_pp_c_handler(protostr, hdrfn);
+ if (ret < 0)