diff options
Diffstat (limited to 'src/3rdparty/xcb/libxcb/xinerama.c')
-rw-r--r-- | src/3rdparty/xcb/libxcb/xinerama.c | 212 |
1 files changed, 130 insertions, 82 deletions
diff --git a/src/3rdparty/xcb/libxcb/xinerama.c b/src/3rdparty/xcb/libxcb/xinerama.c index 05b6b73707..e660be267b 100644 --- a/src/3rdparty/xcb/libxcb/xinerama.c +++ b/src/3rdparty/xcb/libxcb/xinerama.c @@ -3,10 +3,17 @@ * Edit at your peril. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include <stdlib.h> #include <string.h> #include <assert.h> +#include <stddef.h> /* for offsetof() */ #include "xcbext.h" #include "xinerama.h" + +#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) #include "xproto.h" xcb_extension_t xcb_xinerama_id = { "XINERAMA", 0 }; @@ -15,12 +22,12 @@ xcb_extension_t xcb_xinerama_id = { "XINERAMA", 0 }; /***************************************************************************** ** ** void xcb_xinerama_screen_info_next - ** + ** ** @param xcb_xinerama_screen_info_iterator_t *i ** @returns void ** *****************************************************************************/ - + void xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i /**< */) { @@ -33,12 +40,12 @@ xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i /**< */) /***************************************************************************** ** ** xcb_generic_iterator_t xcb_xinerama_screen_info_end - ** + ** ** @param xcb_xinerama_screen_info_iterator_t i ** @returns xcb_generic_iterator_t ** *****************************************************************************/ - + xcb_generic_iterator_t xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_iterator_t i /**< */) { @@ -53,14 +60,14 @@ xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_iterator_t i /**< */) /***************************************************************************** ** ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version - ** + ** ** @param xcb_connection_t *c ** @param uint8_t major ** @param uint8_t minor ** @returns xcb_xinerama_query_version_cookie_t ** *****************************************************************************/ - + xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version (xcb_connection_t *c /**< */, uint8_t major /**< */, @@ -72,18 +79,19 @@ xcb_xinerama_query_version (xcb_connection_t *c /**< */, /* opcode */ XCB_XINERAMA_QUERY_VERSION, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_query_version_cookie_t xcb_ret; xcb_xinerama_query_version_request_t xcb_out; - + xcb_out.major = major; xcb_out.minor = minor; - + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -92,14 +100,14 @@ xcb_xinerama_query_version (xcb_connection_t *c /**< */, /***************************************************************************** ** ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version_unchecked - ** + ** ** @param xcb_connection_t *c ** @param uint8_t major ** @param uint8_t minor ** @returns xcb_xinerama_query_version_cookie_t ** *****************************************************************************/ - + xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version_unchecked (xcb_connection_t *c /**< */, uint8_t major /**< */, @@ -111,18 +119,19 @@ xcb_xinerama_query_version_unchecked (xcb_connection_t *c /**< */, /* opcode */ XCB_XINERAMA_QUERY_VERSION, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_query_version_cookie_t xcb_ret; xcb_xinerama_query_version_request_t xcb_out; - + xcb_out.major = major; xcb_out.minor = minor; - + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -131,14 +140,14 @@ xcb_xinerama_query_version_unchecked (xcb_connection_t *c /**< */, /***************************************************************************** ** ** xcb_xinerama_query_version_reply_t * xcb_xinerama_query_version_reply - ** + ** ** @param xcb_connection_t *c ** @param xcb_xinerama_query_version_cookie_t cookie ** @param xcb_generic_error_t **e ** @returns xcb_xinerama_query_version_reply_t * ** *****************************************************************************/ - + xcb_xinerama_query_version_reply_t * xcb_xinerama_query_version_reply (xcb_connection_t *c /**< */, xcb_xinerama_query_version_cookie_t cookie /**< */, @@ -151,13 +160,13 @@ xcb_xinerama_query_version_reply (xcb_connection_t *c /**< /***************************************************************************** ** ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state - ** + ** ** @param xcb_connection_t *c ** @param xcb_window_t window ** @returns xcb_xinerama_get_state_cookie_t ** *****************************************************************************/ - + xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state (xcb_connection_t *c /**< */, xcb_window_t window /**< */) @@ -168,17 +177,18 @@ xcb_xinerama_get_state (xcb_connection_t *c /**< */, /* opcode */ XCB_XINERAMA_GET_STATE, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_get_state_cookie_t xcb_ret; xcb_xinerama_get_state_request_t xcb_out; - + xcb_out.window = window; - + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -187,13 +197,13 @@ xcb_xinerama_get_state (xcb_connection_t *c /**< */, /***************************************************************************** ** ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state_unchecked - ** + ** ** @param xcb_connection_t *c ** @param xcb_window_t window ** @returns xcb_xinerama_get_state_cookie_t ** *****************************************************************************/ - + xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state_unchecked (xcb_connection_t *c /**< */, xcb_window_t window /**< */) @@ -204,17 +214,18 @@ xcb_xinerama_get_state_unchecked (xcb_connection_t *c /**< */, /* opcode */ XCB_XINERAMA_GET_STATE, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_get_state_cookie_t xcb_ret; xcb_xinerama_get_state_request_t xcb_out; - + xcb_out.window = window; - + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -223,14 +234,14 @@ xcb_xinerama_get_state_unchecked (xcb_connection_t *c /**< */, /***************************************************************************** ** ** xcb_xinerama_get_state_reply_t * xcb_xinerama_get_state_reply - ** + ** ** @param xcb_connection_t *c ** @param xcb_xinerama_get_state_cookie_t cookie ** @param xcb_generic_error_t **e ** @returns xcb_xinerama_get_state_reply_t * ** *****************************************************************************/ - + xcb_xinerama_get_state_reply_t * xcb_xinerama_get_state_reply (xcb_connection_t *c /**< */, xcb_xinerama_get_state_cookie_t cookie /**< */, @@ -243,13 +254,13 @@ xcb_xinerama_get_state_reply (xcb_connection_t *c /**< */, /***************************************************************************** ** ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count - ** + ** ** @param xcb_connection_t *c ** @param xcb_window_t window ** @returns xcb_xinerama_get_screen_count_cookie_t ** *****************************************************************************/ - + xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count (xcb_connection_t *c /**< */, xcb_window_t window /**< */) @@ -260,17 +271,18 @@ xcb_xinerama_get_screen_count (xcb_connection_t *c /**< */, /* opcode */ XCB_XINERAMA_GET_SCREEN_COUNT, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_get_screen_count_cookie_t xcb_ret; xcb_xinerama_get_screen_count_request_t xcb_out; - + xcb_out.window = window; - + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -279,13 +291,13 @@ xcb_xinerama_get_screen_count (xcb_connection_t *c /**< */, /***************************************************************************** ** ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count_unchecked - ** + ** ** @param xcb_connection_t *c ** @param xcb_window_t window ** @returns xcb_xinerama_get_screen_count_cookie_t ** *****************************************************************************/ - + xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c /**< */, xcb_window_t window /**< */) @@ -296,17 +308,18 @@ xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c /**< */, /* opcode */ XCB_XINERAMA_GET_SCREEN_COUNT, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_get_screen_count_cookie_t xcb_ret; xcb_xinerama_get_screen_count_request_t xcb_out; - + xcb_out.window = window; - + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -315,14 +328,14 @@ xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c /**< */, /***************************************************************************** ** ** xcb_xinerama_get_screen_count_reply_t * xcb_xinerama_get_screen_count_reply - ** + ** ** @param xcb_connection_t *c ** @param xcb_xinerama_get_screen_count_cookie_t cookie ** @param xcb_generic_error_t **e ** @returns xcb_xinerama_get_screen_count_reply_t * ** *****************************************************************************/ - + xcb_xinerama_get_screen_count_reply_t * xcb_xinerama_get_screen_count_reply (xcb_connection_t *c /**< */, xcb_xinerama_get_screen_count_cookie_t cookie /**< */, @@ -335,14 +348,14 @@ xcb_xinerama_get_screen_count_reply (xcb_connection_t *c /***************************************************************************** ** ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size - ** + ** ** @param xcb_connection_t *c ** @param xcb_window_t window ** @param uint32_t screen ** @returns xcb_xinerama_get_screen_size_cookie_t ** *****************************************************************************/ - + xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size (xcb_connection_t *c /**< */, xcb_window_t window /**< */, @@ -354,18 +367,19 @@ xcb_xinerama_get_screen_size (xcb_connection_t *c /**< */, /* opcode */ XCB_XINERAMA_GET_SCREEN_SIZE, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_get_screen_size_cookie_t xcb_ret; xcb_xinerama_get_screen_size_request_t xcb_out; - + xcb_out.window = window; xcb_out.screen = screen; - + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -374,14 +388,14 @@ xcb_xinerama_get_screen_size (xcb_connection_t *c /**< */, /***************************************************************************** ** ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size_unchecked - ** + ** ** @param xcb_connection_t *c ** @param xcb_window_t window ** @param uint32_t screen ** @returns xcb_xinerama_get_screen_size_cookie_t ** *****************************************************************************/ - + xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c /**< */, xcb_window_t window /**< */, @@ -393,18 +407,19 @@ xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c /**< */, /* opcode */ XCB_XINERAMA_GET_SCREEN_SIZE, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_get_screen_size_cookie_t xcb_ret; xcb_xinerama_get_screen_size_request_t xcb_out; - + xcb_out.window = window; xcb_out.screen = screen; - + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -413,14 +428,14 @@ xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c /**< */, /***************************************************************************** ** ** xcb_xinerama_get_screen_size_reply_t * xcb_xinerama_get_screen_size_reply - ** + ** ** @param xcb_connection_t *c ** @param xcb_xinerama_get_screen_size_cookie_t cookie ** @param xcb_generic_error_t **e ** @returns xcb_xinerama_get_screen_size_reply_t * ** *****************************************************************************/ - + xcb_xinerama_get_screen_size_reply_t * xcb_xinerama_get_screen_size_reply (xcb_connection_t *c /**< */, xcb_xinerama_get_screen_size_cookie_t cookie /**< */, @@ -433,12 +448,12 @@ xcb_xinerama_get_screen_size_reply (xcb_connection_t *c / /***************************************************************************** ** ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active - ** + ** ** @param xcb_connection_t *c ** @returns xcb_xinerama_is_active_cookie_t ** *****************************************************************************/ - + xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active (xcb_connection_t *c /**< */) { @@ -448,16 +463,17 @@ xcb_xinerama_is_active (xcb_connection_t *c /**< */) /* opcode */ XCB_XINERAMA_IS_ACTIVE, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_is_active_cookie_t xcb_ret; xcb_xinerama_is_active_request_t xcb_out; - - + + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -466,12 +482,12 @@ xcb_xinerama_is_active (xcb_connection_t *c /**< */) /***************************************************************************** ** ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active_unchecked - ** + ** ** @param xcb_connection_t *c ** @returns xcb_xinerama_is_active_cookie_t ** *****************************************************************************/ - + xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active_unchecked (xcb_connection_t *c /**< */) { @@ -481,16 +497,17 @@ xcb_xinerama_is_active_unchecked (xcb_connection_t *c /**< */) /* opcode */ XCB_XINERAMA_IS_ACTIVE, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_is_active_cookie_t xcb_ret; xcb_xinerama_is_active_request_t xcb_out; - - + + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -499,14 +516,14 @@ xcb_xinerama_is_active_unchecked (xcb_connection_t *c /**< */) /***************************************************************************** ** ** xcb_xinerama_is_active_reply_t * xcb_xinerama_is_active_reply - ** + ** ** @param xcb_connection_t *c ** @param xcb_xinerama_is_active_cookie_t cookie ** @param xcb_generic_error_t **e ** @returns xcb_xinerama_is_active_reply_t * ** *****************************************************************************/ - + xcb_xinerama_is_active_reply_t * xcb_xinerama_is_active_reply (xcb_connection_t *c /**< */, xcb_xinerama_is_active_cookie_t cookie /**< */, @@ -515,16 +532,45 @@ xcb_xinerama_is_active_reply (xcb_connection_t *c /**< */, return (xcb_xinerama_is_active_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); } +int +xcb_xinerama_query_screens_sizeof (const void *_buffer /**< */) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_xinerama_query_screens_reply_t *_aux = (xcb_xinerama_query_screens_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to; + + + xcb_block_len += sizeof(xcb_xinerama_query_screens_reply_t); + xcb_tmp += xcb_block_len; + /* screen_info */ + xcb_block_len += _aux->number * sizeof(xcb_xinerama_screen_info_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_xinerama_screen_info_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + /***************************************************************************** ** ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens - ** + ** ** @param xcb_connection_t *c ** @returns xcb_xinerama_query_screens_cookie_t ** *****************************************************************************/ - + xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens (xcb_connection_t *c /**< */) { @@ -534,16 +580,17 @@ xcb_xinerama_query_screens (xcb_connection_t *c /**< */) /* opcode */ XCB_XINERAMA_QUERY_SCREENS, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_query_screens_cookie_t xcb_ret; xcb_xinerama_query_screens_request_t xcb_out; - - + + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -552,12 +599,12 @@ xcb_xinerama_query_screens (xcb_connection_t *c /**< */) /***************************************************************************** ** ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens_unchecked - ** + ** ** @param xcb_connection_t *c ** @returns xcb_xinerama_query_screens_cookie_t ** *****************************************************************************/ - + xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens_unchecked (xcb_connection_t *c /**< */) { @@ -567,16 +614,17 @@ xcb_xinerama_query_screens_unchecked (xcb_connection_t *c /**< */) /* opcode */ XCB_XINERAMA_QUERY_SCREENS, /* isvoid */ 0 }; - + struct iovec xcb_parts[4]; xcb_xinerama_query_screens_cookie_t xcb_ret; xcb_xinerama_query_screens_request_t xcb_out; - - + + xcb_parts[2].iov_base = (char *) &xcb_out; xcb_parts[2].iov_len = sizeof(xcb_out); xcb_parts[3].iov_base = 0; xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); return xcb_ret; } @@ -585,12 +633,12 @@ xcb_xinerama_query_screens_unchecked (xcb_connection_t *c /**< */) /***************************************************************************** ** ** xcb_xinerama_screen_info_t * xcb_xinerama_query_screens_screen_info - ** + ** ** @param const xcb_xinerama_query_screens_reply_t *R ** @returns xcb_xinerama_screen_info_t * ** *****************************************************************************/ - + xcb_xinerama_screen_info_t * xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t *R /**< */) { @@ -601,12 +649,12 @@ xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t /***************************************************************************** ** ** int xcb_xinerama_query_screens_screen_info_length - ** + ** ** @param const xcb_xinerama_query_screens_reply_t *R ** @returns int ** *****************************************************************************/ - + int xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_reply_t *R /**< */) { @@ -617,12 +665,12 @@ xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_ /***************************************************************************** ** ** xcb_xinerama_screen_info_iterator_t xcb_xinerama_query_screens_screen_info_iterator - ** + ** ** @param const xcb_xinerama_query_screens_reply_t *R ** @returns xcb_xinerama_screen_info_iterator_t ** *****************************************************************************/ - + xcb_xinerama_screen_info_iterator_t xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screens_reply_t *R /**< */) { @@ -637,14 +685,14 @@ xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screen /***************************************************************************** ** ** xcb_xinerama_query_screens_reply_t * xcb_xinerama_query_screens_reply - ** + ** ** @param xcb_connection_t *c ** @param xcb_xinerama_query_screens_cookie_t cookie ** @param xcb_generic_error_t **e ** @returns xcb_xinerama_query_screens_reply_t * ** *****************************************************************************/ - + xcb_xinerama_query_screens_reply_t * xcb_xinerama_query_screens_reply (xcb_connection_t *c /**< */, xcb_xinerama_query_screens_cookie_t cookie /**< */, |