emsApplication/3rdPartner/libiconv/libcharset/tools/locale_x11encoding.c

41 lines
793 B
C
Raw Normal View History

2024-05-24 12:19:45 +08:00
/* Prints the locale's encoding via libX11. */
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <locale.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
int main (int argc, char* argv[])
{
Display* display;
XTextProperty textprop;
char* input;
if (argc != 1)
exit(1);
setlocale(LC_CTYPE,"");
display = XOpenDisplay(NULL);
if (display == NULL) {
fprintf(stderr,"cannot open display\n");
exit(1);
}
input = "";
if (XmbTextListToTextProperty(display, &input, 1, XTextStyle, &textprop) != Success) {
fprintf(stderr,"XmbTextListToTextProperty failed\n");
exit(1);
}
assert(textprop.format == 8);
assert(textprop.nitems == 0);
printf("%s\n", XGetAtomName(display, textprop.encoding));
XCloseDisplay(display);
exit(0);
}