[SCM] Samba Shared Repository - branch master updated -
release-4-0-0alpha7-115-g0a3ee53
Jelmer Vernooij
jelmer at samba.org
Mon Mar 2 04:05:21 GMT 2009
The branch, master has been updated
via 0a3ee53b50a10874b0ee0230b022b4277b5a6d96 (commit)
via 2d7a3748b2063c4137ee98ceca85361651ef8ee7 (commit)
via c7b9757b8ac3ac6baa478655a4d2f77dff8240a8 (commit)
from 9b0df441e1bd836c433e11582650fa0171791485 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 0a3ee53b50a10874b0ee0230b022b4277b5a6d96
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Mon Mar 2 05:04:07 2009 +0100
Use samba3's own iconv implementation for now, until all changes are
merged.
commit 2d7a3748b2063c4137ee98ceca85361651ef8ee7
Merge: c7b9757b8ac3ac6baa478655a4d2f77dff8240a8 9b0df441e1bd836c433e11582650fa0171791485
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Mon Mar 2 04:15:11 2009 +0100
Merge branch 'master' of git://git.samba.org/samba into convenience
commit c7b9757b8ac3ac6baa478655a4d2f77dff8240a8
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Mon Mar 2 04:12:57 2009 +0100
Import ISO-8859-1, 646 from Samba 3 iconv.
-----------------------------------------------------------------------
Summary of changes:
lib/util/charset/iconv.c | 29 +++++++++++++++++++++++++++++
source3/Makefile.in | 2 +-
source3/lib/iconv.c | 4 ++--
3 files changed, 32 insertions(+), 3 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/util/charset/iconv.c b/lib/util/charset/iconv.c
index 98284ce..9825e4b 100644
--- a/lib/util/charset/iconv.c
+++ b/lib/util/charset/iconv.c
@@ -50,6 +50,7 @@
static size_t ascii_pull (void *,const char **, size_t *, char **, size_t *);
static size_t ascii_push (void *,const char **, size_t *, char **, size_t *);
+static size_t latin1_push (void *,const char **, size_t *, char **, size_t *);
static size_t utf8_pull (void *,const char **, size_t *, char **, size_t *);
static size_t utf8_push (void *,const char **, size_t *, char **, size_t *);
static size_t utf16_munged_pull(void *,const char **, size_t *, char **, size_t *);
@@ -73,6 +74,8 @@ static const struct charset_functions builtin_functions[] = {
{"UTF16_MUNGED", utf16_munged_pull, iconv_copy},
{"ASCII", ascii_pull, ascii_push},
+ {"646", ascii_pull, ascii_push},
+ {"ISO-8859-1", ascii_pull, latin1_push},
{"UCS2-HEX", ucs2hex_pull, ucs2hex_push}
};
@@ -341,6 +344,32 @@ static size_t ascii_push(void *cd, const char **inbuf, size_t *inbytesleft,
return ir_count;
}
+static size_t latin1_push(void *cd, const char **inbuf, size_t *inbytesleft,
+ char **outbuf, size_t *outbytesleft)
+{
+ int ir_count=0;
+
+ while (*inbytesleft >= 2 && *outbytesleft >= 1) {
+ (*outbuf)[0] = (*inbuf)[0];
+ if ((*inbuf)[1]) ir_count++;
+ (*inbytesleft) -= 2;
+ (*outbytesleft) -= 1;
+ (*inbuf) += 2;
+ (*outbuf) += 1;
+ }
+
+ if (*inbytesleft == 1) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (*inbytesleft > 1) {
+ errno = E2BIG;
+ return -1;
+ }
+
+ return ir_count;
+}
static size_t ucs2hex_pull(void *cd, const char **inbuf, size_t *inbytesleft,
char **outbuf, size_t *outbytesleft)
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 28b5437..e9f4081 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -366,7 +366,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
lib/substitute.o lib/dbwrap_util.o \
lib/ms_fnmatch.o lib/select.o lib/errmap_unix.o \
lib/tallocmsg.o lib/dmallocmsg.o libsmb/smb_signing.o \
- ../lib/util/charset/iconv.o lib/pam_errors.o intl/lang_tdb.o \
+ lib/iconv.o lib/pam_errors.o intl/lang_tdb.o \
lib/conn_tdb.o lib/adt_tree.o lib/gencache.o \
lib/module.o lib/events.o @LIBTEVENT_OBJ0@ \
lib/ldap_escape.o @CHARSET_STATIC@ \
diff --git a/source3/lib/iconv.c b/source3/lib/iconv.c
index fa213a3..4450054 100644
--- a/source3/lib/iconv.c
+++ b/source3/lib/iconv.c
@@ -207,12 +207,12 @@ smb_iconv_t smb_iconv_open(const char *tocode, const char *fromcode)
from = charsets;
to = charsets;
- ret = SMB_MALLOC_P(smb_iconv_t);
+ ret = SMB_MALLOC_P(struct smb_iconv_s);
if (!ret) {
errno = ENOMEM;
return (smb_iconv_t)-1;
}
- memset(ret, 0, sizeof(smb_iconv_t));
+ memset(ret, 0, sizeof(struct smb_iconv_s));
ret->from_name = SMB_STRDUP(fromcode);
ret->to_name = SMB_STRDUP(tocode);
--
Samba Shared Repository
More information about the samba-cvs
mailing list