Quellendateiformat für Ländereinstellungsmethode
Zweck
Gibt die Methoden an, die beim Erstellen einer Ländereinstellung überschrieben werden sollen.
Beschreibung
Die Quellendatei Methoden ordnet Methodennamen den NLS-Subroutinen (National Language Support) zu, die diese Methoden implementieren. Die Datei Methoden gibt auch die Bibliotheken an, in denen die implementierenden Subroutinen gespeichert werden.
Die Methoden entsprechen den Subroutinen, die direkten Zugriff auf die Datenstrukturen benötigen, die Ländereinstellungsdaten darstellen.
Die folgende Grammatik wird für eine Methoden -Datei erwartet:
method_def : "METHODS"
| method_assign_list "END METHODS"
; method_assign_list :
method_assign_list method_assign
| method_assign_list
| method_assign
; method_assign :
"csid" meth_name meth_lib_path
| "fnmatch" meth_name meth_lib_path
| "get_wctype" meth_name meth_lib_path
| "is_wctype" meth_name meth_lib_path
| "mblen" meth_name meth_lib_path
| "__mbstopcs" meth_name meth_lib_path
| "mbstowcs" meth_name meth_lib_path
| "__mbtopc" meth_name meth_lib_path
| "mbtowc" meth_name meth_lib_path
| "__pcstombs" meth_name meth_lib_path
| "__pctomb" meth_name meth_lib_path
| "regcomp" meth_name meth_lib_path
| "regerror" meth_name meth_lib_path
| "regexec" meth_name meth_lib_path
| "regfree" meth_name meth_lib_path
| "rpmatch" meth_name meth_lib_path
| "strcoll" meth_name meth_lib_path
| "strfmon" meth_name meth_lib_path
| "strftime" meth_name meth_lib_path
| "strptime" meth_name meth_lib_path
| "strxfrm" meth_name meth_lib_path
| "towlower" meth_name meth_lib_path
| "towupper" meth_name meth_lib_path
| "wcscoll" meth_name meth_lib_path
| "wcsftime" meth_name meth_lib_path
| "wcsid" meth_name meth_lib_path
| "wcstombs" meth_name meth_lib_path
| "wcswidth" meth_name meth_lib_path
| "wcsxfrm" meth_name meth_lib_path
| "wctomb" meth_name meth_lib_path
| "wcwidth" meth_name meth_lib_path
; meth_name: global_name
| cfunc_name
; global_name: "CSID_STD"
| "FNMATCH_C"
| "FNMATCH_STD"
| "GET_WCTYPE_STD"
| "IS_WCTYPE_SB"
| "IS_WCTYPE_STD"
| "LOCALECONV_STD"
| "MBLEN_932"
| "MBLEN_EUCJP"
| "MBLEN_SB"
| "__MBSTOPCS_932"
| "__MBSTOPCS_EUCJP"
| "__MBSTOPCS_SB"
| "MBSTOWCS_932"
| "MBSTOWCS_EUCJP"
| "MBSTOWCS_SB"
| "__MBTOPC_932"
| "__MBTOPC_EUCJP"
| "__MBTOPC_SB"
| "MBTOWC_932"
| "MBTOWC_EUCJP"
| "MBTOWC_SB"
| "NL_MONINFO"
| "NL_NUMINFO"
| "NL_RESPINFO"
| "NL_TIMINFO"
| "__PCSTOMBS_932"
| "__PCSTOMBS_EUCJP"
| "__PCSTOMBS_SB"
| "__PCTOMB_932"
| "__PCTOMB_EUCJP"
| "__PCTOMB_SB"
| "REGCOMP_STD"
| "REGERROR_STD"
| "REGEXEC_STD"
| "REGFREE_STD"
| "RPMATCH_C"
| "RPMATCH_STD"
| "STRCOLL_C"
| "STRCOLL_SB"
| "STRCOLL_STD"
| "STRFMON_STD"
| "STRFTIME_STD"
| "STRPTIME_STD"
| "STRXFRM_C"
| "STRXFRM_SB"
| "STRXFRM_STD"
| "TOWLOWER_STD"
| "TOWUPPER_STD"
| "WCSCOLL_C"
| "WCSCOLL_STD"
| "WCSFTIME_STD"
| "WCSID_STD"
| "WCSTOMBS_932"
| "WCSTOMBS_EUCJP"
| "WCSTOMBS_SB"
| "WCSWIDTH_932"
| "WCSWIDTH_EUCJP"
| "WCSWIDTH_LATIN"
| "WCSXFRM_C"
| "WCSXFRM_STD"
| "WCTOMB_932"
| "WCTOMB_EUCJP"
| "WCTOMB_SB"
| "WCWIDTH_932"
| "WCWIDTH_EUCJP"
| "WCWIDTH_LATIN"
;Der Befehl Lokale Definition analysiert diese Informationen, um die für diese Ländereinstellung zu verwendenden Methoden zu ermitteln. Die folgenden Subroutinen müssen in der Datei Methode angegeben werden:
- __mbtopc
- __mbstopcs
- __pctomb
- __pcstombs
- Mblen
- Mbstowcs
- Mbtowc
- Wcstombs
- WCS-Breite
- WKtomb
- wcwidth (Breite)
Alle anderen Methoden, die nicht in der Datei Methode angegeben sind, behalten den Standardwert bei.
Das Mischen von CFUNKNAME -Werten und globaler_Name -Werten ist unzulässig. Eine Methode -Datei sollte nicht beides enthalten. Wenn der Befehl Lokale Definition eine Datei Methode empfängt, die sowohl CFUNKNAME -Werte als auch globaler_Name -Werte enthält, wird ein Fehler generiert und die Ländereinstellung wird nicht erstellt.
Es ist nicht obligatorisch, dass der Abschnitt METHODEN den Bibliotheksnamen angibt. Wenn eine einzelne Methode keine Bibliothek angibt, übernimmt die Methode die zuletzt angegebene Bibliothek. Die Bibliothek libc.a ist die Standardbibliothek.
Die Methode für die Subroutinen Mbtowc und wcwidth (Breite) sollte vermeiden, wenn möglich andere Methoden aufzurufen.
Ein Verständnis dafür, wie die __mbtopc-, __mbstopcs-, __pctomb-und __pcstombs -Subroutinen Breitzeichen verarbeiten, ist beim Erstellen einer Methode -Datei nützlich. Diese Subroutinen sollten nicht in Anwendungsprogrammen verwendet werden.
__mbtopc, Subroutine
Die Subroutine __mbtopc konvertiert ein Zeichen in einen Prozesscode.
Die Syntax für die Subroutine __mbtopc lautet wie folgt:
size_t __mbtopc( PC, S, LenS, Err ) wchar_t * PC; uchar * S; size_t LenS; int * Err;
Der Eingabepuffer, auf den der Parameter S verweist, enthält die Anzahl der Byte an Zeichendaten, die im LenS -Parameter angegeben sind. Die Subroutine __mbtopc versucht, das Zeichen in einen Prozesscode zu konvertieren. Wenn ein gültiges Zeichen im Eingabepuffer gefunden wird, auf den der Parameter S verweist, wird das Zeichen konvertiert und im Parameter PC gespeichert und die Anzahl der Byte im Zeichen zurückgegeben.
Wenn die Anzahl der Bytes, die durch den LenS Parameter im Eingabepuffer angegeben wird, auf den der Parameter S verweist, ein ungültiges Zeichen bildet, gibt die Subroutine 0 zurück und setzt den Parameter Err auf den Wert -1. Wenn ein Zeichen nicht mit der durch den LenS Parameter angegebenen Anzahl von Bytes oder weniger gebildet werden kann, gibt die Subroutine 0 zurück und setzt den Parameter Err auf die Anzahl von Bytes, die erforderlich sind, um ein Zeichen zu bilden, das mit den Daten beginnt, auf die der Parameter S zeigt.
Die Parameter haben die folgenden Werte:
| Element | Beschreibung |
|---|---|
| PC | Zeigt auf ein Breitzeichen, das das konvertierte Zeichen enthalten soll |
| S | Verweist auf den Puffer der zu konvertierenden Zeichendaten. |
| LenS | Gibt die Anzahl der Byte an Zeichendaten an, auf die der Parameter S verweist. |
| err | Gibt einen Fehlerwert an, der angibt, warum die Konvertierung fehlgeschlagen ist. |
__mbstopcs, Subroutine
Die Subroutine __mbstopcs konvertiert eine Zeichenfolge in eine Prozesscodezeichenfolge.
Die Syntax für die Subroutine __mbstopcs lautet wie folgt:
size_t __mbstopcs( PC, LenPC, S, LenS, StopCh, EndPtr, Err ) wchar_t * PC; size_t LenPC; uchar * S; size_t LenS; uchar StopCh; uchar ** EndPtr; int * Err;
Der Eingabepuffer, auf den der Parameter S verweist, enthält die Anzahl der Byte an Zeichendaten, die im LenS -Parameter angegeben sind. Die Subroutine __mbstopcs versucht, die Zeichendaten in Verarbeitungscodes zu konvertieren. Die Konvertierung von Zeichen wird fortgesetzt, bis eine der folgenden Bedingungen eintritt:
- Die mit dem Parameter LenS angegebene Anzahl Byte wurde konvertiert.
- Die Anzahl der mit dem Parameter LenPC angegebenen Zeichen wurde konvertiert.
- Der im Parameter StopCh angegebene Bytewert wird im Eingabepuffer gefunden, auf den der Parameter S verweist.
- Im Eingabepuffer, auf den der Parameter S verweist, wurde ein ungültiges oder unvollständiges Zeichen gefunden.
Wenn die mit dem Parameter LenS angegebene Anzahl Byte oder die mit dem Parameter LenPC angegebene Anzahl Zeichen erfolgreich konvertiert wurden, gibt die Subroutine __mbstopcs die Anzahl der konvertierten Zeichen zurück und setzt den Parameter Err auf 0. und legt den Parameter EndPtr so fest, dass er direkt nach dem letzten Zeichen verweist, das im Eingabepuffer konvertiert wurde, auf den der Parameter S verweist.
Wenn das mit dem Parameter StopCh angegebene Byte in dem Eingabepuffer gefunden wird, auf den der Parameter S verweist, geschieht Folgendes:
- Die Konvertierung wird beendet.
- Der mit dem Parameter StopCh angegebene Wert wird in den Parameter PC eingefügt.
- Der Parameter EndPtr wird so gesetzt, dass er unmittelbar nach dem mit dem Parameter StopCh angegebenen Wert verweist.
- Der Parameter Fehler ist auf 0 gesetzt.
- Die Anzahl der konvertierten Zeichen wird zurückgegeben.
Wenn ein ungültiges Zeichen in dem Eingabepuffer gefunden wird, auf den der Parameter S verweist, wird der Parameter EndPtr so gesetzt, dass er auf den Anfang dieses Zeichens verweist, der Parameter Err auf (size_t) -1 gesetzt und die Subroutine __mbstopcs gibt die Anzahl der konvertierten Zeichen zurück.
Wenn am Ende des Eingabepuffers, auf den durch den Parameter S verwiesen wird, ein unvollständiges Zeichen gefunden wird, wird der Parameter EndPtr so gesetzt, dass er auf den Anfang des unvollständigen Zeichens verweist, und der Parameter Err wird auf die Anzahl der Byte in einem Zeichen gesetzt, die mit dem Byte beginnt, auf das durch den Parameter EndPtr verwiesen wird. Die Subroutine __mbstopcs gibt die Anzahl der konvertierten Zeichen zurück.
Die Parameter haben die folgenden Werte:
| Element | Beschreibung |
|---|---|
| PC | Verweist auf ein WChar_T -Array, das die konvertierten Zeichen enthalten soll |
| LenPC | Gibt die maximale Anzahl an Breitzeichen an, die im Parameter PC platziert werden können. |
| S | Verweist auf einen Puffer mit Zeichendaten, die konvertiert werden sollen |
| LenS | Gibt die Anzahl der Zeichendatenbyte im Parameter S an. |
| StopCh | Gibt einen Einzelbytezeichenwert an, um das Datenende im Parameter S anzugeben. |
| EndPtr | Verweist auf den Parameter S , an dem die Zeichenkonvertierung beendet wurde. |
| err | Gibt einen Fehlerwert an, der angibt, warum die Konvertierung fehlgeschlagen ist. |
Subroutine __pctomb
Die Subroutine __pctomb konvertiert einen Prozesscode in ein Zeichen.
Die Syntax für die Subroutine __pctomb lautet wie folgt:
size_t __pctomb( S, LenS, PC, Err ) char * S; size_t LenS; wchar_t * PC; int * Err;
Der Eingabepuffer, auf den der Parameter PC verweist, enthält ein Breitzeichen, das die Subroutine zu konvertieren versucht, in ein Zeichen im Eingabepuffer, auf den der Parameter S verweist. Wenn ein gültiger Prozesscode im Eingabepuffer gefunden wird, auf den durch den Parameter PC verwiesen wird, wird er konvertiert und im Eingabepuffer gespeichert, auf den durch den Parameter S verwiesen wird, und die Anzahl Byte im Zeichen wird zurückgegeben.
Wenn das Breitzeichen im Eingabepuffer, auf das der Parameter PC verweist, ungültig ist, gibt die Subroutine __pctomb den Wert 0 zurück und setzt den Parameter Fehler auf den Wert (Größe_t) -1. Wenn die Länge des Zeichens größer als die mit dem Parameter LenS angegebene Anzahl Byte ist, gibt die Subroutine __pctomb den Wert 0 zurück und setzt den Parameter Err auf die Anzahl Byte, die zur Bildung des Zeichens erforderlich sind.
Die Parameter haben die folgenden Werte:
| Element | Beschreibung |
|---|---|
| S | Verweist auf einen Puffer, der den konvertierten Prozesscode enthalten soll. |
| LenS | Gibt die Größe des Zeichenbereichs an, auf den der Parameter S verweist. |
| PC | Zeigt auf das zu konvertierende Breitzeichen. |
| err | Gibt einen Fehlerwert an, der angibt, warum die Konvertierung fehlgeschlagen ist. |
Subroutine __pcstombs
Die Subroutine __pcstombs konvertiert eine breite Zeichenfolge in eine Zeichenfolge.
Die Syntax für die Subroutine __pcstombs lautet wie folgt:
size_t __pcstombs( S, LenS, PC, LenPC, StopCh, EndPtr, Err ) char * S; size_t LenS; wchar_t * PC; size_t LenPC; wchar_t StopCh; char ** EndPtr; int * Err;
Der Eingabepuffer, auf den der Parameter PC verweist, enthält die mit dem Parameter LenPC angegebene Anzahl von Breitzeichen. Die Subroutine __pcstombs versucht, die Prozesscodes in Zeichen zu konvertieren. Die Konvertierung wird fortgesetzt, bis eine der folgenden Bedingungen eintritt:
- Die mit dem Parameter LenPC angegebene Anzahl von Breitzeichen wurde konvertiert.
- Die mit dem Parameter LenS angegebene Anzahl Byte wurde konvertiert.
- Der im Parameter StopCh angegebene Zeichenwert wird im Eingabepuffer gefunden, auf den der Parameter PC verweist.
- Im Eingabepuffer, auf den der Parameter PC verweist, wurde ein ungültiges Breitzeichen gefunden.
Wenn die durch den Parameter LenS angegebene Anzahl Byte oder die durch den Parameter LenPC angegebene Anzahl Zeichen erfolgreich konvertiert wurden, gibt die Subroutine __pcstombs die Anzahl Byte zurück, die in den Puffer gestellt wurden, auf den durch den Parameter S verwiesen wird, und setzt den Parameter Err auf 0. und setzt den Parameter EndPtr so, dass er unmittelbar nach dem letzten Zeichen verweist, das im Eingabepuffer konvertiert wurde, auf den der Parameter PC verweist.
Wenn das mit dem Parameter StopCh angegebene Zeichen im Eingabepuffer gefunden wird, auf den der Parameter PC verweist, geschieht Folgendes:
- Die Konvertierung wird beendet.
- Das mit dem Parameter StopCh angegebene Zeichen wird am Ende der Daten platziert, auf die momentan mit dem Parameter S verwiesen wird.
- Der Parameter EndPtr wird so gesetzt, dass er unmittelbar auf das mit dem Parameter StopCh angegebene Zeichen verweist.
- Der Parameter Fehler ist auf 0 gesetzt.
- Die Anzahl Byte, die in den Puffer gestellt werden, auf den der Parameter S verweist, wird zurückgegeben.
Wenn im Eingabepuffer, auf den durch den Parameter PC verwiesen wird, ein ungültiges Breitzeichen gefunden wird, wird der Parameter EndPtr so gesetzt, dass er auf den Anfang dieses Zeichens verweist, der Parameter Err auf (size_t) -1 gesetzt und die Subroutine __pcstombs gibt die Anzahl der Bytes zurück, die in dem Puffer platziert sind, auf den durch den Parameter S verwiesen wird.
Die Parameter haben die folgenden Werte:
| Element | Beschreibung |
|---|---|
| S | Verweist auf einen Puffer, der die konvertierten Daten aufnehmen soll. |
| LenS | Gibt die Größe (in Byte) des Zeichenbereichs an, auf den der Parameter S verweist. |
| PC | Verweist auf ein zu konvertierende WChar_T -Array. |
| LenPC | Gibt die Anzahl der Breitzeichen in dem Array an, auf das der Parameter PC verweist. |
| StopCh | Gibt einen Breitzeichenwert an, um das Ende der Daten in dem Array anzugeben, auf das der Parameter PC verweist. |
| EndPtr | Verweist auf den Parameter S , an dem die Zeichenkonvertierung beendet wurde. |
| err | Gibt den Fehlerwert an, der angibt, warum die Konvertierung fehlgeschlagen ist. |
Dateien
| Element | Beschreibung |
|---|---|
| /usr/lib/nls/loc/* | Gibt Quellendateien für Ländereinstellungsdefinitionen für unterstützte Ländereinstellungen an. |
| / usr/lib/nls/Zeichensatz/* | Gibt die Quellendateien für Zeichensatzbeschreibungen (Charmap) für unterstützte Ländereinstellungen an. |