diff options
Diffstat (limited to 'enc/unicode.c')
| -rw-r--r-- | enc/unicode.c | 20 | 
1 files changed, 19 insertions, 1 deletions
diff --git a/enc/unicode.c b/enc/unicode.c index af7a86e..e13429f 100644 --- a/enc/unicode.c +++ b/enc/unicode.c @@ -2,7 +2,7 @@    unicode.c -  Oniguruma (regular expression library)  **********************************************************************/  /*- - * Copyright (c) 2002-2008  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp> + * Copyright (c) 2002-2013  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>   * All rights reserved.   *   * Redistribution and use in source and binary forms, with or without @@ -10891,6 +10891,21 @@ static st_table* Unfold2Table;  static st_table* Unfold3Table;  static int CaseFoldInited = 0; + +extern void onigenc_end_unicode(void) +{ +  THREAD_ATOMIC_START; + +  if (FoldTable    != 0) st_free_table(FoldTable); +  if (Unfold1Table != 0) st_free_table(Unfold1Table); +  if (Unfold2Table != 0) st_free_table(Unfold2Table); +  if (Unfold3Table != 0) st_free_table(Unfold3Table); + +  CaseFoldInited = 0; + +  THREAD_ATOMIC_END; +} +  static int init_case_fold_table(void)  {    const CaseFold_11_Type   *p; @@ -10952,6 +10967,9 @@ static int init_case_fold_table(void)      st_add_direct(Unfold3Table, (st_data_t )p3->from, (st_data_t )(&p3->to));    } + +  onig_add_end_call(onigenc_end_unicode); +    CaseFoldInited = 1;    THREAD_ATOMIC_END;    return 0;  | 
