/* bindings */ char* removeargnames(char* pszBuf) { if (strstr(pszBuf, "=")) { *strstr(pszBuf, "=") = 0; stripline(pszBuf); } if (strstr(pszBuf, "(") == NULL) return pszBuf; //fprintf(stderr, "%s\n", pszBuf); if (strstr(pszBuf, "{")) { *strstr(pszBuf, "{") = 0; stripline(pszBuf); } else { int i = strstr(pszBuf, ")") - pszBuf - 1; char* lastOK = strstr(pszBuf, ")"); while(i>0 && pszBuf[i] == ' ') i --; while(i>0) { if (pszBuf[i] == '(') break; if (pszBuf[i] == ' ' || pszBuf[i] == ']') { if (pszBuf[i] == ' ') memmove(pszBuf + i + 1, lastOK, strlen(lastOK) + 1); else memmove(pszBuf + i, lastOK, strlen(lastOK) + 1); while(pszBuf[i] != ',' && pszBuf[i] != '(') i --; if (pszBuf[i] == ',') lastOK = pszBuf + i; else break; } i --; } i = strstr(pszBuf, "(") - pszBuf; while(pszBuf[i]) { if (pszBuf[i] == ' ') memmove(pszBuf + i, pszBuf + i + 1, strlen(pszBuf + i + 1) + 1); else i++; } } //fprintf(stderr, "after : %s\n", pszBuf); return pszBuf; }
int main () { char ret[MAXLEN]; while (getnextline(ret) != -1) { stripline(ret); printf("%s\n", ret); } return 0; }
int main(int argc, char* argv[]) { const char* patch_filename = argv[1]; FILE* fSrc = fopen(patch_filename, "rt"); FILE* fDst; JavaDocInstance* instances = (JavaDocInstance*)calloc(sizeof(JavaDocInstance), 3000); int nInstances = 0; char szLine[256]; char szClass[256]; char javadoc[16384]; szClass[0] = 0; while(fgets(szLine, 255, fSrc)) { if (strstr(szLine, "/**") == NULL) continue; begin: strcpy(javadoc, szLine); while(fgets(szLine, 255, fSrc)) { strcat(javadoc, szLine); if (strstr(szLine, "*/")) break; } while(fgets(szLine, 255, fSrc)) { if (szLine[0] == 10) continue; else if (strstr(szLine, "*") == NULL) { instances[nInstances].javadoc = strdup(javadoc); char* pszLine = szLine; if (strncmp(pszLine, "@hide ", 6) == 0) { instances[nInstances].bHide = 1; pszLine += 6; } else instances[nInstances].bHide = 0; instances[nInstances].methodName = strdup(stripline(pszLine)); instances[nInstances].compactMethodName = strdup(removeargnames(stripline(pszLine))); nInstances++; } else break; } if (strstr(szLine, "/**") != NULL) goto begin; } //fprintf(stderr, "nInstances=%d\n", nInstances); fclose(fSrc); int i; for(i=3;i<argc;i++) { fSrc = fopen(argv[i], "rt"); if (fSrc == NULL) continue; char szDstName[1024]; sprintf(szDstName, "%s/%s", argv[2], argv[i]); fDst = fopen(szDstName, "wt"); if (fDst == NULL) continue; szClass[0] = 0; char szPackage[256]; szPackage[0] = 0; while(fgets(szLine, 255, fSrc)) { char szMethodName[1024]; char* szOriLine = strdup(szLine); if (strstr(szLine, "package")) { strcpy(szPackage, szLine); } else if (strstr(szLine, "public class") || strstr(szLine, "public interface")) { strcpy(szClass, stripline(szLine)); if (strstr(szClass, "extends")) { *strstr(szClass, "extends") = 0; stripline(szClass); } if (strstr(szClass, "implements")) { *strstr(szClass, "implements") = 0; stripline(szClass); } if (strstr(szLine, "Driver")) { if (strstr(szPackage, "org.gdal.gdal")) strcpy(szLine, "public class org.gdal.gdal.Driver"); else strcpy(szLine, "public class org.gdal.ogr.Driver"); strcpy(szClass, szLine); } } if (strstr(szLine, "synchronized ")) { char* c = strstr(szLine, "synchronized "); *c = 0; strcat(szLine, c + 13); } if (strstr(szLine, "public") && !strstr(szLine, "native")) { if (strchr(szLine, '(') && !strchr(szLine,')')) { strcpy(szMethodName, szLine); do { fgets(szLine, 255, fSrc); strcpy(szMethodName + strlen(szMethodName) - 1, szLine); } while (!strchr(szMethodName,')')); strcpy(szLine, szMethodName); free(szOriLine); szOriLine = strdup(szMethodName); //fprintf(stderr, "%s\n", szOriLine); } if (strchr(szLine, '(') || strchr(szLine, '=')) sprintf(szMethodName, "%s:%s", szClass, removeargnames(stripline(szLine))); else strcpy(szMethodName, szClass); //fprintf(stderr, "%s\n", szMethodName); int j; for(j=0;j<nInstances;j++) { if (strcmp(instances[j].compactMethodName, szMethodName) == 0) { instances[j].bUsed = TRUE; //fprintf(stderr, "found match for %s\n", szMethodName); if (instances[j].bHide) { if (strstr(szLine, "final static") == NULL) { do { fgets(szLine, 255, fSrc); } while (!strchr(szLine,'}')); } break; } fprintf(fDst, "%s", instances[j].javadoc); if (strchr(szMethodName, '(')) { fprintf(fDst, "%s;\n", strchr(instances[j].methodName, ':')+1); int nBrackets = 0; int bFoundOpen = FALSE; strcpy(szLine, szOriLine); do { int j; for(j=0;szLine[j];j++) { if (szLine[j] == '{') { bFoundOpen = TRUE; nBrackets ++; } else if (szLine[j] == '}') { nBrackets --; } } fgets(szLine, 255, fSrc); } while(bFoundOpen == FALSE || nBrackets > 0); } else fprintf(fDst, "%s", szOriLine); break; } } if (j == nInstances) { if (strstr(szOriLine, "public") && (strstr(szOriLine, "getCPtr") || strstr(szOriLine, "long cPtr"))) { char* c = strstr(szOriLine, "public"); *c = 0; fprintf(fDst, "%s private %s", szOriLine, c + 6); } else fprintf(fDst, "%s", szOriLine); } } else fprintf(fDst, "%s", szOriLine); free(szOriLine); } fclose(fSrc); fclose(fDst); } int j; for(j=0;j<nInstances;j++) { if (!instances[j].bUsed) fprintf(stderr, "WARNING: did not find occurence of %s\n", instances[j].methodName); } return 0; }
void load_helpers (void) { FILE *fp; char b[STRING_LONG], *user_host, *greetz, *numb_join, *chan, *w_level, *pass; long num_join = 0, i = 0, level = 0; if ((fp = fopen (HELPER_LIST, "r")) == NULL) { printf ("Unable to open %s! Aborting connection.\n", HELPER_LIST); printf ("Please run ./configure to setup your darkbot.\n"); exit (0); } #ifndef WIN32 printf ("Loading %s file ", HELPER_LIST); #endif while (fgets (b, STRING_LONG, fp)) { if (b == NULL) continue; stripline (b); if (*b == '/') continue; i++; printf ("."); fflush (stdout); chan = strtok (b, " "); if (chan == NULL) continue; user_host = strtok (NULL, " "); if (user_host == NULL) continue; w_level = strtok (NULL, " "); if (w_level == NULL) continue; numb_join = strtok (NULL, " "); if (numb_join == NULL) continue; pass = strtok (NULL, " "); if (pass == NULL) { pass = "******"; /* duh */ } greetz = strtok (NULL, ""); if (greetz == NULL) greetz = "I haven't used \2SETINFO\2 yet!"; if (w_level != NULL) level = atoi (w_level); else level = 1; if (numb_join != NULL) num_join = atoi (numb_join); else num_join = 0; if (strlen (pass) > 25) pass[25] = '\0'; if (DebuG == 1) printf ("loading helperlist: %s %s l:%d j:%d %s\n", chan, user_host, (int) level, (int) num_join, greetz); add_helper (chan, user_host, level, num_join, greetz, pass, 1); } printf ("done(%d), ", (int) i); fclose (fp); save_changes (); if (DebuG == 1) db_sleep (2); }