00001 #include "OverviewFmt.h"
00002
00003 using namespace std;
00004
00005 void OverviewFmt::readxoin(istream & is)
00006 {
00007 string field;
00008 int fn = 0, i;
00009
00010 for (i = 0; i < _osz; i++) {
00011 _trans[i].trans = -1;
00012 }
00013
00014 for (;;) {
00015 nlreadline(is, field, 0);
00016 if (field == "." || is.eof())
00017 break;
00018 for (i = 0; i < _osz; i++) {
00019 if (field.length() >= (unsigned int) _over[i].len
00020 && strncasecmp(field.data(), _over[i].name,
00021 _over[i].len) == 0) {
00022 if (field.length() ==
00023 (unsigned int) _over[i].len + 4
00024 && strncasecmp("full",
00025 field.data() +
00026 _over[i].len, 4) == 0) {
00027 _trans[i].full = 1;
00028 } else {
00029 _trans[i].full = 0;
00030 }
00031 _trans[i].trans = fn;
00032 }
00033 }
00034 fn++;
00035 }
00036 dotrans = 0;
00037 if (_osz != fn) {
00038 dotrans = 1;
00039 } else {
00040 for (i = 0; i < _osz; i++) {
00041 if (_trans[i].trans != i
00042 || _trans[i].full != _over[i].full) {
00043 dotrans = 1;
00044 break;
00045 }
00046 }
00047 }
00048 }