X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Flocale%2Fduplocale.c;h=030b64cb0e706cdf29c7104526e86b6ee08d7adb;hb=25ea9f712c30c32957de493d4711ee39d0bbb024;hp=5f01e13799ad51cfd184782fbf22b7c832143422;hpb=b3d7d062af63d833b9a984770320534719252b61;p=musl diff --git a/src/locale/duplocale.c b/src/locale/duplocale.c index 5f01e137..030b64cb 100644 --- a/src/locale/duplocale.c +++ b/src/locale/duplocale.c @@ -1,11 +1,15 @@ #include #include #include "locale_impl.h" +#include "libc.h" -locale_t duplocale(locale_t old) +locale_t __duplocale(locale_t old) { - locale_t new; - new = calloc(1, sizeof *new); - if (new && old != LC_GLOBAL_LOCALE) memcpy(new, old, sizeof *new); + locale_t new = malloc(sizeof *new); + if (!new) return 0; + if (old == LC_GLOBAL_LOCALE) old = &libc.global_locale; + *new = *old; return new; } + +weak_alias(__duplocale, duplocale);