]> git.sur5r.net Git - cc65/blobdiff - src/ca65/feature.c
Removed (pretty inconsistently used) tab chars from source code base.
[cc65] / src / ca65 / feature.c
index 3059757b58946d868148481778819549b3e4d9d9..c2532c595238b9e776a752ed6765c8fb623fe5e2 100644 (file)
@@ -1,15 +1,15 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                feature.c                                 */
+/*                                 feature.c                                 */
 /*                                                                           */
-/*                 Subroutines for the emulation features                   */
+/*                  Subroutines for the emulation features                   */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2000     Ullrich von Bassewitz                                        */
-/*              Wacholderweg 14                                              */
-/*              D-70597 Stuttgart                                            */
-/* EMail:       uz@musoftware.de                                             */
+/* (C) 2000-2013, Ullrich von Bassewitz                                      */
+/*                Roemerstrasse 52                                           */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
@@ -42,7 +42,7 @@
 
 
 /*****************************************************************************/
-/*                                          Data                                    */
+/*                                   Data                                    */
 /*****************************************************************************/
 
 
@@ -55,18 +55,25 @@ static const char* FeatureKeys[FEAT_COUNT] = {
     "loose_char_term",
     "at_in_identifiers",
     "dollar_in_identifiers",
+    "leading_dot_in_identifiers",
+    "org_per_seg",
     "pc_assignment",
+    "missing_char_term",
+    "ubiquitous_idents",
+    "c_comments",
+    "force_range",
+    "underline_in_numbers",
 };
 
 
 
 /*****************************************************************************/
-/*                                          Code                                    */
+/*                                   Code                                    */
 /*****************************************************************************/
 
 
 
-feature_t FindFeature (const char* Key)
+feature_t FindFeature (const StrBuf* Key)
 /* Find the feature in a table and return the corresponding enum value. If the
  * feature is invalid, return FEAT_UNKNOWN.
  */
@@ -75,10 +82,10 @@ feature_t FindFeature (const char* Key)
 
     /* This is not time critical, so do a linear search */
     for (F = (feature_t) 0; F < FEAT_COUNT; ++F) {
-       if (strcmp (Key, FeatureKeys[F]) == 0) {
-           /* Found, index is enum value */
-           return F;
-       }
+        if (SB_CompareStr (Key, FeatureKeys[F]) == 0) {
+            /* Found, index is enum value */
+            return F;
+        }
     }
 
     /* Not found */
@@ -87,7 +94,7 @@ feature_t FindFeature (const char* Key)
 
 
 
-feature_t SetFeature (const char* Key)
+feature_t SetFeature (const StrBuf* Key)
 /* Find the feature and set the corresponding flag if the feature is known.
  * In any case, return the feature found. An invalid Key will return
  * FEAT_UNKNOWN.
@@ -98,15 +105,22 @@ feature_t SetFeature (const char* Key)
 
     /* Set the flags */
     switch (Feature) {
-       case FEAT_DOLLAR_IS_PC:          DollarIsPC     = 1;    break;
-       case FEAT_LABELS_WITHOUT_COLONS: NoColonLabels  = 1;    break;
-       case FEAT_LOOSE_STRING_TERM:     LooseStringTerm= 1;    break;
-       case FEAT_LOOSE_CHAR_TERM:       LooseCharTerm  = 1;    break;
-       case FEAT_AT_IN_IDENTIFIERS:     AtInIdents     = 1;    break;
-       case FEAT_DOLLAR_IN_IDENTIFIERS: DollarInIdents = 1;    break;
-       case FEAT_PC_ASSIGNMENT:         PCAssignment   = 1;    break;
-               default:                         /* Keep gcc silent */  break;
-    }                                                                
+        case FEAT_DOLLAR_IS_PC:               DollarIsPC        = 1;    break;
+        case FEAT_LABELS_WITHOUT_COLONS:      NoColonLabels     = 1;    break;
+        case FEAT_LOOSE_STRING_TERM:          LooseStringTerm   = 1;    break;
+        case FEAT_LOOSE_CHAR_TERM:            LooseCharTerm     = 1;    break;
+        case FEAT_AT_IN_IDENTIFIERS:          AtInIdents        = 1;    break;
+        case FEAT_DOLLAR_IN_IDENTIFIERS:      DollarInIdents    = 1;    break;
+        case FEAT_LEADING_DOT_IN_IDENTIFIERS: LeadingDotInIdents= 1;    break;
+        case FEAT_ORG_PER_SEG:                OrgPerSeg         = 1;    break;
+        case FEAT_PC_ASSIGNMENT:              PCAssignment      = 1;    break;
+        case FEAT_MISSING_CHAR_TERM:          MissingCharTerm   = 1;    break;
+        case FEAT_UBIQUITOUS_IDENTS:          UbiquitousIdents  = 1;    break;
+        case FEAT_C_COMMENTS:                 CComments         = 1;    break;
+        case FEAT_FORCE_RANGE:                ForceRange        = 1;    break;
+        case FEAT_UNDERLINE_IN_NUMBERS:       UnderlineInNumbers= 1;    break;
+        default:                         /* Keep gcc silent */          break;
+    }
 
     /* Return the value found */
     return Feature;