41 lines
793 B
C
41 lines
793 B
C
/* 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);
|
|
}
|