> 1 <

Автор Сообщение

theps

Members


Статус

1 сообщений

Где: Russia
Род занятий:
Возраст:

#7026   2013-05-22 13:33 GMT+3 часа(ов)      
Тема такая. Объясню на примере
(command "_CHANGE" Nabor1 "_R" Nabor2 "")(command .....
Если Nabor2 перекрывает Nabor1, то на первом command'е выполнение команды завершено и дальнейшее продолжение второго command не нужно. Как выяснить в промежутке, что command больше не ждет продолжения.
Прошу не высказываться типа: предварительно сравнить Nabor или вычесть их - это я и так знаю, пример примитивный, есть более сложные случаи.

И второй вопрос соответственно: можно ли программно сделать Ctrl-C - прервать исполнение command.

Или более сложная постановка вопроса: можно ли в любом месте исполнения command выяснить, что команда просит: выбор объектов, выбор точки, ключевого слова и проч.

snv

Members


Статус

25 сообщений
http://sym.at.ua/load
Где: Russia Серпухов
Род занятий: Безработный
Возраст: 31

#7033   2013-05-29 19:13 GMT+3 часа(ов)      
С помощью CFFI. Например,
(defcfun "popen" :pointer (command :string) (mode :string))
(defcfun "pclose" :int (stream :pointer))
 
(defmacro w/popen ((var command mode) &body body)
`(let ((,var (libc::popen ,command ,mode)))
(unwind-protect (progn ,@body)
(unless (cffi:null-pointer-p ,var) (libc::pclose ,var)))))
 
 
(defun shell (command)
(w/popen (out
(or ;;#+cffi-features:unix (format nil "bash -c '~a'" command)
(format nil "~a" command))
"r")
(w/malloc (buf 4096)
(loop until (null-pointer-p (fgets buf 4096 out))
collect (foreign-string-to-lisp (strip-newline buf))))))
 
The hour will come in which all the peoples of the earth will awake, and the Jews will be the victims. -- Joseph Goebbels, 21 January 1945

gomer

Members


Статус

23 сообщений

Где: Ukraine
Род занятий:
Возраст:

#7275   2014-02-12 15:52 GMT+3 часа(ов)      
Единственный способ - vl-catch-all-apply, но не факт что это поможет
> 1 <


Онлайн :

0 пользователь(ей), 4 гость(ей) :




Реклама на сайте: