• Show log

    Commit

  • Hash : 8abf0894
    Author : Mike Frysinger
    Date : 2022-02-20T13:28:48

    automake: support embedded \# in variable appends
    
    Fixes automake bug https://bugs.gnu.org/7610.
    
    Use of \# is not portable.  POSIX does not provide any way of retaining
    the # marker in variables.  There is wide spread support for \# though
    in GNU & BSD Make implementations.
    
    Today, with plain variable assignments, Automake leaves the line alone:
      foo = blah\#blah
    This will leave it to the implementation to decide what to do.  But if
    you try to append to it, Automake follows POSIX and strips it:
      foo = blah\#blah
      foo += what
      -> foo = blah\ what
    
    Instead, let's issue a portability warning whenever \# is used, even if
    it isn't being appended, and do not strip the \# when appending.  Now:
      foo = blah\#blah
      foo += what
      -> warning: escaping \# comment markers is not portable
      -> foo = blah\#blah what
    
    * NEWS: Mention change in \# handling.
    * lib/Automake/VarDef.pm: Do not strip # if escaped.
    * lib/Automake/Variable.pm: Warn if \# is used.
    * t/comment12.sh: New test.
    * t/comments-escaped-in-var.sh: New test.
    * t/list-of-tests.mk: Add comment12.sh & comments-escaped-in-var.sh.