diff --git a/basis/cocoa/apple-script/apple-script-docs.factor b/basis/cocoa/apple-script/apple-script-docs.factor index bcecb53248..b0872170f2 100644 --- a/basis/cocoa/apple-script/apple-script-docs.factor +++ b/basis/cocoa/apple-script/apple-script-docs.factor @@ -3,8 +3,7 @@ IN: cocoa.apple-script HELP: quote-apple-script { $values { "str" string } } -{ $description { "Escape special characters in a string to make it suitable as a literal string in AppleScript code." } -{ $notes "Because this word is a port from Barney Gale's Elevate.py ("{ $vocab-link elevate }"), the only characters escaped are keys in " { $link apple-script-charmap } "; other special characters are unchanged." } ; +{ $description "Escape special characters in a string to make it suitable as a literal string in AppleScript code." } ; HELP: run-apple-script { $values { "str" string } } diff --git a/basis/cocoa/apple-script/apple-script.factor b/basis/cocoa/apple-script/apple-script.factor index 94cff2da82..52d9c6ade9 100644 --- a/basis/cocoa/apple-script/apple-script.factor +++ b/basis/cocoa/apple-script/apple-script.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2013 John Benediktsson ! See http://factorcode.org/license.txt for BSD license -USING: cocoa cocoa.application cocoa.classes kernel parser -multiline words ; +USING: assocs cocoa cocoa.application cocoa.classes kernel +multiline parser sequences strings words ; IN: cocoa.apple-script : quote-apple-script ( str -- str' ) - [ - 1string [ apple-script-charmap at ] [ ] bi or - ] { } map-as - "" join "\"" dup surround ; + [ 1string apple-script-charmap ?at drop ] { } map-as + "" concat-as "\"" dup surround ; : run-apple-script ( str -- ) [ NSAppleScript -> alloc ] dip diff --git a/basis/elevate/elevate.factor b/basis/elevate/elevate.factor index 820e16996e..439ed145fd 100644 --- a/basis/elevate/elevate.factor +++ b/basis/elevate/elevate.factor @@ -27,6 +27,8 @@ HOOK: lowered os ( -- ) : elevate ( win-console? posix-graphical? -- ) [ (command-line) t ] 2dip elevated drop ; +os unix? [ "elevate.unix" require ] when + { { [ os windows? ] [ "elevate.windows" require ] } { [ os linux? ] [ "elevate.linux" require ] } diff --git a/basis/elevate/macosx/macosx.factor b/basis/elevate/macosx/macosx.factor index 69a0e04abe..d64462fdf2 100644 --- a/basis/elevate/macosx/macosx.factor +++ b/basis/elevate/macosx/macosx.factor @@ -1,20 +1,25 @@ -USING: cocoa.apple-script elevate elevate.unix ; +USING: accessors arrays cocoa.apple-script elevate +elevate.unix.private formatting io.launcher kernel locals +sequences system ; IN: elevate.macosx command >>command 1array ] [ - posix-graphical? [ ! graphical through applescript + already-root? [ + command >>command 1array + ] [ + ! graphical through applescript + posix-graphical? [ command apple-script-elevated ] when - posix-elevated - ] if ; + posix-elevated "lol3" throw + ] if "lol" throw ; M: macosx lowered posix-lowered ;