]> git.sur5r.net Git - cc65/blobdiff - src/ca65/feature.c
Finished implemenation of commands to delete macros. Added the new commands to
[cc65] / src / ca65 / feature.c
index 3983270ecfde6f892fd2944ad84189f69ce8e81e..e138bfe74a83e65bae7acfd4239c7793eb365911 100644 (file)
@@ -6,8 +6,8 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2000-2003 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/* (C) 2000-2008 Ullrich von Bassewitz                                       */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -56,8 +56,11 @@ static const char* FeatureKeys[FEAT_COUNT] = {
     "at_in_identifiers",
     "dollar_in_identifiers",
     "leading_dot_in_identifiers",
+    "org_per_seg",
     "pc_assignment",
     "missing_char_term",
+    "ubiquitous_idents",
+    "c_comments",
 };
 
 
@@ -68,7 +71,7 @@ static const char* FeatureKeys[FEAT_COUNT] = {
 
 
 
-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.
  */
@@ -77,7 +80,7 @@ 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) {
+               if (SB_CompareStr (Key, FeatureKeys[F]) == 0) {
            /* Found, index is enum value */
            return F;
        }
@@ -89,7 +92,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.
@@ -107,9 +110,12 @@ feature_t SetFeature (const char* Key)
        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;
-       default:                         /* Keep gcc silent */          break;
+        case FEAT_UBIQUITOUS_IDENTS:          UbiquitousIdents  = 1;    break;
+        case FEAT_C_COMMENTS:                 CComments         = 1;    break;
+       default:                         /* Keep gcc silent */          break;
     }
 
     /* Return the value found */