/*****************************************************************************/
/* */
-/* 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 */
/*****************************************************************************/
-/* Data */
+/* Data */
/*****************************************************************************/
"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.
*/
/* 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 */
-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.
/* 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;
}
-
-
-