summaryrefslogtreecommitdiff
path: root/app/lib/params/mkcarpart.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib/params/mkcarpart.c')
-rw-r--r--app/lib/params/mkcarpart.c36
1 files changed, 23 insertions, 13 deletions
diff --git a/app/lib/params/mkcarpart.c b/app/lib/params/mkcarpart.c
index 7680a8b..1d2bf9f 100644
--- a/app/lib/params/mkcarpart.c
+++ b/app/lib/params/mkcarpart.c
@@ -55,7 +55,7 @@ void readMap(
{
FILE * mapF;
char line[256];
- int len;
+ size_t len;
mapF = fopen( mapFile, "r" );
if ( mapF == NULL ) {
perror( mapFile );
@@ -110,7 +110,7 @@ void readRoadnameMap(
exit(1);
}
while ( fgets( line, sizeof line, mapF ) != NULL ) {
- int len = strlen( line );
+ size_t len = strlen( line );
if ( line[len-1] == '\n' )
line[--len] = '\0';
if ( line[0] == '\0' || line[0] == '\n' || line[0] == '#' )
@@ -282,16 +282,16 @@ void processFile(
int lineNumber = 0;
char roadnameS[256];
char repmarkS[256];
- int len;
+ size_t len;
int inx;
char * cp, *cq;
char * tab[20];
char blanks[10];
- int partX = 1;
- int descX = 2;
- int roadX = 3;
- int numbX = 4;
- int colorX = 5;
+ size_t partX = 1;
+ size_t descX = 2;
+ size_t roadX = 3;
+ size_t numbX = 4;
+ size_t colorX = 5;
inF = fopen( inFile, "r" );
if ( inF == NULL ) {
@@ -309,18 +309,28 @@ void processFile(
if ( line[0] == '\n' || line[0] == '#' )
continue;
len = strlen(line);
- if ( line[len-1] == '\n' )
+ if ( len >= 1 && line[len-1] == '\n' )
line[len-1] = '\0';
+ if ( len >= 2 && line[len-2] == '\r' )
+ line[len-2] = '\0';
if ( strnicmp( line, "scale=", 6 ) == 0 ) {
strcpy( scale, line+6 );
if ( stricmp( scale, "N" ) == 0 )
ratio = 160.0;
- else if ( stricmp( scale, "HO" ) == 0 )
+ else if ( stricmp( scale, "HO" ) == 0 || stricmp(scale, "HOn3") == 0 )
ratio = 87.1;
- else if ( stricmp( scale, "O" ) == 0 )
- ratio = 48.0;
- else if ( stricmp( scale, "S" ) == 0 )
+ else if ( stricmp( scale, "S" ) == 0 || stricmp(scale, "Sn3") == 0 )
ratio = 64.0;
+ else if ( stricmp(scale, "O") == 0 || stricmp(scale, "On3") == 0 || stricmp(scale, "On30") == 0 )
+ ratio = 48.0;
+ else if ( stricmp(scale, "1") == 0 )
+ ratio = 32.0;
+ else if ( stricmp(scale, "A") == 0 )
+ ratio = 29.0;
+ else if ( stricmp(scale, "G") == 0 )
+ ratio = 22.5;
+ else if ( stricmp(scale, "F") == 0 || stricmp(scale, "Fn2") == 0 || stricmp(scale, "Fn3") == 0 )
+ ratio = 20.32;
else {
fprintf( stderr, "%d: Unknown scale %s\n", lineNumber, scale );
ratio = 87.1;