Jump to content

UniQueryAttr: Difference between revisions

From EDM2
Created page with "UniQueryAttr returns the value associated with the attribute name supplied by the user. ==Syntax== ULONG UniQueryAttr (UniChar *attrName) ==Parameters== ; attrName (UniCha..."
 
Line 20: Line 20:
Symbolic names beginning with "C1_" are provided as aliases for several POSIX attributes for Win32 compatibility.
Symbolic names beginning with "C1_" are provided as aliases for several POSIX attributes for Win32 compatibility.


===Attribute Name and Description Table===
<PRE>
<PRE>
Attribute Name and Description Table
Attr Name Attribute Define Description of Attribute
Attr Name Attribute Define Description of Attribute
alnum CT_ALNUM Alphabetic and numeric characters
alnum CT_ALNUM Alphabetic and numeric characters
Line 99: Line 99:
#whitespace C2_WHITESPACE Whitespace
#whitespace C2_WHITESPACE Whitespace
</PRE>
</PRE>


==Example==
==Example==

Revision as of 19:37, 26 July 2017

UniQueryAttr returns the value associated with the attribute name supplied by the user.

Syntax

ULONG UniQueryAttr (UniChar *attrName)

Parameters

attrName (UniChar *)
The name of a character attribute.

Returns

Return value (ULONG)

If the attribute name is known, the function returns the attribute value. Otherwise, 0 is returned.

Remarks

This function provides the numeric value for the standard attributes such as alpha, graph, and number. In addition, this function provides the numeric value for other attributes such as hiragana, diacritic, halfwidth etc. The table below contains the valid attribute names. Valid names are all in lower case.

Attributes whose names begin with a lower-case letter may be ORed together. Attribute names that have a leading _ or # character represent classes of characters; these attributes must be tested as individual attributes.

Symbolic names beginning with "C1_" are provided as aliases for several POSIX attributes for Win32 compatibility.

Attribute Name and Description Table

Attr Name 	Attribute Define 	Description of Attribute
alnum 	CT_ALNUM 	Alphabetic and numeric characters
alpha 	CT_ALPHA
C1_ALPHA 	Letters and linguistic marks
ascii 	CT_ASCII 	Standard ASCII character
blank 	CT_BLANK
C1_BLANK 	Space and Tab
cntrl 	CT_CNTRL
C1_CNTRL 	Control and format characters
diacritic 	C3_DIACRITIC 	Diacritic
digit 	CT_DIGIT
C1_DIGIT 	Digits 0 through 9
fullwidth 	C3_FULLWIDTH 	Full width variant
graph 	CT_GRAPH 	All except controls and space
halfwidth 	C3_HALFWIDTH 	Half width variant
hiragana 	C3_HIRAGANA 	Hiragana character
ideograph 	C3_IDEOGRAPH 	Kanji/Han character
kashida 	C3_KASHIDA 	Arabic tatweel (used to stretch characters)
katakana 	C3_KATAKANA 	Katakana character
lower 	CT_LOWER
C1_LOWER 	Lower case alphabetic character
nonspacing 	C3_NONSPACING 	Non-spacing mark
nsdiacritic 	C3_NSDIACRITIC 	Non-spacing diacritic
nsvowel 	C3_NSVOWEL 	Non-spacing vowel
number 	CT_NUMBER 	Integers between 0 and 9
print 	CT_PRINT 	Everything except control characters
punct 	CT_PUNCT
C1_PUNCT 	Punctuation marks
space 	CT_SPACE
C1_SPACE 	Whitespace and line ends
symbol 	CT_SYMBOL 	Symbol
upper 	CT_UPPER
C1_UPPER 	Upper case alphabetic character
vowelmark 	C3_VOWELMARK 	Vowel mark
xdigit 	CT_XDIGIT
C1_XDIGIT 	Hexadecimal digits (0-9, a-f or A-F)
_apl 	CHS_APL 	APL character
_arabic 	CHS_ARABIC 	Arabic character
_arrow 	CHS_ARROW 	Arrow character
_bengali 	CHS_BENGALI 	Bengali character
_bopomofo 	CHS_BOPOMOFO 	Bopomofo character
_box 	CHS_BOX 	Box or line drawing character
_currency 	CHS_CURRENCY 	Currency Symbol
_cyrillic 	CHS_CYRILLIC 	Cyrillic character
_dash 	CHS_DASH 	Dash character
_devanagari 	CHS_DEVANAGARI 	Devanagari character
_dingbat 	CHS_DINGBAT 	Dingbat
_fraction 	CHS_FRACTION 	Fraction value
_greek 	CHS_GREEK 	Greek character
_gujarati 	CHS_GUJARATI 	Gujarati character
_gurmukhi 	CHS_GURMUKHI 	Gurmukhi character
_hanguel 	CHS_HANGUEL 	Hanguel character
_hebrew 	CHS_HEBREW 	Hebrew character
_hiragana 	CHS_HIRAGANA 	Hiragana character set
_katakana 	CHS_KATAKANA 	Katakana character set
_lao 	CHS_LAO 	Laotian character
_latin 	CHS_LATIN 	Latin character
_linesep 	CHS_LINESEP 	Line separator
_math 	CHS_MATH 	Math symbol
_punctstart 	CHS_PUNCTSTART 	Punctuation start
_punctend 	CHS_PUNCTEND 	Punctuation end
_tamil 	CHS_TAMIL 	Tamil character
_telegu 	CHS_TELEGU 	Telegu character
_thai 	CHS_THAI 	Thai character
_userdef 	CHS_USERDEF 	User defined character
#arabicnum 	C2_ARABICNUMBER 	Arabic numbers
#blocksep 	C2_BLOCKSEPARATOR 	Block separator
#commonsep 	C2_COMMONSEPARATOR 	Common separator
#euronum 	C2_EUROPENUMBER 	European number
#eurosep 	C2_EUROPESEPARATOR 	European separator
#euroterm 	C2_EUROPETERMINATOR 	European terminator
#left 	C2_LEFTTORIGHT 	Left to right text orientation
#mirrored 	C2_MIRRORED 	Symmetrical text orientation
#neutral 	C2_OTHERNEUTRAL 	Other neutral
#right 	C2_RIGHTTOLEFT 	Right to left text orientation
#whitespace 	C2_WHITESPACE 	Whitespace

Example

This example shows how to query character attribute values using the character attributes.

#include <stdio.h>
#include <unidef.h>

int main(void) {

    char    name[33];
    UniChar uname[33];
    UniChar * up;
    char    * cp;
    ulong   rc;

    /* Ask the user for an attribute name */
    printf("Enter attribute name:");
    scanf("%s", &name);
    if (strlen(name) > 32)
      return 1;

    /* Convert name to unicode */
    cp = name;
    up = uname;
    while (*cp) {
      *up++ = (UniChar)(*cp++);
    }
    *up = 0;

    /* Query the attribute and print the value */
    rc = UniQueryAttr(tolower(uname));
    if (rc == 0) {
       printf("UniQueryAttr error: return code = %u\n", rc);
       return 1;
    } else
       printf("%s attribute = %x\n", name, rc);

    return ULS_SUCCESS;
} 

Format

#include <unidef.h>

ULONG UniQueryAttr (
    UniChar *attrName    /* I  - Attribute name */
)


Related Functions