mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-07-02 07:40:30 +02:00
Locale have static tc16
* libguile/print.c (iprin1): * libguile/eq.c (scm_equal_p): Add case for locales and also regexps which we missed in the past. * libguile/finalizers.h: * libguile/finalizers.c (scm_i_add_locale_finalizer): (run_finalizer): Add locale finalizers. * libguile/scm.h (scm_tc16_locale): New tc16. * module/oop/goops.scm: * libguile/goops.c: Add locale class. * libguile/i18n.c: Give locale objects their own tc16.
This commit is contained in:
parent
a5c70aa914
commit
bc43d4f9a7
9 changed files with 84 additions and 25 deletions
|
@ -41,6 +41,7 @@
|
|||
#include "gc-internal.h"
|
||||
#include "gsubr.h"
|
||||
#include "init.h"
|
||||
#include "i18n.h"
|
||||
#include "numbers.h"
|
||||
#include "ports.h"
|
||||
#ifdef ENABLE_REGEX
|
||||
|
@ -82,6 +83,7 @@ enum builtin_finalizer_kind
|
|||
FINALIZE_KIND_PORT,
|
||||
FINALIZE_KIND_DIRECTORY,
|
||||
FINALIZE_KIND_REGEXP,
|
||||
FINALIZE_KIND_LOCALE,
|
||||
};
|
||||
|
||||
static SCM
|
||||
|
@ -137,6 +139,12 @@ scm_i_add_directory_finalizer (struct scm_thread *thread, SCM obj)
|
|||
return add_builtin_finalizer (thread, obj, FINALIZE_KIND_DIRECTORY);
|
||||
}
|
||||
|
||||
SCM
|
||||
scm_i_add_locale_finalizer (struct scm_thread *thread, SCM obj)
|
||||
{
|
||||
return add_builtin_finalizer (thread, obj, FINALIZE_KIND_LOCALE);
|
||||
}
|
||||
|
||||
SCM
|
||||
scm_i_add_regexp_finalizer (struct scm_thread *thread, SCM obj)
|
||||
{
|
||||
|
@ -201,6 +209,9 @@ run_finalizer (struct scm_thread *thread, SCM obj, SCM closure)
|
|||
abort ();
|
||||
#endif
|
||||
break;
|
||||
case FINALIZE_KIND_LOCALE:
|
||||
scm_i_finalize_locale (thread, obj);
|
||||
break;
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue