Subject: Re: bug#47488: Treatment of # in js.el

From: Eli Zaretskii <[email-masked]>
Date: Wed, 12 May 2021 16:53:21 +0300

> From: Lars Ingebrigtsen <[email-masked]>
> Date: Wed, 12 May 2021 15:32:01 +0200
> Cc: [email-masked], Reuben Thomas <[email-masked]>
> 
> I've never heard of the #file directive, but:
> 
> ;; `cpp-font-lock-keywords-source-directives' is calculated from:
> ;;
> ;;	    (regexp-opt
> ;;	     '("define"  "elif" "else" "endif" "error" "file" "if" "ifdef"
> ;;	       "ifndef" "import" "include" "line" "pragma" "undef" "warning"))
> 
> I spent 30 seconds googling, and I could find no list of directive that
> includes #file, so...  Bug #warning is used, and so is #line, so perhaps
> it's an old thing?

The #file directive is emitted by the preprocessor, so that later
compiling the preprocessed source would yield the correct source line
numbers.  Try preprocessing some .c file with "gcc -E" and you will
see these directives in the output.