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

Function FProcessQuickFile

io.cpp:642–709  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

640// file handle.
641
642flag FProcessQuickFile(CONST char *szFile, FILE *file)
643{
644 char szLine[cchSzMax], sz[cchSzDef];
645 int i;
646 flag fHaveFile, fRet = fFalse;
647
648 fHaveFile = (file != NULL);
649 if (!fHaveFile) {
650 file = FileOpen(szFile, 0, NULL);
651 if (file == NULL)
652 goto LDone;
653 }
654 is.fileIn = file;
655 do {
656 fgets(szLine, cchSzMax, file);
657 if (feof(file)) {
658 fRet = fTrue;
659 goto LDone;
660 }
661
662 // Parse line of 100 characters.
663 CopyRgb((pbyte)szLine, (pbyte)sz, 23);
664 for (i = 23-1; i >= 0 && sz[i] <= ' '; i--)
665 ;
666 sz[i+1] = chNull;
667 ciCore.nam = SzClone(sz);
668 CopyRgchToSz(szLine+23, 3, sz, cchSzDef);
669 MM = NParseSz(sz, pmMon);
670 DD = NParseSz(szLine+23+3, pmDay);
671 CopyRgchToSz(szLine+23+7, 5, sz, cchSzDef);
672 YY = NParseSz(sz, pmYea);
673 CopyRgchToSz(szLine+23+12, 24-12, sz, cchSzDef);
674 TT = RParseSz(sz, pmTim);
675 if (FEqRgch(&szLine[23+24], "LMT", 3, fTrue))
676 ZZ = zonLMT;
677 else {
678 CopyRgchToSz(szLine+23+24+3, 9-3, sz, cchSzDef);
679 ZZ = RParseSz(sz, pmZon);
680 }
681 CopyRgchToSz(szLine+23+24+9, 10, sz, cchSzDef);
682 OO = RParseSz(sz, pmLon);
683 CopyRgchToSz(szLine+23+24+9+10, 9, sz, cchSzDef);
684 AA = RParseSz(sz, pmLat);
685 CopyRgb((pbyte)(szLine+23+24+9+10+9), (pbyte)sz, 25);
686 for (i = 25-1; i >= 0 && sz[i] <= ' '; i--)
687 ;
688 sz[i+1] = chNull;
689 ciCore.loc = SzClone(sz);
690 SS = 0.0;
691 if (FZonDst(&szLine[23+24])) {
692 ZZ += 1.0; SS += 1.0;
693 }
694 if (!FValidMon(MM) || !FValidDay(DD, MM, YY) || !FValidYea(YY) ||
695 !FValidTim(TT) || !FValidZon(ZZ) || !FValidLon(OO) || !FValidLat(AA)) {
696 PrintWarning("Values in Quick*Chart file are out of range.");
697 goto LDone;
698 }
699 if (!FAppendCIList(&ciCore))

Callers 1

FInputDataFunction · 0.85

Calls 9

FileOpenFunction · 0.85
CopyRgbFunction · 0.85
SzCloneFunction · 0.85
CopyRgchToSzFunction · 0.85
NParseSzFunction · 0.85
RParseSzFunction · 0.85
FEqRgchFunction · 0.85
PrintWarningFunction · 0.85
FAppendCIListFunction · 0.85

Tested by

no test coverage detected