MCPcopy Create free account
hub / github.com/CruiserOne/Astrolog / FProcessADBFile

Function FProcessADBFile

io.cpp:790–966  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

788// name or a file handle.
789
790flag FProcessADBFile(CONST char *szFile, FILE *file)
791{
792 char szLine[cchSzLine], sz[cchSzDef], szLoc1[cchSzDef], szLoc2[cchSzDef],
793 ch, *pch, *pch2;
794 int i, grf, cchSz = (us.szADB == NULL ? 0 : CchSz(us.szADB));
795 flag fHaveFile, fDidOne = fFalse, fDidStart, fDidEnd, fDidLon, fRet = fFalse;
796
797 fHaveFile = (file != NULL);
798 if (!fHaveFile) {
799 file = FileOpen(szFile, 0, NULL);
800 if (file == NULL)
801 goto LDone;
802 }
803 is.fileIn = file;
804 do {
805#ifdef EXPRESS
806 if (!us.fExpOff && FSzSet(us.szExpADB)) {
807 for (i = us.iExpADB; i < us.iExpADB + us.cExpADB; i++)
808 if (!ExpSetN(i, 0))
809 goto LDone;
810 }
811#endif
812
813 fDidStart = fDidEnd = fFalse;
814 grf = 0;
815 while (!fDidEnd) {
816 while (!feof(file) && (ch = getc(file)) < ' ')
817 ;
818 if (feof(file))
819 break;
820 for (szLine[0] = ch, i = 1; i < cchSzLine-1 && !feof(file) &&
821 (uchar)(szLine[i] = getc(file)) >= ' '; i++)
822 ;
823 szLine[i] = chNull;
824 fDidLon = fFalse;
825 for (pch = szLine; *pch; pch++) {
826 if (FEqRgch(pch, "<adb_entry", 10, fFalse))
827 fDidStart = fTrue;
828 else if (!fDidStart)
829 continue;
830 if (FEqRgch(pch, "</adb_entry>", 12, fFalse))
831 fDidEnd = fTrue;
832 if ((grf & 1) == 0 && FEqRgch(pch, "imonth=\"", 8, fFalse)) {
833 MM = atoi(pch + 8);
834 grf |= 1;
835 }
836 if ((grf & 2) == 0 && FEqRgch(pch, "iday=\"", 6, fFalse)) {
837 DD = atoi(pch + 6);
838 grf |= 2;
839 }
840 if ((grf & 4) == 0 && FEqRgch(pch, "iyear=\"", 7, fFalse)) {
841 YY = atoi(pch + 7);
842 grf |= 4;
843 }
844 if ((grf & 8) == 0 && FEqRgch(pch, "sbtime_ampm=\"", 13, fFalse)) {
845 pch += 13;
846 for (pch2 = pch; *pch2 && *pch2 != '"'; pch2++)
847 ;

Callers 1

FInputDataFunction · 0.85

Calls 13

CchSzFunction · 0.85
FileOpenFunction · 0.85
ExpSetNFunction · 0.85
FEqRgchFunction · 0.85
CopyRgchToSzFunction · 0.85
RParseSzFunction · 0.85
ConvertSzFromUTF8Function · 0.85
SzCloneFunction · 0.85
ExpGetStringFunction · 0.85
NExpGetFunction · 0.85
PrintWarningFunction · 0.85
NParseExpressionFunction · 0.85

Tested by

no test coverage detected