summaryrefslogtreecommitdiff
path: root/src/casefiddle.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2017-04-06 20:02:15 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2017-04-06 20:03:21 -0700
commit2012839a53a5c4877832e2b09091ce28ea29abc4 (patch)
treedd95ce3f7ea4433eb60c133f4f70af4420ce97a9 /src/casefiddle.c
parentcea942e5a6c1dbf498a2390d1fcc78ffc5908c9e (diff)
downloademacs-2012839a53a5c4877832e2b09091ce28ea29abc4.tar.gz
emacs-2012839a53a5c4877832e2b09091ce28ea29abc4.tar.bz2
emacs-2012839a53a5c4877832e2b09091ce28ea29abc4.zip
More casefiddle minor fixes
* src/casefiddle.c (case_character_impl): Omit unnecessary casts. (case_character_impl): Avoid reevaluation of CHAR_TABLE_REF. (GREEK_CAPITAL_LETTER_SIGMA): Fix typo in my previous change.
Diffstat (limited to 'src/casefiddle.c')
-rw-r--r--src/casefiddle.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/casefiddle.c b/src/casefiddle.c
index b7782a83c3d..443d62b6259 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -125,9 +125,9 @@ case_character_impl (struct casing_str_buf *buf,
}
/* Look through the special casing entries. */
- if (buf && !NILP (ctx->specialcase_char_tables[(int)flag]))
+ if (buf && !NILP (ctx->specialcase_char_tables[flag]))
{
- prop = CHAR_TABLE_REF (ctx->specialcase_char_tables[(int)flag], ch);
+ prop = CHAR_TABLE_REF (ctx->specialcase_char_tables[flag], ch);
if (STRINGP (prop))
{
struct Lisp_String *str = XSTRING (prop);
@@ -144,12 +144,21 @@ case_character_impl (struct casing_str_buf *buf,
/* Handle simple, one-to-one case. */
if (flag == CASE_DOWN)
cased = downcase (ch);
- else if (!NILP (ctx->titlecase_char_table)
- && CHARACTERP (prop
- = CHAR_TABLE_REF (ctx->titlecase_char_table, ch)))
- cased = XFASTINT (prop);
else
- cased = upcase (ch);
+ {
+ bool cased_is_set = false;
+ if (!NILP (ctx->titlecase_char_table))
+ {
+ prop = CHAR_TABLE_REF (ctx->titlecase_char_table, ch);
+ if (CHARACTERP (prop))
+ {
+ cased = XFASTINT (prop);
+ cased_is_set = true;
+ }
+ }
+ if (!cased_is_set)
+ cased = upcase (ch);
+ }
/* And we’re done. */
done:
@@ -167,7 +176,7 @@ case_character_impl (struct casing_str_buf *buf,
The rule does not conflict with any other casing rules so while it is
a conditional one, it is independent of language. */
-enum { GREEK_CAPITAL_LETTER_SIGMA = 0x03A }; /* Σ */
+enum { GREEK_CAPITAL_LETTER_SIGMA = 0x03A3 }; /* Σ */
enum { GREEK_SMALL_LETTER_FINAL_SIGMA = 0x03C2 }; /* ς */
/* Based on CTX, case character CH accordingly. Update CTX as necessary.