[PD-dev] [ pure-data-Patches-1412210 ] fix for bug in menu_openhtml on Windows

SourceForge.net noreply at sourceforge.net
Wed Jan 25 18:53:59 CET 2006


Patches item #1412210, was opened at 2006-01-22 10:26
Message generated for change (Comment added) made by nobody
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478072&aid=1412210&group_id=55736

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 8
Submitted By: Hans-Christoph Steiner (eighthave)
Assigned to: Miller Puckette (millerpuckette)
Summary: fix for bug in menu_openhtml on Windows

Initial Comment:

menu_openhtml() currently does not work if there is a
space in the file/path name (i.e. "C:\Program Files\pd")


Here is a fix.  In menu_openhtml() in u_main.tk, change:

exec rundll32 url.dll.FileProtocolHandler \
	[format "file:%s" $filename] &

To this:

exec rundll32 url.dll.FileProtocolHandler \
	[format "file:%s" [file attributes $filename
-shortname]] &


----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2006-01-25 09:53

Message:
Logged In: NO 

The bug seems to be happen only when the path has spaces
_and_  the double dot .. in it.
It might be better to make guidir a straight path instead.
In this part of pd.tk:

if {$pd_nt == 1} {
    global pd_guidir
    global pd_tearoff
    set pd_gui2 [string range $argv0 0 [expr [string last \\
$argv0 ] - 1]]
    regsub -all \\\\ $pd_gui2 / pd_gui3
    set pd_guidir $pd_gui3/..
    load $pd_guidir/bin/pdtcl.dll
    set pd_tearoff 1
}
Change to:

if {$pd_nt == 1} {
    global pd_guidir
    global pd_tearoff
    set pd_gui2 [string range $argv0 0 [expr [string last \\
$argv0 ] - 1]]
    regsub -all \\\\ $pd_gui2 / pd_gui3
    set pd_gui4 [string range $pd_gui3 0 [expr [string last
/ $pd_gui3] - 1]]
    set pd_guidir $pd_gui4
    load $pd_guidir/bin/pdtcl.dll
    set pd_tearoff 1
}
This has the effect:

argv0: C:\Copy of pd_039_0_test7\pd\bin\pd.tk
pd_guidir: C:/Copy of pd_039_0_test7/pd
(instead of C:/Copy of pd_039_0_test7/pd/bin/..)
pd_gui2: C:\Copy of pd_039_0_test7\pd\bin
pd_gui3: C:/Copy of pd_039_0_test7/pd/bin
menu_openhtml filename: C:/Copy of
pd_039_0_test7/pd/doc/1.manual/index.htm

(Lines are too short on this comment box:( )
Martin
martinrp at vax2.concordia.ca

----------------------------------------------------------------------

Comment By: Hans-Christoph Steiner (eighthave)
Date: 2006-01-22 10:27

Message:
Logged In: YES 
user_id=27104

oops, "-shortname]] &" should be on the same line as the
line above.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478072&aid=1412210&group_id=55736




More information about the Pd-dev mailing list