Import smbfs 1.4.5. This release intended to fix problem with iconv

library.

MFC after:	1 week
This commit is contained in:
Boris Popov 2002-07-22 09:50:09 +00:00
parent 34ffbc80d6
commit b4bd78b0cf
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/smbfs/dist/; revision=100490
svn path=/vendor/smbfs/1.4.5/; revision=100492; tag=vendor/smbfs/1.4.5
2 changed files with 25 additions and 5 deletions

View File

@ -1,3 +1,7 @@
22.07.2002 1.4.5 (bug fix only)
- Some iconv libraries may refuse to recode some characters. This
caused problems with translation between server and local charsets.
16.04.2002 1.4.4
- Workaround for W2K bug in resource listing.
- Minor bug fixes.

View File

@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: nls.c,v 1.9 2001/08/22 03:31:36 bp Exp $
* $Id: nls.c,v 1.10 2002/07/22 08:33:59 bp Exp $
*/
#include <sys/types.h>
@ -134,7 +134,11 @@ nls_str_toloc(char *dst, const char *src)
return strcpy(dst, src);
inlen = outlen = strlen(src);
my_iconv(nls_toloc, NULL, NULL, &p, &outlen);
my_iconv(nls_toloc, &src, &inlen, &p, &outlen);
while (my_iconv(nls_toloc, &src, &inlen, &p, &outlen) == -1) {
*p++ = *src++;
inlen--;
outlen--;
}
*p = 0;
return dst;
}
@ -152,7 +156,11 @@ nls_str_toext(char *dst, const char *src)
return strcpy(dst, src);
inlen = outlen = strlen(src);
my_iconv(nls_toext, NULL, NULL, &p, &outlen);
my_iconv(nls_toext, &src, &inlen, &p, &outlen);
while (my_iconv(nls_toext, &src, &inlen, &p, &outlen) == -1) {
*p++ = *src++;
inlen--;
outlen--;
}
*p = 0;
return dst;
}
@ -174,7 +182,11 @@ nls_mem_toloc(void *dst, const void *src, int size)
return memcpy(dst, src, size);
inlen = outlen = size;
my_iconv(nls_toloc, NULL, NULL, &p, &outlen);
my_iconv(nls_toloc, &s, &inlen, &p, &outlen);
while (my_iconv(nls_toloc, &s, &inlen, &p, &outlen) == -1) {
*p++ = *s++;
inlen--;
outlen--;
}
return dst;
}
@ -193,7 +205,11 @@ nls_mem_toext(void *dst, const void *src, int size)
inlen = outlen = size;
my_iconv(nls_toext, NULL, NULL, &p, &outlen);
my_iconv(nls_toext, &s, &inlen, &p, &outlen);
while (my_iconv(nls_toext, &s, &inlen, &p, &outlen) == -1) {
*p++ = *s++;
inlen--;
outlen--;
}
return dst;
}