-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathprocess-fosm.cpp
38 lines (33 loc) · 956 Bytes
/
process-fosm.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
int process_line(const char * buffer); // null terminated
//#include <iostream>
//using namespace std;
#include "ifileindexer.hpp"
OSMWorld iworld;
int scanner(OSMWorld & world,const char *s);
long int seen=0;
int process_line(const char * buffer)
{
// cerr << "BEGIN " << buffer << "ENDL"<< endl;
iworld.set_current_pos(seen);
size_t len=strlen(buffer);
seen += len;
if (len>2)
{
int ret= scanner(iworld,buffer);
if (ret != 1)
{
cerr << "scanner returned ret " << ret << " for len :" << strlen(buffer) << endl;
}
else
{
//cerr << "OK scanner returned ret " << ret << " for len :" << strlen(buffer) << endl;
}
if (iworld.scannerstatus(ret,buffer)!=0)
{
cerr << "ERROR: status returned ret " << ret << " for \"" << buffer << "\""<< endl;
// exit(233);
return -1;
}
}
return 0;
}