>> Arne, we have a bug report for AUCTeX where I found that the function
>> `latexenc-find-file-coding-system' can't deal with `TeX-master' or
>> `tex-main-file' set to a constant string in the init file and not as
>> file local variable.  I'm not really familiar with your code, but the
>> following small change is reported to fix the issue, at least for
>> AUCTeX:
> My apologies, my last proposal was broken, please consider the one
> attached.
>
> Best, Arash
>
> diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el
> index 1b735810ee4..805a74c52c5 100644
> --- a/lisp/international/latexenc.el
> +++ b/lisp/international/latexenc.el
> @@ -144,17 +144,26 @@ latexenc-find-file-coding-system
>                                      (file-name-directory (nth 1 arg-list))
>                                    default-directory))
>               latexenc-main-file)
> -            ;; Is there a TeX-master or tex-main-file in the local variables
> -            ;; section?
> +            ;; Is there a TeX-master or tex-main-file in the local
> +            ;; variables section or is it globally set to a constant
> +            ;; string?
>              (unless latexenc-dont-use-TeX-master-flag
>                (goto-char (point-max))
>             (search-backward "\n\^L" (max (- (point-max) 3000) (point-min))
>                                 'move)
>             (search-forward "Local Variables:" nil t)
> -              (when (re-search-forward
> -                     "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\""
> -                     nil t)
> -                (let ((file (match-string 2)))
> +              (when (or (re-search-forward
> +                         "^%+ *\\(TeX-master\\|tex-main-file\\): 
> *\"\\(.+\\)\""
> +                         nil t)
> +                        (and (bound-and-true-p TeX-master)
> +                             (stringp (default-value 'TeX-master)))
> +                        (and (bound-and-true-p tex-main-file)
> +                             (stringp (default-value 'tex-main-file))))
> +                (let ((file (or (match-string 2)
> +                                (and (boundp 'TeX-master)
> +                                     (default-value 'TeX-master))
> +                                (and (boundp 'tex-main-file)
> +                                     (default-value 'tex-main-file)))))
>                    (dolist (ext `("" ,(if (boundp 'TeX-default-extension)
>                                           (concat "." TeX-default-extension)
>                                         "")

LGTM.
This said, I don't think we need `default-value`.
And we can presumably simplify the above to

             (let ((file (if (re-search-forward
                              "^%+ *\\(TeX-master\\|tex-main-file\\): 
*\"\\(.+\\)\""
                              nil t)
                             (match-string 2)
                           (or (bound-and-true-p TeX-master)
                               (bound-and-true-p tex-main-file)))))
               (when (stringp file)
                 (dolist ...)))


- Stefan




_______________________________________________
bug-auctex mailing list
bug-auctex@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-auctex
  • bug#78841:... Tim Ruffing
    • bug#7... Tim Ruffing
      • b... Tim Ruffing
      • b... Arash Esbati
        • ... Tim Ruffing
          • ... Arash Esbati
            • ... Tim Ruffing
            • ... Arash Esbati
            • ... Arash Esbati
            • ... Arash Esbati
            • ... Stefan Monnier via bug-auctex via Bug reporting list for AUCTeX
            • ... Arash Esbati
            • ... Tim Ruffing
            • ... Arash Esbati
            • ... Tim Ruffing
            • ... Arash Esbati
            • ... Tim Ruffing
            • ... Paul D. Nelson
            • ... Arash Esbati
            • ... Paul D. Nelson
            • ... Arash Esbati

Reply via email to