]> 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 b19c0a07dcd3970fd1730c94456c26fe025dc491..e138bfe74a83e65bae7acfd4239c7793eb365911 100644 (file)
@@ -6,10 +6,10 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2000-2002 Ullrich von Bassewitz                                       */
-/*               Wacholderweg 14                                             */
-/*               D-70597 Stuttgart                                           */
-/* EMail:        uz@musoftware.de                                            */
+/* (C) 2000-2008 Ullrich von Bassewitz                                       */
+/*               Roemerstrasse 52                                            */
+/*               D-70794 Filderstadt                                         */
+/* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
@@ -56,7 +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",
 };
 
 
@@ -67,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.
  */
@@ -76,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;
        }
@@ -88,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.
@@ -106,8 +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;
-       default:                         /* Keep gcc silent */          break;
+        case FEAT_MISSING_CHAR_TERM:          MissingCharTerm   = 1;    break;
+        case FEAT_UBIQUITOUS_IDENTS:          UbiquitousIdents  = 1;    break;
+        case FEAT_C_COMMENTS:                 CComments         = 1;    break;
+       default:                         /* Keep gcc silent */          break;
     }
 
     /* Return the value found */