lwres_getrrsetbyname, lwres_freerrset — retrieve DNS records
#include <lwres/netdb.h>
int
lwres_getrrsetbyname( |
const char * | hostname, |
| unsigned int | rdclass, | |
| unsigned int | rdtype, | |
| unsigned int | flags, | |
| struct rrsetinfo ** |
res) ; |
void
lwres_freerrset( |
struct rrsetinfo * |
rrset) ; |
The following structures are used:
struct rdatainfo { unsigned int rdi_length; /* length of data */ unsigned char *rdi_data; /* record data */ };
struct rrsetinfo { unsigned int rri_flags; /* RRSET_VALIDATED... */ unsigned int rri_rdclass; /* class number */ unsigned int rri_rdtype; /* RR type number */ unsigned int rri_ttl; /* time to live */ unsigned int rri_nrdatas; /* size of rdatas array */ unsigned int rri_nsigs; /* size of sigs array */ char *rri_name; /* canonical name */ struct rdatainfo *rri_rdatas; /* individual records */ struct rdatainfo *rri_sigs; /* individual signatures */ };
lwres_getrrsetbyname()
gets a set of resource records associated with a
hostname
, class
,
and type
.
hostname
is a pointer a to
null-terminated string. The flags
field
is currently unused and must be zero.
After a successful call to
lwres_getrrsetbyname()
,
*res
is a pointer to an
rrsetinfo structure, containing a list of one or
more rdatainfo structures containing resource
records and potentially another list of rdatainfo
structures containing SIG resource records associated with those
records. The members rri_rdclass
and
rri_rdtype
are copied from the parameters.
rri_ttl
and rri_name
are properties of the obtained rrset. The resource records
contained in rri_rdatas
and
rri_sigs
are in uncompressed DNS wire
format. Properties of the rdataset are represented in the
rri_flags
bitfield. If the RRSET_VALIDATED
bit is set, the data has been DNSSEC validated and the
signatures verified.
All of the information returned by
lwres_getrrsetbyname()
is dynamically
allocated: the rrsetinfo
and
rdatainfo
structures, and the canonical
host name strings pointed to by the
rrsetinfo
structure.
Memory allocated for the dynamically allocated structures
created by a successful call to
lwres_getrrsetbyname()
is released by
lwres_freerrset()
.
rrset
is a pointer to a struct
rrset created by a call to
lwres_getrrsetbyname()
.
lwres_getrrsetbyname()
returns zero on success, and one of the following error codes if
an error occurred:
ERRSET_NONAME
the name does not exist
ERRSET_NODATA
the name exists, but does not have data of the desired type
ERRSET_NOMEMORY
memory could not be allocated
ERRSET_INVAL
a parameter is invalid
ERRSET_FAIL
other failure


FYS 187-4 - Games and Computation
Fall 2016
Course Information
Course Information Page
Syllabus
Guide to FYS 187-4 Success
Homework Assignments
Readings
Moodle
Homework #1
(due Friday, 9/2 at midnight)
Homework #2
(due Thursday, 9/8 at the beginning of class)
Homework #3
(due Thursday, 9/15 at the beginning of class)
Homework #4
(due Thursday, 9/22 at the beginning of class)
Homework #5
(due Thursday, 9/29 at the beginning of class)
Homework #6
(due Thursday, 10/6 at the beginning of class)
Homework #7
(due Tuesday, 10/25 at the beginning of class) Note change of HW rhythm after Reading Days.
Homework #8
(due Tuesday, 11/1 at the beginning of class)
Homework #9
(due Tuesday, 11/8 at the beginning of class)
Homework #10
(due Tuesday, 11/15 at the beginning of class)
Homework #11
(due Tuesday, 11/22 at the beginning of class)
Homework #12
(due Thursday, 12/1 at the beginning of class) Note return to Thursday HW rhythm after Thanksgiving.
Homework #13
(due Thursday, 12/8 at the beginning of class)
4th Hour Project: Collaborative Game Book Writing
(various odd-numbered class due dates, alternating with homework due dates)
Online Resources
FYS 187-4 handouts:
Why Games?
Overview of Three Game Types
Towers of Hanoi Puzzle
Lecture Examples
Java Package Documentation
CS111 Summary
,
printf quick reference
"Hello, world!" Eclipse walkthrough
Levels of Java
Getting Eclipse on your own computer
Expected lifetime earnings based on terminal degree and field
Computing careers market data


Phillip Crelgow
Front-end Ninja
Featured Work
Orlando City Run
Link to project
Portfolio
Link to project
TIY-Mashup
Link to project


| DOSE: |
20 mg |
oral |
2C-I |
(pill / tablet) |
I had some good friends who hooked me up w/ the 10 mg 2ci 'i' tabs. I took two of these @ around 1 am at a party. I also took a vitamin supplement 'E' kit, throughout the experience (pre and post) which I highly recommend.
The pattern of the trip pretty much followed what has been written before.. Alerts etc. I found some things unsettling which I will get into shortly.
I have had training as a Shaman and Psychic practioner and have been doing so for 28 years. What this means is I can see energy and do the usual clarivoyant things across space and time without using sacred medicines. This report is more about the post trip than the trip.
While ayahuasca, psilocybin, 2-ct's and MDMA all enhance and extend the psychic range and perception, I found just the opposite w/ 2CI. The psychic functions in the 3rd eye were completely blocked by this compound. Not only that, but the control of the visual internal spaces was random, so my internal imagery was not amiable to direction or awareness during the experience. Random energies and visual flashes just came up and then dissolved.
I had great emotional insight into some of my personal processes. This compound definately stirs the emotional realm and allows insight into deeper issues. One of which for me, was processing the toxin's release from the 28 pounds I had lost via Atkins style diet in the last two months. I had been negligent about clearing the body toxins, and not balancing my spiritual and worldly domains, and it was here to tell me about it. I also had some insight into current life, relationship and financial issues. That was very positive. However, I felt very frustrated that I could not extend my sensorial net to the other realms and utilize this compound for knowledge beyond what was present in myself. The trip stayed focused on me.
I came down about 8 hours later and drove home. Crashed for 6 hours and was up and hanging with friends. I found myself in a nice mellow mood. The sense of well being from the compound flowed on for the next 3 days. What was extremely disconcerting was the fact that the psychic capabilities were still offline! I felt as though I had a block across the forehead that could not be penetrated, hence, nothing was appearing on the internal screens. This was most disconcerting as it extended from the Saturday night experience to the following Thursday. Perhaps this is an artifact of the heavy molecular weight Iodine present in the compound. This does NOT happen with 2-CB for example.
I finally ended up doing some exercises and moving energy through the frontal lobe sludge and have come back up to about 40% of my normal capacity. At D+5 I am still not fully back on line. What I notice that was nice, is that this compound also blocks the introspective excessive analysis that occurs in the frontal lobes associated with depression. I found myself in a very happy, up, clear space. Very joyful and emotionally clear. The only downside is that my skills were suppressed.
I imagine that if anyone is taking anti-depressants, or has issues with schizy behavior while tripping, this compound could be very useful. It may even presage a new class of anti-depressants.
However, if you are into Shamanistic or Psychic practices, or use such skills for medical or healing work, be prepared for about a week of having that faculty off-line. If your psychic capabilities are not developed or activated yet, I imagine it won't be much of an issue with you.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Dgame.Audio.Sound
- struct Sound;
- Sound represents the functionality to load and play sound files.
Note:
Sound is designed to load and play short music files, e.g. sounds for some noises.
If you want to play larger music, use Music.
Note:
Each Sound is played in his own channel, which means, that the number of simultaneously existing Sounds is limited to 256.
This limit will be increased if necessary.
Supported formats are .wav, .mp3, .vorbis, .ogg, .midi
Author:
Randy Schuett<EMAIL_ADDRESS>- nothrow @nogc this(string filename, ubyte volume = 128);
- CTor
- const pure nothrow @nogc ushort getChannel();
- Returns the current channel in which this Sound plays. Should be in range of 1 .. 256
- nothrow @nogc bool loadFromFile(string filename);
- Load the sound file (filename).
Returns if the loading was successful.
If not, an error message is showed which describes what the problem is.
- nothrow @nogc ubyte setVolume(ubyte volume);
- Set the volume, max. is 128, min. is 0
If the value is above 128, the max. will be assumed.
Returns the previous volume.
- nothrow @nogc ubyte getVolume();
- Returns the current volume.
- nothrow @nogc bool play(byte loops = 1, short delay = -1);
- Plays the sound.
loops describe how often the sound shall be played.
A value of -1 indicated, that the sound plays forever,
a value of 0 means, that the sound plays zero times.
delay is the time in ms to fade in.
Any previous sound will be halted.
- const nothrow @nogc void resume();
- Resume the sound playback
See:
pause
See:
stop
- const nothrow @nogc void stop();
- Stop/Halt the sound playback
See:
resume
- const nothrow @nogc void pause();
- Pause the sound playback
See:
resume
- const nothrow @nogc void expire(ushort ms);
- Stop sound playback after ms milliseconds.
- const nothrow @nogc bool isPlaying();
- Returns if the sound is currently playing
- const nothrow @nogc bool isPaused();
- Returns if the sound is currently paused
Page generated by Ddoc.


Property Pro Lite
Property Listings
My Properties
Property Name
Property Type
Price
State
City
Address
Property Images
Save


Members
-
<static, constant> varCOLLAPSED -
Used when adding or moving a panel to designate the target location as collapsed.
Must be used with docking positions LEFT, RIGHT, or BOTTOM only.Type:
- String
-
<static, constant> varDOCK -
Enumerated Docking positions.
- Version:
-
- 3.0.0
- Source:
Properties:
Name Type Default Description MODAL
String "modal" A floating panel that blocks input until closed FLOAT
String "float" A floating panel TOP
String "top" Docks to the top of a target or window LEFT
String "left" Docks to the left of a target or window RIGHT
String "right" Docks to the right of a target or window BOTTOM
String "bottom" Docks to the bottom of a target or window STACKED
String "stacked" Docks as another tabbed item along with the target -
<static, constant> varEVENT -
Enumerated Internal events
- Version:
-
- 3.0.0
- Source:
Properties:
Name Type Default Description INIT
String "panelInit" When the panel is initialized LOADED
String "dockerLoaded" When all panels have finished loading UPDATED
String "panelUpdated" When the panel is updated VISIBILITY_CHANGED
String "panelVisibilityChanged" When the panel has changed its visibility
This event is called with the current visibility state as the first parameterBEGIN_DOCK
String "panelBeginDock" When the user begins moving any panel from its current docked position END_DOCK
String "panelEndDock" When the user finishes moving or docking a panel GAIN_FOCUS
String "panelGainFocus" When the user brings any panel within a tabbed frame into focus LOST_FOCUS
String "panelLostFocus" When the user leaves focus on any panel within a tabbed frame CLOSING
String "panelClosing" When the panel is about to be closed, but before it closes. If any event handler returns a falsey value, the close action will be canceled. CLOSED
String "panelClosed" When the panel is being closed PERSISTENT_CLOSED
String "panelPersistentClosed" When a persistent panel is being hidden PERSISTENT_OPENED
String "panelPersistentOpened" When a persistent panel is being shown BUTTON
String "panelButton" When a custom button is clicked, See wcPanel.addButton ATTACHED
String "panelAttached" When the panel has moved from floating to a docked position DETACHED
String "panelDetached" When the panel has moved from a docked position to floating MOVE_STARTED
String "panelMoveStarted" When the user has started moving the panel (top-left coordinates changed)
This event is called with an object of the current {x, y} position as the first parameterMOVE_ENDED
String "panelMoveEnded" When the user has finished moving the panel
This event is called with an object of the current {x, y} position as the first parameterMOVED
String "panelMoved" When the top-left coordinates of the panel has changed
This event is called with an object of the current {x, y} position as the first parameterRESIZE_STARTED
String "panelResizeStarted" When the user has started resizing the panel (width or height changed)
This event is called with an object of the current {width, height} size as the first parameterRESIZE_ENDED
String "panelResizeEnded" When the user has finished resizing the panel
This event is called with an object of the current {width, height} size as the first parameterRESIZED
String "panelResized" When the panels width or height has changed
This event is called with an object of the current {width, height} size as the first parameterORDER_CHANGED
String "panelOrderChanged" This only happens with floating windows when the order of the windows have changed. SCROLLED
String "panelScrolled" When the contents of the panel has been scrolled SAVE_LAYOUT
String "layoutSave" When the layout is being saved, See wcDocker.save RESTORE_LAYOUT
String "layoutRestore" When the layout is being restored, See wcDocker.restore CUSTOM_TAB_CHANGED
String "customTabChanged" When the current tab on a custom tab widget associated with this panel has changed, See module:wcTabFrame CUSTOM_TAB_CLOSED
String "customTabClosed" When a tab has been closed on a custom tab widget associated with this panel, See module:wcTabFrame -
<static, constant> varLAYOUT -
Enumerated Layout wcDocker.
- Version:
-
- 3.0.0
- Source:
Properties:
Name Type Default Description SIMPLE
String "wcLayoutSimple" Contains a single div item without management using a module:wcLayoutSimple, it is up to you to populate it however you wish. TABLE
String "wcLayoutTable" Manages a table grid layout using module:wcLayoutTable, this is the default layout used if none is specified. -
<static, constant> varORIENTATION -
Used for the splitter bar orientation.
-
<static, constant> varTAB -
Used to determine the position of tabbed widgets for stacked panels.
Note: Not supported on IE8 or below.- Version:
-
- 3.0.0
- Source:
Properties:
Name Type Default Description TOP
String "top" The default, puts tabs at the top of the frame LEFT
String "left" Puts tabs on the left side of the frame RIGHT
String "right" Puts tabs on the right side of the frame BOTTOM
String "bottom" Puts tabs on the bottom of the frame
Methods
-
<static> functionconstructor(container [, options]) -
Parameters:
Name Type Argument Description container
external:jQuery~selector | external:jQuery~Object | external:domNode A container element to store the contents of wcDocker. options
module:wcDocker~Options <optional>
Options for constructing the instance. -
function addPanel(typeName, location [, targetPanel] [, options]) -> module:wcPanel | Boolean -
Add a new docked panel to the docker instance.
Note: It is best to use wcDocker.COLLAPSED after you have added your other docked panels, as it may ensure proper placement.Parameters:
Name Type Argument Description typeName
String The name identifier of the panel to create. location
module:wcDocker.DOCK The docking location to place this panel. targetPanel
module:wcPanel | module:wcDocker.COLLAPSED <optional>
A target panel to dock relative to, or use wcDocker.COLLAPSED to collapse it to the side or bottom. options
module:wcDocker~PanelOptions <optional>
Other options for panel placement. Returns:
- The newly created panel object, or false if no panel was created.- Type
- module:wcPanel | Boolean
-
function basicMenu(selector, itemListOrBuildFunc, includeDefault) -
Assigns a basic context menu to a selector element. The context Menu is a simple list of options, no nesting or special options.
If you wish to use a more complex context menu, you can use jQuery.contextMenu directly.Parameters:
Name Type Description selector
external:jQuery~selector A selector string that designates the elements who use this menu. itemListOrBuildFunc
Array.<external:jQuery#contextMenu~item> | function An array with each context menu item in it, or a function to call that returns one. includeDefault
Boolean If true, all default menu options will be included. -
function bypassMenu() -
Bypasses the next context menu event. Use this during a mouse up event in which you do not want the context menu to appear when it normally would have.
-
function clear() -
Clears all contents from the docker instance.
-
function findPanels( [typeName]) -> Array.<module:wcPanel> -
Finds all instances of a given panel type.
Parameters:
Name Type Argument Description typeName
String <optional>
The name identifier for the panel. If not supplied, all panels are retrieved. Returns:
- A list of all panels found of the given type.- Type
- Array.<module:wcPanel>
-
function finishLoading( [fadeDuration]) -
Hides the loading screen.
Parameters:
Name Type Argument Default Description fadeDuration
Number <optional>
0 The fade out duration for the loading screen. -
function isCollapseEnabled() -> Boolean -
Retrieves whether panel collapsers are enabled.
Returns:
- Collapsers are enabled.- Type
- Boolean
-
function menu(selector, itemListOrBuildFunc, includeDefault) -
Assigns a basic context menu to a selector element. The context Menu is a simple list of options, no nesting or special options.
If you wish to use a more complex context menu, you can use jQuery.contextMenu directly.Parameters:
Name Type Description selector
external:jQuery~selector A selector string that designates the elements who use this menu. itemListOrBuildFunc
Array.<external:jQuery#contextMenu~item> | function An array with each context menu item in it, or a function to call that returns one. includeDefault
Boolean If true, all default menu options will be included. -
function movePanel(panel, location [, targetPanel] [, options]) -> module:wcPanel | Boolean -
Moves a docking panel from its current location to another.
Parameters:
Name Type Argument Description panel
module:wcPanel The panel to move. location
module:wcDocker.DOCK The new docking location of the panel. targetPanel
module:wcPanel | wcDocker.COLLAPSED <optional>
A target panel to dock relative to, or use wcDocker.COLLAPSED to collapse it to the side or bottom. options
module:wcDocker~PanelOptions <optional>
Other options for panel placement. Returns:
- The panel that was created, or false on failure.- Type
- module:wcPanel | Boolean
-
function off(eventType [, handler]) -
Unregisters a global event.
Parameters:
Name Type Argument Description eventType
module:wcDocker.EVENT The event type, can be a custom event string or a predefined event. handler
module:wcDocker~event:onEvent <optional>
The handler function registered with the event. If omitted, all events registered to the event type are unregistered. -
function on(eventType, handler) -> Boolean -
Registers a global event.
Parameters:
Name Type Description eventType
module:wcDocker.EVENT The event type, can be a custom event string or a predefined event. handler
module:wcDocker~event:onEvent A handler function to be called for the event. Returns:
Success or failure that the event has been registered.- Type
- Boolean
-
function panelTypeInfo(typeName) -> module:wcDocker~registerOptions -
Retrieves the options data associated with a given panel type when it was registered.
Parameters:
Name Type Description typeName
String The name identifier of the panel. Returns:
- Registered options of the panel type, or false if the panel was not found. -
function panelTypes(includePrivate) -> Array.<String> -
Retrieves a list of all currently registered panel types.
Parameters:
Name Type Description includePrivate
Boolean If true, panels registered as private will also be included with this list. Returns:
- A list of panel type names.- Type
- Array.<String>
-
function registerPanelType(name, options [, isPrivate]) -> Boolean -
Registers a new docking panel type to be used later.
Parameters:
Name Type Argument Description name
String The name identifier for the new panel type. options
module:wcDocker~registerOptions An options object for describing the panel type. isPrivate
Boolean <optional>
DEPRECATED: Use options.isPrivate instead. Returns:
- Success or failure. Failure usually indicates the type name already exists.- Type
- Boolean
-
function removePanel(panel, dontDestroy) -> Boolean -
Removes a docked panel from the window.
Parameters:
Name Type Description panel
module:wcPanel The panel to remove. dontDestroy
Boolean If true, the panel itself will not be destroyed. Returns:
- Success or failure.- Type
- Boolean
-
function restore(dataString) -
Restores a previously saved configuration.
Parameters:
Name Type Description dataString
String A previously saved serialized string, See wcDocker.save. -
function save() -> String -
Saves the current panel configuration into a serialized string that can be used later to restore it.
Returns:
- A serialized string that describes the current panel configuration.- Type
- String
-
function startLoading( [label] [, opacity] [, textOpacity]) -
Shows the loading screen.
Parameters:
Name Type Argument Default Description label
String <optional>
An optional label to display. opacity
Number <optional>
0.4 If supplied, assigns a custom opacity value to the loading screen. textOpacity
Number <optional>
1 If supplied, assigns a custom opacity value to the loading icon and text displayed. -
function theme(themeName) -> String -
Gets, or Sets the current theme used by docker.
Parameters:
Name Type Description themeName
String If supplied, will activate a theme with the given name. Returns:
- The currently active theme.- Type
- String
-
function themePath(path) -> String -
Gets, or Sets the path where all theme files can be found. "Themes" is the default folder path.
Parameters:
Name Type Description path
String If supplied, will set the path where all themes can be found. Returns:
- The currently assigned path.- Type
- String
-
function trigger(eventType [, data]) -> Array.<Object> -
Trigger an event on all panels.
Parameters:
Name Type Argument Description eventType
module:wcDocker.EVENT The event type, can be a custom event string or a predefined event. data
Object <optional>
A custom data object to be passed along with the event. Fires:
- wcDocker~event:onEvent
Returns:
results - Returns an array with all results returned by event handlers.- Type
- Array.<Object>
Type Definitions
-
typedef var Anchor -
Anchor data.
Type:
- Object
- Source:
Properties:
Name Type Argument Description self
Boolean Whether the anchor is hovering over the moving panel. loc
module:wcDocker.DOCK The location of the anchor on the panel. item
module:wcLayout The panel layout being hovered over. tab
module:wcDocker.TAB The tab location. x
Number <optional>
X coordinate of the anchor. y
Number <optional>
Y coordinate of the anchor. w
Number <optional>
Width of the anchor. h
Number <optional>
Height of the anchor. -
typedef var AnchorRect -
A rectangle structure.
Type:
- Object
- Source:
Properties:
Name Type Argument Description x
Number | String <optional>
X coordinate of the rectangle. Can be a pixel position, or a string with a 'px' or '%' suffix. y
Number | String <optional>
Y coordinate of the rectangle. Can be a pixel position, or a string with a 'px' or '%' suffix. w
Number | String <optional>
Width of the rectangle. Can be a pixel position, or a string with a 'px' or '%' suffix. h
Number | String <optional>
Height of the rectangle. Can be a pixel position, or a string with a 'px' or '%' suffix. tabOrientation
module:wcDocker.TAB <optional>
Desired orientation of tab widgets. -
typedef var Bounds -
A bounding structure
Type:
- Object
- Source:
Properties:
Name Type Description top
Number The upper, or top bound (percentage value between 0 and 1). bottom
Number The lower, or bottom bound (percentage value between 0 and 1). left
Number The left bound (percentage value between 0 and 1). right
Number The right bound (percentage value between 0 and 1). -
typedef var Coordinate -
A coordinate structure.
Type:
- Object
- Source:
Properties:
Name Type Description x
Number X coordinate. y
Number Y coordinate. -
typedef var FitContents -
Determines whether the container should fit the size of its contents instead of scroll for each axis.
Type:
- Object
- Source:
Properties:
Name Type Description x
Boolean Whether scrolling is enabled in the horizontal direction. y
Boolean Whether scrolling is enabled in the vertical direction. -
typedef function onCreatePanel(panel [, options]) -
A function or an object constructor for the panel. This function is called using the 'new' operator.
Parameters:
Name Type Argument Description panel
module:wcPanel The panel being constructed. options
module:wcPanel~options <optional>
An options object passed in from wcDocker.registerPanelType()'s options.options parameter. - Source:
-
typedef var Options -
Options for a docker instance.
Type:
- Object
- Source:
Properties:
Name Type Argument Default Description themePath
String <optional>
'Themes' A folder path where all docker theme files can be found. theme
String <optional>
'default' The active docker theme. loadingClass
String <optional>
'fa fa-spinner fa-pulse' Any class name to use for the loading screen icon. allowContextMenu
Boolean <optional>
true Overrides the default right click menu with ones that interact with docker. hideOnResize
Boolean <optional>
false If true, panels will hide their contents as they are being resized. allowCollapse
Boolean <optional>
true Allows users to collapse panels to the sides of the docker view. responseRate
Number <optional>
10 This determines how often updates are performed (in milliseconds). moveStartDelay
Number <optional>
300 The time delay (in milliseconds) before a panel drag operation will start. edgeAnchorSize
Number | String <optional>
50 Determines the size of the anchor points when docking a panel to the outer edge of the window. Can be a pixel value, or a string with a 'px' or '%' suffix. panelAnchorSize
Number | String <optional>
'15%' Determines the size of the anchor points when docking a panel along the side of another panel. Can be a pixel value, or a string with a 'px' or '%' suffix. detachToWidth
Number | String <optional>
600 Determines the new width when a panel is detached (0 = Don't change). Can be a pixel value, or a string with a 'px' or '%' suffix. detachToHeight
Number | String <optional>
400 Determines the new height when a panel is detached (0 = Don't change). Can be a pixel value, or a string with a 'px' or '%' suffix. wcPanelClass
Object <optional>
Defines a class object to use in replacement of the default wcPanel object. wcGhostClass
Object <optional>
Defines a class object to use in replacement of the default wcGhost object. wcSplitterClass
Object <optional>
Defines a class object to use in replacement of the default wcSplitter object. wcFrameClass
Object <optional>
Defines a class object to use in replacement of the default wcFrame object. wcCollapserClass
Object <optional>
Defines a class object to use in replacement of the default wcCollapser object. wcLayoutSimpleClass
Object <optional>
Defines a class object to use in replacement of the default wcLayoutSimple object. wcLayoutTableClass
Object <optional>
Defines a class object to use in replacement of the default wcLayoutTable object. wcDrawerClass
Object <optional>
Defines a class object to use in replacement of the default wcDrawer object. wcTabFrameClass
Object <optional>
Defines a class object to use in replacement of the default wcTabFrame object. -
typedef var PanelOptions -
Options for adding a new panel.
Type:
- Object
- Source:
Properties:
Name Type Argument Description x
Number | String <optional>
X coordinate of the panel center (if floating). Can be a pixel position, or a string with a 'px' or '%' suffix. y
Number | String <optional>
Y coordinate of the panel center (if floating). Can be a pixel position, or a string with a 'px' or '%' suffix. w
Number | String <optional>
Desired width of the panel. Can be a pixel position, or a string with a 'px' or '%' suffix. h
Number | String <optional>
Desired height of the panel. Can be a pixel position, or a string with a 'px' or '%' suffix. tabOrientation
module:wcDocker.TAB <optional>
Desired position of tab widgets when using wcDocker.DOCK.STACKED. Not supported on IE8 or below. -
typedef var Rect -
A rectangle structure.
Type:
- Object
- Source:
Properties:
Name Type Argument Description x
Number | String <optional>
X coordinate of the rectangle. Can be a pixel position, or a string with a 'px' or '%' suffix. y
Number | String <optional>
Y coordinate of the rectangle. Can be a pixel position, or a string with a 'px' or '%' suffix. w
Number | String <optional>
Width of the rectangle. Can be a pixel position, or a string with a 'px' or '%' suffix. h
Number | String <optional>
Height of the rectangle. Can be a pixel position, or a string with a 'px' or '%' suffix. -
typedef var registerOptions -
Options object for registering new panel types.
- Source:
Properties:
Name Type Argument Default Description onCreate
module:wcDocker~onCreatePanel A function or an object constructor for the panel. layout
module:wcDocker.LAYOUT <optional>
wcDocker.LAYOUT.TABLE If supplied, overrides the default layout used for this panel. icon
String <optional>
A CSS class name to draw an icon in the panels tab widget. faicon
String <optional>
An icon name using the Font-Awesome library. You must download and link to the library first. title
String | Boolean <optional>
Assign a custom name to the panels tab. A false value will hide the tab entirely. isPrivate
Boolean <optional>
If true, the user will not be able to create this panel type. isPersistent
Boolean <optional>
If true, when the user closes this panel, it will only be hidden instead of completely destroyed. When the user creates an instance of this panel, it will first attempt to un-hide an already existing panel before creating a new instance. limit
Number <optional>
Enforces a limited number of this panel type from being created by the user. options
Object <optional>
A custom options object to be passed into the new panel constructor or creation function as the second parameter. -
typedef var Scrollable -
Determines whether the container will allow scroll bars to appear on each axis.
Type:
- Object
- Source:
Properties:
Name Type Description x
Boolean Whether scrolling is enabled in the horizontal direction. y
Boolean Whether scrolling is enabled in the vertical direction. -
typedef var Size -
A 2D size structure.
Type:
- Object
- Source:
Properties:
Name Type Description x
Number Width. y
Number Height.
Events
-
function onEvent -
An event handler callback. Each is registered to a event type using the wcDocker.on() or wcPanel.on() functions.
Type: function
Parameters:
Name Type Argument Description panel
module:wcPanel | NULL The panel invoking the event, or NULL if global. data
Object <optional>
A data object passed by the invoker. - Source:


 Until recently, its most dramatic eruption into public life was in 1969, when James Forman, the former chairman of the Student Nonviolent Coordinating Committee (SNCC), led a protest at New York’s liberal Riverside Church and presented a “Black Manifesto” that demanded, among other things, $500 million in reparations to black Americans from white churches and synagogues. The idea lingered on the periphery of the public agenda for a few years. In 1972, Jesse Jackson’s Operation PUSH and the National Economics Association, a black economists’ group, attempted to reintroduce it around the presidential election in conjunction with a demand for a $900 million “freedom budget.”
For the next two decades, the idea of organizing to demand reparations circulated mainly within politically marginal, nationalist circles. It did not gain much traction even among black activists.
During the last half-dozen years or so, however, the issue has been threatening to come in from the margins. Partly stimulated by the successful pursuit of compensation for Japanese Americans who were interned by the US government during World War II and for victims of Nazi slave labor, talk of a movement to demand reparations for black Americans has been spreading.
I’ve watched this with curiosity and bemusement. I imagined that the reparations talk would evaporate because it seemed so clearly a political dead end. No such luck.
Publication of The Debt: What America Owes to Blacks (E. P. Dutton, 2000) by Randall Robinson, the respected president of TransAfrica, the organization that played a central role in the US movement against apartheid in South Africa, seems to have propelled the reparations issue into the spotlight. Now it seems to be everywhere—in special features on network television, in mainstream publications like Harper’s and the New York Times, and all over the black-oriented media.
How has this happened? And what is its significance? To put it more provocatively, how does a project that seems so obviously a nonstarter in American politics come to capture so much of the public imagination? After all, support for affirmative action has eroded significantly, and reparations raises the ante on compensatory policy exponentially. Why has this idea attained currency now?
Answering these questions requires understanding that the call for reparations blends material, symbolic, and psychological components.
The material component is the most obvious, since the call for reparations responds to the actual harm inflicted on blacks during and after slavery. This component includes direct legacies, such as the federal government’s failure to fulfill the promise of Emancipation by adopting the Radical Republican proposals during Reconstruction that would have expropriated the plantations in the South and divided them among the freed people, thus establishing a black yeomanry of independent stakeholders. It also includes the federal government’s further capitulation to the former slaveholders by accepting their disenfranchisement of black voters later in the nineteenth and early twentieth centuries. As a result, black citizens were removed from effective participation in public life. What followed was the imposition of the white supremacist regime of official political and economic apartheid that reigned in the South for the first two-thirds of the twentieth century.
The indirect material legacy of slavery includes such explicitly discriminatory practices as the Federal Housing Administration’s enforcement of racially exclusionary “restrictive covenants” in its lending policies officially until 1948 and unofficially for some years thereafter. This practice severely disadvantaged black people’s pursuit of home ownership, the principal form of capital accumulation for most Americans.
The effects of unequal education, labor market discrimination, and publicly initiated and supported ghettoization are further indirect material legacies of slavery. We could also include the effects of New Deal compromises with Southern Democrats—largely racially inspired—that excluded most black workers from initial coverage under Social Security and agricultural assistance.
That blacks have been systematically disadvantaged as a result of slavery and its aftermath there can be no doubt. That is the strength of the material case for reparations.
The symbolic component of the reparations campaign seems to center on public acknowledgment of the injustices inflicted on black people historically in this country. On the one hand, this could promote public education about the real history of the United States, although that is a project that does not require the rhetoric of reparations. On the other hand, it fits the Clintonoid tenor of sappy public apologies and maudlin psychobabble about collective pain and healing.
Robinson, for his part, seems fixated on pursuing racial parity in monuments and statuary—perhaps a function of his long years in Washington, DC, and his growing up in Richmond, Virginia, two cities in which the politics of public monuments loom larger than elsewhere. (And how much would you like to bet that that’s as far as the restitution would go? Elites will always prefer symbolic gestures to material ones: “Let’s see, should we give them college tuition and affordable housing or a heartfelt apology and a few monuments and plaques? Hmmm, which will it be, which will it be?”)
The psychological component, though, is most revealing of the dubious politics that undergirds this movement. The demand for reparations is held to be important as a means of raising consciousness among black people, whether or not it can be won. But consciousness of what? Among more populist or radical adherents, this view rests on the premise—a vestige of the nationalist/anti-imperialist radicalism that evolved from Black Power—that mobilizing black people to fight for a better world requires first rectifying their understanding of who they are and where they come from in order to build on the principle of racial solidarity. Of course, cultivation of a general understanding of history is useful, perhaps necessary, for developing and sustaining an insurgent politics, and it’s a good thing in its own right. However, it’s more than questionable that people must—or even will—mobilize around earlier generations’ grievances to pursue current objectives.
The deeper appeal of reparations talk for its proponents is to create or stress a sense of racial peoplehood as the primary basis for political identity. This movement’s psychological project is grounded on two beliefs: first, that rank-and-file black people suffer from an improper or defective sense of identity, and second, that an important task of political action is to restore or correct racial consciousness that the legacy of slavery is supposed to have distorted or destroyed.
Among some strains of cultural nationalists, this view unabashedly reproduces the old “damage thesis,” which was criticized by historian Daryl Michael Scott in his book Contempt and Pity: Social Policy and the Image of the Damaged Black Psyche, 1880–1996 (University of North Carolina, 1997). According to this thesis, slavery and its aftermath left black Americans without cultural moorings and therefore especially vulnerable to various social pathologies. This notion has been the foundation of academic and journalistic slanders of black poor and working people. It was famously perpetrated by Daniel Patrick Moynihan in his scurrilous 1965 report, “The Negro Family: A Case for National Action,” and it underlies contemporary notions of a self-destructive black urban underclass.
Randall Robinson’s argument for pursuit of reparations hinges on this view of the black American population—lucky petit bourgeois people like himself excepted, of course—as defective and in need of moral and psychological repair. The idea resonates with middle-class noblesse oblige and a commitment to a racial politics that ensconces a particular guiding role for upper class blacks. Those are, after all, the people who can conduct the finely calibrated analyses that determine what forms and magnitude just compensation should take; they are the people who would stand to administer whatever compromise palliatives are likely to ensue from this activity.
But the question of compensation opens a plethora of technical problems. Should payments go to individuals or to some presumably representative corporate entity? If the former, who qualifies as a recipient? Would descendants of people who had been enslaved elsewhere (for instance, Brazil or the Caribbean) be eligible?
As a friend of mine has suggested, these issues could produce a lively trade for genealogists, DNA testers, and other such quacks, and already some seem to be rising to the opportunity. These ambiguities, moreover, expose the faultiness of comparisons to payments to victims of Japanese internment and Nazi slave labor camps, who were identifiable individuals whose experience of the ultimate injustice was direct.
If the recipient is to be some corporate entity, as Robinson and others suggest, how can its representativeness and accountability be determined? If the body is a development fund, who would control it and how would the decision be made? Robinson has suggested that philanthropic agencies be the grantees, but which ones and to whom would they be accountable? This talk—as is standard in contemporary black politics—presumes a coherent, knowable black agenda that can be determined outside of democratic, participatory processes among those in whose names decisions are to be made and resources allocated.
What strikes me as most incomprehensible about the reparations movement is its complete disregard for the simplest, most mundanely pragmatic question about any political mobilization: How can we imagine building a political force that would enable us to prevail on this issue?
But the question ultimately does not arise because reparations talk is rooted in a different kind of politics, a politics of elite-brokerage and entreaty to the ruling class and its official conscience, the philanthropic foundations, for racial side-payments. “Until America’s white ruling class accepts the fact that the book never closes on massive unredressed social wrongs, America can have no future as one people,” Robinson writes. Lest there be any doubt about the limited social vision that makes such an entreaty plausible, he brushes away the deepest foundations of American inequality: “Lamentably, there will always be poverty.” His beef is that black Americans are statistically overrepresented at the bottom. This is a protest politics that depends on the good will of those who hold power. By definition, it is not equipped to challenge existing relations of power and distribution other than marginally, with token gestures.
There’s a more insidious dynamic at work in this politics as well, which helps us understand why the reparations idea suddenly has spread so widely through mainstream political discourse. We are in one of those rare moments in American history—like the 1880s and 1890s and the Great Depression—when common circumstances of economic and social insecurity have strengthened the potential for building broad solidarity across race, gender, and other identities around shared concerns of daily life. These are concerns that only the minority of comfortable and well-off can dismiss in favor of monuments and apologies and a politics of psychobabble—concerns like access to quality health care, the right to a decent and dignified livelihood, affordable housing, quality education for all. They can be pursued effectively only by struggling to unite a wide section of the American population that is denied those essential social benefits or lives in fear of losing them. Isn’t it interesting that at such a moment the corporate-dominated, opinion-shaping media discover and project a demand for racially defined reparations that cuts precisely against building such solidarity?
 To some extent, I suspect their involvement stems from an old reflex of attempting to locate a progressive kernel in the nationalist sensibility. It certainly is an expression of a generally admirable commitment to go where people seem to be moving.
But we must ask: Where can this motion go?


Shop
Glasses and Headsets
Games
Featured Items
About
Terms of Service
General Information
Full Name
Email
#
Phone Number
What item are you reviewing?


HOG[SCAN] Wishlist
"Spiders are the only web developers happy to find bugs"
In no particular order, here are defects and enhancements from webmasters using HOG[SCAN]
Defect - the software isn't working the way it says it will
Enhancement - the software isn't working the way the customer wants
Defects
- Unable to download/view the Chapter Charter or Chapter Handbook when clicking the respective links.
- This issue was fixed on 27 Jul 2023 though some older websites may still have the problem.
- Click this link to see if it's an issue with your website and if so, instructions on how to fix the broken links.
- Navbar dropdown links do not have a hover color for websites using Dark Theme
- When hovering over any of the links in the 'About Us' dropdown the links do not change to the hover color of orange (
#e67e22
). This is because in the stylesheet "style-darko...rwk59v" line 7944 {color: #D3D3D3 !important;}
overrides line 7933 {color: #e67e22 !important}
from the same stylesheet.
- Editor role cannot control access to a Basic page
- The editor role is able to create a basic page. By default, a basic page can be seen by everyone. If the page should only be seen by authenticated users the editor cannot make the change, they do not see the Access Control tab.
- Since the editor role is able to create a basic page they should have the ability to control access to that page.
- The smartphone app exposes member information to Road Captains
- The smartphone app should not expose member's HOG ID or ICE information to Road Captains. The app is the only place where member's private info is exposed to the Road Captain role.
- Fix the GPX mapping feature on the event page
- Seems to have stopped working around the same time the H-D Ride Planner altered how it gens a GPX file
Global token for Chapter Handbook needs to be updated
- closed issue as fixed on 22 Dec 2022. National has updated the link on Chapter Resources, the global token points there.
Mailer link points to an out of date URL
- closed issue as fixed on 26 Dec 2022. National has updated the link on Chapter Resources, the global token points there.
Global token for member release form needs to be updated
- closed issue as fixed on 27 Jan 2023. The link has updated and the user is brought to the HogScan Mailer.
Hidden page has an outdated column
- closed issue as will not fix on 31 Jan 2023. I figured out how to configure the column to show the current year.
Show member mileage for Ride 365
- closed issue as fixed on 2 Feb 2023. Members can see Ride 365 mileage, including running total for the current year, by clicking 'My account' in the navbar
Enhancements
- Upgrade to a better campaign emailer
- Webmasters are aware there will be an improvement in HOG[SCAN] V2.0 with an alternative to Elastic Email
- On the list because it's something everyone is anticipating
- Show Ride Mileage on the event page if the field is non-zero
- Currently the Ride Mileage is not shown in the copy of the event if it's been filled in.
- If the Ride Mileage field for an event has been filled in (i.e. it's not the default of zero) then show the mileage in the event copy. Much like an Event Coordinator is shown when that field has been filled in.
- Give webmasters the ability to sync the sandbox environment with the production environment
- Currently a request has to be made to the Admin in order to have the sandbox environment synced with the production environment.
- It would be better if webmaster's had a button to click that would run the job to sync the sandbox with production so it could be done on-demand.
- Leave user's on the same page when logging out rather than sending them to the home page each time
- Currently when a user logs out they are thrown back to the home page rather than leaving them on the page they were currently viewing.
- When viewing the calendar and logging out, stay on the calendar page. If viewing newsletters, leave them on the default newsletter page that says "You must be logged in to view our Newsletters." In other words, it should manage state.
Report a Defect / Request an Enhancement
Webmasters, is there something you would like to see included in this list? Send me an email and I'll place it here.
Please, be descriptive.
Are you reporting a defect or requesting an enhancement?
For a defect, what do you see versus what should you see?
For an enhancement, what you would like to see that is currently not available?


The account, {{currentBudgetAccount.Label}}, is not sufficient for the order total.
The spending account, {{currentBudgetAccount.Label}}, is not sufficient for the order total.
Please supply additional payment to cover the remaining {{remainingOrderTotal | currency}}balance or remove this account from your payment options.
This additional payment will cover the remaining {{remainingOrderTotal | currency}}or remove this account from your payment options.


A criminal case will get dismissed if it takes too long to bring to trial. The exact time limit varies from case to case but it is usually 18 months for less serious offences and 30 months for more serious offences.
To get a case dismissed for delay you have to show that the delay was caused by the police and not by you. The hardest part of the prosecutor's job before a trial is making sure you have a copy of all the evidence available in the case When they don't, you can create a delay that counts against them by refusing to book a trial date until the evidence is provided.
Some quick examples of evidence to ask for are videos from the police car and the police station. Make sure you have a list of all the officers involved in your case, and make sure you have notes for all the police officers. There are also charge specific things police must provide. For example D.U.I charges have a certificate from the breath tech, as well as the data from the breath testing device.
Although it seems unlikely to do this for 18 months, remember that it sometimes takes a year or even longer to get a trial date. So a few months tacked on could easily get a case dismissed


Gain access to our full library of tutorials along with expert code reviews. Perfect for any developers who are serious about honing their skills.
Tutorials by industry experts Peer & expert code review Coding exercises Access to our GitHub repos Community forum Flashcard decks New videos every week


{# Section: Page Owner<EMAIL_ADDRESS>#} {% import 'box.html' as box %} {% include 'head.html' %}


Roof collapses due to rain in Oman
by Times News ServiceMuscat: The roof of Al Suwaiq fish market in North Al Batinah collapsed in heavy rain, Ministry of Agriculture and Fisheries has confirmed on Thursday.
The confirmation comes after people circulated a post on social media on Wednesday. However, the Ministry has clarified that the fish market is under guarantee of the contractor and will be restored with better specifications. “The Ministry followed up on the fish market in the sea port in Al Suwaiq where only one part of the outer roof was affected without any leakage. The work is back to normal after cleaning and removing the affected parts from the ceiling,” Ministry added.


|
Embedded Artistry Framework
Embedded Systems C++ Framework
|
Translation class which handles nRF GPIO Configuration. More...
#include <gpio_helper.hpp>
Static Public Member Functions | |
| static void | configure_output (uint8_t port, uint8_t pin) noexcept |
| static void | configure_input (uint8_t port, uint8_t pin, uint8_t pull_config) noexcept |
| static void | configure_default (uint8_t port, uint8_t pin) noexcept |
| static void | configure_i2c (uint8_t port, uint8_t pin) noexcept |
| static void | set (uint8_t port, uint8_t pin) noexcept |
| static void | clear (uint8_t port, uint8_t pin) noexcept |
Private Member Functions | |
| nRFGPIOTranslator ()=default | |
| This class can't be instantiated. More... | |
| ~nRFGPIOTranslator ()=default | |
Translation class which handles nRF GPIO Configuration.
This represents a bridge pattern: the implementation of the GPIO functions is separated from the main interfaces (nRFGPIOOutput, nRFGPIOInput, etc.).
The GPIO function implementations are isolated from this header because we do not want to make the nRF headers accessible from the rest of the system.
This class cannot be directly instantiated.
|
privatedefault |
This class can't be instantiated.
|
privatedefault |
References portDecode(), UINT32_C, and embutil::volatile_store().
Referenced by nRFGPIOOutput< 0, 13 >::set().
|
staticnoexcept |
References configure().
References configure().
Referenced by nRFGPIOOutput< 0, 13 >::start_().
References portDecode(), UINT32_C, and embutil::volatile_store().
Referenced by nRFGPIOOutput< 0, 13 >::set().


{% extends "base.html" %} {% block content %}
There is no information in Open Radar for issue number {{ number }}.
Is it yours? If so, please add it to Open Radar!


FLUBBER A film review by Steve Rhodes Copyright 1997 Steve Rhodes
RATING (0 TO ****): ***
It's pop quiz time. Who stars in FLUBBER, Disney's remake of its 1961 film THE ABSENT MINDED PROFESSOR? Well, if you answered Robin Williams, you only get partial credit.
Although your answer may be technically correct, there is a small lovable, flying female robot named WEEBO, voiced by Jodi Benson from THE LITTLE MERMAID, who steals most of the scenes. That is, except for those with Flubber in them. Flubber, a cross between the Pillsbury Doughboy and a lump of green Jell-O, manages to steal the scenes from both of them with his antics.  With the special visual effects by Douglas Smith, the Academy Award winner from INDEPENDENCE DAY, one could argue that Smith deserves equal billing with Williams.
The main storyline has our hero, a very absent minded but brilliant professor named Phillip Brainard (Williams), trying to cook up some magic substance in order to save his almost insolvent college. His home looks like inventor Wayne Szalinski's from HONEY I SHRUNK THE KIDS but with gadgets that work. Phillip is so forgetful that he forgets his wedding with Sara Jean Reynolds, played Marcia Gay Harden from THE SPITFIRE GRILL, for the third time. This provides an opportunity for a rival professor, Wilson Croft (Christopher McDonald), from another school to try to sweep her off her feet.
At this point our show has gone nowhere. But with the arrival of Phillip's invention of flying rubber, hence "Flubber," the movie takes off right along with the bouncing substance.
The script by John Hughes, who has done a host of good comedies with the best being FERRIS BUELLER'S DAY OFF, is loosely based on Bill Walsh's original script. With a young audience in mind, the humor places heavy reliance on physical comedy -- flying bowling balls and golf balls, for example, to knock out the goons. The way they use the Flubber substance is quite imaginative. They spray in on their bodies to create bouncing surfaces, put it on shoes to create super basketball jumpers and wipe it on their hands to create mile-a-minute dribblers. The substance should come with a warning label: Do not use internally. Wilson does so with disastrous results.
The spoken dialog is fairly lame. "I love you with every cell, with every atom," Phillip says about Sara in one of show's few mildly funny lines. "I love you on a subatomic level." Most of the show sticks, correctly, to the action for his laughs, and director Les Mayfield keeps a high energy level to the proceedings without going overboard.
One subplot deals with WEEBO's crush on Phillip. In addition to talking, she has a video screen that pops up so that she can show brief clips of old movies to illustrate her feelings. When WEEBO is angry, for example, she brings up a clip of Shirley Temple pouting with her hands on her hips. And when WEEBO comes to the rescue, she plays a Western with the cavalry arriving and bugles blaring. Rather than tiring of this gimmick, it actually grows on you as does WEEBO's adorable personality.
The bad guys are purely cartoonish, the type that get knocked down and then knocked down again. Their putative purpose is to attempt to steal the Flubber, but they are really there to be human punching bags.
In a minor but recurring subplot, a little boy keeps getting frightened of staying in his room at night. After his Dad assures him that his window is locked, all manner of mayhem breaks out on the other side of his window. Robin Williams, flying his Flubber-powered 1963 red Thunderbird convertible, even runs into the tree outside the kid's bedroom.
Evaluated as adult level humor, FLUBBER would have trouble measuring up. But as a kid's show, it delivers the goods with some riotously funny sequences. Finally, consider this modern miracle. FLUBBER is an outlandish kid's comedy without almost no bathroom humor. They don't make many movies like that anymore.
FLUBBER runs a quick 1:32. It is rated PG for cartoon mayhem and would be fine for all ages. My son Jeffrey and his friend Kerry, both 8, thought the show was "very funny." Kerry commented on how much she laughed, and Jeffrey talked about his favorite characters, WEEBO, Flubber, and the little kid. Jeffrey said he thought it was one of the best movies of the year.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


| Top |
Unicode ManipulationUnicode Manipulation — functions operating on Unicode characters and UTF-8 strings |
| typedef | gunichar |
| typedef | gunichar2 |
| #define | G_UNICHAR_MAX_DECOMPOSITION_LENGTH |
| enum | GUnicodeType |
| #define | G_UNICODE_COMBINING_MARK |
| enum | GUnicodeBreakType |
| enum | GUnicodeScript |
| enum | GNormalizeMode |
This section describes a number of functions for dealing with
Unicode characters and strings. There are analogues of the
traditional ctype.h
character classification and case conversion
functions, UTF-8 analogues of some string utility functions,
functions to perform normalization, case conversion and collation
on UTF-8 strings and finally functions to convert between the UTF-8,
UTF-16 and UCS-4 encodings of Unicode.
The implementations of the Unicode functions in GLib are based on the Unicode Character Data tables, which are available from www.unicode.org. GLib 2.8 supports Unicode 4.0, GLib 2.10 supports Unicode 4.1, GLib 2.12 supports Unicode 5.0, GLib 2.16.3 supports Unicode 5.1, GLib 2.30 supports Unicode 6.0.
gboolean
g_unichar_validate (gunichar ch
);
Checks whether ch
is a valid Unicode character. Some possible
integer values of ch
will not be valid. 0 is considered a valid
character, though it's normally a string terminator.
gboolean
g_unichar_isalnum (gunichar c
);
Determines whether a character is alphanumeric.
Given some UTF-8 text, obtain a character value
with g_utf8_get_char()
.
gboolean
g_unichar_isalpha (gunichar c
);
Determines whether a character is alphabetic (i.e. a letter).
Given some UTF-8 text, obtain a character value with
g_utf8_get_char()
.
gboolean
g_unichar_iscntrl (gunichar c
);
Determines whether a character is a control character.
Given some UTF-8 text, obtain a character value with
g_utf8_get_char()
.
gboolean
g_unichar_isdefined (gunichar c
);
Determines if a given character is assigned in the Unicode standard.
gboolean
g_unichar_isdigit (gunichar c
);
Determines whether a character is numeric (i.e. a digit). This
covers ASCII 0-9 and also digits in other languages/scripts. Given
some UTF-8 text, obtain a character value with g_utf8_get_char()
.
gboolean
g_unichar_isgraph (gunichar c
);
Determines whether a character is printable and not a space
(returns FALSE
for control characters, format characters, and
spaces). g_unichar_isprint()
is similar, but returns TRUE
for
spaces. Given some UTF-8 text, obtain a character value with
g_utf8_get_char()
.
gboolean
g_unichar_islower (gunichar c
);
Determines whether a character is a lowercase letter.
Given some UTF-8 text, obtain a character value with
g_utf8_get_char()
.
gboolean
g_unichar_ismark (gunichar c
);
Determines whether a character is a mark (non-spacing mark,
combining mark, or enclosing mark in Unicode speak).
Given some UTF-8 text, obtain a character value
with g_utf8_get_char()
.
Note: in most cases where isalpha characters are allowed, ismark characters should be allowed to as they are essential for writing most European languages as well as many non-Latin scripts.
Since 2.14
gboolean
g_unichar_isprint (gunichar c
);
Determines whether a character is printable.
Unlike g_unichar_isgraph()
, returns TRUE
for spaces.
Given some UTF-8 text, obtain a character value with
g_utf8_get_char()
.
gboolean
g_unichar_ispunct (gunichar c
);
Determines whether a character is punctuation or a symbol.
Given some UTF-8 text, obtain a character value with
g_utf8_get_char()
.
gboolean
g_unichar_isspace (gunichar c
);
Determines whether a character is a space, tab, or line separator
(newline, carriage return, etc.). Given some UTF-8 text, obtain a
character value with g_utf8_get_char()
.
(Note: don't use this to do word breaking; you have to use Pango or equivalent to get word breaking right, the algorithm is fairly complex.)
gboolean
g_unichar_istitle (gunichar c
);
Determines if a character is titlecase. Some characters in Unicode which are composites, such as the DZ digraph have three case variants instead of just two. The titlecase form is used at the beginning of a word where only the first letter is capitalized. The titlecase form of the DZ digraph is U+01F2 LATIN CAPITAL LETTTER D WITH SMALL LETTER Z.
gboolean
g_unichar_isupper (gunichar c
);
Determines if a character is uppercase.
gboolean
g_unichar_isxdigit (gunichar c
);
Determines if a character is a hexidecimal digit.
gboolean
g_unichar_iswide (gunichar c
);
Determines if a character is typically rendered in a double-width cell.
gboolean
g_unichar_iswide_cjk (gunichar c
);
Determines if a character is typically rendered in a double-width
cell under legacy East Asian locales. If a character is wide according to
g_unichar_iswide()
, then it is also reported wide with this function, but
the converse is not necessarily true. See the
Unicode Standard Annex 11
for details.
If a character passes the g_unichar_iswide()
test then it will also pass
this test, but not the other way around. Note that some characters may
pass both this test and g_unichar_iszerowidth()
.
Since 2.12
gboolean
g_unichar_iszerowidth (gunichar c
);
Determines if a given character typically takes zero width when rendered.
The return value is TRUE
for all non-spacing and enclosing marks
(e.g., combining accents), format characters, zero-width
space, but not U+00AD SOFT HYPHEN.
A typical use of this function is with one of g_unichar_iswide()
or
g_unichar_iswide_cjk()
to determine the number of cells a string occupies
when displayed on a grid display (terminals). However, note that not all
terminals support zero-width rendering of zero-width marks.
Since 2.14
gunichar
g_unichar_totitle (gunichar c
);
Converts a character to the titlecase.
gint
g_unichar_digit_value (gunichar c
);
Determines the numeric value of a character as a decimal digit.
If c
is a decimal digit (according to
g_unichar_isdigit()
), its numeric value. Otherwise, -1.
gint
g_unichar_xdigit_value (gunichar c
);
Determines the numeric value of a character as a hexidecimal digit.
gboolean g_unichar_compose (gunichar a
,gunichar b
,gunichar *ch
);
Performs a single composition step of the Unicode canonical composition algorithm.
This function includes algorithmic Hangul Jamo composition,
but it is not exactly the inverse of g_unichar_decompose()
.
No composition can have either of a
or b
equal to zero.
To be precise, this function composes if and only if
there exists a Primary Composite P which is canonically
equivalent to the sequence <a
,b
>. See the Unicode
Standard for the definition of Primary Composite.
If a
and b
do not compose a new character, ch
is set to zero.
See UAX15 for details.
a |
a Unicode character |
|
b |
a Unicode character |
|
ch |
return location for the composed character |
Since 2.30
gboolean g_unichar_decompose (gunichar ch
,gunichar *a
,gunichar *b
);
Performs a single decomposition step of the Unicode canonical decomposition algorithm.
This function does not include compatibility
decompositions. It does, however, include algorithmic
Hangul Jamo decomposition, as well as 'singleton'
decompositions which replace a character by a single
other character. In the case of singletons *b
will
be set to zero.
If ch
is not decomposable, *a
is set to ch
and *b
is set to zero.
Note that the way Unicode decomposition pairs are
defined, it is guaranteed that b
would not decompose
further, but a
may itself decompose. To get the full
canonical decomposition for ch
, one would need to
recursively call this function on a
. Or use
g_unichar_fully_decompose()
.
See UAX15 for details.
ch |
a Unicode character |
|
a |
return location for the first component of |
|
b |
return location for the second component of |
Since 2.30
gsize g_unichar_fully_decompose (gunichar ch
,gboolean compat
,gunichar *result
,gsize result_len
);
Computes the canonical or compatibility decomposition of a
Unicode character. For compatibility decomposition,
pass TRUE
for compat
; for canonical decomposition
pass FALSE
for compat
.
The decomposed sequence is placed in result
. Only up to
result_len
characters are written into result
. The length
of the full decomposition (irrespective of result_len
) is
returned by the function. For canonical decomposition,
currently all decompositions are of length at most 4, but
this may change in the future (very unlikely though).
At any rate, Unicode does guarantee that a buffer of length
18 is always enough for both compatibility and canonical
decompositions, so that is the size recommended. This is provided
as G_UNICHAR_MAX_DECOMPOSITION_LENGTH
.
See UAX15 for details.
ch |
a Unicode character. |
|
compat |
whether perform canonical or compatibility decomposition |
|
result |
location to store decomposed result, or |
[allow-none] |
result_len |
length of |
Since 2.30
GUnicodeBreakType
g_unichar_break_type (gunichar c
);
Determines the break type of c
. c
should be a Unicode character
(to derive a character from UTF-8 encoded text, use
g_utf8_get_char()
). The break type is used to find word and line
breaks ("text boundaries"), Pango implements the Unicode boundary
resolution algorithms and normally you would use a function such
as pango_break()
instead of caring about break types yourself.
gint
g_unichar_combining_class (gunichar uc
);
Determines the canonical combining class of a Unicode character.
Since 2.14
void g_unicode_canonical_ordering (gunichar *string
,gsize len
);
Computes the canonical ordering of a string in-place. This rearranges decomposed characters in the string according to their combining classes. See the Unicode manual for more information.
gunichar * g_unicode_canonical_decomposition (gunichar ch
,gsize *result_len
);
g_unicode_canonical_decomposition
has been deprecated since version 2.30 and should not be used in newly-written code.
Use the more flexible g_unichar_fully_decompose()
instead.
Computes the canonical decomposition of a Unicode character.
gboolean g_unichar_get_mirror_char (gunichar ch
,gunichar *mirrored_ch
);
In Unicode, some characters are "mirrored". This means that their images are mirrored horizontally in text that is laid out from right to left. For instance, "(" would become its mirror image, ")", in right-to-left text.
If ch
has the Unicode mirrored property and there is another unicode
character that typically has a glyph that is the mirror image of ch
's
glyph and mirrored_ch
is set, it puts that character in the address
pointed to by mirrored_ch
. Otherwise the original character is put.
Since 2.4
GUnicodeScript
g_unichar_get_script (gunichar ch
);
Looks up the GUnicodeScript for a particular character (as defined
by Unicode Standard Annex #24). No check is made for ch
being a
valid Unicode character; if you pass in invalid character, the
result is undefined.
This function is equivalent to pango_script_for_unichar()
and the
two are interchangeable.
Since 2.14
GUnicodeScript
g_unicode_script_from_iso15924 (guint32 iso15924
);
Looks up the Unicode script for iso15924
. ISO 15924 assigns four-letter
codes to scripts. For example, the code for Arabic is 'Arab'.
This function accepts four letter codes encoded as a guint32
in a
big-endian fashion. That is, the code expected for Arabic is
0x41726162 (0x41 is ASCII code for 'A', 0x72 is ASCII code for 'r', etc).
See Codes for the representation of names of scripts for details.
the Unicode script for iso15924
, or
of G_UNICODE_SCRIPT_INVALID_CODE
if iso15924
is zero and
G_UNICODE_SCRIPT_UNKNOWN
if iso15924
is unknown.
Since 2.30
guint32
g_unicode_script_to_iso15924 (GUnicodeScript script
);
Looks up the ISO 15924 code for script
. ISO 15924 assigns four-letter
codes to scripts. For example, the code for Arabic is 'Arab'. The
four letter codes are encoded as a guint32
by this function in a
big-endian fashion. That is, the code returned for Arabic is
0x41726162 (0x41 is ASCII code for 'A', 0x72 is ASCII code for 'r', etc).
See Codes for the representation of names of scripts for details.
the ISO 15924 code for script
, encoded as an integer,
of zero if script
is G_UNICODE_SCRIPT_INVALID_CODE
or
ISO 15924 code 'Zzzz' (script code for UNKNOWN) if script
is not understood.
Since 2.30
#define g_utf8_next_char(p)
Skips to the next character in a UTF-8 string. The string must be
valid; this macro is as fast as possible, and has no error-checking.
You would use this macro to iterate over a string character by
character. The macro returns the start of the next UTF-8 character.
Before using this macro, use g_utf8_validate()
to validate strings
that may contain invalid UTF-8.
gunichar
g_utf8_get_char (const gchar *p
);
Converts a sequence of bytes encoded as UTF-8 to a Unicode character.
If p
does not point to a valid UTF-8 encoded character, results
are undefined. If you are not sure that the bytes are complete
valid Unicode characters, you should use g_utf8_get_char_validated()
instead.
gunichar g_utf8_get_char_validated (const gchar *p
,gssize max_len
);
Convert a sequence of bytes encoded as UTF-8 to a Unicode character. This function checks for incomplete characters, for invalid characters such as characters that are out of the range of Unicode, and for overlong encodings of valid characters.
gchar * g_utf8_offset_to_pointer (const gchar *str
,glong offset
);
Converts from an integer character offset to a pointer to a position within the string.
Since 2.10, this function allows to pass a negative offset
to
step backwards. It is usually worth stepping backwards from the end
instead of forwards if offset
is in the last fourth of the string,
since moving forward is about 3 times faster than moving backward.
Note that this function doesn't abort when reaching the end of str
.
Therefore you should be sure that offset
is within string boundaries
before calling that function. Call g_utf8_strlen()
when unsure.
This limitation exists as this function is called frequently during
text rendering and therefore has to be as fast as possible.
glong g_utf8_pointer_to_offset (const gchar *str
,const gchar *pos
);
Converts from a pointer to position within a string to a integer character offset.
Since 2.10, this function allows pos
to be before str
, and returns
a negative offset in this case.
gchar *
g_utf8_prev_char (const gchar *p
);
Finds the previous UTF-8 character in the string before p
.
p
does not have to be at the beginning of a UTF-8 character. No check
is made to see if the character found is actually valid other than
it starts with an appropriate byte. If p
might be the first
character of the string, you must use g_utf8_find_prev_char()
instead.
gchar * g_utf8_find_next_char (const gchar *p
,const gchar *end
);
Finds the start of the next UTF-8 character in the string after p
.
p
does not have to be at the beginning of a UTF-8 character. No check
is made to see if the character found is actually valid other than
it starts with an appropriate byte.
p |
a pointer to a position within a UTF-8 encoded string |
|
end |
a pointer to the byte following the end of the string,
or |
gchar * g_utf8_find_prev_char (const gchar *str
,const gchar *p
);
Given a position p
with a UTF-8 encoded string str
, find the start
of the previous UTF-8 character starting before p
. Returns NULL
if no
UTF-8 characters are present in str
before p
.
p
does not have to be at the beginning of a UTF-8 character. No check
is made to see if the character found is actually valid other than
it starts with an appropriate byte.
glong g_utf8_strlen (const gchar *p
,gssize max
);
Computes the length of the string in characters, not including
the terminating nul character. If the max
'th byte falls in the
middle of a character, the last (partial) character is not counted.
p |
pointer to the start of a UTF-8 encoded string |
|
max |
the maximum number of bytes to examine. If |
gchar * g_utf8_strncpy (gchar *dest
,const gchar *src
,gsize n
);
Like the standard C strncpy()
function, but copies a given number
of characters instead of a given number of bytes. The src
string
must be valid UTF-8 encoded text. (Use g_utf8_validate()
on all
text before trying to use UTF-8 utility functions with it.)
gchar * g_utf8_strchr (const gchar *p
,gssize len
,gunichar c
);
Finds the leftmost occurrence of the given Unicode character
in a UTF-8 encoded string, while limiting the search to len
bytes.
If len
is -1, allow unbounded search.
p |
a nul-terminated UTF-8 encoded string |
|
len |
the maximum length of |
|
c |
a Unicode character |
NULL
if the string does not contain the character,
otherwise, a pointer to the start of the leftmost occurrence
of the character in the string.
gchar * g_utf8_strrchr (const gchar *p
,gssize len
,gunichar c
);
Find the rightmost occurrence of the given Unicode character
in a UTF-8 encoded string, while limiting the search to len
bytes.
If len
is -1, allow unbounded search.
p |
a nul-terminated UTF-8 encoded string |
|
len |
the maximum length of |
|
c |
a Unicode character |
NULL
if the string does not contain the character,
otherwise, a pointer to the start of the rightmost occurrence
of the character in the string.
gchar * g_utf8_strreverse (const gchar *str
,gssize len
);
Reverses a UTF-8 string. str
must be valid UTF-8 encoded text.
(Use g_utf8_validate()
on all text before trying to use UTF-8
utility functions with it.)
This function is intended for programmatic uses of reversed strings. It pays no attention to decomposed characters, combining marks, byte order marks, directional indicators (LRM, LRO, etc) and similar characters which might need special handling when reversing a string for display purposes.
Note that unlike g_strreverse()
, this function returns
newly-allocated memory, which should be freed with g_free()
when
no longer needed.
str |
a UTF-8 encoded string |
|
len |
the maximum length of |
Since 2.2
gchar * g_utf8_substring (const gchar *str
,glong start_pos
,glong end_pos
);
Copies a substring out of a UTF-8 encoded string.
The substring will contain end_pos
- start_pos
characters.
str |
a UTF-8 encoded string |
|
start_pos |
a character offset within |
|
end_pos |
another character offset within |
a newly allocated copy of the requested
substring. Free with g_free()
when no longer needed.
Since 2.30
gboolean g_utf8_validate (const gchar *str
,gssize max_len
,const gchar **end
);
Validates UTF-8 encoded text. str
is the text to validate;
if str
is nul-terminated, then max_len
can be -1, otherwise
max_len
should be the number of bytes to validate.
If end
is non-NULL
, then the end of the valid range
will be stored there (i.e. the start of the first invalid
character if some bytes were invalid, or the end of the text
being validated otherwise).
Note that g_utf8_validate()
returns FALSE
if max_len
is
positive and any of the max_len
bytes are nul.
Returns TRUE
if all of str
was valid. Many GLib and GTK+
routines require valid UTF-8 as input; so data read from a file
or the network should be checked with g_utf8_validate()
before
doing anything else with it.
gchar * g_utf8_strup (const gchar *str
,gssize len
);
Converts all Unicode characters in the string that have a case to uppercase. The exact manner that this is done depends on the current locale, and may result in the number of characters in the string increasing. (For instance, the German ess-zet will be changed to SS.)
gchar * g_utf8_strdown (const gchar *str
,gssize len
);
Converts all Unicode characters in the string that have a case to lowercase. The exact manner that this is done depends on the current locale, and may result in the number of characters in the string changing.
gchar * g_utf8_casefold (const gchar *str
,gssize len
);
Converts a string into a form that is independent of case. The
result will not correspond to any particular case, but can be
compared for equality or ordered with the results of calling
g_utf8_casefold()
on other strings.
Note that calling g_utf8_casefold()
followed by g_utf8_collate()
is
only an approximation to the correct linguistic case insensitive
ordering, though it is a fairly good one. Getting this exactly
right would require a more sophisticated collation function that
takes case sensitivity into account. GLib does not currently
provide such a function.
gchar * g_utf8_normalize (const gchar *str
,gssize len
,GNormalizeMode mode
);
Converts a string into canonical form, standardizing
such issues as whether a character with an accent
is represented as a base character and combining
accent or as a single precomposed character. The
string has to be valid UTF-8, otherwise NULL
is
returned. You should generally call g_utf8_normalize()
before comparing two Unicode strings.
The normalization mode G_NORMALIZE_DEFAULT
only
standardizes differences that do not affect the
text content, such as the above-mentioned accent
representation. G_NORMALIZE_ALL
also standardizes
the "compatibility" characters in Unicode, such
as SUPERSCRIPT THREE to the standard forms
(in this case DIGIT THREE). Formatting information
may be lost but for most text operations such
characters should be considered the same.
G_NORMALIZE_DEFAULT_COMPOSE
and G_NORMALIZE_ALL_COMPOSE
are like G_NORMALIZE_DEFAULT
and G_NORMALIZE_ALL
,
but returned a result with composed forms rather
than a maximally decomposed form. This is often
useful if you intend to convert the string to
a legacy encoding or pass it to a system with
less capable Unicode handling.
str |
a UTF-8 encoded string. |
|
len |
length of |
|
mode |
the type of normalization to perform. |
a newly allocated string, that is the
normalized form of str
, or NULL
if str
is not
valid UTF-8.
gint g_utf8_collate (const gchar *str1
,const gchar *str2
);
Compares two strings for ordering using the linguistically
correct rules for the current locale.
When sorting a large number of strings, it will be significantly
faster to obtain collation keys with g_utf8_collate_key()
and
compare the keys with strcmp()
when sorting instead of sorting
the original strings.
gchar * g_utf8_collate_key (const gchar *str
,gssize len
);
Converts a string into a collation key that can be compared
with other collation keys produced by the same function using
strcmp()
.
The results of comparing the collation keys of two strings
with strcmp()
will always be the same as comparing the two
original keys with g_utf8_collate()
.
Note that this function depends on the current locale.
str |
a UTF-8 encoded string. |
|
len |
length of |
a newly allocated string. This string should
be freed with g_free()
when you are done with it.
gchar * g_utf8_collate_key_for_filename (const gchar *str
,gssize len
);
Converts a string into a collation key that can be compared
with other collation keys produced by the same function using strcmp()
.
In order to sort filenames correctly, this function treats the dot '.' as a special case. Most dictionary orderings seem to consider it insignificant, thus producing the ordering "event.c" "eventgenerator.c" "event.h" instead of "event.c" "event.h" "eventgenerator.c". Also, we would like to treat numbers intelligently so that "file1" "file10" "file5" is sorted as "file1" "file5" "file10".
Note that this function depends on the current locale.
str |
a UTF-8 encoded string. |
|
len |
length of |
a newly allocated string. This string should
be freed with g_free()
when you are done with it.
Since 2.8
gunichar2 * g_utf8_to_utf16 (const gchar *str
,glong len
,glong *items_read
,glong *items_written
,GError **error
);
Convert a string from UTF-8 to UTF-16. A 0 character will be added to the result after the converted text.
str |
a UTF-8 encoded string |
|
len |
the maximum length (number of bytes) of |
|
items_read |
location to store number of bytes read,
or |
[allow-none] |
items_written |
location to store number of gunichar2
written, or |
[allow-none] |
error |
location to store the error occurring, or |
gunichar * g_utf8_to_ucs4 (const gchar *str
,glong len
,glong *items_read
,glong *items_written
,GError **error
);
Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4. A trailing 0 character will be added to the string after the converted text.
str |
a UTF-8 encoded string |
|
len |
the maximum length of |
|
items_read |
location to store number of bytes read, or |
[allow-none] |
items_written |
location to store number of characters
written or |
[allow-none] |
error |
location to store the error occurring, or |
gunichar * g_utf8_to_ucs4_fast (const gchar *str
,glong len
,glong *items_written
);
Convert a string from UTF-8 to a 32-bit fixed width
representation as UCS-4, assuming valid UTF-8 input.
This function is roughly twice as fast as g_utf8_to_ucs4()
but does no error checking on the input. A trailing 0 character
will be added to the string after the converted text.
str |
a UTF-8 encoded string |
|
len |
the maximum length of |
|
items_written |
location to store the number of
characters in the result, or |
[allow-none] |
gunichar * g_utf16_to_ucs4 (const gunichar2 *str
,glong len
,glong *items_read
,glong *items_written
,GError **error
);
Convert a string from UTF-16 to UCS-4. The result will be nul-terminated.
str |
a UTF-16 encoded string |
|
len |
the maximum length (number of gunichar2) of |
|
items_read |
location to store number of words read,
or |
[allow-none] |
items_written |
location to store number of characters
written, or |
[allow-none] |
error |
location to store the error occurring, or |
gchar * g_utf16_to_utf8 (const gunichar2 *str
,glong len
,glong *items_read
,glong *items_written
,GError **error
);
Convert a string from UTF-16 to UTF-8. The result will be terminated with a 0 byte.
Note that the input is expected to be already in native endianness,
an initial byte-order-mark character is not handled specially.
g_convert()
can be used to convert a byte buffer of UTF-16 data of
ambiguous endianess.
Further note that this function does not validate the result string; it may e.g. include embedded NUL characters. The only validation done by this function is to ensure that the input can be correctly interpreted as UTF-16, i.e. it doesn't contain things unpaired surrogates.
str |
a UTF-16 encoded string |
|
len |
the maximum length (number of gunichar2) of |
|
items_read |
location to store number of words read,
or |
[allow-none] |
items_written |
location to store number of bytes written,
or |
[allow-none] |
error |
location to store the error occurring, or |
gunichar2 * g_ucs4_to_utf16 (const gunichar *str
,glong len
,glong *items_read
,glong *items_written
,GError **error
);
Convert a string from UCS-4 to UTF-16. A 0 character will be added to the result after the converted text.
str |
a UCS-4 encoded string |
|
len |
the maximum length (number of characters) of |
|
items_read |
location to store number of bytes read,
or |
[allow-none] |
items_written |
location to store number of gunichar2
written, or |
[allow-none] |
error |
location to store the error occurring, or |
gchar * g_ucs4_to_utf8 (const gunichar *str
,glong len
,glong *items_read
,glong *items_written
,GError **error
);
Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte.
str |
a UCS-4 encoded string |
|
len |
the maximum length (number of characters) of |
|
items_read |
location to store number of characters
read, or |
[allow-none] |
items_written |
location to store number of bytes
written or |
[allow-none] |
error |
location to store the error occurring, or |
typedef guint32 gunichar;
A type which can hold any UTF-32 or UCS-4 character code, also known as a Unicode code point.
If you want to produce the UTF-8 representation of a gunichar,
use g_ucs4_to_utf8()
. See also g_utf8_to_ucs4()
for the reverse
process.
To print/scan values of this type as integer, use
G_GINT32_MODIFIER
and/or G_GUINT32_FORMAT
.
The notation to express a Unicode code point in running text is as a hexadecimal number with four to six digits and uppercase letters, prefixed by the string "U+". Leading zeros are omitted, unless the code point would have fewer than four hexadecimal digits. For example, "U+0041 LATIN CAPITAL LETTER A". To print a code point in the U+-notation, use the format string "U+%04"G_GINT32_FORMAT"X". To scan, use the format string "U+%06"G_GINT32_FORMAT"X".
1 2 3 |
gunichar c; sscanf ("U+0041", "U+%06"G_GINT32_FORMAT"X", &c) g_print ("Read U+%04"G_GINT32_FORMAT"X", c); |
typedef guint16 gunichar2;
A type which can hold any UTF-16 code point<footnote id="utf16_surrogate_pairs">UTF-16 also has so called <firstterm>surrogate pairs</firstterm> to encode characters beyond the BMP as pairs of 16bit numbers. Surrogate pairs cannot be stored in a single gunichar2 field, but all GLib functions accepting gunichar2 arrays will correctly interpret surrogate pairs.</footnote>.
To print/scan values of this type to/from text you need to convert
to/from UTF-8, using g_utf16_to_utf8()
/g_utf8_to_utf16()
.
To print/scan values of this type as integer, use
G_GINT16_MODIFIER
and/or G_GUINT16_FORMAT
.
#define G_UNICHAR_MAX_DECOMPOSITION_LENGTH 18 /* codepoints */
The maximum length (in codepoints) of a compatibility or canonical decomposition of a single Unicode character.
This is as defined by Unicode 6.1.
Since 2.32
These are the possible character classifications from the Unicode specification. See <ulink url="http://www.unicode.org/Public/UNIDATA/UnicodeData.html">http://www.unicode.org/Public/UNIDATA/UnicodeData.html</ulink>.
|
General category "Other, Control" (Cc) |
||
|
General category "Other, Format" (Cf) |
||
|
General category "Other, Not Assigned" (Cn) |
||
|
General category "Other, Private Use" (Co) |
||
|
General category "Other, Surrogate" (Cs) |
||
|
General category "Letter, Lowercase" (Ll) |
||
|
General category "Letter, Modifier" (Lm) |
||
|
General category "Letter, Other" (Lo) |
||
|
General category "Letter, Titlecase" (Lt) |
||
|
General category "Letter, Uppercase" (Lu) |
||
|
General category "Mark, Spacing" (Mc) |
||
|
General category "Mark, Enclosing" (Me) |
||
|
General category "Mark, Nonspacing" (Mn) |
||
|
General category "Number, Decimal Digit" (Nd) |
||
|
General category "Number, Letter" (Nl) |
||
|
General category "Number, Other" (No) |
||
|
General category "Punctuation, Connector" (Pc) |
||
|
General category "Punctuation, Dash" (Pd) |
||
|
General category "Punctuation, Close" (Pe) |
||
|
General category "Punctuation, Final quote" (Pf) |
||
|
General category "Punctuation, Initial quote" (Pi) |
||
|
General category "Punctuation, Other" (Po) |
||
|
General category "Punctuation, Open" (Ps) |
||
|
General category "Symbol, Currency" (Sc) |
||
|
General category "Symbol, Modifier" (Sk) |
||
|
General category "Symbol, Math" (Sm) |
||
|
General category "Symbol, Other" (So) |
||
|
General category "Separator, Line" (Zl) |
||
|
General category "Separator, Paragraph" (Zp) |
||
|
General category "Separator, Space" (Zs) |
#define G_UNICODE_COMBINING_MARK G_UNICODE_SPACING_MARK
G_UNICODE_COMBINING_MARK
has been deprecated since version 2.30 and should not be used in newly-written code.
Older name for G_UNICODE_SPACING_MARK
.
These are the possible line break classifications.
Since new unicode versions may add new types here, applications should be ready
to handle unknown values. They may be regarded as G_UNICODE_BREAK_UNKNOWN
.
See <ulink url="http://www.unicode.org/unicode/reports/tr14/">http://www.unicode.org/unicode/reports/tr14/</ulink>.
|
Mandatory Break (BK) |
||
|
Carriage Return (CR) |
||
|
Line Feed (LF) |
||
|
Attached Characters and Combining Marks (CM) |
||
|
Surrogates (SG) |
||
|
Zero Width Space (ZW) |
||
|
Inseparable (IN) |
||
|
Non-breaking ("Glue") (GL) |
||
|
Contingent Break Opportunity (CB) |
||
|
Space (SP) |
||
|
Break Opportunity After (BA) |
||
|
Break Opportunity Before (BB) |
||
|
Break Opportunity Before and After (B2) |
||
|
Hyphen (HY) |
||
|
Nonstarter (NS) |
||
|
Opening Punctuation (OP) |
||
|
Closing Punctuation (CL) |
||
|
Ambiguous Quotation (QU) |
||
|
Exclamation/Interrogation (EX) |
||
|
Ideographic (ID) |
||
|
Numeric (NU) |
||
|
Infix Separator (Numeric) (IS) |
||
|
Symbols Allowing Break After (SY) |
||
|
Ordinary Alphabetic and Symbol Characters (AL) |
||
|
Prefix (Numeric) (PR) |
||
|
Postfix (Numeric) (PO) |
||
|
Complex Content Dependent (South East Asian) (SA) |
||
|
Ambiguous (Alphabetic or Ideographic) (AI) |
||
|
Unknown (XX) |
||
|
Next Line (NL) |
||
|
Word Joiner (WJ) |
||
|
Hangul L Jamo (JL) |
||
|
Hangul V Jamo (JV) |
||
|
Hangul T Jamo (JT) |
||
|
Hangul LV Syllable (H2) |
||
|
Hangul LVT Syllable (H3) |
||
|
Closing Parenthesis (CP). Since 2.28 |
||
|
Conditional Japanese Starter (CJ). Since: 2.32 |
||
|
Hebrew Letter (HL). Since: 2.32 |
||
|
Regional Indicator (RI). Since: 2.36 |
The GUnicodeScript enumeration identifies different writing systems. The values correspond to the names as defined in the Unicode standard. The enumeration has been added in GLib 2.14, and is interchangeable with PangoScript.
Note that new types may be added in the future. Applications should be ready to handle unknown values. See <ulink url="http://www.unicode.org/reports/tr24/">Unicode Standard Annex 24: Script names</ulink>.
|
a value never returned from |
||
|
a character used by multiple different scripts |
||
|
a mark glyph that takes its script from the i base glyph to which it is attached |
||
|
Arabic |
||
|
Armenian |
||
|
Bengali |
||
|
Bopomofo |
||
|
Cherokee |
||
|
Coptic |
||
|
Cyrillic |
||
|
Deseret |
||
|
Devanagari |
||
|
Ethiopic |
||
|
Georgian |
||
|
Gothic |
||
|
Greek |
||
|
Gujarati |
||
|
Gurmukhi |
||
|
Han |
||
|
Hangul |
||
|
Hebrew |
||
|
Hiragana |
||
|
Kannada |
||
|
Katakana |
||
|
Khmer |
||
|
Lao |
||
|
Latin |
||
|
Malayalam |
||
|
Mongolian |
||
|
Myanmar |
||
|
Ogham |
||
|
Old Italic |
||
|
Oriya |
||
|
Runic |
||
|
Sinhala |
||
|
Syriac |
||
|
Tamil |
||
|
Telugu |
||
|
Thaana |
||
|
Thai |
||
|
Tibetan |
||
|
Canadian Aboriginal |
||
|
Yi |
||
|
Tagalog |
||
|
Hanunoo |
||
|
Buhid |
||
|
Tagbanwa |
||
|
Braille |
||
|
Cypriot |
||
|
Limbu |
||
|
Osmanya |
||
|
Shavian |
||
|
Linear B |
||
|
Tai Le |
||
|
Ugaritic |
||
|
New Tai Lue |
||
|
Buginese |
||
|
Glagolitic |
||
|
Tifinagh |
||
|
Syloti Nagri |
||
|
Old Persian |
||
|
Kharoshthi |
||
|
an unassigned code point |
||
|
Balinese |
||
|
Cuneiform |
||
|
Phoenician |
||
|
Phags-pa |
||
|
N'Ko |
||
|
Kayah Li. Since 2.16.3 |
||
|
Lepcha. Since 2.16.3 |
||
|
Rejang. Since 2.16.3 |
||
|
Sundanese. Since 2.16.3 |
||
|
Saurashtra. Since 2.16.3 |
||
|
Cham. Since 2.16.3 |
||
|
Ol Chiki. Since 2.16.3 |
||
|
Vai. Since 2.16.3 |
||
|
Carian. Since 2.16.3 |
||
|
Lycian. Since 2.16.3 |
||
|
Lydian. Since 2.16.3 |
||
|
Avestan. Since 2.26 |
||
|
Bamum. Since 2.26 |
||
|
Egyptian Hieroglpyhs. Since 2.26 |
||
|
Imperial Aramaic. Since 2.26 |
||
|
Inscriptional Pahlavi. Since 2.26 |
||
|
Inscriptional Parthian. Since 2.26 |
||
|
Javanese. Since 2.26 |
||
|
Kaithi. Since 2.26 |
||
|
Lisu. Since 2.26 |
||
|
Meetei Mayek. Since 2.26 |
||
|
Old South Arabian. Since 2.26 |
||
|
Old Turkic. Since 2.28 |
||
|
Samaritan. Since 2.26 |
||
|
Tai Tham. Since 2.26 |
||
|
Tai Viet. Since 2.26 |
||
|
Batak. Since 2.28 |
||
|
Brahmi. Since 2.28 |
||
|
Mandaic. Since 2.28 |
||
|
Chakma. Since: 2.32 |
||
|
Meroitic Cursive. Since: 2.32 |
||
|
Meroitic Hieroglyphs. Since: 2.32 |
||
|
Miao. Since: 2.32 |
||
|
Sharada. Since: 2.32 |
||
|
Sora Sompeng. Since: 2.32 |
||
|
Takri. Since: 2.32 |
||
|
Bassa. Since: 2.42 |
||
|
Caucasian Albanian. Since: 2.42 |
||
|
Duployan. Since: 2.42 |
||
|
Elbasan. Since: 2.42 |
||
|
Grantha. Since: 2.42 |
||
|
Kjohki. Since: 2.42 |
||
|
Khudawadi, Sindhi. Since: 2.42 |
||
|
Linear A. Since: 2.42 |
||
|
Mahajani. Since: 2.42 |
||
|
Manichaean. Since: 2.42 |
||
|
Mende Kikakui. Since: 2.42 |
||
|
Modi. Since: 2.42 |
||
|
Mro. Since: 2.42 |
||
|
Nabataean. Since: 2.42 |
||
|
Old North Arabian. Since: 2.42 |
||
|
Old Permic. Since: 2.42 |
||
|
Pahawh Hmong. Since: 2.42 |
||
|
Palmyrene. Since: 2.42 |
||
|
Pau Cin Hau. Since: 2.42 |
||
|
Psalter Pahlavi. Since: 2.42 |
||
|
Siddham. Since: 2.42 |
||
|
Tirhuta. Since: 2.42
|
||
Defines how a Unicode string is transformed in a canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. Unicode strings should generally be normalized before comparing them.
|
standardize differences that do not affect the text content, such as the above-mentioned accent representation |
||
|
another name for |
||
|
like |
||
|
another name for |
||
|
beyond |
||
|
another name for |
||
|
like |
||
|
another name for |


Enku Chief Kepra:
I shall never surrender! My guards will cut you to ribbons! Let's see what you're made of!


Abbreviations & Definitions
Abbreviations
You can use CSS to style your
HTML.
Definitions
A validator is a program that checks for
syntax errors in code or documents.
Definition List
- Firefox
-
A free, open source, cross-platform, graphical web browser developed by
the Mozilla Corporation and hundreds of volunteers.
- Chromium
-
Chromium is an open-source browser project that aims to build a safer,
faster, and more stable way for all users to experience the web. This
site contains design documents, architecture overviews, testing
information, and more to help you learn to build and work with the
Chromium source code.


essential oil rotundus activity DNA Cyperus damage {border-style px;} rhizomes #ffffff;} DPPH antioxidant radicals antibacterial assay cells scavenging Chemical effects oxidative results (.%), activities induced Food SH-SYY analysis concentration cytotoxic reported (.%) ABTS effect significant Chem. cell food study using . ± . Gram-negative Oil components composition described determined different extracts present protective px; sample showed {font-family AAPH Kilani MBC MTT Table bacteria bacterial biological differences font-size foodborne increased properties reducing respectively. rhizome rhizomes. tested treated Essential LDH aureus compounds double; indicated means method obtained oils °C. (ATCC Antibacterial China Essent. Fig. Figure Liu MIC Sci. Zhang antioxidant, border-color border-width concentrations cyperene effective higher human incubation mass mixture oxide plasmid previous previously range rate samples solid; used value values vitro yphimurium {font-style {font-weight min (), Agric. Gram-positive However, Rhizomes Shanxi according antimutagenic bold capacity chemical coli concentration. courier; derived determine dried em; free lane line major measured methods oil. pBR pathogens percentage pharmacological plant potential power pt;} p < .) radical reactive reference strains time tubers viability °C ×