Changeset 11101

Show
Ignore:
Timestamp:
03/30/07 16:13:28 (2 years ago)
Author:
dmorissette
Message:

Backported fix for MITAB bug 1670 (GDAL ticket #1541)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.4/gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp

    r11098 r11101  
    3131 * 
    3232 * $Log: mitab_feature.cpp,v $ 
     33 * Revision 1.69  2007/02/28 20:41:40  dmorissette 
     34 * Added missing NULL pointer checks in SetPenFromStyleString(), 
     35 * SetBrushFromStyleString() and SetSymbolFromStyleString() (bug 1670) 
     36 * 
    3337 * Revision 1.66  2006/10/17 14:34:31  dmorissette 
    3438 * Fixed problem with null brush bg color (bug 1603) 
     
    76127616 
    76137617    // Set the Id of the Pen, use Pattern if necessary. 
    7614     if(pszPenName && strstr(pszPenName, "mapinfo-pen-") || 
    7615        strstr(pszPenName, "ogr-pen-")
     7618    if(pszPenName &&  
     7619       (strstr(pszPenName, "mapinfo-pen-") || strstr(pszPenName, "ogr-pen-"))
    76167620    { 
    76177621        if((pszPenId = (char *) strstr(pszPenName, "mapinfo-pen-"))) 
     
    76327636        // If no Pen Id, use the Pen Pattern to retreive the Id. 
    76337637        pszPenPattern = poPenStyle->Pattern(bIsNull); 
    7634         if(strcmp(pszPenPattern, "1 1") == 0) 
    7635             SetPenPattern(3); 
    7636         else if(strcmp(pszPenPattern, "2 1") == 0) 
    7637             SetPenPattern(4); 
    7638         else if(strcmp(pszPenPattern, "3 1") == 0) 
    7639             SetPenPattern(5); 
    7640         else if(strcmp(pszPenPattern, "6 1") == 0) 
    7641             SetPenPattern(6); 
    7642         else if(strcmp(pszPenPattern, "12 2") == 0) 
    7643             SetPenPattern(7); 
    7644         else if(strcmp(pszPenPattern, "24 4") == 0) 
    7645             SetPenPattern(8); 
    7646         else if(strcmp(pszPenPattern, "4 3") == 0) 
    7647             SetPenPattern(9); 
    7648         else if(strcmp(pszPenPattern, "1 4") == 0) 
    7649             SetPenPattern(10); 
    7650         else if(strcmp(pszPenPattern, "4 6") == 0) 
    7651             SetPenPattern(11); 
    7652         else if(strcmp(pszPenPattern, "6 4") == 0) 
    7653             SetPenPattern(12); 
    7654         else if(strcmp(pszPenPattern, "12 12") == 0) 
    7655             SetPenPattern(13); 
    7656         else if(strcmp(pszPenPattern, "8 2 1 2") == 0) 
    7657             SetPenPattern(14); 
    7658         else if(strcmp(pszPenPattern, "12 1 1 1") == 0) 
    7659             SetPenPattern(15); 
    7660         else if(strcmp(pszPenPattern, "12 1 3 1") == 0) 
    7661             SetPenPattern(16); 
    7662         else if(strcmp(pszPenPattern, "24 6 4 6") == 0) 
    7663             SetPenPattern(17); 
    7664         else if(strcmp(pszPenPattern, "24 3 3 3 3 3") == 0) 
    7665             SetPenPattern(18); 
    7666         else if(strcmp(pszPenPattern, "24 3 3 3 3 3 3 3") == 0) 
    7667             SetPenPattern(19); 
    7668         else if(strcmp(pszPenPattern, "6 3 1 3 1 3") == 0) 
    7669             SetPenPattern(20); 
    7670         else if(strcmp(pszPenPattern, "12 2 1 2 1 2") == 0) 
    7671             SetPenPattern(21); 
    7672         else if(strcmp(pszPenPattern, "12 2 1 2 1 2 1 2") == 0) 
    7673             SetPenPattern(22); 
    7674         else if(strcmp(pszPenPattern, "4 1 1 1") == 0) 
    7675             SetPenPattern(23); 
    7676         else if(strcmp(pszPenPattern, "4 1 1 1 1") == 0) 
    7677             SetPenPattern(24); 
    7678         else if(strcmp(pszPenPattern, "4 1 1 1 2 1 1 1") == 0) 
    7679             SetPenPattern(25); 
     7638        if (bIsNull) 
     7639            pszPenPattern = NULL; 
     7640        else 
     7641        { 
     7642            if(strcmp(pszPenPattern, "1 1") == 0) 
     7643                SetPenPattern(3); 
     7644            else if(strcmp(pszPenPattern, "2 1") == 0) 
     7645                SetPenPattern(4); 
     7646            else if(strcmp(pszPenPattern, "3 1") == 0) 
     7647                SetPenPattern(5); 
     7648            else if(strcmp(pszPenPattern, "6 1") == 0) 
     7649                SetPenPattern(6); 
     7650            else if(strcmp(pszPenPattern, "12 2") == 0) 
     7651                SetPenPattern(7); 
     7652            else if(strcmp(pszPenPattern, "24 4") == 0) 
     7653                SetPenPattern(8); 
     7654            else if(strcmp(pszPenPattern, "4 3") == 0) 
     7655                SetPenPattern(9); 
     7656            else if(strcmp(pszPenPattern, "1 4") == 0) 
     7657                SetPenPattern(10); 
     7658            else if(strcmp(pszPenPattern, "4 6") == 0) 
     7659                SetPenPattern(11); 
     7660            else if(strcmp(pszPenPattern, "6 4") == 0) 
     7661                SetPenPattern(12); 
     7662            else if(strcmp(pszPenPattern, "12 12") == 0) 
     7663                SetPenPattern(13); 
     7664            else if(strcmp(pszPenPattern, "8 2 1 2") == 0) 
     7665                SetPenPattern(14); 
     7666            else if(strcmp(pszPenPattern, "12 1 1 1") == 0) 
     7667                SetPenPattern(15); 
     7668            else if(strcmp(pszPenPattern, "12 1 3 1") == 0) 
     7669                SetPenPattern(16); 
     7670            else if(strcmp(pszPenPattern, "24 6 4 6") == 0) 
     7671                SetPenPattern(17); 
     7672            else if(strcmp(pszPenPattern, "24 3 3 3 3 3") == 0) 
     7673                SetPenPattern(18); 
     7674            else if(strcmp(pszPenPattern, "24 3 3 3 3 3 3 3") == 0) 
     7675                SetPenPattern(19); 
     7676            else if(strcmp(pszPenPattern, "6 3 1 3 1 3") == 0) 
     7677                SetPenPattern(20); 
     7678            else if(strcmp(pszPenPattern, "12 2 1 2 1 2") == 0) 
     7679                SetPenPattern(21); 
     7680            else if(strcmp(pszPenPattern, "12 2 1 2 1 2 1 2") == 0) 
     7681                SetPenPattern(22); 
     7682            else if(strcmp(pszPenPattern, "4 1 1 1") == 0) 
     7683                SetPenPattern(23); 
     7684            else if(strcmp(pszPenPattern, "4 1 1 1 1") == 0) 
     7685                SetPenPattern(24); 
     7686            else if(strcmp(pszPenPattern, "4 1 1 1 2 1 1 1") == 0) 
     7687                SetPenPattern(25); 
     7688        } 
    76807689    } 
    76817690 
     
    78187827    if(bIsNull) pszBrushId = NULL; 
    78197828 
    7820     if(pszBrushId && strstr(pszBrushId, "mapinfo-brush-") ||  
    7821        strstr(pszBrushId, "ogr-brush-")) 
     7829    if(pszBrushId &&  
     7830       (strstr(pszBrushId, "mapinfo-brush-") ||  
     7831        strstr(pszBrushId, "ogr-brush-")) ) 
    78227832    { 
    78237833        if(strstr(pszBrushId, "mapinfo-brush-")) 
     
    80778087    if(bIsNull) pszSymbolId = NULL; 
    80788088 
    8079     if(pszSymbolId && strstr(pszSymbolId, "mapinfo-sym-") ||  
    8080        strstr(pszSymbolId, "ogr-sym-")) 
     8089    if(pszSymbolId &&   
     8090       (strstr(pszSymbolId, "mapinfo-sym-") ||  
     8091        strstr(pszSymbolId, "ogr-sym-")) ) 
    80818092    { 
    80828093        if(strstr(pszSymbolId, "mapinfo-sym-"))