diff options
author | Dan Gudmundsson <[email protected]> | 2018-01-25 11:39:33 +0100 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2018-01-25 11:39:33 +0100 |
commit | f05074ac001a5f81f98c08d8812850a7d0b9ab18 (patch) | |
tree | 13c4763a59646b6cfe0dc59d0397e84ace963bbf | |
parent | b06e5e8c70f4447cbd410094254cc45f95ff241d (diff) | |
parent | d51c21fca9a4af46b9322b1425ed0a29ed50fd77 (diff) | |
download | otp-f05074ac001a5f81f98c08d8812850a7d0b9ab18.tar.gz otp-f05074ac001a5f81f98c08d8812850a7d0b9ab18.tar.bz2 otp-f05074ac001a5f81f98c08d8812850a7d0b9ab18.zip |
Merge branch 'dgud/wx/fix-driver-usage'
* dgud/wx/fix-driver-usage:
wx: open_port doesn't allow 0 terminated strings anymore
-rw-r--r-- | lib/wx/c_src/wxe_ps_init.c | 13 | ||||
-rw-r--r-- | lib/wx/src/wxe_master.erl | 13 |
2 files changed, 13 insertions, 13 deletions
diff --git a/lib/wx/c_src/wxe_ps_init.c b/lib/wx/c_src/wxe_ps_init.c index e6b677d469..277f3ac25f 100644 --- a/lib/wx/c_src/wxe_ps_init.c +++ b/lib/wx/c_src/wxe_ps_init.c @@ -61,13 +61,20 @@ int is_packaged_app() { void * wxe_ps_init2() { NSAutoreleasePool *pool; ProcessSerialNumber psn; - + size_t app_len = 127; + char app_title_buf[128]; + char * app_title; // Setup and enable gui pool = [[NSAutoreleasePool alloc] init]; - + if( !is_packaged_app() ) { // Undocumented function (but no documented way of doing this exists) - char *app_title = getenv("WX_APP_TITLE"); + int res = erl_drv_getenv("WX_APP_TITLE", app_title_buf, &app_len); + if (res >= 0) { + app_title = app_title_buf; + } else { + app_title = NULL; + } if(!GetCurrentProcess(&psn)) { CPSSetProcessName(&psn, app_title?app_title:"Erlang"); } diff --git a/lib/wx/src/wxe_master.erl b/lib/wx/src/wxe_master.erl index ce859b3eb3..a55917f0aa 100644 --- a/lib/wx/src/wxe_master.erl +++ b/lib/wx/src/wxe_master.erl @@ -122,16 +122,9 @@ init([SilentStart]) -> erlang:error(not_smp) end, - case os:type() of - {win32,_} -> %% Needed for mingwm10.dll - Path = os:getenv("PATH"), - os:putenv("PATH", PrivDir ++ ";" ++ Path); - _ -> ok - end, - case erl_ddll:load_driver(PrivDir,DriverName) of ok -> ok; - {error, What} -> + {error, What} -> wxe_util:opt_error_log(SilentStart, "WX Failed loading ~p@~p ~n", [DriverName,PrivDir]), @@ -139,8 +132,8 @@ init([SilentStart]) -> erlang:error({load_driver,Str}) end, process_flag(trap_exit, true), - DriverWithArgs = DriverName ++ " " ++ code:priv_dir(wx) ++ [0], - + DriverWithArgs = DriverName ++ " " ++ code:priv_dir(wx), + try Port = open_port({spawn, DriverWithArgs},[binary]), wx_debug_info = ets:new(wx_debug_info, [named_table]), |