Hello- PR preprocessor/49973 addresses the fact that the column number in diagnostics is not correct if the source lines contain multibyte characters. The attached patch corrects this. The outlines of it were discussed starting here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49973#c13. If it looks OK, could you please apply it? The patch is a bit large unfortunately, because the column number was just the tip of the iceberg. There is a lot of machinery in diagnostic-show-locus.c that also requires multibyte awareness, which I have done in this patch as well. A couple notes: - In order to avoid any portability problems with wchar_t, the equivalent of wcwidth() from libc is implemented in-house. - The diagnostic-show-locus stuff needs to know both the bytes column and the display column. All location infrastructure (e.g. line-map.h) tracks byte offsets, so I left that all alone. Rather, diagnostic-show-locus.c just computes display columns on demand when it needs them. - In the above-linked PR, Joseph and I also discussed a couple related fixes that need to be made, namely, when -finput-charset is in use, the translation needs to be applied when reading source lines for the purpose of diagnostics printing, which currently it is not, and also, when outputting diagnostics, the current locale should be inspected to avoid outputting bytes that the user's terminal cannot display. I have separate patches for these two as well, but since they are more or less orthogonal to this one, I will submit them later. Thank you for your time taking a look at this. It will be nice to clean these up as part of the support for extended characters in identifiers. I have a related issue for extended characters also in PR 91843 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91843#c1). I can also submit that couple-line patch here if it looks OK. -Lewis