Аргументы для sb-ext: run-program - PullRequest
3 голосов
/ 02 ноября 2010

Может кто-нибудь сказать мне, как должен выглядеть аргумент args для sb-ext: run-program ?

Если я сделаю это:

(sb-ext:run-program "C:/Program Files/iTunes/iTunes.exe" 
               "C:/lispbox-0.7/opus.mid")

Я получаю эту ошибку:

debugger invoked on a TYPE-ERROR:
  The value "C:/lispbox-0.7/opus.mid" is not of type LIST.

Однако, если я сделаю это:

(sb-ext:run-program "C:/Program Files/iTunes/iTunes.exe" 
               (list "C:\lispbox-0.7\opus.mid"))

iTunes открывается, но MIDI-файл не воспроизводится, хотя этот вызов из командной строки Windows работает просто отлично:

U:\>"C:\Program Files\iTunes\iTunes.exe" C:\lispbox-0.7\opus.mid

Обратите внимание, что это (с косой чертой):

CL-USER> (sb-ext:run-program "C:/Program Files/iTunes/iTunes.exe" 
               (list "C:/lispbox-0.7/opus.mid"))

имеет тот же эффект: iTunes открывается, но файл не воспроизводится.

1 Ответ

2 голосов
/ 02 ноября 2010

В версии списка вы используете одиночные обратные слеши, которые анализируются как escape-последовательности.Вам нужно использовать двойную обратную косую черту.

...