This is the mail archive of the cygwin mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, I am moving from cygwin-1.5 and gcc3.4 to cygwin1.7 and gcc4. Some simple programs of mine fail. I am using LC_ALL=es_VE.ISO-8859-15. I have reduced the problem to this example -------------- #include <stdio.h> main() { static char* line1 = " This letter has an accent -->á, this one has no accent -->a\n\n"; static char* line2 = " ***** another line ******\n\n"; static char* line3 = " These letters have an accent -->á, these ones have no accent -->A!\n\n"; static char* line4 = " This letter has an accent -->Ã, this one has no accent -->A\n\n"; printf(" This letter has an accent -->á, this one has no accent -->a\n\n"); printf(line2); printf("%d %d %d\n\n",line1[29],line1[30],line1[31]); printf(line1); printf(line2); printf(" These letters have an accent -->á, these ones have no accent -->A!\n\n"); printf(line2); printf("%d %d %d %d\n\n",line3[32],line3[33],line3[34],line3[35]); printf(line3); printf(line2); printf(" This letter has an accent -->Ã, this one has no accent -->A\n\n"); printf(line2); printf("%d %d %d\n\n",line4[29],line4[30],line4[31]); printf(line4); printf(line2); printf(" ----- END ------"); }---------------- My output is: This letter has an accent -->á, this one has no accent -->a ***** another line ****** 62 -31 44 This letter has an accent --> ***** another line ****** These letters have an accent -->á, these ones have no accent -->A! ***** another line ****** 62 -61 -95 44 These letters have an accent -->á, these ones have no accent -->A! ***** another line ****** This letter has an accent -->Ã, this one has no accent -->A ***** another line ****** 62 -61 44 This letter has an accent --> ***** another line ****** ----- END ------ As you can see the output of printf(string_constant) is what I expected. The ouput of printf(char_array) is trucated at the non-ASCII character. But not always the printf(char_array) fails. The couple of characters "á" are printed correctly. Nevertheless the character "Ã" alone fails. For whateveri that could mean, notice that "á" corresponds to the UTF-8 encoding of "á", so that the character array is an acceptable UTF-8 string, but what is actually printed is not the UTF-8 string but the ISO-8859-15 string. Happy Holiday and thanks for the great work of cygwin1.7 ! RM The cygcheck output and the environment are attached.
Attachment:
environ.txt
Description: environ.txt
Attachment:
cygcheck.txt
Description: cygcheck.txt
-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |