1 | /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
2 | /* |
3 | * This file is part of the LibreOffice project. |
4 | * |
5 | * This Source Code Form is subject to the terms of the Mozilla Public |
6 | * License, v. 2.0. If a copy of the MPL was not distributed with this |
7 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
8 | * |
9 | * This file incorporates work covered by the following license notice: |
10 | * |
11 | * Licensed to the Apache Software Foundation (ASF) under one or more |
12 | * contributor license agreements. See the NOTICE file distributed |
13 | * with this work for additional information regarding copyright |
14 | * ownership. The ASF licenses this file to you under the Apache |
15 | * License, Version 2.0 (the "License"); you may not use this file |
16 | * except in compliance with the License. You may obtain a copy of |
17 | * the License at http://www.apache.org/licenses/LICENSE-2.0 . |
18 | */ |
19 | |
20 | #ifndef _LINGUTIL_HXX_ |
21 | #define _LINGUTIL_HXX_ |
22 | |
23 | |
24 | #include <com/sun/star/lang/Locale.hpp> |
25 | #include <rtl/string.hxx> |
26 | #include <rtl/ustring.hxx> |
27 | |
28 | #include <vector> |
29 | #include <list> |
30 | |
31 | |
32 | #define OU2ENC(rtlOUString, rtlEncoding) \ |
33 | OString((rtlOUString).getStr(), (rtlOUString).getLength(), \ |
34 | rtlEncoding, RTL_UNICODETOTEXT_FLAGS_UNDEFINED_QUESTIONMARK).getStr() |
35 | |
36 | |
37 | struct SvtLinguConfigDictionaryEntry; |
38 | |
39 | /////////////////////////////////////////////////////////////////////////// |
40 | |
41 | struct lt_rtl_OUString |
42 | { |
43 | bool operator() (const OUString &r1, const OUString &r2) const |
44 | { |
45 | return r1 < r2; |
46 | } |
47 | }; |
48 | |
49 | inline sal_Bool operator == ( const ::com::sun::star::lang::Locale &rL1, const ::com::sun::star::lang::Locale &rL2 ) |
50 | { |
51 | return rL1.Language == rL2.Language && |
52 | rL1.Country == rL2.Country && |
53 | rL1.Variant == rL2.Variant; |
54 | } |
55 | |
56 | #if defined(WNT) |
57 | /////////////////////////////////////////////////////////////////////////// |
58 | // to be use to get a short path name under Windows that still can be used with |
59 | // the 'fopen' call. This is necessary since under Windows there seems to be |
60 | // a restriction of only about 110-130 characters length to a path name in order |
61 | // for it to work with 'fopen'. And that length is usually easily exceeded |
62 | // when using extensions... |
63 | OString Win_GetShortPathName( const OUString &rLongPathName ); |
64 | #endif |
65 | |
66 | /////////////////////////////////////////////////////////////////////////// |
67 | |
68 | // temporary function, to be removed when new style dictionaries |
69 | // using configuration entries are fully implemented and provided |
70 | std::vector< SvtLinguConfigDictionaryEntry > GetOldStyleDics( const char * pDicType ); |
71 | void MergeNewStyleDicsAndOldStyleDics( std::list< SvtLinguConfigDictionaryEntry > &rNewStyleDics, const std::vector< SvtLinguConfigDictionaryEntry > &rOldStyleDics ); |
72 | |
73 | /////////////////////////////////////////////////////////////////////////// |
74 | |
75 | |
76 | //Find an encoding from a charset string, using |
77 | //rtl_getTextEncodingFromMimeCharset and falling back to |
78 | //rtl_getTextEncodingFromUnixCharset with the addition of |
79 | //ISCII-DEVANAGARI. On failure will return final fallback of |
80 | //RTL_TEXTENCODING_ISO_8859_1 |
81 | rtl_TextEncoding getTextEncodingFromCharset(const sal_Char* pCharset); |
82 | |
83 | #endif |
84 | |
85 | /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |
86 | |