From ddaceaee63160599512f31e4b1dca9c8a6998ff3 Mon Sep 17 00:00:00 2001
From: Fredrik Gustafsson <fredrik@erlang.org>
Date: Mon, 15 Apr 2013 14:57:29 +0200
Subject: ssh: unicode adaptions

---
 lib/ssh/src/ssh_cli.erl  |  4 ++--
 lib/ssh/src/ssh_xfer.erl | 26 +++++++++++++-------------
 2 files changed, 15 insertions(+), 15 deletions(-)

(limited to 'lib/ssh')

diff --git a/lib/ssh/src/ssh_cli.erl b/lib/ssh/src/ssh_cli.erl
index 0531ad7830..69b1ab186f 100644
--- a/lib/ssh/src/ssh_cli.erl
+++ b/lib/ssh/src/ssh_cli.erl
@@ -230,11 +230,11 @@ io_request({window_change, OldTty}, Buf, Tty) ->
 io_request({put_chars, Cs}, Buf, Tty) ->
     put_chars(bin_to_list(Cs), Buf, Tty);
 io_request({put_chars, unicode, Cs}, Buf, Tty) ->
-    put_chars([Ch || Ch <- unicode:characters_to_list(Cs,unicode), Ch =< 255], Buf, Tty);
+    put_chars(unicode:characters_to_list(Cs,unicode), Buf, Tty);
 io_request({insert_chars, Cs}, Buf, Tty) ->
     insert_chars(bin_to_list(Cs), Buf, Tty);
 io_request({insert_chars, unicode, Cs}, Buf, Tty) ->
-    insert_chars([Ch || Ch <- unicode:characters_to_list(Cs,unicode), Ch =< 255], Buf, Tty);
+    insert_chars(unicode:characters_to_list(Cs,unicode), Buf, Tty);
 io_request({move_rel, N}, Buf, Tty) ->
     move_rel(N, Buf, Tty);
 io_request({delete_chars,N}, Buf, Tty) ->
diff --git a/lib/ssh/src/ssh_xfer.erl b/lib/ssh/src/ssh_xfer.erl
index 4dfd9ed8b0..93f9e20663 100644
--- a/lib/ssh/src/ssh_xfer.erl
+++ b/lib/ssh/src/ssh_xfer.erl
@@ -72,7 +72,7 @@ protocol_version_request(XF) ->
 
 open(XF, ReqID, FileName, Access, Flags, Attrs) -> 
     Vsn = XF#ssh_xfer.vsn,
-    FileName1 = list_to_binary(FileName),
+    FileName1 = unicode:characters_to_binary(FileName),
     MBits = if Vsn >= 5 -> 
 		    M = encode_ace_mask(Access),
 		    ?uint32(M);
@@ -115,7 +115,7 @@ write(XF,ReqID, Handle, Offset, Data) ->
 		is_binary(Data) ->
 		    Data;
 		is_list(Data) -> 
-		    list_to_binary(Data)
+		    unicode:characters_to_binary(Data)
 	    end,
     xf_request(XF,?SSH_FXP_WRITE,
 	       [?uint32(ReqID),
@@ -132,8 +132,8 @@ remove(XF, ReqID, File) ->
 %% Rename a file/directory
 rename(XF, ReqID, Old, New, Flags) ->
     Vsn = XF#ssh_xfer.vsn,
-    OldPath = list_to_binary(Old),
-    NewPath = list_to_binary(New),
+    OldPath = unicode:characters_to_binary(Old),
+    NewPath = unicode:characters_to_binary(New),
     FlagBits
 	= if Vsn >= 5 ->
 		  F0 = encode_rename_flags(Flags),
@@ -151,7 +151,7 @@ rename(XF, ReqID, Old, New, Flags) ->
 
 %% Create directory
 mkdir(XF, ReqID, Path, Attrs) ->
-    Path1 = list_to_binary(Path),
+    Path1 = unicode:characters_to_binary(Path),
     xf_request(XF, ?SSH_FXP_MKDIR, 
 	       [?uint32(ReqID),
 		?binary(Path1),
@@ -159,14 +159,14 @@ mkdir(XF, ReqID, Path, Attrs) ->
 
 %% Remove a directory
 rmdir(XF, ReqID, Dir) ->
-    Dir1 = list_to_binary(Dir),
+    Dir1 = unicode:characters_to_binary(Dir),
     xf_request(XF, ?SSH_FXP_RMDIR,
 	       [?uint32(ReqID),
 		?binary(Dir1)]).
 
 %% Stat file
 stat(XF, ReqID, Path, Flags) ->
-    Path1 = list_to_binary(Path),
+    Path1 = unicode:characters_to_binary(Path),
     Vsn = XF#ssh_xfer.vsn,
     AttrFlags = if Vsn >= 5 ->
 			F = encode_attr_flags(Vsn, Flags),
@@ -182,7 +182,7 @@ stat(XF, ReqID, Path, Flags) ->
 
 %% Stat file - follow symbolic links
 lstat(XF, ReqID, Path, Flags) ->
-    Path1 = list_to_binary(Path),
+    Path1 = unicode:characters_to_binary(Path),
     Vsn = XF#ssh_xfer.vsn,
     AttrFlags = if Vsn >= 5 ->
 			F = encode_attr_flags(Vsn, Flags),
@@ -211,7 +211,7 @@ fstat(XF, ReqID, Handle, Flags) ->
 
 %% Modify file attributes
 setstat(XF, ReqID, Path, Attrs) ->
-    Path1 = list_to_binary(Path),
+    Path1 = unicode:characters_to_binary(Path),
     xf_request(XF, ?SSH_FXP_SETSTAT, 
 	       [?uint32(ReqID),
 		?binary(Path1),
@@ -227,7 +227,7 @@ fsetstat(XF, ReqID, Handle, Attrs) ->
     
 %% Read a symbolic link
 readlink(XF, ReqID, Path) ->
-    Path1 = list_to_binary(Path),
+    Path1 = unicode:characters_to_binary(Path),
     xf_request(XF, ?SSH_FXP_READLINK, 
 	       [?uint32(ReqID),
 		?binary(Path1)]).
@@ -235,8 +235,8 @@ readlink(XF, ReqID, Path) ->
 
 %% Create a symbolic link    
 symlink(XF, ReqID, LinkPath, TargetPath) ->
-    LinkPath1 = list_to_binary(LinkPath),
-    TargetPath1 = list_to_binary(TargetPath),
+    LinkPath1 = unicode:characters_to_binary(LinkPath),
+    TargetPath1 = unicode:characters_to_binary(TargetPath),
     xf_request(XF, ?SSH_FXP_SYMLINK, 
 	       [?uint32(ReqID),
 		?binary(LinkPath1),
@@ -244,7 +244,7 @@ symlink(XF, ReqID, LinkPath, TargetPath) ->
 
 %% Convert a path into a 'canonical' form
 realpath(XF, ReqID, Path) ->
-    Path1 = list_to_binary(Path),
+    Path1 = unicode:characters_to_binary(Path),
     xf_request(XF, ?SSH_FXP_REALPATH,     
 	       [?uint32(ReqID),
 		?binary(Path1)]).
-- 
cgit v1.2.3