unistr_to_dos not unistr_to_ascii
authorLuke Leighton <lkcl@samba.org>
Sat, 27 May 2000 02:05:15 +0000 (02:05 +0000)
committerLuke Leighton <lkcl@samba.org>
Sat, 27 May 2000 02:05:15 +0000 (02:05 +0000)
(This used to be commit f46c4fe876a0cabe7044ca30c17e6c217d618635)

source3/Makefile.in
source3/lib/util_unistr.c
source3/rpc_server/srv_spoolss_nt.c

index f3a254667db6d7ee32c523fa28b96bbb0f2254d6..8df5641058dee0186e964cae2f155dc33bd8d4b3 100644 (file)
@@ -104,7 +104,7 @@ LIB_OBJ = lib/charcnv.o lib/charset.o lib/debug.o lib/fault.o \
           lib/signal.o lib/slprintf.o lib/system.o lib/doscalls.o lib/time.o \
          lib/ufc.o lib/genrand.o lib/username.o lib/access.o lib/smbrun.o \
          lib/bitmap.o lib/crc32.o lib/snprintf.o \
-         lib/util_array.o lib/util_unixsd.o lib/util_str.o lib/util_sid.o \
+         lib/util_array.o lib/util_str.o lib/util_sid.o \
          lib/util_unistr.o lib/util_file.o \
          lib/util.o lib/util_sock.o lib/util_sec.o smbd/ssl.o \
          lib/talloc.o lib/hash.o lib/substitute.o lib/fsusage.o \
@@ -165,7 +165,7 @@ SMBD_OBJ1 = smbd/server.o smbd/files.o smbd/chgpasswd.o smbd/connection.o \
             smbd/reply.o smbd/trans2.o smbd/uid.o \
            smbd/dosmode.o smbd/filename.o smbd/open.o smbd/close.o smbd/blocking.o \
            smbd/vfs.o smbd/vfs-wrap.o smbd/statcache.o \
-            lib/msrpc-client.o lib/msrpc_use.o \
+            lib/util_unixsd.o lib/msrpc-client.o lib/msrpc_use.o \
             rpc_parse/parse_creds.o \
            smbd/process.o smbd/oplock.o smbd/service.o smbd/error.o \
            printing/printfsp.o
index c28ef44934d4a9e95ac1ab749f2dc41d74ca2714..7379bd6811cd38ecfef4f062bc259a1618b19ed3 100644 (file)
@@ -106,6 +106,28 @@ void ascii_to_unistr(char *dest, const char *src, size_t maxlen)
        SSVAL(dest, 0, 0);
 }
 
+/*******************************************************************
+ * HORRIBLE HACK!
+********************************************************************/
+void unistr_to_ascii(char *dest, const uint16 *src, int len)
+{
+       char *destend = dest + len;
+       register uint16 c;
+
+       while (dest < destend)
+       {
+               c = *(src++);
+               if (c == 0)
+               {
+                       break;
+               }
+
+               *(dest++) = (char)c;
+       }
+
+       *dest = 0;
+}
+
 /*******************************************************************
  Pull a DOS codepage string out of a UNICODE array. len is in bytes.
 ********************************************************************/
index 90a3a3e6324b579ecf994896f10715168316e60e..f974311c7192d84120e57bd1d4814cd27babf478 100644 (file)
@@ -587,8 +587,8 @@ static BOOL convert_printer_driver_info(const SPOOL_PRINTER_DRIVER_INFO_LEVEL *u
 
 static BOOL convert_devicemode(DEVICEMODE devmode, NT_DEVICEMODE *nt_devmode)
 {
-       unistr_to_ascii(nt_devmode->devicename, (char *)devmode.devicename.buffer, 31);
-       unistr_to_ascii(nt_devmode->formname, (char *)devmode.formname.buffer, 31);
+       unistr_to_dos(nt_devmode->devicename, (char *)devmode.devicename.buffer, 31);
+       unistr_to_dos(nt_devmode->formname, (char *)devmode.formname.buffer, 31);
 
        nt_devmode->specversion=devmode.specversion;
        nt_devmode->driverversion=devmode.driverversion;