Ich möchte in .PNG Dateien Kommentare einfügen / verändern. Dabei soll der Benutzer auch die verwendete Sprache einstellen können (ohne, System, manuel). Das hat auch schon mal funktioniert.
Aber nach einer Änderung muss ich da noch einen Debugger bemühen (ich verwende den ddd, den Martin-MS mir gebaut hatte).
Ohne Debugger scheint es erst mal zu laufen (bis zum Schreiben), aber wenn ich das Programm vom Debugger aus starte, bekomme ich als Systemeinstellung "C.UTF-8" anstelle von "de_DE.UTF-8". Die Codezeile ist:
if( (str = getenv( "LANG" )) && (len = strlen( str )) > 0 ) {
Bei anderen environment Abfragen konnte ich bisher keine Abweichungen feststellen.

Wenn er temporär für seine Instanz die Umgebungsvariablen verändert, ist das okay. Ist das Gleiche, als würdest du das Programm mit LANG=C programm aufrufen – das macht man häufiger, wenn man ’ne Fehlermeldung eines deutsch konfigurierten Systems gegen eine Suchmaschine werfen will, weil man mit der originalen englischen Fehlermeldung mehr Aussicht auf Erfolg hat.

Wenn es die Variablen hingegen dauerhaft für die aufrufende Shell, oder gar die Konfiguration selbst, ändern würde, hätte zumindest ich doch sehr etwas dagegen.

Ja, das ist wohl nur für diese Instanz. Eine parallel gestartete Instanz des selben Programms, zeigt diese Abweichung nicht. Da ich das zuvor noch nicht beobachtet hatte, hatte ich einen zusätzlichen Fehler in meinem geänderten Programm vermutet.

Dann nehme ich mal an, dass das für iTXt Chunks auch eine gültige Angabe ist und betrachte das ähnlich wie iTXt ohne Sprachangabe (unknown).

Danke für die Info.