Estou usando Elisp. Eu gostaria de fazer o seguinte no meu arquivo init:
; Retrieve the value of LD_LIBRARY_PATH
; Append '/path/to/some/lib/:'to it
; Save the new value of LD_LIBRARY_PATH
Até agora eu sei que posso usar:
(getenv "LD_LIBRARY_PATH")
para recuperar o valor e:
(setenv "LD_LIBRARY_PATH" "foo")
para definir um novo valor, mas meu conhecimento do Elisp é extremamente rudimentar, então não sei como prosseguir a partir deste ponto.
Fundo:
Esta pergunta é inspirada no fato de que énão ser possívelpara obter um script de shell para manipular esse ambiente de dentro do Emacs, então eu precisaria fazer isso usando o Elisp.
Responder1
No Elisp, a concatenação de strings é feita com concat
:
(setenv "LD_LIBRARY_PATH"
(let ((current (getenv "LD_LIBRARY_PATH"))
(new "/path/to/some/lib"))
(if current (concat new ":" current) new)))