static void WriteUserRoutine(FILE *file, routine_t *rt) { fprintf(file, "\n"); fprintf(file, "/* %s %s */\n", rtRoutineKindToStr(rt->rtKind), rt->rtName); WriteMigExternal(file); fprintf(file, "%s %s\n", ReturnTypeStr(rt), rt->rtUserName); fprintf(file, "#if\t%s\n", LintLib); fprintf(file, " ("); WriteList(file, rt->rtArgs, WriteNameDecl, akbUserArg, ", " , ""); fprintf(file, ")\n"); WriteList(file, rt->rtArgs, WriteUserVarDecl, akbUserArg, ";\n", ";\n"); fprintf(file, "{ "); fprintf(file, "return "); fprintf(file, "%s(", rt->rtUserName); WriteList(file, rt->rtArgs, WriteNameDecl, akbUserArg, ", ", ""); fprintf(file, "); }\n"); fprintf(file, "#else\n"); if (BeAnsiC) { fprintf(file, "(\n"); WriteList(file, rt->rtArgs, WriteUserVarDecl, akbUserArg, ",\n", "\n"); fprintf(file, ");\n"); } else { fprintf(file, "#if\t%s\n", NewCDecl); fprintf(file, "(\n"); WriteList(file, rt->rtArgs, WriteUserVarDecl, akbUserArg, ",\n", "\n"); fprintf(file, ");\n"); fprintf(file, "#else\n"); fprintf(file, " ();\n"); fprintf(file, "#endif\t/* %s */\n", NewCDecl); } fprintf(file, "#endif\t/* %s */\n", LintLib); }
static void WriteServerRoutine(FILE *file, const routine_t *rt) { fprintf(file, "\n"); fprintf(file, "/* %s %s */\n", rtRoutineKindToStr(rt->rtKind), rt->rtName); WriteMigExternal(file); fprintf(file, "%s %s\n", ReturnTypeStr(rt), rt->rtServerName); fprintf(file, "#if\t%s\n", LintLib); fprintf(file, " ("); WriteList(file, rt->rtArgs, WriteNameDecl, akbServerArg, ", " , ""); fprintf(file, ")\n"); WriteList(file, rt->rtArgs, WriteServerVarDecl, akbServerArg, ";\n", ";\n"); fprintf(file, "{ "); if (!rt->rtProcedure) fprintf(file, "return "); fprintf(file, "%s(", rt->rtServerName); WriteList(file, rt->rtArgs, WriteNameDecl, akbServerArg, ", ", ""); fprintf(file, "); }\n"); fprintf(file, "#else\n"); fprintf(file, "(\n"); WriteList(file, rt->rtArgs, WriteServerVarDecl, akbServerArg, ",\n", "\n"); fprintf(file, ");\n"); fprintf(file, "#endif\n"); }
bool StreamOut::Write(const char * first, ...) { if(!fd_out) return false; va_list vl; va_start(vl, first); WriteList(first, vl); va_end(vl); return true; }
// save options ------------------------------------------------------------- void __fastcall TMainWindow::SaveOpt(void) { TIniFile *ini=new TIniFile(IniFile); ini->WriteInteger("opt","rnxver", RnxVer); ini->WriteInteger("opt","rnxfile", RnxFile); ini->WriteString ("opt","rnxcode", RnxCode); ini->WriteString ("opt","runby", RunBy); ini->WriteString ("opt","marker", Marker); ini->WriteString ("opt","markerno", MarkerNo); ini->WriteString ("opt","markertype", MarkerType); ini->WriteString ("opt","name0", Name[0]); ini->WriteString ("opt","name1", Name[1]); ini->WriteString ("opt","rec0", Rec[0]); ini->WriteString ("opt","rec1", Rec[1]); ini->WriteString ("opt","rec2", Rec[2]); ini->WriteString ("opt","ant0", Ant[0]); ini->WriteString ("opt","ant1", Ant[1]); ini->WriteString ("opt","ant2", Ant[2]); ini->WriteFloat ("opt","apppos0", AppPos[0]); ini->WriteFloat ("opt","apppos1", AppPos[1]); ini->WriteFloat ("opt","apppos2", AppPos[2]); ini->WriteFloat ("opt","antdel0", AntDel[0]); ini->WriteFloat ("opt","antdel1", AntDel[1]); ini->WriteFloat ("opt","antdel2", AntDel[2]); ini->WriteString ("opt","comment0", Comment[0]); ini->WriteString ("opt","comment1", Comment[1]); ini->WriteString ("opt","rcvoption", RcvOption); ini->WriteInteger("opt","navsys", NavSys); ini->WriteInteger("opt","obstype", ObsType); ini->WriteInteger("opt","freqtype", FreqType); ini->WriteString ("opt","exsats", ExSats); ini->WriteInteger("opt","tracelevel", TraceLevel); ini->WriteInteger("opt","rnxtime",(int)RnxTime.time); ini->WriteString ("opt","codemask_1", CodeMask[0]); ini->WriteString ("opt","codemask_2", CodeMask[1]); ini->WriteString ("opt","codemask_3", CodeMask[2]); ini->WriteString ("opt","codemask_4", CodeMask[3]); ini->WriteString ("opt","codemask_5", CodeMask[4]); ini->WriteString ("opt","codemask_6", CodeMask[5]); ini->WriteInteger("opt","autopos", AutoPos); ini->WriteInteger("opt","scanobs", ScanObs); ini->WriteInteger("opt","outiono", OutIono); ini->WriteInteger("opt","outtime", OutTime); ini->WriteInteger("opt","outleaps", OutLeaps); ini->WriteInteger("set","timestartf", TimeStartF ->Checked); ini->WriteInteger("set","timeendf", TimeEndF ->Checked); ini->WriteInteger("set","timeintf", TimeIntF ->Checked); ini->WriteString ("set","timey1", TimeY1 ->Text); ini->WriteString ("set","timeh1", TimeH1 ->Text); ini->WriteString ("set","timey2", TimeY2 ->Text); ini->WriteString ("set","timeh2", TimeH2 ->Text); ini->WriteString ("set","timeint", TimeInt ->Text); ini->WriteInteger("set","timeunitf", TimeUnitF ->Checked); ini->WriteString ("set","timeunit", TimeUnit ->Text); ini->WriteString ("set","infile", InFile ->Text); ini->WriteString ("set","outdir", OutDir ->Text); ini->WriteString ("set","outfile1", OutFile1 ->Text); ini->WriteString ("set","outfile2", OutFile2 ->Text); ini->WriteString ("set","outfile3", OutFile3 ->Text); ini->WriteString ("set","outfile4", OutFile4 ->Text); ini->WriteString ("set","outfile5", OutFile5 ->Text); ini->WriteString ("set","outfile6", OutFile6 ->Text); ini->WriteString ("set","outfile7", OutFile7 ->Text); ini->WriteInteger("set","outdirena", OutDirEna ->Checked); ini->WriteInteger("set","outfileena1",OutFileEna1->Checked); ini->WriteInteger("set","outfileena2",OutFileEna2->Checked); ini->WriteInteger("set","outfileena3",OutFileEna3->Checked); ini->WriteInteger("set","outfileena4",OutFileEna4->Checked); ini->WriteInteger("set","outfileena5",OutFileEna5->Checked); ini->WriteInteger("set","outfileena6",OutFileEna6->Checked); ini->WriteInteger("set","outfileena7",OutFileEna7->Checked); ini->WriteInteger("set","format", Format ->ItemIndex); WriteList(ini,"hist","inputfile",InFile->Items); ini->WriteInteger("viewer","color1", (int)TTextViewer::Color1); ini->WriteInteger("viewer","color2", (int)TTextViewer::Color2); ini->WriteString ("viewer","fontname",TTextViewer::FontD->Name); ini->WriteInteger("viewer","fontsize",TTextViewer::FontD->Size); delete ini; }
void Ide::FindInFiles(bool replace) { CodeEditor::FindReplaceData d = editor.GetFindReplaceData(); CtrlRetriever rf; rf(ff.find, d.find) (ff.replace, d.replace) (ff.ignorecase, d.ignorecase) (ff.samecase, d.samecase) (ff.wholeword, d.wholeword) (ff.wildcards, d.wildcards) (ff.regexp, d.regexp) ; WriteList(ff.find, d.find_list); WriteList(ff.replace, d.replace_list); ff.Sync(); if(IsNull(~ff.folder)) ff.folder <<= GetUppDir(); ff.style <<= STYLE_NO_REPLACE; ff.Sync(); ff.itext = editor.GetI(); ff.Setup(replace); int c = ff.Execute(); ff.find.AddHistory(); ff.replace.AddHistory(); rf.Retrieve(); d.find_list = ReadList(ff.find); d.replace_list = ReadList(ff.replace); editor.SetFindReplaceData(d); if(c == IDOK) { ffound.HeaderTab(2).SetText("Source line"); Renumber(); ff.find.AddHistory(); ff.files.AddHistory(); ff.folder.AddHistory(); ff.replace.AddHistory(); Progress pi("Found %d files to search."); pi.AlignText(ALIGN_LEFT); Index<String> files; if(ff.workspace) { const Workspace& wspc = GetIdeWorkspace(); for(int i = 0; i < wspc.GetCount(); i++) SearchForFiles(files, GetFileFolder(PackagePath(wspc[i])), ~ff.files, ~ff.readonly, pi); } else SearchForFiles(files, NormalizePath(~~ff.folder, GetUppDir()), ~ff.files, ~ff.readonly, pi); if(!pi.Canceled()) { String pattern; RegExp rx, *regexp = NULL; if(ff.regexp) { rx.SetPattern(~ff.find); regexp = ℞ pattern = "dummy"; } else if(ff.wildcards) { String q = ~ff.find; for(const char *s = q; *s; s++) if(*s == '\\') { s++; if(*s == '\0') break; pattern.Cat(*s); } else switch(*s) { case '*': pattern.Cat(WILDANY); break; case '?': pattern.Cat(WILDONE); break; case '%': pattern.Cat(WILDSPACE); break; case '#': pattern.Cat(WILDNUMBER); break; case '$': pattern.Cat(WILDID); break; default: pattern.Cat(*s); } } else pattern = ~ff.find; pi.SetTotal(files.GetCount()); ShowConsole2(); ffound.Clear(); pi.SetPos(0); int n = 0; for(int i = 0; i < files.GetCount(); i++) { pi.SetText(files[i]); if(pi.StepCanceled()) break; if(!IsNull(pattern)) { if(!SearchInFile(files[i], pattern, ff.wholeword, ff.ignorecase, n, regexp)) break; } else { ErrorInfo f; f.file = files[i]; f.lineno = 1; f.linepos = 0; f.kind = 0; f.message = files[i]; ffound.Add(f.file, 1, f.message, RawToValue(f)); ffound.Sync(); n++; } } if(!IsNull(pattern)) ffound.Add(Null, Null, AsString(n) + " occurrence(s) have been found."); else ffound.Add(Null, Null, AsString(n) + " matching file(s) have been found."); ffound.HeaderTab(2).SetText(Format("Source line (%d)", ffound.GetCount())); } } }
static void WriteC(Cell *c, bool parentheses) { int k; FuncDef *fun; if(c==NULL) return; switch(c->tag) { case APPLY: if(parentheses) WriteString("("); WriteApply(c); if(parentheses) WriteString(")"); break; case ARG: if(c->value>0) Write("ARG(%d)", c->value); else Write("LOCAL(%d)", -c->value); break; case INT: Write("%ld", integer(c)); break; case REAL: Write("%lg", real(c)); break; case CHAR: Write("'%c'", c->value); break; case BOOLEAN: WriteString(c->value ? "True" : "False"); break; case NULLTUPLE: WriteString("()"); break; case LIST: WriteList(c, parentheses); break; case NIL: WriteString("Nil"); break; case STRUCT: WriteElems(c, STRUCT, parentheses ? "(" : "", " ", parentheses ? ")" : "", True); break; case PAIR: WriteElems(c, PAIR, "(", ", ", ")", False); break; case RECORD: WriteElems(c, RECORD, "{", ", ", "}", False); break; case _IF: if(parentheses) WriteString("("); WriteString("_if "); WriteC(c->left, True); WriteString(" "); WriteC(c->right->left, True); WriteString(" "); WriteC(c->right->right, True); if(parentheses) WriteString(")"); break; case MATCH: if(parentheses) WriteString("("); WriteString("_match "); WriteC(c->left, True); WriteString(" "); WriteC(c->right, True); if(parentheses) WriteString(")"); break; case MATCHARG: if(parentheses) WriteString("("); for(;;) { WriteString("_match "); WriteC(c->left, True); WriteString(" "); if(c->value>0) Write("ARG(%d)", c->value); else Write("LOCAL(%d)", -c->value); c = c->right; if(c == NULL) break; WriteString(" /\\ "); } if(parentheses) WriteString(")"); break; case MATCHTYPE: if(c->value == INT) WriteString("num"); else if(c->value == BOOLEAN) WriteString("bool"); else if(c->value == CHAR) WriteString("char"); else WriteString("..."); break; case ALIAS: if(parentheses) WriteString("("); WriteC(c->left, False); WriteString(" = "); WriteC(c->right, False); if(parentheses) WriteString(")"); break; case UNDEFINED: WriteString("undefined"); break; case GENERATOR: WriteString("["); WriteElems(c->left, LIST, "", ", ", "", False); WriteString(" | "); for(c=c->right; c->tag==GENERATOR; c=c->right) { if(c->left->right) { WriteElems(c->left->left, LIST, "", ", ", "", False); WriteString(" <- "); WriteElems(c->left->right, LIST, "", ", ", "", False); } else WriteC(c->left->left, False); if(c->right->tag==GENERATOR) WriteString("; "); } WriteString("]"); break; case SYSFUNC1: fun = getfunction(c->value); if(parentheses) WriteString("("); WriteString(fun->name); WriteString(" "); WriteC(c->left, True); if(parentheses) WriteString(")"); break; case SYSFUNC2: fun = getfunction(c->value); if(parentheses) WriteString("("); WriteC(c->left, True); WriteString(" "); WriteString(fun->name); WriteString(" "); WriteC(c->right, True); if(parentheses) WriteString(")"); break; case APPLICATION: fun = getfunction(c->value); if(parentheses) WriteString("("); WriteString(fun->name); if(fun->argcount == 0) ; else if(fun->argcount == 1) push(c->right); else { for(k=fun->argcount; k>1; k--) { push(c->left); c = c->right; } push(c); } for(k=fun->argcount; k>0; k--) { WriteString(" "); WriteC(pop(), True); } if(parentheses) WriteString(")"); break; case FUNC: case TYPE: WriteFunc(getfunction(c->value)->name); break; case ERROR: Write("error(%s)", getfunction(c->value)->name); break; case CONST: WriteString("(Const "); WriteC(c->left, False); WriteString(")"); break; case STRICTDIRECTOR: case LAZYDIRECTOR: WriteDirector(c->value, c->tag); if(parentheses) WriteString("("); WriteC(c->left, True); if(parentheses) WriteString(")"); break; case LETREC: if(parentheses) WriteString("("); WriteC(c->right, False); WriteString(" WHERE "); k = 0; for(c=c->left; c->tag==LIST; c=c->right) { Write("LOCAL(%d) = ", -(k--)); WriteC(c->left, False); WriteString("; "); } WriteString("ENDWHERE"); if(parentheses) WriteString(")"); break; case LAMBDA: WriteC(c->left, False); WriteString(" -> "); WriteC(c->right, False); break; case LAMBDAS: WriteElems(c, LAMBDAS, "(", " | ", ")", False); break; case VARIABLE: WriteString(getfunction(c->left->value)->name); break; case SET1: case SET2: WriteString("["); WriteC(c->left->left, False); for(k=1; k<=c->value; k++) Write(" x%d", k); WriteString(" | (x1"); for(k=2; k<=c->value; k++) Write(", x%d", k); WriteString(") <- "); WriteC(c->left->right->right, False); if(c->left->right->left) { WriteString("; "); WriteC(c->left->right->left, False); for(k=1; k<=c->value; k++) Write(" x%d", k); } WriteString("]"); break; default: systemerror(7); } }