É possível fazer 'xrdb' ignorar aspas simples em uma linha comentada?

4

Estou usando rxvt-unicode , versão 9.22 , como emulador de terminal, e configure-o com o arquivo ~/.Xresources .

Quando modifico o arquivo de configuração, para ver os efeitos imediatamente, eu executo o comando:

xrdb ~/.Xresources

De man xrdb :

Lines that begin with an exclamation mark (!) are ignored and may be used as comments.

Na minha máquina, com xrdb versão 1.1.0 , quando uma linha comentada contém um número ímpar de aspas simples, por exemplo ! it's a comment , xrdb reclama com um erro como:

/home/user/.Xresources:1:5: warning: missing terminating ' character
 ! it's a comment
     ^

Atualmente, dobro as aspas simples para evitar esse erro:

! it''s a comment

Eu acho que eu também poderia usar /* */ , em vez de ! , porque é a string de comentário usada por padrão pelo Vim (definida em $VIMRUNTIME/ftplugin/xdefaults.vim ). Mas eu preferiria usar ! , porque acho comentários um pouco mais legíveis com isso.

Existe uma maneira de pedir que xrdb ignore aspas simples dentro das linhas comentadas de ~/.Xresources ?

    
por user547381 24.06.2017 / 23:32

1 resposta

5

Isso parece ser devido a uma alteração no comportamento padrão do GNU cpp , que xrdb usa como seu pré-processador padrão. Especificamente, de acordo com The C Preprocessor: 10.1 Análise lexical tradicional :

Generally speaking, in traditional mode an opening quote need not have a matching closing quote.

No entanto, cpp fornece uma opção de linha de comando para operar no modo tradicional:

-traditional
-traditional-cpp
    Try to imitate the behavior of pre-standard C preprocessors, as opposed to ISO 
    C preprocessors. See Traditional Mode.

enquanto xrdb permite que o pré-processador seja definido explicitamente em sua linha de comando:

-cpp filename
       This  option  specifies the pathname of the C preprocessor pro‐
       gram to be used.  Although xrdb was designed to  use  CPP,  any
       program  that  acts  as a filter and accepts the -D, -I, and -U
       options may be used.

Por isso, deve ser possível suprimir o aviso usando

xrdb -cpp "/usr/bin/cpp -traditional-cpp"  ~/.Xresources

ou

xrdb -cpp "/usr/bin/cpp -traditional"  ~/.Xresources
    
por 25.06.2017 / 00:09