From b306bd61c4370ef85018b3b9caeb86c3ab8cba20 Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Tue, 27 Feb 2007 23:31:17 +0000 Subject: [PATCH] Add ptp fix from #1261 SVN-Revision: 6409 --- .../libgphoto2/patches/01-ptp_iconv_fix.patch | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 libs/libgphoto2/patches/01-ptp_iconv_fix.patch diff --git a/libs/libgphoto2/patches/01-ptp_iconv_fix.patch b/libs/libgphoto2/patches/01-ptp_iconv_fix.patch new file mode 100644 index 000000000..987db1eed --- /dev/null +++ b/libs/libgphoto2/patches/01-ptp_iconv_fix.patch @@ -0,0 +1,23 @@ +diff -urN libgphoto2-2.3.1/camlibs/ptp2/ptp-pack.c libgphoto2-2.3.1.new/camlibs/ptp2/ptp-pack.c +--- libgphoto2-2.3.1/camlibs/ptp2/ptp-pack.c 2006-12-24 16:16:20.000000000 +0100 ++++ libgphoto2-2.3.1.new/camlibs/ptp2/ptp-pack.c 2007-02-28 00:17:17.000000000 +0100 +@@ -116,8 +116,17 @@ + nconv = iconv (params->cd_ucs2_to_locale, &stringp, &convlen, &locp, &convmax); + /* FIXME: handle size errors */ + loclstr[PTP_MAXSTRLEN*3] = '\0'; +- if (nconv == (size_t) -1) +- return NULL; ++ if (nconv == (size_t) -1) { ++ int i; ++ /* try the old way, in case iconv is broken */ ++ for (i=0;i127) ++ loclstr[i] = '?'; ++ else ++ loclstr[i] = string[i]; ++ } ++ string[loclen] = 0; ++ } + return strdup(loclstr); + } + return NULL; -- 2.30.2