1 module dmagick.c.locale;
2 
3 import core.stdc.stdio;
4 import core.vararg;
5 
6 import dmagick.c.exception;
7 import dmagick.c.hashmap;
8 import dmagick.c.magickType;
9 import dmagick.c.magickVersion;
10 
11 alias ptrdiff_t ssize_t;
12 
13 extern(C)
14 {
15 	struct LocaleInfo
16 	{
17 		char*
18 			path,
19 			tag,
20 			message;
21 
22 		MagickBooleanType
23 			stealth;
24 
25 		LocaleInfo*
26 			previous,
27 			next;
28 
29 		size_t
30 			signature;
31 	}
32 
33 	char** GetLocaleList(const(char)*, size_t*, ExceptionInfo*);
34 
35 	const(char)* GetLocaleMessage(const(char)*);
36 
37 	const(LocaleInfo)*  GetLocaleInfo_(const(char)*, ExceptionInfo*);
38 	const(LocaleInfo)** GetLocaleInfoList(const(char)*, size_t*, ExceptionInfo*);
39 
40 	static if ( MagickLibVersion >= 0x670 )
41 	{
42 		double InterpretLocaleValue(const(char)*, char**);
43 	}
44 
45 	int LocaleCompare(const(char)*, const(char)*);
46 	int LocaleNCompare(const(char)*, const(char)*, const size_t);
47 
48 	LinkedListInfo* DestroyLocaleOptions(LinkedListInfo*);
49 	LinkedListInfo* GetLocaleOptions(const(char)*, ExceptionInfo*);
50 
51 	MagickBooleanType ListLocaleInfo(FILE*, ExceptionInfo*);
52 	MagickBooleanType LocaleComponentGenesis();
53 
54 	static if ( MagickLibVersion >= 0x670 )
55 	{
56 		ssize_t FormatLocaleFile(FILE*, const(char)*, ...);
57 		ssize_t FormatLocaleFileList(FILE*, const(char)*, va_list);
58 		ssize_t FormatLocaleString(char*, const size_t, const(char)*, ...);
59 		ssize_t FormatLocaleStringList(char*, const size_t, const(char)*, va_list);
60 	}
61 
62 	void LocaleComponentTerminus();
63 	void LocaleLower(char*);
64 	void LocaleUpper(char*);
65 }