diff --git a/NOTICE b/NOTICE index 14955ae64e8..85ecf5a9bc6 100644 --- a/NOTICE +++ b/NOTICE @@ -1,4 +1,4 @@ -Copyright (C) 1985-2023 by the Massachusetts Institute of Technology. +Copyright (C) 1985-2024 by the Massachusetts Institute of Technology. All rights reserved. diff --git a/README b/README index 67c8d108be6..6d6f7f16e3d 100644 --- a/README +++ b/README @@ -6,7 +6,7 @@ Copyright and Other Notices --------------------------- -Copyright (C) 1985-2023 by the Massachusetts Institute of Technology +Copyright (C) 1985-2024 by the Massachusetts Institute of Technology and its contributors. All rights reserved. Please see the file named NOTICE for additional notices. @@ -97,6 +97,30 @@ removed. Beginning with the krb5-1.18 release, all support for single-DES encryption types has been removed. +Major changes in 1.21.3 (2024-06-26) +------------------------------------ + +This is a bug fix release. + +* Fix vulnerabilities in GSS message token handling [CVE-2024-37370, + CVE-2024-37371]. + +* Fix a potential bad pointer free in krb5_cccol_have_contents(). + +* Fix a memory leak in the macOS ccache type. + +krb5-1.21.2 changes by ticket ID +-------------------------------- + +9102 Eliminate sim_client include of getopt.h +9103 segfault trying to free a garbage pointer +9104 Work around Doxygen 1.9.7 change +9107 In PKINIT, check for null PKCS7 enveloped fields +9109 memory leak on macos +9115 Fix leak in KDC NDR encoding +9125 Formatting error in realm_config.rst +9128 Fix vulnerabilities in GSS message token handling + Major changes in 1.21.2 (2023-08-14) ------------------------------------ @@ -324,6 +348,7 @@ reports, suggestions, and valuable resources: Michael Calmer Andrea Campi Julien Chaffraix + Jacob Champion Puran Chand Ravi Channavajhala Srinivas Cheruku @@ -454,6 +479,7 @@ reports, suggestions, and valuable resources: Mantas Mikulėnas Markus Moeller Kyle Moffett + Jon Moore Paul Moore Keiichi Mori Michael Morony @@ -506,6 +532,7 @@ reports, suggestions, and valuable resources: Richard Silverman Cel Skeggs Simo Sorce + Anthony Sottile Michael Spang Michael Ströder Bjørn Tore Sund diff --git a/doc/admin/realm_config.rst b/doc/admin/realm_config.rst index 35e4857e58f..9f5ad507465 100644 --- a/doc/admin/realm_config.rst +++ b/doc/admin/realm_config.rst @@ -156,7 +156,8 @@ _kerberos-master._udp If you have only one KDC, or for whatever reason there is no accessible KDC that would get database changes faster than the - others, you do not need to define this entry. _kerberos-adm._tcp + others, you do not need to define this entry. +_kerberos-adm._tcp This should list port 749 on your primary KDC. Support for it is not complete at this time, but it will eventually be used by the :ref:`kadmin(1)` program and related utilities. For now, you will diff --git a/doc/conf.py b/doc/conf.py index cd76f5999f1..ecf9020a727 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -45,7 +45,7 @@ # General information about the project. project = u'MIT Kerberos' -copyright = u'1985-2023, MIT' +copyright = u'1985-2024, MIT' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/doc/copyright.rst b/doc/copyright.rst index a98b26833bf..85ecebece00 100644 --- a/doc/copyright.rst +++ b/doc/copyright.rst @@ -1,7 +1,7 @@ Copyright ========= -Copyright |copy| 1985-2023 by the Massachusetts Institute of +Copyright |copy| 1985-2024 by the Massachusetts Institute of Technology and its contributors. All rights reserved. See :ref:`mitK5license` for additional copyright and license diff --git a/doc/html/.buildinfo b/doc/html/.buildinfo index 97a19c763b8..a9714486a8e 100644 --- a/doc/html/.buildinfo +++ b/doc/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 843ce36390960f2757117b09c16a0df0 +config: 9ca503a4e24138fa47d4451ee9426bb5 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/html/_sources/admin/realm_config.rst.txt b/doc/html/_sources/admin/realm_config.rst.txt index 35e4857e58f..9f5ad507465 100644 --- a/doc/html/_sources/admin/realm_config.rst.txt +++ b/doc/html/_sources/admin/realm_config.rst.txt @@ -156,7 +156,8 @@ _kerberos-master._udp If you have only one KDC, or for whatever reason there is no accessible KDC that would get database changes faster than the - others, you do not need to define this entry. _kerberos-adm._tcp + others, you do not need to define this entry. +_kerberos-adm._tcp This should list port 749 on your primary KDC. Support for it is not complete at this time, but it will eventually be used by the :ref:`kadmin(1)` program and related utilities. For now, you will diff --git a/doc/html/_sources/appdev/refs/api/krb5_425_conv_principal.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_425_conv_principal.rst.txt index c6b68270e29..6673b5bde86 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_425_conv_principal.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_425_conv_principal.rst.txt @@ -40,7 +40,7 @@ This function builds a *princ* from V4 specification based on given input *name. -Use :c:func:`krb5_free_principal()` to free *princ* when it is no longer needed. +Use krb5_free_principal() to free *princ* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_anonymous_principal.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_anonymous_principal.rst.txt index 4de5547b10d..0b715e119a0 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_anonymous_principal.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_anonymous_principal.rst.txt @@ -39,7 +39,7 @@ This function returns constant storage that must not be freed. .. .. seealso:: - :data:`KRB5_ANONYMOUS_PRINCSTR` + #KRB5_ANONYMOUS_PRINCSTR diff --git a/doc/html/_sources/appdev/refs/api/krb5_anonymous_realm.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_anonymous_realm.rst.txt index b8366abb426..ec3cc4e3108 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_anonymous_realm.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_anonymous_realm.rst.txt @@ -39,7 +39,7 @@ This function returns constant storage that must not be freed. .. .. seealso:: - :data:`KRB5_ANONYMOUS_REALMSTR` + #KRB5_ANONYMOUS_REALMSTR diff --git a/doc/html/_sources/appdev/refs/api/krb5_appdefault_boolean.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_appdefault_boolean.rst.txt index e1643411340..60802e5be06 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_appdefault_boolean.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_appdefault_boolean.rst.txt @@ -49,7 +49,7 @@ This function gets the application defaults for *option* based on the given *app .. .. seealso:: - :c:func:`krb5_appdefault_string()` + krb5_appdefault_string() diff --git a/doc/html/_sources/appdev/refs/api/krb5_appdefault_string.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_appdefault_string.rst.txt index 1c7590b7519..1909f1b3f8b 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_appdefault_string.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_appdefault_string.rst.txt @@ -49,7 +49,7 @@ This function gets the application defaults for *option* based on the given *app .. .. seealso:: - :c:func:`krb5_appdefault_boolean()` + krb5_appdefault_boolean() diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_free.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_free.rst.txt index 2062de7842e..93a8d690fb5 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_free.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_free.rst.txt @@ -30,7 +30,7 @@ krb5_auth_con_free - Free a krb5_auth_context structure. -This function frees an auth context allocated by :c:func:`krb5_auth_con_init()` . +This function frees an auth context allocated by krb5_auth_con_init(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_genaddrs.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_genaddrs.rst.txt index b8a3f40538e..f61c2318531 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_genaddrs.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_genaddrs.rst.txt @@ -40,16 +40,16 @@ This function sets the local and/or remote addresses in *auth_context* based on - - :data:`KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR` Generate local address. + - #KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR Generate local address. - - :data:`KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR` Generate remote address. + - #KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR Generate remote address. - - :data:`KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR` Generate local address and port. + - #KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR Generate local address and port. - - :data:`KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR` Generate remote address and port. + - #KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR Generate remote address and port. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getauthenticator.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getauthenticator.rst.txt index a2883385982..0e67df91bdb 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getauthenticator.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getauthenticator.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_getauthenticator - Retrieve the authenticator from an auth contex -Use :c:func:`krb5_free_authenticator()` to free *authenticator* when it is no longer needed. +Use krb5_free_authenticator() to free *authenticator* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getflags.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getflags.rst.txt index 1884f127a55..db9020e2d30 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getflags.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getflags.rst.txt @@ -34,16 +34,16 @@ krb5_auth_con_getflags - Retrieve flags from a krb5_auth_context structure. Valid values for *flags* are: - - :data:`KRB5_AUTH_CONTEXT_DO_TIME` Use timestamps + - #KRB5_AUTH_CONTEXT_DO_TIME Use timestamps - - :data:`KRB5_AUTH_CONTEXT_RET_TIME` Save timestamps + - #KRB5_AUTH_CONTEXT_RET_TIME Save timestamps - - :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` Use sequence numbers + - #KRB5_AUTH_CONTEXT_DO_SEQUENCE Use sequence numbers - - :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` Save sequence numbers + - #KRB5_AUTH_CONTEXT_RET_SEQUENCE Save sequence numbers diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getkey.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getkey.rst.txt index cfe99ff259c..b5abc85536e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getkey.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getkey.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_getkey - Retrieve the session key from an auth context as a keybl -This function creates a keyblock containing the session key from *auth_context* . Use :c:func:`krb5_free_keyblock()` to free *keyblock* when it is no longer needed +This function creates a keyblock containing the session key from *auth_context* . Use krb5_free_keyblock() to free *keyblock* when it is no longer needed diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getkey_k.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getkey_k.rst.txt index 0a320aeb3e6..4d87db9232d 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getkey_k.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getkey_k.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_getkey_k - Retrieve the session key from an auth context. -This function sets *key* to the session key from *auth_context* . Use :c:func:`krb5_k_free_key()` to release *key* when it is no longer needed. +This function sets *key* to the session key from *auth_context* . Use krb5_k_free_key() to release *key* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getlocalseqnumber.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getlocalseqnumber.rst.txt index 977d0efbf5e..0b340a3fb52 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getlocalseqnumber.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getlocalseqnumber.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_getlocalseqnumber - Retrieve the local sequence number from an au -Retrieve the local sequence number from *auth_context* and return it in *seqnumber* . The :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` flag must be set in *auth_context* for this function to be useful. +Retrieve the local sequence number from *auth_context* and return it in *seqnumber* . The #KRB5_AUTH_CONTEXT_DO_SEQUENCE flag must be set in *auth_context* for this function to be useful. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getlocalsubkey.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getlocalsubkey.rst.txt index 655b9d581d3..a938d7495f6 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getlocalsubkey.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getlocalsubkey.rst.txt @@ -24,7 +24,7 @@ krb5_auth_con_getlocalsubkey .. -DEPRECATED Replaced by krb5_auth_con_getsendsubkey() . +DEPRECATED Replaced by krb5_auth_con_getsendsubkey(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getrecvsubkey.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getrecvsubkey.rst.txt index 1b7ddfa63c7..ece6d0c1529 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getrecvsubkey.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getrecvsubkey.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_getrecvsubkey - Retrieve the receiving subkey from an auth contex -This function creates a keyblock containing the receiving subkey from *auth_context* . Use :c:func:`krb5_free_keyblock()` to free *keyblock* when it is no longer needed. +This function creates a keyblock containing the receiving subkey from *auth_context* . Use krb5_free_keyblock() to free *keyblock* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getrecvsubkey_k.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getrecvsubkey_k.rst.txt index 44ce57307ba..7caf5b03f92 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getrecvsubkey_k.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getrecvsubkey_k.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_getrecvsubkey_k - Retrieve the receiving subkey from an auth cont -This function sets *key* to the receiving subkey from *auth_context* . Use :c:func:`krb5_k_free_key()` to release *key* when it is no longer needed. +This function sets *key* to the receiving subkey from *auth_context* . Use krb5_k_free_key() to release *key* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getremoteseqnumber.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getremoteseqnumber.rst.txt index 9dee0e61fd2..8f2a7ffdb48 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getremoteseqnumber.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getremoteseqnumber.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_getremoteseqnumber - Retrieve the remote sequence number from an -Retrieve the remote sequence number from *auth_context* and return it in *seqnumber* . The :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` flag must be set in *auth_context* for this function to be useful. +Retrieve the remote sequence number from *auth_context* and return it in *seqnumber* . The #KRB5_AUTH_CONTEXT_DO_SEQUENCE flag must be set in *auth_context* for this function to be useful. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getremotesubkey.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getremotesubkey.rst.txt index 3f1095c9fe1..25f42d905ed 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getremotesubkey.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getremotesubkey.rst.txt @@ -24,7 +24,7 @@ krb5_auth_con_getremotesubkey .. -DEPRECATED Replaced by krb5_auth_con_getrecvsubkey() . +DEPRECATED Replaced by krb5_auth_con_getrecvsubkey(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getsendsubkey.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getsendsubkey.rst.txt index 6a842b6a3cc..fa7c6cf9b2c 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getsendsubkey.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getsendsubkey.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_getsendsubkey - Retrieve the send subkey from an auth context as -This function creates a keyblock containing the send subkey from *auth_context* . Use :c:func:`krb5_free_keyblock()` to free *keyblock* when it is no longer needed. +This function creates a keyblock containing the send subkey from *auth_context* . Use krb5_free_keyblock() to free *keyblock* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getsendsubkey_k.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getsendsubkey_k.rst.txt index c63e6c9613a..bfbbf574955 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_getsendsubkey_k.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_getsendsubkey_k.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_getsendsubkey_k - Retrieve the send subkey from an auth context. -This function sets *key* to the send subkey from *auth_context* . Use :c:func:`krb5_k_free_key()` to release *key* when it is no longer needed. +This function sets *key* to the send subkey from *auth_context* . Use krb5_k_free_key() to release *key* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_init.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_init.rst.txt index 9c5ee8f1045..9f61f30be4e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_init.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_init.rst.txt @@ -34,11 +34,11 @@ This function creates an authentication context to hold configuration and state -By default, flags for the context are set to enable the use of the replay cache ( :data:`KRB5_AUTH_CONTEXT_DO_TIME` ), but not sequence numbers. Use :c:func:`krb5_auth_con_setflags()` to change the flags. +By default, flags for the context are set to enable the use of the replay cache (#KRB5_AUTH_CONTEXT_DO_TIME), but not sequence numbers. Use krb5_auth_con_setflags() to change the flags. -The allocated *auth_context* must be freed with :c:func:`krb5_auth_con_free()` when it is no longer needed. +The allocated *auth_context* must be freed with krb5_auth_con_free() when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_initivector.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_initivector.rst.txt index 4dc9e0afb9a..31e8403db8e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_initivector.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_initivector.rst.txt @@ -30,7 +30,7 @@ krb5_auth_con_initivector - Cause an auth context to use cipher state. -Prepare *auth_context* to use cipher state when :c:func:`krb5_mk_priv()` or :c:func:`krb5_rd_priv()` encrypt or decrypt data. +Prepare *auth_context* to use cipher state when krb5_mk_priv() or krb5_rd_priv() encrypt or decrypt data. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_set_checksum_func.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_set_checksum_func.rst.txt index a762d4e85c9..c7f19f0d8ef 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_set_checksum_func.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_set_checksum_func.rst.txt @@ -34,7 +34,7 @@ krb5_auth_con_set_checksum_func - Set a checksum callback in an auth context. -Set a callback to obtain checksum data in :c:func:`krb5_mk_req()` . The callback will be invoked after the subkey and local sequence number are stored in *auth_context* . +Set a callback to obtain checksum data in krb5_mk_req(). The callback will be invoked after the subkey and local sequence number are stored in *auth_context* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_set_req_cksumtype.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_set_req_cksumtype.rst.txt index 76c948e67dc..4a79bfd6e5f 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_set_req_cksumtype.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_set_req_cksumtype.rst.txt @@ -32,7 +32,7 @@ krb5_auth_con_set_req_cksumtype - Set checksum type in an an auth context. -This function sets the checksum type in *auth_context* to be used by :c:func:`krb5_mk_req()` for the authenticator checksum. +This function sets the checksum type in *auth_context* to be used by krb5_mk_req() for the authenticator checksum. diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_setaddrs.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_setaddrs.rst.txt index 47302190492..0a9a8e805ae 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_setaddrs.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_setaddrs.rst.txt @@ -48,7 +48,7 @@ This function releases the storage assigned to the contents of the local and rem .. .. seealso:: - :c:func:`krb5_auth_con_genaddrs()` + krb5_auth_con_genaddrs() diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_setflags.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_setflags.rst.txt index a159e23da2c..d8cb6e71c5d 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_setflags.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_setflags.rst.txt @@ -34,16 +34,16 @@ krb5_auth_con_setflags - Set a flags field in a krb5_auth_context structure. Valid values for *flags* are: - - :data:`KRB5_AUTH_CONTEXT_DO_TIME` Use timestamps + - #KRB5_AUTH_CONTEXT_DO_TIME Use timestamps - - :data:`KRB5_AUTH_CONTEXT_RET_TIME` Save timestamps + - #KRB5_AUTH_CONTEXT_RET_TIME Save timestamps - - :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` Use sequence numbers + - #KRB5_AUTH_CONTEXT_DO_SEQUENCE Use sequence numbers - - :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` Save sequence numbers + - #KRB5_AUTH_CONTEXT_RET_SEQUENCE Save sequence numbers diff --git a/doc/html/_sources/appdev/refs/api/krb5_auth_con_setports.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_auth_con_setports.rst.txt index 279c327e244..e64c42193cf 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_auth_con_setports.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_auth_con_setports.rst.txt @@ -48,7 +48,7 @@ This function releases the storage assigned to the contents of the local and rem .. .. seealso:: - :c:func:`krb5_auth_con_genaddrs()` + krb5_auth_con_genaddrs() diff --git a/doc/html/_sources/appdev/refs/api/krb5_build_principal.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_build_principal.rst.txt index 1e0a8b3e71e..fddcb462de8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_build_principal.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_build_principal.rst.txt @@ -37,7 +37,7 @@ krb5_build_principal - Build a principal name using null-terminated strings. -Call :c:func:`krb5_free_principal()` to free *princ* when it is no longer needed. +Call krb5_free_principal() to free *princ* when it is no longer needed. @@ -65,7 +65,7 @@ Beginning with release 1.20, the name type of the principal will be inferred as .. note:: - :c:func:`krb5_build_principal()` and :c:func:`krb5_build_principal_alloc_va()` perform the same task. :c:func:`krb5_build_principal()` takes variadic arguments. :c:func:`krb5_build_principal_alloc_va()` takes a pre-computed *varargs* pointer. + krb5_build_principal() and krb5_build_principal_alloc_va() perform the same task. krb5_build_principal() takes variadic arguments. krb5_build_principal_alloc_va() takes a pre-computed *varargs* pointer. diff --git a/doc/html/_sources/appdev/refs/api/krb5_build_principal_alloc_va.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_build_principal_alloc_va.rst.txt index 6f8a57e49e8..904f4161200 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_build_principal_alloc_va.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_build_principal_alloc_va.rst.txt @@ -39,11 +39,11 @@ krb5_build_principal_alloc_va - Build a principal name, using a precomputed var -Similar to :c:func:`krb5_build_principal()` , this function builds a principal name, but its name components are specified as a va_list. +Similar to krb5_build_principal(), this function builds a principal name, but its name components are specified as a va_list. -Use :c:func:`krb5_free_principal()` to deallocate *princ* when it is no longer needed. +Use krb5_free_principal() to deallocate *princ* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_build_principal_ext.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_build_principal_ext.rst.txt index 009023ea605..6f1b3ba6105 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_build_principal_ext.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_build_principal_ext.rst.txt @@ -37,7 +37,7 @@ krb5_build_principal_ext - Build a principal name using length-counted strings. -This function creates a principal from a length-counted string and a variable-length list of length-counted components. The list of components ends with the first 0 length argument (so it is not possible to specify an empty component with this function). Call :c:func:`krb5_free_principal()` to free allocated memory for principal when it is no longer needed. +This function creates a principal from a length-counted string and a variable-length list of length-counted components. The list of components ends with the first 0 length argument (so it is not possible to specify an empty component with this function). Call krb5_free_principal() to free allocated memory for principal when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_build_principal_va.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_build_principal_va.rst.txt index 88f530e27ba..a30c39f11d0 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_build_principal_va.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_build_principal_va.rst.txt @@ -28,7 +28,7 @@ krb5_build_principal_va .. -DEPRECATED Replaced by krb5_build_principal_alloc_va() . +DEPRECATED Replaced by krb5_build_principal_alloc_va(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_crypto_length.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_crypto_length.rst.txt index 3879981ef81..5a38d3b0c48 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_crypto_length.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_crypto_length.rst.txt @@ -14,7 +14,7 @@ krb5_c_crypto_length - Return a length of a message field specific to the encry **[in]** **enctype** - Encryption type - **[in]** **type** - Type field (See :data:`KRB5_CRYPTO_TYPE` types) + **[in]** **type** - Type field (See KRB5_CRYPTO_TYPE macros) **[out]** **size** - Length of the *type* specific to *enctype* diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_crypto_length_iov.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_crypto_length_iov.rst.txt index 1b4edaa5074..cb4d18d1db0 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_crypto_length_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_crypto_length_iov.rst.txt @@ -34,7 +34,7 @@ krb5_c_crypto_length_iov - Fill in lengths for header, trailer and padding in a -Padding is set to the actual padding required based on the provided *data* buffers. Typically this API is used after setting up the data buffers and :data:`KRB5_CRYPTO_TYPE_SIGN_ONLY` buffers, but before actually allocating header, trailer and padding. +Padding is set to the actual padding required based on the provided *data* buffers. Typically this API is used after setting up the data buffers and #KRB5_CRYPTO_TYPE_SIGN_ONLY buffers, but before actually allocating header, trailer and padding. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_decrypt.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_decrypt.rst.txt index 31f011d12e8..e8371559db6 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_decrypt.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_decrypt.rst.txt @@ -14,7 +14,7 @@ krb5_c_decrypt - Decrypt data using a key (operates on keyblock). **[in]** **key** - Encryption key - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[inout]** **cipher_state** - Cipher state; specify NULL if not needed @@ -58,7 +58,7 @@ This function decrypts the data block *input* and stores the output into *output .. note:: - The caller must initialize *output* and allocate at least enough space for the result. The usual practice is to allocate an output buffer as long as the ciphertext, and let :c:func:`krb5_c_decrypt()` trim *output->length* . For some enctypes, the resulting *output->length* may include padding bytes. + The caller must initialize *output* and allocate at least enough space for the result. The usual practice is to allocate an output buffer as long as the ciphertext, and let krb5_c_decrypt() trim *output->length* . For some enctypes, the resulting *output->length* may include padding bytes. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_decrypt_iov.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_decrypt_iov.rst.txt index 7b925178fba..96dd9a258ca 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_decrypt_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_decrypt_iov.rst.txt @@ -14,7 +14,7 @@ krb5_c_decrypt_iov - Decrypt data in place supporting AEAD (operates on keybloc **[in]** **keyblock** - Encryption key - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[in]** **cipher_state** - Cipher state; specify NULL if not needed @@ -52,7 +52,7 @@ This function decrypts the data block *data* and stores the output in-place. The .. .. seealso:: - :c:func:`krb5_c_decrypt_iov()` + krb5_c_decrypt_iov() @@ -61,7 +61,7 @@ This function decrypts the data block *data* and stores the output in-place. The .. note:: - On return from a :c:func:`krb5_c_decrypt_iov()` call, the *data->length* in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. + On return from a krb5_c_decrypt_iov() call, the *data->length* in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_encrypt.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_encrypt.rst.txt index 7b6cb038b3b..b67a8db61b2 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_encrypt.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_encrypt.rst.txt @@ -14,7 +14,7 @@ krb5_c_encrypt - Encrypt data using a key (operates on keyblock). **[in]** **key** - Encryption key - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[inout]** **cipher_state** - Cipher state; specify NULL if not needed @@ -38,7 +38,7 @@ krb5_c_encrypt - Encrypt data using a key (operates on keyblock). -This function encrypts the data block *input* and stores the output into *output* . The actual encryption key will be derived from *key* and *usage* if key derivation is specified for the encryption type. If non-null, *cipher_state* specifies the beginning state for the encryption operation, and is updated with the state to be passed as input to the next operation. +This function encrypts the data block *input* and stores the outputinto *output* . The actual encryption key will be derived from *key* and *usage* if key derivation is specified for the encryption type. If non-null, *cipher_state* specifies the beginning state for the encryption operation, and is updated with the state to be passed as input to the next operation. @@ -58,7 +58,7 @@ This function encrypts the data block *input* and stores the output into *output .. note:: - The caller must initialize *output* and allocate at least enough space for the result (using :c:func:`krb5_c_encrypt_length()` to determine the amount of space needed). *output->length* will be set to the actual length of the ciphertext. + The caller must initialize *output* and allocate at least enough space for the result (using krb5_c_encrypt_length() to determine the amount of space needed). *output->length* will be set to the actual length of the ciphertext. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_encrypt_iov.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_encrypt_iov.rst.txt index 5ad8585fe07..619bc8c54b4 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_encrypt_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_encrypt_iov.rst.txt @@ -14,7 +14,7 @@ krb5_c_encrypt_iov - Encrypt data in place supporting AEAD (operates on keybloc **[in]** **keyblock** - Encryption key - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[in]** **cipher_state** - Cipher state; specify NULL if not needed @@ -52,7 +52,7 @@ This function encrypts the data block *data* and stores the output in-place. The .. .. seealso:: - :c:func:`krb5_c_decrypt_iov()` + krb5_c_decrypt_iov() @@ -61,7 +61,7 @@ This function encrypts the data block *data* and stores the output in-place. The .. note:: - On return from a :c:func:`krb5_c_encrypt_iov()` call, the *data->length* in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. + On return from a krb5_c_encrypt_iov() call, the *data->length* in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_free_state.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_free_state.rst.txt index f934e959554..18da478c378 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_free_state.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_free_state.rst.txt @@ -1,5 +1,5 @@ -krb5_c_free_state - Free a cipher state previously allocated by krb5_c_init_state() . -======================================================================================= +krb5_c_free_state - Free a cipher state previously allocated by krb5_c_init_state(). +====================================================================================== .. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_init_state.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_init_state.rst.txt index c28dca743b7..b6a3065d8c8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_init_state.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_init_state.rst.txt @@ -14,7 +14,7 @@ krb5_c_init_state - Initialize a new cipher state. **[in]** **key** - Key - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[out]** **new_state** - New cipher state diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_keyed_checksum_types.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_keyed_checksum_types.rst.txt index 22f50921885..37e18000fb9 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_keyed_checksum_types.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_keyed_checksum_types.rst.txt @@ -34,7 +34,7 @@ krb5_c_keyed_checksum_types - Return a list of keyed checksum types usable with -Use :c:func:`krb5_free_cksumtypes()` to free *cksumtypes* when it is no longer needed. +Use krb5_free_cksumtypes() to free *cksumtypes* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_make_checksum.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_make_checksum.rst.txt index f432c601396..bf057e201d1 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_make_checksum.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_make_checksum.rst.txt @@ -16,7 +16,7 @@ krb5_c_make_checksum - Compute a checksum (operates on keyblock). **[in]** **key** - Encryption key for a keyed checksum - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[in]** **input** - Input data @@ -38,7 +38,7 @@ krb5_c_make_checksum - Compute a checksum (operates on keyblock). -This function computes a checksum of type *cksumtype* over *input* , using *key* if the checksum type is a keyed checksum. If *cksumtype* is 0 and *key* is non-null, the checksum type will be the mandatory-to-implement checksum type for the key's encryption type. The actual checksum key will be derived from *key* and *usage* if key derivation is specified for the checksum type. The newly created *cksum* must be released by calling :c:func:`krb5_free_checksum_contents()` when it is no longer needed. +This function computes a checksum of type *cksumtype* over *input* , using *key* if the checksum type is a keyed checksum. If *cksumtype* is 0 and *key* is non-null, the checksum type will be the mandatory-to-implement checksum type for the key's encryption type. The actual checksum key will be derived from *key* and *usage* if key derivation is specified for the checksum type. The newly created *cksum* must be released by calling krb5_free_checksum_contents() when it is no longer needed. @@ -52,7 +52,7 @@ This function computes a checksum of type *cksumtype* over *input* , using *key* .. .. seealso:: - :c:func:`krb5_c_verify_checksum()` + krb5_c_verify_checksum() @@ -61,7 +61,7 @@ This function computes a checksum of type *cksumtype* over *input* , using *key* .. note:: - This function is similar to :c:func:`krb5_k_make_checksum()` , but operates on keyblock *key* . + This function is similar to krb5_k_make_checksum(), but operates on keyblock *key* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_make_checksum_iov.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_make_checksum_iov.rst.txt index d313c2b0497..fe1d921cc03 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_make_checksum_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_make_checksum_iov.rst.txt @@ -16,7 +16,7 @@ krb5_c_make_checksum_iov - Fill in a checksum element in IOV array (operates on **[in]** **key** - Encryption key for a keyed checksum - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[inout]** **data** - IOV array @@ -38,7 +38,7 @@ krb5_c_make_checksum_iov - Fill in a checksum element in IOV array (operates on -Create a checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element over :data:`KRB5_CRYPTO_TYPE_DATA` and :data:`KRB5_CRYPTO_TYPE_SIGN_ONLY` chunks in *data* . Only the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` region is modified. +Create a checksum in the #KRB5_CRYPTO_TYPE_CHECKSUM element over #KRB5_CRYPTO_TYPE_DATA and #KRB5_CRYPTO_TYPE_SIGN_ONLY chunks in *data* . Only the #KRB5_CRYPTO_TYPE_CHECKSUM region is modified. @@ -52,7 +52,7 @@ Create a checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element over :data:`K .. .. seealso:: - :c:func:`krb5_c_verify_checksum_iov()` + krb5_c_verify_checksum_iov() @@ -61,7 +61,7 @@ Create a checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element over :data:`K .. note:: - This function is similar to :c:func:`krb5_k_make_checksum_iov()` , but operates on keyblock *key* . + This function is similar to krb5_k_make_checksum_iov(), but operates on keyblock *key* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_make_random_key.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_make_random_key.rst.txt index d485c1c50f7..bcf7e28d05d 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_make_random_key.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_make_random_key.rst.txt @@ -32,7 +32,7 @@ krb5_c_make_random_key - Generate an enctype-specific random encryption key. -Use :c:func:`krb5_free_keyblock_contents()` to free *k5_random_key* when no longer needed. +Use krb5_free_keyblock_contents() to free *k5_random_key* when no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_prf.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_prf.rst.txt index b626f43b6f2..2bf18e570bd 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_prf.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_prf.rst.txt @@ -34,7 +34,7 @@ krb5_c_prf - Generate enctype-specific pseudo-random bytes. -This function selects a pseudo-random function based on *keyblock* and computes its value over *input* , placing the result into *output* . The caller must preinitialize *output* and allocate space for the result, using :c:func:`krb5_c_prf_length()` to determine the required length. +This function selects a pseudo-random function based on *keyblock* and computes its value over *input* , placing the result into *output* . The caller must preinitialize *output* and allocate space for the result, using krb5_c_prf_length() to determine the required length. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_random_to_key.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_random_to_key.rst.txt index 927c8780f30..192e9d7eac8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_random_to_key.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_random_to_key.rst.txt @@ -48,7 +48,7 @@ This function takes random input data *random_data* and produces a valid key *k5 .. .. seealso:: - :c:func:`krb5_c_keylengths()` + krb5_c_keylengths() diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_string_to_key.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_string_to_key.rst.txt index deacb149096..0720b6347ec 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_string_to_key.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_string_to_key.rst.txt @@ -36,7 +36,7 @@ krb5_c_string_to_key - Convert a string (such a password) to a key. -This function converts *string* to a *key* of encryption type *enctype* , using the specified *salt* . The newly created *key* must be released by calling :c:func:`krb5_free_keyblock_contents()` when it is no longer needed. +This function converts *string* to a *key* of encryption type *enctype* , using the specified *salt* . The newly created *key* must be released by calling krb5_free_keyblock_contents() when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_string_to_key_with_params.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_string_to_key_with_params.rst.txt index 8ec6e217021..6348a40a689 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_string_to_key_with_params.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_string_to_key_with_params.rst.txt @@ -38,7 +38,7 @@ krb5_c_string_to_key_with_params - Convert a string (such as a password) to a k -This function is similar to :c:func:`krb5_c_string_to_key()` , but also takes parameters which may affect the algorithm in an enctype-dependent way. The newly created *key* must be released by calling :c:func:`krb5_free_keyblock_contents()` when it is no longer needed. +This function is similar to krb5_c_string_to_key(), but also takes parameters which may affect the algorithm in an enctype-dependent way. The newly created *key* must be released by calling krb5_free_keyblock_contents() when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_verify_checksum.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_verify_checksum.rst.txt index 49eb59902a2..823d570764d 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_verify_checksum.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_verify_checksum.rst.txt @@ -58,7 +58,7 @@ This function verifies that *cksum* is a valid checksum for *data* . If the chec .. note:: - This function is similar to :c:func:`krb5_k_verify_checksum()` , but operates on keyblock *key* . + This function is similar to krb5_k_verify_checksum(), but operates on keyblock *key* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_c_verify_checksum_iov.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_c_verify_checksum_iov.rst.txt index e8c37b3ce63..237c01f1779 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_c_verify_checksum_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_c_verify_checksum_iov.rst.txt @@ -16,7 +16,7 @@ krb5_c_verify_checksum_iov - Validate a checksum element in IOV array (operates **[in]** **key** - Encryption key for a keyed checksum - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[in]** **data** - IOV array @@ -40,7 +40,7 @@ krb5_c_verify_checksum_iov - Validate a checksum element in IOV array (operates -Confirm that the checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element is a valid checksum of the :data:`KRB5_CRYPTO_TYPE_DATA` and :data:`KRB5_CRYPTO_TYPE_SIGN_ONLY` regions in the iov. +Confirm that the checksum in the #KRB5_CRYPTO_TYPE_CHECKSUM element is a valid checksum of the #KRB5_CRYPTO_TYPE_DATA and #KRB5_CRYPTO_TYPE_SIGN_ONLY regions in the iov. @@ -54,7 +54,7 @@ Confirm that the checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element is a .. .. seealso:: - :c:func:`krb5_c_make_checksum_iov()` + krb5_c_make_checksum_iov() @@ -63,7 +63,7 @@ Confirm that the checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element is a .. note:: - This function is similar to :c:func:`krb5_k_verify_checksum_iov()` , but operates on keyblock *key* . + This function is similar to krb5_k_verify_checksum_iov(), but operates on keyblock *key* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_default.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_default.rst.txt index 3a85ba4a1fd..a734335f2c8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_default.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_default.rst.txt @@ -35,7 +35,7 @@ krb5_cc_default - Resolve the default credential cache name. -Create a handle to the default credential cache as given by :c:func:`krb5_cc_default_name()` . +Create a handle to the default credential cache as given by krb5_cc_default_name(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_default_name.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_default_name.rst.txt index f54c5e5c973..d9f3e7d034e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_default_name.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_default_name.rst.txt @@ -28,11 +28,11 @@ krb5_cc_default_name - Return the name of the default credential cache. -Return a pointer to the default credential cache name for *context* , as determined by a prior call to :c:func:`krb5_cc_set_default_name()` , by the KRB5CCNAME environment variable, by the default_ccache_name profile variable, or by the operating system or build-time default value. The returned value must not be modified or freed by the caller. The returned value becomes invalid when *context* is destroyed :c:func:`krb5_free_context()` or if a subsequent call to :c:func:`krb5_cc_set_default_name()` is made on *context* . +Return a pointer to the default credential cache name for *context* , as determined by a prior call to krb5_cc_set_default_name(), by the KRB5CCNAME environment variable, by the default_ccache_name profile variable, or by the operating system or build-time default value. The returned value must not be modified or freed by the caller. The returned value becomes invalid when *context* is destroyed krb5_free_context() or if a subsequent call to krb5_cc_set_default_name() is made on *context* . -The default credential cache name is cached in *context* between calls to this function, so if the value of KRB5CCNAME changes in the process environment after the first call to this function on, that change will not be reflected in later calls with the same context. The caller can invoke :c:func:`krb5_cc_set_default_name()` with a NULL value of *name* to clear the cached value and force the default name to be recomputed. +The default credential cache name is cached in *context* between calls to this function, so if the value of KRB5CCNAME changes in the process environment after the first call to this function on, that change will not be reflected in later calls with the same context. The caller can invoke krb5_cc_set_default_name() with a NULL value of *name* to clear the cached value and force the default name to be recomputed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_end_seq_get.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_end_seq_get.rst.txt index b5b0900972a..0b4fb65676f 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_end_seq_get.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_end_seq_get.rst.txt @@ -46,7 +46,7 @@ This function finishes processing credential cache entries and invalidates *curs .. .. seealso:: - :c:func:`krb5_cc_start_seq_get()` , :c:func:`krb5_cc_next_cred()` + krb5_cc_start_seq_get(), krb5_cc_next_cred() diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_get_config.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_get_config.rst.txt index 4021ee60e7f..3c5576ed32f 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_get_config.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_get_config.rst.txt @@ -39,7 +39,7 @@ krb5_cc_get_config - Get a configuration value from a credential cache. -Use :c:func:`krb5_free_data_contents()` to free *data* when it is no longer needed. +Use krb5_free_data_contents() to free *data* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_get_full_name.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_get_full_name.rst.txt index 7c570459724..fdab6616a2a 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_get_full_name.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_get_full_name.rst.txt @@ -29,7 +29,7 @@ krb5_cc_get_full_name - Retrieve the full name of a credential cache. -Use :c:func:`krb5_free_string()` to free *fullname_out* when it is no longer needed. +Use krb5_free_string() to free *fullname_out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_get_name.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_get_name.rst.txt index 34afeee49de..3115b0b0871 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_get_name.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_get_name.rst.txt @@ -45,7 +45,7 @@ krb5_cc_get_name - Retrieve the name, but not type of a credential cache. .. warning:: - Returns the name of the credential cache. The result is an alias into *cache* and should not be freed or modified by the caller. This name does not include the cache type, so should not be used as input to :c:func:`krb5_cc_resolve()` . + Returns the name of the credential cache. The result is an alias into *cache* and should not be freed or modified by the caller. This name does not include the cache type, so should not be used as input to krb5_cc_resolve(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_get_principal.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_get_principal.rst.txt index 139817c0451..059d10a2565 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_get_principal.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_get_principal.rst.txt @@ -35,11 +35,11 @@ krb5_cc_get_principal - Get the default principal of a credential cache. -Returns the default client principal of a credential cache as set by :c:func:`krb5_cc_initialize()` . +Returns the default client principal of a credential cache as set by krb5_cc_initialize(). -Use :c:func:`krb5_free_principal()` to free *principal* when it is no longer needed. +Use krb5_free_principal() to free *principal* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_next_cred.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_next_cred.rst.txt index 98d2586cd1e..e9d7b1e4c12 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_next_cred.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_next_cred.rst.txt @@ -38,7 +38,7 @@ This function fills in *creds* with the next entry in *cache* and advances *curs -Use :c:func:`krb5_free_cred_contents()` to free *creds* when it is no longer needed. +Use krb5_free_cred_contents() to free *creds* when it is no longer needed. @@ -52,7 +52,7 @@ Use :c:func:`krb5_free_cred_contents()` to free *creds* when it is no longer nee .. .. seealso:: - :c:func:`krb5_cc_start_seq_get()` , krb5_end_seq_get() + krb5_cc_start_seq_get(), krb5_end_seq_get() diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_remove_cred.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_remove_cred.rst.txt index 3843e74ad71..274f8c50f61 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_remove_cred.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_remove_cred.rst.txt @@ -37,7 +37,7 @@ krb5_cc_remove_cred - Remove credentials from a credential cache. -This function accepts the same flag values as :c:func:`krb5_cc_retrieve_cred()` . +This function accepts the same flag values as krb5_cc_retrieve_cred(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_retrieve_cred.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_retrieve_cred.rst.txt index b334e3062a0..3674f97dd9d 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_retrieve_cred.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_retrieve_cred.rst.txt @@ -46,36 +46,36 @@ Valid values for *flags* are: - - :data:`KRB5_TC_MATCH_TIMES` The requested lifetime must be at least as great as in *mcreds* . + - #KRB5_TC_MATCH_TIMES The requested lifetime must be at least as great as in *mcreds* . - - :data:`KRB5_TC_MATCH_IS_SKEY` The *is_skey* field much match exactly. + - #KRB5_TC_MATCH_IS_SKEY The *is_skey* field much match exactly. - - :data:`KRB5_TC_MATCH_FLAGS` Flags set in *mcreds* must be set. + - #KRB5_TC_MATCH_FLAGS Flags set in *mcreds* must be set. - - :data:`KRB5_TC_MATCH_TIMES_EXACT` The requested lifetime must match exactly. + - #KRB5_TC_MATCH_TIMES_EXACT The requested lifetime must match exactly. - - :data:`KRB5_TC_MATCH_FLAGS_EXACT` Flags must match exactly. + - #KRB5_TC_MATCH_FLAGS_EXACT Flags must match exactly. - - :data:`KRB5_TC_MATCH_AUTHDATA` The authorization data must match. + - #KRB5_TC_MATCH_AUTHDATA The authorization data must match. - - :data:`KRB5_TC_MATCH_SRV_NAMEONLY` Only the name portion of the principal name must match, not the realm. + - #KRB5_TC_MATCH_SRV_NAMEONLY Only the name portion of the principal name must match, not the realm. - - :data:`KRB5_TC_MATCH_2ND_TKT` The second tickets must match. + - #KRB5_TC_MATCH_2ND_TKT The second tickets must match. - - :data:`KRB5_TC_MATCH_KTYPE` The encryption key types must match. + - #KRB5_TC_MATCH_KTYPE The encryption key types must match. - - :data:`KRB5_TC_SUPPORTED_KTYPES` Check all matching entries that have any supported encryption type and return the one with the encryption type listed earliest. + - #KRB5_TC_SUPPORTED_KTYPES Check all matching entries that have any supported encryption type and return the one with the encryption type listed earliest. - Use :c:func:`krb5_free_cred_contents()` to free *creds* when it is no longer needed. + Use krb5_free_cred_contents() to free *creds* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_select.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_select.rst.txt index 221eb284446..c221a65b0a4 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_select.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_select.rst.txt @@ -38,7 +38,7 @@ Select a cache within the collection containing credentials most appropriate for -Use :c:func:`krb5_cc_close()` to release *cache_out* when it is no longer needed. Use :c:func:`krb5_free_principal()` to release *princ_out* when it is no longer needed. Note that *princ_out* is set in some error conditions. +Use krb5_cc_close() to release *cache_out* when it is no longer needed. Use krb5_free_principal() to release *princ_out* when it is no longer needed. Note that *princ_out* is set in some error conditions. diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_set_default_name.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_set_default_name.rst.txt index f1eb902c25e..6c78ac6c805 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_set_default_name.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_set_default_name.rst.txt @@ -38,7 +38,7 @@ Set the default credential cache name to *name* for future operations using *con -Calls to this function invalidate the result of any previous calls to :c:func:`krb5_cc_default_name()` using *context* . +Calls to this function invalidate the result of any previous calls to krb5_cc_default_name() using *context* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_cc_start_seq_get.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cc_start_seq_get.rst.txt index 1bdbe823b2d..84fa02bad24 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cc_start_seq_get.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cc_start_seq_get.rst.txt @@ -32,7 +32,7 @@ krb5_cc_start_seq_get - Prepare to sequentially read every credential in a cred - :c:func:`krb5_cc_end_seq_get()` must be called to complete the retrieve operation. +krb5_cc_end_seq_get() must be called to complete the retrieve operation. @@ -52,7 +52,7 @@ krb5_cc_start_seq_get - Prepare to sequentially read every credential in a cred .. note:: - If the cache represented by *cache* is modified between the time of the call to this function and the time of the final :c:func:`krb5_cc_end_seq_get()` , these changes may not be reflected in the results of :c:func:`krb5_cc_next_cred()` calls. + If the cache represented by *cache* is modified between the time of the call to this function and the time of the final krb5_cc_end_seq_get(), these changes may not be reflected in the results of krb5_cc_next_cred() calls. diff --git a/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_free.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_free.rst.txt index 14bc7306c1d..ce397b92a01 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_free.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_free.rst.txt @@ -40,7 +40,7 @@ krb5_cccol_cursor_free - Free a credential cache collection cursor. .. .. seealso:: - :c:func:`krb5_cccol_cursor_new()` , :c:func:`krb5_cccol_cursor_next()` + krb5_cccol_cursor_new(), krb5_cccol_cursor_next() diff --git a/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_new.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_new.rst.txt index 8a447fc6a4d..b1673332bf8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_new.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_new.rst.txt @@ -34,7 +34,7 @@ Get a new cache iteration *cursor* that will iterate over all known credential c -Use :c:func:`krb5_cccol_cursor_free()` to release *cursor* when it is no longer needed. +Use krb5_cccol_cursor_free() to release *cursor* when it is no longer needed. @@ -48,7 +48,7 @@ Use :c:func:`krb5_cccol_cursor_free()` to release *cursor* when it is no longer .. .. seealso:: - :c:func:`krb5_cccol_cursor_next()` + krb5_cccol_cursor_next() diff --git a/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_next.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_next.rst.txt index 7b8c9646280..d019a0495c7 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_next.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_cccol_cursor_next.rst.txt @@ -32,7 +32,7 @@ krb5_cccol_cursor_next - Get the next credential cache in the collection. -Use :c:func:`krb5_cc_close()` to close *ccache* when it is no longer needed. +Use krb5_cc_close() to close *ccache* when it is no longer needed. @@ -46,7 +46,7 @@ Use :c:func:`krb5_cc_close()` to close *ccache* when it is no longer needed. .. .. seealso:: - :c:func:`krb5_cccol_cursor_new()` , :c:func:`krb5_cccol_cursor_free()` + krb5_cccol_cursor_new(), krb5_cccol_cursor_free() diff --git a/doc/html/_sources/appdev/refs/api/krb5_change_password.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_change_password.rst.txt index 7c5db7f5c5f..05a3eb9512b 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_change_password.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_change_password.rst.txt @@ -48,19 +48,19 @@ The possible values of the output *result_code* are: - - :data:`KRB5_KPASSWD_SUCCESS` (0) - success + - #KRB5_KPASSWD_SUCCESS (0) - success - - :data:`KRB5_KPASSWD_MALFORMED` (1) - Malformed request error + - #KRB5_KPASSWD_MALFORMED (1) - Malformed request error - - :data:`KRB5_KPASSWD_HARDERROR` (2) - Server error + - #KRB5_KPASSWD_HARDERROR (2) - Server error - - :data:`KRB5_KPASSWD_AUTHERROR` (3) - Authentication error + - #KRB5_KPASSWD_AUTHERROR (3) - Authentication error - - :data:`KRB5_KPASSWD_SOFTERROR` (4) - Password change rejected + - #KRB5_KPASSWD_SOFTERROR (4) - Password change rejected diff --git a/doc/html/_sources/appdev/refs/api/krb5_chpw_message.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_chpw_message.rst.txt index 372c95d29f6..3f4919e5970 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_chpw_message.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_chpw_message.rst.txt @@ -35,11 +35,11 @@ krb5_chpw_message - Get a result message for changing or setting a password. -This function processes the *server_string* returned in the *result_string* parameter of :c:func:`krb5_change_password()` , :c:func:`krb5_set_password()` , and related functions, and returns a displayable string. If *server_string* contains Active Directory structured policy information, it will be converted into human-readable text. +This function processes the *server_string* returned in the *result_string* parameter of krb5_change_password(), krb5_set_password(), and related functions, and returns a displayable string. If *server_string* contains Active Directory structured policy information, it will be converted into human-readable text. -Use :c:func:`krb5_free_string()` to free *message_out* when it is no longer needed. +Use krb5_free_string() to free *message_out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_addresses.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_addresses.rst.txt index a9c7c748356..e1f85b899bb 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_addresses.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_addresses.rst.txt @@ -32,7 +32,7 @@ krb5_copy_addresses - Copy an array of addresses. -This function creates a new address array containing a copy of *inaddr* . Use :c:func:`krb5_free_addresses()` to free *outaddr* when it is no longer needed. +This function creates a new address array containing a copy of *inaddr* . Use krb5_free_addresses() to free *outaddr* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_authdata.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_authdata.rst.txt index 0ee9ba0c6f0..518b95e620c 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_authdata.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_authdata.rst.txt @@ -32,7 +32,7 @@ krb5_copy_authdata - Copy an authorization data list. -This function creates a new authorization data list containing a copy of *in_authdat* , which must be null-terminated. Use :c:func:`krb5_free_authdata()` to free *out* when it is no longer needed. +This function creates a new authorization data list containing a copy of *in_authdat* , which must be null-terminated. Use krb5_free_authdata() to free *out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_authenticator.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_authenticator.rst.txt index bc0c3459d80..a3d043cd987 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_authenticator.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_authenticator.rst.txt @@ -32,7 +32,7 @@ krb5_copy_authenticator - Copy a krb5_authenticator structure. -This function creates a new krb5_authenticator structure with the content of *authfrom* . Use :c:func:`krb5_free_authenticator()` to free *authto* when it is no longer needed. +This function creates a new krb5_authenticator structure with the content of *authfrom* . Use krb5_free_authenticator() to free *authto* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_checksum.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_checksum.rst.txt index 1c939550149..3e94c3ca7d6 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_checksum.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_checksum.rst.txt @@ -32,7 +32,7 @@ krb5_copy_checksum - Copy a krb5_checksum structure. -This function creates a new krb5_checksum structure with the contents of *ckfrom* . Use :c:func:`krb5_free_checksum()` to free *ckto* when it is no longer needed. +This function creates a new krb5_checksum structure with the contents of *ckfrom* . Use krb5_free_checksum() to free *ckto* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_context.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_context.rst.txt index 2b5d2154dd1..50df96fcae8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_context.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_context.rst.txt @@ -33,7 +33,7 @@ krb5_copy_context - Copy a krb5_context structure. -The newly created context must be released by calling :c:func:`krb5_free_context()` when it is no longer needed. +The newly created context must be released by calling krb5_free_context() when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_creds.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_creds.rst.txt index 862293b075b..ac7df356268 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_creds.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_creds.rst.txt @@ -32,7 +32,7 @@ krb5_copy_creds - Copy a krb5_creds structure. -This function creates a new credential with the contents of *incred* . Use :c:func:`krb5_free_creds()` to free *outcred* when it is no longer needed. +This function creates a new credential with the contents of *incred* . Use krb5_free_creds() to free *outcred* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_data.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_data.rst.txt index 81ad0f2af5b..a7714f0ef72 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_data.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_data.rst.txt @@ -32,7 +32,7 @@ krb5_copy_data - Copy a krb5_data object. -This function creates a new krb5_data object with the contents of *indata* . Use :c:func:`krb5_free_data()` to free *outdata* when it is no longer needed. +This function creates a new krb5_data object with the contents of *indata* . Use krb5_free_data() to free *outdata* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_keyblock.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_keyblock.rst.txt index 5bb2958ff54..a9b1bcf2edc 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_keyblock.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_keyblock.rst.txt @@ -32,7 +32,7 @@ krb5_copy_keyblock - Copy a keyblock. -This function creates a new keyblock with the same contents as *from* . Use :c:func:`krb5_free_keyblock()` to free *to* when it is no longer needed. +This function creates a new keyblock with the same contents as *from* . Use krb5_free_keyblock() to free *to* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_keyblock_contents.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_keyblock_contents.rst.txt index 9f858598f6b..c485dac87f2 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_keyblock_contents.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_keyblock_contents.rst.txt @@ -32,7 +32,7 @@ krb5_copy_keyblock_contents - Copy the contents of a keyblock. -This function copies the contents of *from* to *to* . Use :c:func:`krb5_free_keyblock_contents()` to free *to* when it is no longer needed. +This function copies the contents of *from* to *to* . Use krb5_free_keyblock_contents() to free *to* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_principal.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_principal.rst.txt index 1ca9fea7160..1db2d06f3b7 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_principal.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_principal.rst.txt @@ -32,7 +32,7 @@ krb5_copy_principal - Copy a principal. -This function creates a new principal structure with the contents of *inprinc* . Use :c:func:`krb5_free_principal()` to free *outprinc* when it is no longer needed. +This function creates a new principal structure with the contents of *inprinc* . Use krb5_free_principal() to free *outprinc* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_copy_ticket.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_copy_ticket.rst.txt index a643cc5f42f..db434f7b506 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_copy_ticket.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_copy_ticket.rst.txt @@ -32,7 +32,7 @@ krb5_copy_ticket - Copy a krb5_ticket structure. -This function creates a new krb5_ticket structure containing the contents of *from* . Use :c:func:`krb5_free_ticket()` to free *pto* when it is no longer needed. +This function creates a new krb5_ticket structure containing the contents of *from* . Use krb5_free_ticket() to free *pto* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_decode_authdata_container.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_decode_authdata_container.rst.txt index 791b41be893..6a93d7bba61 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_decode_authdata_container.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_decode_authdata_container.rst.txt @@ -12,7 +12,7 @@ krb5_decode_authdata_container - Unwrap authorization data. **[in]** **context** - Library context - **[in]** **type** - :data:`KRB5_AUTHDATA` type of *container* + **[in]** **type** - Container type (see KRB5_AUTHDATA macros) **[in]** **container** - Authorization data to be decoded @@ -44,7 +44,7 @@ krb5_decode_authdata_container - Unwrap authorization data. .. .. seealso:: - :c:func:`krb5_encode_authdata_container()` + krb5_encode_authdata_container() diff --git a/doc/html/_sources/appdev/refs/api/krb5_encode_authdata_container.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_encode_authdata_container.rst.txt index 4ca53b4b431..3bf9d776e0a 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_encode_authdata_container.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_encode_authdata_container.rst.txt @@ -12,7 +12,7 @@ krb5_encode_authdata_container - Wrap authorization data in a container. **[in]** **context** - Library context - **[in]** **type** - :data:`KRB5_AUTHDATA` type of *container* + **[in]** **type** - Container type (see KRB5_AUTHDATA macros) **[in]** **authdata** - List of authorization data to be encoded @@ -48,7 +48,7 @@ The result is returned in *container* as a single-element list. .. .. seealso:: - :c:func:`krb5_decode_authdata_container()` + krb5_decode_authdata_container() diff --git a/doc/html/_sources/appdev/refs/api/krb5_expand_hostname.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_expand_hostname.rst.txt index 60ff0b5c321..0acc95924e7 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_expand_hostname.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_expand_hostname.rst.txt @@ -29,7 +29,7 @@ krb5_expand_hostname - Canonicalize a hostname, possibly using name service. -This function canonicalizes orig_hostname, possibly using name service lookups if configuration permits. Use :c:func:`krb5_free_string()` to free *canonhost_out* when it is no longer needed. +This function canonicalizes orig_hostname, possibly using name service lookups if configuration permits. Use krb5_free_string() to free *canonhost_out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_find_authdata.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_find_authdata.rst.txt index 42aea2c405c..793e6578088 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_find_authdata.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_find_authdata.rst.txt @@ -33,7 +33,7 @@ krb5_find_authdata - Find authorization data elements. -This function searches *ticket_authdata* and *ap_req_authdata* for elements of type *ad_type* . Either input list may be NULL, in which case it will not be searched; otherwise, the input lists must be terminated by NULL entries. This function will search inside AD-IF-RELEVANT containers if found in either list. Use :c:func:`krb5_free_authdata()` to free *results* when it is no longer needed. +This function searches *ticket_authdata* and *ap_req_authdata* for elements of type *ad_type* . Either input list may be NULL, in which case it will not be searched; otherwise, the input lists must be terminated by NULL entries. This function will search inside AD-IF-RELEVANT containers if found in either list. Use krb5_free_authdata() to free *results* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_free_context.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_free_context.rst.txt index dc05228a2a4..d403c21ffae 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_free_context.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_free_context.rst.txt @@ -25,7 +25,7 @@ krb5_free_context - Free a krb5 library context. -This function frees a *context* that was created by :c:func:`krb5_init_context()` or :c:func:`krb5_init_secure_context()` . +This function frees a *context* that was created by krb5_init_context() or krb5_init_secure_context(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_free_default_realm.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_free_default_realm.rst.txt index 79228bf869d..a0a3babf205 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_free_default_realm.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_free_default_realm.rst.txt @@ -1,5 +1,5 @@ -krb5_free_default_realm - Free a default realm string returned by krb5_get_default_realm() . -============================================================================================== +krb5_free_default_realm - Free a default realm string returned by krb5_get_default_realm(). +============================================================================================= .. diff --git a/doc/html/_sources/appdev/refs/api/krb5_free_error.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_free_error.rst.txt index 0d47bba66ca..e31daf0900d 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_free_error.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_free_error.rst.txt @@ -1,5 +1,5 @@ -krb5_free_error - Free an error allocated by krb5_read_error() or krb5_sendauth() . -===================================================================================== +krb5_free_error - Free an error allocated by krb5_read_error() or krb5_sendauth(). +==================================================================================== .. diff --git a/doc/html/_sources/appdev/refs/api/krb5_free_error_message.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_free_error_message.rst.txt index b4b006134ac..923647aff7e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_free_error_message.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_free_error_message.rst.txt @@ -1,5 +1,5 @@ -krb5_free_error_message - Free an error message generated by krb5_get_error_message() . -========================================================================================= +krb5_free_error_message - Free an error message generated by krb5_get_error_message(). +======================================================================================== .. diff --git a/doc/html/_sources/appdev/refs/api/krb5_free_host_realm.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_free_host_realm.rst.txt index a38e6ae6a1a..1a733b123b9 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_free_host_realm.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_free_host_realm.rst.txt @@ -1,5 +1,5 @@ -krb5_free_host_realm - Free the memory allocated by krb5_get_host_realm() . -============================================================================= +krb5_free_host_realm - Free the memory allocated by krb5_get_host_realm(). +============================================================================ .. diff --git a/doc/html/_sources/appdev/refs/api/krb5_fwd_tgt_creds.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_fwd_tgt_creds.rst.txt index fab6d70594f..bfda237f445 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_fwd_tgt_creds.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_fwd_tgt_creds.rst.txt @@ -49,7 +49,7 @@ krb5_fwd_tgt_creds - Get a forwarded TGT and format a KRB-CRED message. -Get a TGT for use at the remote host *rhost* and format it into a KRB-CRED message. If *rhost* is NULL and *server* is of type :data:`KRB5_NT_SRV_HST` , the second component of *server* will be used. +Get a TGT for use at the remote host *rhost* and format it into a KRB-CRED message. If *rhost* is NULL and *server* is of type #KRB5_NT_SRV_HST, the second component of *server* will be used. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_credentials.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_credentials.rst.txt index 6cf56d0c71c..7a72b39af08 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_credentials.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_credentials.rst.txt @@ -45,10 +45,10 @@ Use *ccache* or a TGS exchange to get a service ticket matching *in_creds* . Valid values for *options* are: - - :data:`KRB5_GC_CACHED` Search only credential cache for the ticket + - #KRB5_GC_CACHED Search only credential cache for the ticket - - :data:`KRB5_GC_USER_USER` Return a user to user authentication ticket + - #KRB5_GC_USER_USER Return a user to user authentication ticket *in_creds* must be non-null. *in_creds->client* and *in_creds->server* must be filled in to specify the client and the server respectively. If any authorization data needs to be requested for the service ticket (such as restrictions on how the ticket can be used), specify it in *in_creds->authdata* ; otherwise set *in_creds->authdata* to NULL. The session key type is specified in *in_creds->keyblock.enctype* , if it is nonzero. @@ -62,7 +62,7 @@ Any returned ticket and intermediate ticket-granting tickets are stored in *ccac -Use :c:func:`krb5_free_creds()` to free *out_creds* when it is no longer needed. +Use krb5_free_creds() to free *out_creds* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_default_realm.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_default_realm.rst.txt index 5b63648cad7..093bfa9e77b 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_default_realm.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_default_realm.rst.txt @@ -37,7 +37,7 @@ Retrieves the default realm to be used if no user-specified realm is available. -Use :c:func:`krb5_free_default_realm()` to free *lrealm* when it is no longer needed. +Use krb5_free_default_realm() to free *lrealm* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_error_message.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_error_message.rst.txt index 81b7de31f1b..16bac2f2eb8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_error_message.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_error_message.rst.txt @@ -27,7 +27,7 @@ krb5_get_error_message - Get the (possibly extended) error message for a code. -The behavior of :c:func:`krb5_get_error_message()` is only defined the first time it is called after a failed call to a krb5 function using the same context, and only when the error code passed in is the same as that returned by the krb5 function. +The behavior of krb5_get_error_message() is only defined the first time it is called after a failed call to a krb5 function using the same context, and only when the error code passed in is the same as that returned by the krb5 function. @@ -35,7 +35,7 @@ This function never returns NULL, so its result may be used unconditionally as a -The string returned by this function must be freed using :c:func:`krb5_free_error_message()` +The string returned by this function must be freed using krb5_free_error_message() diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_etype_info.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_etype_info.rst.txt index 15ab1d19545..63425f56842 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_etype_info.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_etype_info.rst.txt @@ -45,11 +45,11 @@ Send an initial ticket request for *principal* and extract the encryption type, - *opt* may be used to specify options which affect the initial request, such as request encryption types or a FAST armor cache (see :c:func:`krb5_get_init_creds_opt_set_etype_list()` and :c:func:`krb5_get_init_creds_opt_set_fast_ccache_name()` ). + *opt* may be used to specify options which affect the initial request, such as request encryption types or a FAST armor cache (see krb5_get_init_creds_opt_set_etype_list() and krb5_get_init_creds_opt_set_fast_ccache_name()). -Use :c:func:`krb5_free_data_contents()` to free *salt_out* and *s2kparams_out* when they are no longer needed. +Use krb5_free_data_contents() to free *salt_out* and *s2kparams_out* when they are no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_fallback_host_realm.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_fallback_host_realm.rst.txt index 6ab4330cc68..0a7d1a3ce87 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_fallback_host_realm.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_fallback_host_realm.rst.txt @@ -37,7 +37,7 @@ If *host* is NULL, the local host's realms are determined. -Use :c:func:`krb5_free_host_realm()` to release *realmsp* when it is no longer needed. +Use krb5_free_host_realm() to release *realmsp* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_host_realm.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_host_realm.rst.txt index 7cc8e947a2a..32ceb2ad385 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_host_realm.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_host_realm.rst.txt @@ -44,7 +44,7 @@ If *host* is NULL, the local host's realms are determined. -Use :c:func:`krb5_free_host_realm()` to release *realmsp* when it is no longer needed. +Use krb5_free_host_realm() to release *realmsp* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_in_tkt_with_keytab.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_in_tkt_with_keytab.rst.txt index fd3985bbd2e..23a25153912 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_in_tkt_with_keytab.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_in_tkt_with_keytab.rst.txt @@ -36,7 +36,7 @@ krb5_get_in_tkt_with_keytab .. -DEPRECATED Replaced by krb5_get_init_creds_keytab() . +DEPRECATED Replaced by krb5_get_init_creds_keytab(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_in_tkt_with_password.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_in_tkt_with_password.rst.txt index 556c6fee0ab..c0782f8bee1 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_in_tkt_with_password.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_in_tkt_with_password.rst.txt @@ -36,7 +36,7 @@ krb5_get_in_tkt_with_password .. -DEPRECATED Replaced by krb5_get_init_creds_password() . +DEPRECATED Replaced by krb5_get_init_creds_password(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_alloc.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_alloc.rst.txt index 45fa82d6551..b882608907e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_alloc.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_alloc.rst.txt @@ -30,7 +30,7 @@ krb5_get_init_creds_opt_alloc - Allocate a new initial credential options struc -This function is the preferred way to create an options structure for getting initial credentials, and is required to make use of certain options. Use :c:func:`krb5_get_init_creds_opt_free()` to free *opt* when it is no longer needed. +This function is the preferred way to create an options structure for getting initial credentials, and is required to make use of certain options. Use krb5_get_init_creds_opt_free() to free *opt* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_free.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_free.rst.txt index 0e75e152a71..94ddbf6bfbc 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_free.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_free.rst.txt @@ -37,7 +37,7 @@ krb5_get_init_creds_opt_free - Free initial credential options. .. .. seealso:: - :c:func:`krb5_get_init_creds_opt_alloc()` + krb5_get_init_creds_opt_alloc() diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_change_password_prompt.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_change_password_prompt.rst.txt index 633dd7df0d6..f88593294bc 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_change_password_prompt.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_change_password_prompt.rst.txt @@ -27,7 +27,7 @@ krb5_get_init_creds_opt_set_change_password_prompt - Set or unset change-passwo -This flag is on by default. It controls whether :c:func:`krb5_get_init_creds_password()` will react to an expired-password error by prompting for a new password and attempting to change the old one. +This flag is on by default. It controls whether krb5_get_init_creds_password() will react to an expired-password error by prompting for a new password and attempting to change the old one. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_expire_callback.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_expire_callback.rst.txt index 4942631c447..6715de3ecb8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_expire_callback.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_expire_callback.rst.txt @@ -66,7 +66,7 @@ Note that *cb* may be invoked even if credentials are being acquired for the kad .. warning:: - Setting an expire callback with this API will cause :c:func:`krb5_get_init_creds_password()` not to send password expiry warnings to the prompter, as it ordinarily may. + Setting an expire callback with this API will cause krb5_get_init_creds_password() not to send password expiry warnings to the prompter, as it ordinarily may. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache.rst.txt index 8a26b321b35..0124a3c0edf 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache.rst.txt @@ -29,7 +29,7 @@ krb5_get_init_creds_opt_set_fast_ccache - Set FAST armor cache in initial crede -This function is similar to :c:func:`krb5_get_init_creds_opt_set_fast_ccache_name()` , but uses a credential cache handle instead of a name. +This function is similar to krb5_get_init_creds_opt_set_fast_ccache_name(), but uses a credential cache handle instead of a name. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache_name.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache_name.rst.txt index da1c7823108..b7d7710dea9 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache_name.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache_name.rst.txt @@ -33,7 +33,7 @@ Sets the location of a credential cache containing an armor ticket to protect an -In version 1.7, setting an armor ccache requires that FAST be used for the exchange. In version 1.8 or later, setting the armor ccache causes FAST to be used if the KDC supports it; :c:func:`krb5_get_init_creds_opt_set_fast_flags()` must be used to require that FAST be used. +In version 1.7, setting an armor ccache requires that FAST be used for the exchange. In version 1.8 or later, setting the armor ccache causes FAST to be used if the KDC supports it; krb5_get_init_creds_opt_set_fast_flags() must be used to require that FAST be used. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_flags.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_flags.rst.txt index 272cbac19e4..77e9fa04d7e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_flags.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_fast_flags.rst.txt @@ -34,7 +34,7 @@ krb5_get_init_creds_opt_set_fast_flags - Set FAST flags in initial credential o The following flag values are valid: - - :data:`KRB5_FAST_REQUIRED` - Require FAST to be used + - #KRB5_FAST_REQUIRED - Require FAST to be used diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_preauth_list.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_preauth_list.rst.txt index 3bcbcb4d363..1e7b647f3b2 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_preauth_list.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_init_creds_opt_set_preauth_list.rst.txt @@ -29,7 +29,7 @@ krb5_get_init_creds_opt_set_preauth_list - Set preauthentication types in initi -This function can be used to perform optimistic preauthentication when getting initial credentials, in combination with :c:func:`krb5_get_init_creds_opt_set_salt()` and :c:func:`krb5_get_init_creds_opt_set_pa()` . +This function can be used to perform optimistic preauthentication when getting initial credentials, in combination with krb5_get_init_creds_opt_set_salt() and krb5_get_init_creds_opt_set_pa(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_permitted_enctypes.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_permitted_enctypes.rst.txt index f55adc6bfe0..a5776405966 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_permitted_enctypes.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_permitted_enctypes.rst.txt @@ -30,11 +30,11 @@ krb5_get_permitted_enctypes - Return a list of encryption types permitted for s -This function returns the list of encryption types permitted for session keys within *context* , as determined by configuration or by a previous call to :c:func:`krb5_set_default_tgs_enctypes()` . +This function returns the list of encryption types permitted for session keys within *context* , as determined by configuration or by a previous call to krb5_set_default_tgs_enctypes(). -Use :c:func:`krb5_free_enctypes()` to free *ktypes* when it is no longer needed. +Use krb5_free_enctypes() to free *ktypes* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_get_prompt_types.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_get_prompt_types.rst.txt index 39156ca153a..4cf9748c4dd 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_get_prompt_types.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_get_prompt_types.rst.txt @@ -18,7 +18,7 @@ krb5_get_prompt_types - Get prompt types array from a context. :return: - - Pointer to an array of prompt types corresponding to the prompter's prompts arguments. Each type has one of the following values: KRB5_PROMPT_TYPE_PASSWORD KRB5_PROMPT_TYPE_NEW_PASSWORD KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN KRB5_PROMPT_TYPE_PREAUTH + - Pointer to an array of prompt types corresponding to the prompter's prompts arguments. Each type has one of the following values: #KRB5_PROMPT_TYPE_PASSWORD #KRB5_PROMPT_TYPE_NEW_PASSWORD #KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN #KRB5_PROMPT_TYPE_PREAUTH .. diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_context.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_context.rst.txt index ec50809c440..df00c2dad69 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_context.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_context.rst.txt @@ -31,7 +31,7 @@ krb5_init_context - Create a krb5 library context. -The *context* must be released by calling :c:func:`krb5_free_context()` when it is no longer needed. +The *context* must be released by calling krb5_free_context() when it is no longer needed. @@ -50,7 +50,7 @@ The *context* must be released by calling :c:func:`krb5_free_context()` when it .. warning:: - Any program or module that needs the Kerberos code to not trust the environment must use :c:func:`krb5_init_secure_context()` , or clean out the environment. + Any program or module that needs the Kerberos code to not trust the environment must use krb5_init_secure_context(), or clean out the environment. diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_context_profile.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_context_profile.rst.txt index 273230908a4..d92f0995af6 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_context_profile.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_context_profile.rst.txt @@ -35,10 +35,10 @@ Create a context structure, optionally using a specified profile and initializat - - :data:`KRB5_INIT_CONTEXT_SECURE` Ignore environment variables + - #KRB5_INIT_CONTEXT_SECURE Ignore environment variables - - :data:`KRB5_INIT_CONTEXT_KDC` Use KDC configuration if creating profile + - #KRB5_INIT_CONTEXT_KDC Use KDC configuration if creating profile diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_creds_free.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_creds_free.rst.txt index 011fe47837f..9b6f55005d8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_creds_free.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_creds_free.rst.txt @@ -27,7 +27,7 @@ krb5_init_creds_free - Free an initial credentials context. - *context* must be the same as the one passed to :c:func:`krb5_init_creds_init()` for this initial credentials context. + *context* must be the same as the one passed to krb5_init_creds_init() for this initial credentials context. diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_creds_get.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_creds_get.rst.txt index 291fa509269..00e070ae18c 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_creds_get.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_creds_get.rst.txt @@ -30,11 +30,11 @@ krb5_init_creds_get - Acquire credentials using an initial credentials context. -This function synchronously obtains credentials using a context created by :c:func:`krb5_init_creds_init()` . On successful return, the credentials can be retrieved with :c:func:`krb5_init_creds_get_creds()` . +This function synchronously obtains credentials using a context created by krb5_init_creds_init(). On successful return, the credentials can be retrieved with krb5_init_creds_get_creds(). - *context* must be the same as the one passed to :c:func:`krb5_init_creds_init()` for this initial credentials context. + *context* must be the same as the one passed to krb5_init_creds_init() for this initial credentials context. diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_creds_get_creds.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_creds_get_creds.rst.txt index 46ef1cf4e1d..777f7f8842e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_creds_get_creds.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_creds_get_creds.rst.txt @@ -32,7 +32,7 @@ krb5_init_creds_get_creds - Retrieve acquired credentials from an initial crede -This function copies the acquired initial credentials from *ctx* into *creds* , after the successful completion of :c:func:`krb5_init_creds_get()` or :c:func:`krb5_init_creds_step()` . Use :c:func:`krb5_free_cred_contents()` to free *creds* when it is no longer needed. +This function copies the acquired initial credentials from *ctx* into *creds* , after the successful completion of krb5_init_creds_get() or krb5_init_creds_step(). Use krb5_free_cred_contents() to free *creds* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_creds_get_times.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_creds_get_times.rst.txt index 7e9d516fc79..e856df1ddf0 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_creds_get_times.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_creds_get_times.rst.txt @@ -32,7 +32,7 @@ krb5_init_creds_get_times - Retrieve ticket times from an initial credentials c -The initial credentials context must have completed obtaining credentials via either :c:func:`krb5_init_creds_get()` or :c:func:`krb5_init_creds_step()` . +The initial credentials context must have completed obtaining credentials via either krb5_init_creds_get() or krb5_init_creds_step(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_creds_init.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_creds_init.rst.txt index c703124106d..ed8096b89dc 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_creds_init.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_creds_init.rst.txt @@ -40,11 +40,11 @@ krb5_init_creds_init - Create a context for acquiring initial credentials. -This function creates a new context for acquiring initial credentials. Use :c:func:`krb5_init_creds_free()` to free *ctx* when it is no longer needed. +This function creates a new context for acquiring initial credentials. Use krb5_init_creds_free() to free *ctx* when it is no longer needed. -Any subsequent calls to :c:func:`krb5_init_creds_step()` , :c:func:`krb5_init_creds_get()` , or :c:func:`krb5_init_creds_free()` for this initial credentials context must use the same *context* argument as the one passed to this function. +Any subsequent calls to krb5_init_creds_step(), krb5_init_creds_get(), or krb5_init_creds_free() for this initial credentials context must use the same *context* argument as the one passed to this function. diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_creds_step.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_creds_step.rst.txt index 8008e6724f1..4f425510417 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_creds_step.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_creds_step.rst.txt @@ -42,7 +42,7 @@ This function constructs the next KDC request in an initial credential exchange, -If more requests are needed, *flags* will be set to :data:`KRB5_INIT_CREDS_STEP_FLAG_CONTINUE` and the next request will be placed in *out* . If no more requests are needed, *flags* will not contain :data:`KRB5_INIT_CREDS_STEP_FLAG_CONTINUE` and *out* will be empty. +If more requests are needed, *flags* will be set to #KRB5_INIT_CREDS_STEP_FLAG_CONTINUE and the next request will be placed in *out* . If no more requests are needed, *flags* will not contain #KRB5_INIT_CREDS_STEP_FLAG_CONTINUE and *out* will be empty. @@ -50,7 +50,7 @@ If this function returns **KRB5KRB_ERR_RESPONSE_TOO_BIG** , the caller should tr - *context* must be the same as the one passed to :c:func:`krb5_init_creds_init()` for this initial credentials context. + *context* must be the same as the one passed to krb5_init_creds_init() for this initial credentials context. diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_keyblock.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_keyblock.rst.txt index b0258eb6a06..cc6109dee66 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_keyblock.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_keyblock.rst.txt @@ -34,7 +34,7 @@ krb5_init_keyblock - Initialize an empty krb5_keyblock . -Initialize a new keyblock and allocate storage for the contents of the key. It is legal to pass in a length of 0, in which case contents are left unallocated. Use :c:func:`krb5_free_keyblock()` to free *out* when it is no longer needed. +Initialize a new keyblock and allocate storage for the contents of the key. It is legal to pass in a length of 0, in which case contents are left unallocated. Use krb5_free_keyblock() to free *out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_init_secure_context.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_init_secure_context.rst.txt index 8d27396e389..83c41cdb20a 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_init_secure_context.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_init_secure_context.rst.txt @@ -35,7 +35,7 @@ Create a context structure, using only system configuration files. All informati -The *context* must be released by calling :c:func:`krb5_free_context()` when it is no longer needed. +The *context* must be released by calling krb5_free_context() when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_is_config_principal.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_is_config_principal.rst.txt index 3b50605a054..8c1ef8067c6 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_is_config_principal.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_is_config_principal.rst.txt @@ -20,7 +20,7 @@ krb5_is_config_principal - Test whether a principal is a configuration principa :return: - - TRUE if the principal is a configuration principal (generated part of krb5_cc_set_config() ); FALSE otherwise. + - TRUE if the principal is a configuration principal (generated part of krb5_cc_set_config()); FALSE otherwise. .. diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_create_key.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_create_key.rst.txt index 54733825970..204d020947e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_create_key.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_create_key.rst.txt @@ -32,7 +32,7 @@ krb5_k_create_key - Create a krb5_key from the enctype and key data in a keyblo -The reference count on a key *out* is set to 1. Use :c:func:`krb5_k_free_key()` to free *out* when it is no longer needed. +The reference count on a key *out* is set to 1. Use krb5_k_free_key() to free *out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_decrypt.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_decrypt.rst.txt index 81b5c632152..3c1700419f3 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_decrypt.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_decrypt.rst.txt @@ -14,7 +14,7 @@ krb5_k_decrypt - Decrypt data using a key (operates on opaque key). **[in]** **key** - Encryption key - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[inout]** **cipher_state** - Cipher state; specify NULL if not needed @@ -58,7 +58,7 @@ This function decrypts the data block *input* and stores the output into *output .. note:: - The caller must initialize *output* and allocate at least enough space for the result. The usual practice is to allocate an output buffer as long as the ciphertext, and let :c:func:`krb5_c_decrypt()` trim *output->length* . For some enctypes, the resulting *output->length* may include padding bytes. + The caller must initialize *output* and allocate at least enough space for the result. The usual practice is to allocate an output buffer as long as the ciphertext, and let krb5_c_decrypt() trim *output->length* . For some enctypes, the resulting *output->length* may include padding bytes. diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_decrypt_iov.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_decrypt_iov.rst.txt index dd8633fabdf..3156b43952c 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_decrypt_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_decrypt_iov.rst.txt @@ -14,7 +14,7 @@ krb5_k_decrypt_iov - Decrypt data in place supporting AEAD (operates on opaque **[in]** **key** - Encryption key - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[in]** **cipher_state** - Cipher state; specify NULL if not needed @@ -52,7 +52,7 @@ This function decrypts the data block *data* and stores the output in-place. The .. .. seealso:: - :c:func:`krb5_k_encrypt_iov()` + krb5_k_encrypt_iov() @@ -61,7 +61,7 @@ This function decrypts the data block *data* and stores the output in-place. The .. note:: - On return from a :c:func:`krb5_c_decrypt_iov()` call, the *data->length* in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. + On return from a krb5_c_decrypt_iov() call, the *data->length* in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_encrypt.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_encrypt.rst.txt index 90f92c49e18..797f9d2a2f1 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_encrypt.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_encrypt.rst.txt @@ -14,7 +14,7 @@ krb5_k_encrypt - Encrypt data using a key (operates on opaque key). **[in]** **key** - Encryption key - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[inout]** **cipher_state** - Cipher state; specify NULL if not needed @@ -58,7 +58,7 @@ This function encrypts the data block *input* and stores the output into *output .. note:: - The caller must initialize *output* and allocate at least enough space for the result (using :c:func:`krb5_c_encrypt_length()` to determine the amount of space needed). *output->length* will be set to the actual length of the ciphertext. + The caller must initialize *output* and allocate at least enough space for the result (using krb5_c_encrypt_length() to determine the amount of space needed). *output->length* will be set to the actual length of the ciphertext. diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_encrypt_iov.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_encrypt_iov.rst.txt index b28a108e72e..e715e26ed6e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_encrypt_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_encrypt_iov.rst.txt @@ -14,7 +14,7 @@ krb5_k_encrypt_iov - Encrypt data in place supporting AEAD (operates on opaque **[in]** **key** - Encryption key - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[in]** **cipher_state** - Cipher state; specify NULL if not needed @@ -52,7 +52,7 @@ This function encrypts the data block *data* and stores the output in-place. The .. .. seealso:: - :c:func:`krb5_k_decrypt_iov()` + krb5_k_decrypt_iov() @@ -61,7 +61,7 @@ This function encrypts the data block *data* and stores the output in-place. The .. note:: - On return from a :c:func:`krb5_c_encrypt_iov()` call, the *data->length* in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. + On return from a krb5_c_encrypt_iov() call, the *data->length* in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_make_checksum.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_make_checksum.rst.txt index 2a11066fc7c..3f66c0f0508 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_make_checksum.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_make_checksum.rst.txt @@ -16,7 +16,7 @@ krb5_k_make_checksum - Compute a checksum (operates on opaque key). **[in]** **key** - Encryption key for a keyed checksum - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[in]** **input** - Input data @@ -38,7 +38,7 @@ krb5_k_make_checksum - Compute a checksum (operates on opaque key). -This function computes a checksum of type *cksumtype* over *input* , using *key* if the checksum type is a keyed checksum. If *cksumtype* is 0 and *key* is non-null, the checksum type will be the mandatory-to-implement checksum type for the key's encryption type. The actual checksum key will be derived from *key* and *usage* if key derivation is specified for the checksum type. The newly created *cksum* must be released by calling :c:func:`krb5_free_checksum_contents()` when it is no longer needed. +This function computes a checksum of type *cksumtype* over *input* , using *key* if the checksum type is a keyed checksum. If *cksumtype* is 0 and *key* is non-null, the checksum type will be the mandatory-to-implement checksum type for the key's encryption type. The actual checksum key will be derived from *key* and *usage* if key derivation is specified for the checksum type. The newly created *cksum* must be released by calling krb5_free_checksum_contents() when it is no longer needed. @@ -52,7 +52,7 @@ This function computes a checksum of type *cksumtype* over *input* , using *key* .. .. seealso:: - :c:func:`krb5_c_verify_checksum()` + krb5_c_verify_checksum() @@ -61,7 +61,7 @@ This function computes a checksum of type *cksumtype* over *input* , using *key* .. note:: - This function is similar to :c:func:`krb5_c_make_checksum()` , but operates on opaque *key* . + This function is similar to krb5_c_make_checksum(), but operates on opaque *key* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_make_checksum_iov.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_make_checksum_iov.rst.txt index 381f70632bf..a25d8ec1351 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_make_checksum_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_make_checksum_iov.rst.txt @@ -16,7 +16,7 @@ krb5_k_make_checksum_iov - Fill in a checksum element in IOV array (operates on **[in]** **key** - Encryption key for a keyed checksum - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[inout]** **data** - IOV array @@ -38,7 +38,7 @@ krb5_k_make_checksum_iov - Fill in a checksum element in IOV array (operates on -Create a checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element over :data:`KRB5_CRYPTO_TYPE_DATA` and :data:`KRB5_CRYPTO_TYPE_SIGN_ONLY` chunks in *data* . Only the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` region is modified. +Create a checksum in the #KRB5_CRYPTO_TYPE_CHECKSUM element over #KRB5_CRYPTO_TYPE_DATA and #KRB5_CRYPTO_TYPE_SIGN_ONLY chunks in *data* . Only the #KRB5_CRYPTO_TYPE_CHECKSUM region is modified. @@ -52,7 +52,7 @@ Create a checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element over :data:`K .. .. seealso:: - :c:func:`krb5_k_verify_checksum_iov()` + krb5_k_verify_checksum_iov() @@ -61,7 +61,7 @@ Create a checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element over :data:`K .. note:: - This function is similar to :c:func:`krb5_c_make_checksum_iov()` , but operates on opaque *key* . + This function is similar to krb5_c_make_checksum_iov(), but operates on opaque *key* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_prf.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_prf.rst.txt index f6d95271509..69b75d830b1 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_prf.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_prf.rst.txt @@ -54,7 +54,7 @@ This function selects a pseudo-random function based on *key* and computes its v .. note:: - This function is similar to :c:func:`krb5_c_prf()` , but operates on opaque *key* . + This function is similar to krb5_c_prf(), but operates on opaque *key* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_verify_checksum.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_verify_checksum.rst.txt index 1a183f25980..fe591953122 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_verify_checksum.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_verify_checksum.rst.txt @@ -58,7 +58,7 @@ This function verifies that *cksum* is a valid checksum for *data* . If the chec .. note:: - This function is similar to :c:func:`krb5_c_verify_checksum()` , but operates on opaque *key* . + This function is similar to krb5_c_verify_checksum(), but operates on opaque *key* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_k_verify_checksum_iov.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_k_verify_checksum_iov.rst.txt index 1cfca031ea1..af4cffee62c 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_k_verify_checksum_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_k_verify_checksum_iov.rst.txt @@ -16,7 +16,7 @@ krb5_k_verify_checksum_iov - Validate a checksum element in IOV array (operates **[in]** **key** - Encryption key for a keyed checksum - **[in]** **usage** - Key usage (see :data:`KRB5_KEYUSAGE` types) + **[in]** **usage** - Key usage (see KRB5_KEYUSAGE macros) **[in]** **data** - IOV array @@ -40,7 +40,7 @@ krb5_k_verify_checksum_iov - Validate a checksum element in IOV array (operates -Confirm that the checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element is a valid checksum of the :data:`KRB5_CRYPTO_TYPE_DATA` and :data:`KRB5_CRYPTO_TYPE_SIGN_ONLY` regions in the iov. +Confirm that the checksum in the #KRB5_CRYPTO_TYPE_CHECKSUM element is a valid checksum of the #KRB5_CRYPTO_TYPE_DATA and #KRB5_CRYPTO_TYPE_SIGN_ONLY regions in the iov. @@ -54,7 +54,7 @@ Confirm that the checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element is a .. .. seealso:: - :c:func:`krb5_k_make_checksum_iov()` + krb5_k_make_checksum_iov() @@ -63,7 +63,7 @@ Confirm that the checksum in the :data:`KRB5_CRYPTO_TYPE_CHECKSUM` element is a .. note:: - This function is similar to :c:func:`krb5_c_verify_checksum_iov()` , but operates on opaque *key* . + This function is similar to krb5_c_verify_checksum_iov(), but operates on opaque *key* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_kdc_verify_ticket.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_kdc_verify_ticket.rst.txt index eccac3b81fb..29fdd3a30d9 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_kdc_verify_ticket.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_kdc_verify_ticket.rst.txt @@ -62,7 +62,7 @@ If no PAC is present in *enc_tkt* , set *pac_out* to NULL and return successfull .. note:: - This function does not validate the PAC_CLIENT_INFO buffer. If a specific value is expected, the caller can make a separate call to :c:func:`krb5_pac_verify_ext()` with a principal but no keys. + This function does not validate the PAC_CLIENT_INFO buffer. If a specific value is expected, the caller can make a separate call to krb5_pac_verify_ext() with a principal but no keys. diff --git a/doc/html/_sources/appdev/refs/api/krb5_kt_end_seq_get.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_kt_end_seq_get.rst.txt index 9e426530746..c22443ae097 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_kt_end_seq_get.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_kt_end_seq_get.rst.txt @@ -35,7 +35,7 @@ krb5_kt_end_seq_get - Release a keytab cursor. -This function should be called to release the cursor created by :c:func:`krb5_kt_start_seq_get()` . +This function should be called to release the cursor created by krb5_kt_start_seq_get(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_kt_get_entry.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_kt_get_entry.rst.txt index cfbae19e62d..d5779002dbe 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_kt_get_entry.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_kt_get_entry.rst.txt @@ -43,7 +43,7 @@ Retrieve an entry from a key table which matches the *keytab* , *principal* , *v -Use :c:func:`krb5_free_keytab_entry_contents()` to free *entry* when it is no longer needed. +Use krb5_free_keytab_entry_contents() to free *entry* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_kt_next_entry.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_kt_next_entry.rst.txt index 993a4cc6f80..a8715175d2f 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_kt_next_entry.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_kt_next_entry.rst.txt @@ -38,7 +38,7 @@ krb5_kt_next_entry - Retrieve the next entry from the key table. -Return the next sequential entry in *keytab* and advance *cursor* . Callers must release the returned entry with :c:func:`krb5_kt_free_entry()` . +Return the next sequential entry in *keytab* and advance *cursor* . Callers must release the returned entry with krb5_kt_free_entry(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_kt_read_service_key.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_kt_read_service_key.rst.txt index dd51694507e..acb8ca8626d 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_kt_read_service_key.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_kt_read_service_key.rst.txt @@ -49,7 +49,7 @@ The default key table is used, unless *keyprocarg* is non-null. *keyprocarg* des -Use :c:func:`krb5_free_keyblock()` to free *key* when it is no longer needed. +Use krb5_free_keyblock() to free *key* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_kt_resolve.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_kt_resolve.rst.txt index 49d5e256333..4ece77d8e9e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_kt_resolve.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_kt_resolve.rst.txt @@ -35,7 +35,7 @@ krb5_kt_resolve - Get a handle for a key table. -Resolve the key table name *name* and set *ktid* to a handle identifying the key table. Use :c:func:`krb5_kt_close()` to free *ktid* when it is no longer needed. +Resolve the key table name *name* and set *ktid* to a handle identifying the key table. Use krb5_kt_close() to free *ktid* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_kt_start_seq_get.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_kt_start_seq_get.rst.txt index b00b263656b..cbe107be4ac 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_kt_start_seq_get.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_kt_start_seq_get.rst.txt @@ -35,7 +35,7 @@ krb5_kt_start_seq_get - Start a sequential retrieval of key table entries. -Prepare to read sequentially every key in the specified key table. Use :c:func:`krb5_kt_end_seq_get()` to release the cursor when it is no longer needed. +Prepare to read sequentially every key in the specified key table. Use krb5_kt_end_seq_get() to release the cursor when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_marshal_credentials.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_marshal_credentials.rst.txt index 8784243af96..de1c8f8efa2 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_marshal_credentials.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_marshal_credentials.rst.txt @@ -36,7 +36,7 @@ Serialize *creds* in the format used by the FILE ccache format (vesion 4) and KC -Use :c:func:`krb5_free_data()` to free *data_out* when it is no longer needed. +Use krb5_free_data() to free *data_out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_merge_authdata.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_merge_authdata.rst.txt index 86370ec42b9..6be3fbef1f2 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_merge_authdata.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_merge_authdata.rst.txt @@ -34,7 +34,7 @@ krb5_merge_authdata - Merge two authorization data lists into a new list. -Merge two authdata arrays, such as the array from a ticket and authenticator. Use :c:func:`krb5_free_authdata()` to free *outauthdat* when it is no longer needed. +Merge two authdata arrays, such as the array from a ticket and authenticator. Use krb5_free_authdata() to free *outauthdat* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_mk_1cred.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_mk_1cred.rst.txt index 69a93c0ae43..7244e3be99f 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_mk_1cred.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_mk_1cred.rst.txt @@ -41,7 +41,7 @@ krb5_mk_1cred - Format a KRB-CRED message for a single set of credentials. -This is a convenience function that calls :c:func:`krb5_mk_ncred()` with a single set of credentials. +This is a convenience function that calls krb5_mk_ncred() with a single set of credentials. diff --git a/doc/html/_sources/appdev/refs/api/krb5_mk_error.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_mk_error.rst.txt index e0432106b03..59405b26ef3 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_mk_error.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_mk_error.rst.txt @@ -32,7 +32,7 @@ krb5_mk_error - Format and encode a KRB_ERROR message. -This function creates a **KRB_ERROR** message in *enc_err* . Use :c:func:`krb5_free_data_contents()` to free *enc_err* when it is no longer needed. +This function creates a **KRB_ERROR** message in *enc_err* . Use krb5_free_data_contents() to free *enc_err* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_mk_ncred.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_mk_ncred.rst.txt index 42ad8cc7449..7a074b6d2c0 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_mk_ncred.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_mk_ncred.rst.txt @@ -41,7 +41,7 @@ krb5_mk_ncred - Format a KRB-CRED message for an array of credentials. -This function takes an array of credentials *creds* and formats a **KRB-CRED** message *der_out* to pass to :c:func:`krb5_rd_cred()` . +This function takes an array of credentials *creds* and formats a **KRB-CRED** message *der_out* to pass to krb5_rd_cred(). @@ -49,15 +49,15 @@ The local and remote addresses in *auth_context* are optional; if either is spec -If the :data:`KRB5_AUTH_CONTEXT_DO_TIME` flag is set in *auth_context* , an entry for the message is entered in an in-memory replay cache to detect if the message is reflected by an attacker. If :data:`KRB5_AUTH_CONTEXT_DO_TIME` is not set, no replay cache is used. If :data:`KRB5_AUTH_CONTEXT_RET_TIME` is set in *auth_context* , the timestamp used for the KRB-CRED message is stored in *rdata_out* . +If the #KRB5_AUTH_CONTEXT_DO_TIME flag is set in *auth_context* , an entry for the message is entered in an in-memory replay cache to detect if the message is reflected by an attacker. If #KRB5_AUTH_CONTEXT_DO_TIME is not set, no replay cache is used. If #KRB5_AUTH_CONTEXT_RET_TIME is set in *auth_context* , the timestamp used for the KRB-CRED message is stored in *rdata_out* . -If either :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` is set, the *auth_context* local sequence number is included in the KRB-CRED message and then incremented. If :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` is set, the sequence number used is stored in *rdata_out* . +If either #KRB5_AUTH_CONTEXT_DO_SEQUENCE or #KRB5_AUTH_CONTEXT_RET_SEQUENCE is set, the *auth_context* local sequence number is included in the KRB-CRED message and then incremented. If #KRB5_AUTH_CONTEXT_RET_SEQUENCE is set, the sequence number used is stored in *rdata_out* . -Use :c:func:`krb5_free_data_contents()` to free *der_out* when it is no longer needed. +Use krb5_free_data_contents() to free *der_out* when it is no longer needed. @@ -81,7 +81,7 @@ The message will be encrypted using the send subkey of *auth_context* if it is p .. note:: - The *rdata_out* argument is required if the :data:`KRB5_AUTH_CONTEXT_RET_TIME` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` flag is set in *auth_context* . + The *rdata_out* argument is required if the #KRB5_AUTH_CONTEXT_RET_TIME or #KRB5_AUTH_CONTEXT_RET_SEQUENCE flag is set in *auth_context* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_mk_priv.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_mk_priv.rst.txt index e607080cfc1..0d9922ecb2a 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_mk_priv.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_mk_priv.rst.txt @@ -36,7 +36,7 @@ krb5_mk_priv - Format a KRB-PRIV message. -This function is similar to :c:func:`krb5_mk_safe()` , but the message is encrypted and integrity-protected, not just integrity-protected. +This function is similar to krb5_mk_safe(), but the message is encrypted and integrity-protected, not just integrity-protected. @@ -44,15 +44,15 @@ The local address in *auth_context* must be set, and is used to form the sender -If the :data:`KRB5_AUTH_CONTEXT_DO_TIME` flag is set in *auth_context* , a timestamp is included in the KRB-PRIV message, and an entry for the message is entered in an in-memory replay cache to detect if the message is reflected by an attacker. If :data:`KRB5_AUTH_CONTEXT_DO_TIME` is not set, no replay cache is used. If :data:`KRB5_AUTH_CONTEXT_RET_TIME` is set in *auth_context* , a timestamp is included in the KRB-PRIV message and is stored in *rdata_out* . +If the #KRB5_AUTH_CONTEXT_DO_TIME flag is set in *auth_context* , a timestamp is included in the KRB-PRIV message, and an entry for the message is entered in an in-memory replay cache to detect if the message is reflected by an attacker. If #KRB5_AUTH_CONTEXT_DO_TIME is not set, no replay cache is used. If #KRB5_AUTH_CONTEXT_RET_TIME is set in *auth_context* , a timestamp is included in the KRB-PRIV message and is stored in *rdata_out* . -If either :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` is set, the *auth_context* local sequence number is included in the KRB-PRIV message and then incremented. If :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` is set, the sequence number used is stored in *rdata_out* . +If either #KRB5_AUTH_CONTEXT_DO_SEQUENCE or #KRB5_AUTH_CONTEXT_RET_SEQUENCE is set, the *auth_context* local sequence number is included in the KRB-PRIV message and then incremented. If #KRB5_AUTH_CONTEXT_RET_SEQUENCE is set, the sequence number used is stored in *rdata_out* . -Use :c:func:`krb5_free_data_contents()` to free *der_out* when it is no longer needed. +Use krb5_free_data_contents() to free *der_out* when it is no longer needed. @@ -72,7 +72,7 @@ Use :c:func:`krb5_free_data_contents()` to free *der_out* when it is no longer n .. note:: - The *rdata_out* argument is required if the :data:`KRB5_AUTH_CONTEXT_RET_TIME` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` flag is set in *auth_context* . + The *rdata_out* argument is required if the #KRB5_AUTH_CONTEXT_RET_TIME or #KRB5_AUTH_CONTEXT_RET_SEQUENCE flag is set in *auth_context* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_mk_rep.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_mk_rep.rst.txt index ef712e6849b..29091a1bf13 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_mk_rep.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_mk_rep.rst.txt @@ -36,11 +36,11 @@ This function fills in *outbuf* with an AP-REP message using information from *a -If the flags in *auth_context* indicate that a sequence number should be used (either :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` ) and the local sequence number in *auth_context* is 0, a new number will be generated with krb5_generate_seq_number(). +If the flags in *auth_context* indicate that a sequence number should be used (either #KRB5_AUTH_CONTEXT_DO_SEQUENCE or #KRB5_AUTH_CONTEXT_RET_SEQUENCE) and the local sequence number in *auth_context* is 0, a new number will be generated with krb5_generate_seq_number(). -Use :c:func:`krb5_free_data_contents()` to free *outbuf* when it is no longer needed. +Use krb5_free_data_contents() to free *outbuf* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_mk_rep_dce.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_mk_rep_dce.rst.txt index ead597faa94..31cc182893e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_mk_rep_dce.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_mk_rep_dce.rst.txt @@ -32,7 +32,7 @@ krb5_mk_rep_dce - Format and encrypt a KRB_AP_REP message for DCE RPC. -Use :c:func:`krb5_free_data_contents()` to free *outbuf* when it is no longer needed. +Use krb5_free_data_contents() to free *outbuf* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_mk_req.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_mk_req.rst.txt index 695eb79399c..08033bbdce8 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_mk_req.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_mk_req.rst.txt @@ -14,7 +14,7 @@ krb5_mk_req - Create a KRB_AP_REQ message. **[inout]** **auth_context** - Pre-existing or newly created auth context - **[in]** **ap_req_options** - :data:`AP_OPTS` options + **[in]** **ap_req_options** - Options (see AP_OPTS macros) **[in]** **service** - Service name, or NULL to use **"host"** @@ -42,11 +42,11 @@ krb5_mk_req - Create a KRB_AP_REQ message. -This function is similar to :c:func:`krb5_mk_req_extended()` except that it uses a given *hostname* , *service* , and *ccache* to construct a service principal name and obtain credentials. +This function is similar to krb5_mk_req_extended() except that it uses a given *hostname* , *service* , and *ccache* to construct a service principal name and obtain credentials. -Use :c:func:`krb5_free_data_contents()` to free *outbuf* when it is no longer needed. +Use krb5_free_data_contents() to free *outbuf* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_mk_req_extended.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_mk_req_extended.rst.txt index dec402bb016..532af977558 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_mk_req_extended.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_mk_req_extended.rst.txt @@ -14,7 +14,7 @@ krb5_mk_req_extended - Create a KRB_AP_REQ message using supplied credentials. **[inout]** **auth_context** - Pre-existing or newly created auth context - **[in]** **ap_req_options** - :data:`AP_OPTS` options + **[in]** **ap_req_options** - Options (see AP_OPTS macros) **[in]** **in_data** - Application data to be checksummed in the authenticator, or NULL @@ -40,15 +40,15 @@ krb5_mk_req_extended - Create a KRB_AP_REQ message using supplied credentials. Valid *ap_req_options* are: - - :data:`AP_OPTS_USE_SESSION_KEY` - Use the session key when creating the request used for user to user authentication. + - #AP_OPTS_USE_SESSION_KEY - Use the session key when creating the request used for user to user authentication. - - :data:`AP_OPTS_MUTUAL_REQUIRED` - Request a mutual authentication packet from the receiver. + - #AP_OPTS_MUTUAL_REQUIRED - Request a mutual authentication packet from the receiver. - - :data:`AP_OPTS_USE_SUBKEY` - Generate a subsession key from the current session key obtained from the credentials. + - #AP_OPTS_USE_SUBKEY - Generate a subsession key from the current session key obtained from the credentials. - This function creates a KRB_AP_REQ message using supplied credentials *in_creds* . *auth_context* may point to an existing auth context or to NULL, in which case a new one will be created. If *in_data* is non-null, a checksum of it will be included in the authenticator contained in the KRB_AP_REQ message. Use :c:func:`krb5_free_data_contents()` to free *outbuf* when it is no longer needed. + This function creates a KRB_AP_REQ message using supplied credentials *in_creds* . *auth_context* may point to an existing auth context or to NULL, in which case a new one will be created. If *in_data* is non-null, a checksum of it will be included in the authenticator contained in the KRB_AP_REQ message. Use krb5_free_data_contents() to free *outbuf* when it is no longer needed. @@ -66,7 +66,7 @@ On successful return, the authenticator is stored in *auth_context* with the *cl .. .. seealso:: - :c:func:`krb5_mk_req()` + krb5_mk_req() diff --git a/doc/html/_sources/appdev/refs/api/krb5_mk_safe.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_mk_safe.rst.txt index a1fa56d36e2..f9a67be4ee1 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_mk_safe.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_mk_safe.rst.txt @@ -40,7 +40,7 @@ This function creates an integrity protected **KRB-SAFE** message using data sup -Fields in *auth_context* specify the checksum type, the keyblock that can be used to seed the checksum, full addresses (host and port) for the sender and receiver, and :data:`KRB5_AUTH_CONTEXT` flags. +Fields in *auth_context* specify the checksum type, the keyblock that can be used to seed the checksum, full addresses (host and port) for the sender and receiver, and KRB5_AUTH_CONTEXT flags. @@ -48,15 +48,15 @@ The local address in *auth_context* must be set, and is used to form the sender -If the :data:`KRB5_AUTH_CONTEXT_DO_TIME` flag is set in *auth_context* , a timestamp is included in the KRB-SAFE message, and an entry for the message is entered in an in-memory replay cache to detect if the message is reflected by an attacker. If :data:`KRB5_AUTH_CONTEXT_DO_TIME` is not set, no replay cache is used. If :data:`KRB5_AUTH_CONTEXT_RET_TIME` is set in *auth_context* , a timestamp is included in the KRB-SAFE message and is stored in *rdata_out* . +If the #KRB5_AUTH_CONTEXT_DO_TIME flag is set in *auth_context* , a timestamp is included in the KRB-SAFE message, and an entry for the message is entered in an in-memory replay cache to detect if the message is reflected by an attacker. If #KRB5_AUTH_CONTEXT_DO_TIME is not set, no replay cache is used. If #KRB5_AUTH_CONTEXT_RET_TIME is set in *auth_context* , a timestamp is included in the KRB-SAFE message and is stored in *rdata_out* . -If either :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` is set, the *auth_context* local sequence number is included in the KRB-SAFE message and then incremented. If :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` is set, the sequence number used is stored in *rdata_out* . +If either #KRB5_AUTH_CONTEXT_DO_SEQUENCE or #KRB5_AUTH_CONTEXT_RET_SEQUENCE is set, the *auth_context* local sequence number is included in the KRB-SAFE message and then incremented. If #KRB5_AUTH_CONTEXT_RET_SEQUENCE is set, the sequence number used is stored in *rdata_out* . -Use :c:func:`krb5_free_data_contents()` to free *der_out* when it is no longer needed. +Use krb5_free_data_contents() to free *der_out* when it is no longer needed. @@ -76,7 +76,7 @@ Use :c:func:`krb5_free_data_contents()` to free *der_out* when it is no longer n .. note:: - The *rdata_out* argument is required if the :data:`KRB5_AUTH_CONTEXT_RET_TIME` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` flag is set in *auth_context* . + The *rdata_out* argument is required if the #KRB5_AUTH_CONTEXT_RET_TIME or #KRB5_AUTH_CONTEXT_RET_SEQUENCE flag is set in *auth_context* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_os_localaddr.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_os_localaddr.rst.txt index 7af9e614a76..e0b01ff50d3 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_os_localaddr.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_os_localaddr.rst.txt @@ -30,7 +30,7 @@ krb5_os_localaddr - Return all interface addresses for this host. -Use :c:func:`krb5_free_addresses()` to free *addr* when it is no longer needed. +Use krb5_free_addresses() to free *addr* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_pac_add_buffer.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_pac_add_buffer.rst.txt index 3f5fa7b8a69..4c153c2332b 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_pac_add_buffer.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_pac_add_buffer.rst.txt @@ -40,25 +40,25 @@ This function adds a buffer of type *type* and contents *data* to *pac* if there The valid values of *type* is one of the following: - - :data:`KRB5_PAC_LOGON_INFO` - Logon information + - #KRB5_PAC_LOGON_INFO - Logon information - - :data:`KRB5_PAC_CREDENTIALS_INFO` - Credentials information + - #KRB5_PAC_CREDENTIALS_INFO - Credentials information - - :data:`KRB5_PAC_SERVER_CHECKSUM` - Server checksum + - #KRB5_PAC_SERVER_CHECKSUM - Server checksum - - :data:`KRB5_PAC_PRIVSVR_CHECKSUM` - KDC checksum + - #KRB5_PAC_PRIVSVR_CHECKSUM - KDC checksum - - :data:`KRB5_PAC_CLIENT_INFO` - Client name and ticket information + - #KRB5_PAC_CLIENT_INFO - Client name and ticket information - - :data:`KRB5_PAC_DELEGATION_INFO` - Constrained delegation information + - #KRB5_PAC_DELEGATION_INFO - Constrained delegation information - - :data:`KRB5_PAC_UPN_DNS_INFO` - User principal name and DNS information + - #KRB5_PAC_UPN_DNS_INFO - User principal name and DNS information diff --git a/doc/html/_sources/appdev/refs/api/krb5_pac_get_buffer.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_pac_get_buffer.rst.txt index ef31a5bcaa7..b4361f9b7fb 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_pac_get_buffer.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_pac_get_buffer.rst.txt @@ -34,7 +34,7 @@ krb5_pac_get_buffer - Retrieve a buffer value from a PAC. -Use :c:func:`krb5_free_data_contents()` to free *data* when it is no longer needed. +Use krb5_free_data_contents() to free *data* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_pac_init.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_pac_init.rst.txt index 4a0630d7691..d4a248bc3a3 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_pac_init.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_pac_init.rst.txt @@ -30,7 +30,7 @@ krb5_pac_init - Create an empty Privilege Attribute Certificate (PAC) handle. -Use :c:func:`krb5_pac_free()` to free *pac* when it is no longer needed. +Use krb5_pac_free() to free *pac* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_pac_parse.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_pac_parse.rst.txt index 1cae5be5a16..e770e929349 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_pac_parse.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_pac_parse.rst.txt @@ -34,7 +34,7 @@ krb5_pac_parse - Unparse an encoded PAC into a new handle. -Use :c:func:`krb5_pac_free()` to free *pac* when it is no longer needed. +Use krb5_pac_free() to free *pac* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_pac_verify_ext.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_pac_verify_ext.rst.txt index 2330993ca9b..41ffcdf6381 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_pac_verify_ext.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_pac_verify_ext.rst.txt @@ -37,7 +37,7 @@ krb5_pac_verify_ext - Verify a PAC, possibly from a specified realm. -This function is similar to :c:func:`krb5_pac_verify()` , but adds a parameter *with_realm* . If *with_realm* is true, the PAC_CLIENT_INFO field is expected to include the realm of *principal* as well as the name. This flag is necessary to verify PACs in cross-realm S4U2Self referral TGTs. +This function is similar to krb5_pac_verify(), but adds a parameter *with_realm* . If *with_realm* is true, the PAC_CLIENT_INFO field is expected to include the realm of *principal* as well as the name. This flag is necessary to verify PACs in cross-realm S4U2Self referral TGTs. diff --git a/doc/html/_sources/appdev/refs/api/krb5_parse_name.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_parse_name.rst.txt index e322b65a18b..835337d4e36 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_parse_name.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_parse_name.rst.txt @@ -51,7 +51,7 @@ Beginning with release 1.20, the name type of the principal will be inferred as -Use :c:func:`krb5_free_principal()` to free *principal_out* when it is no longer needed. +Use krb5_free_principal() to free *principal_out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_parse_name_flags.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_parse_name_flags.rst.txt index 1190ec32d73..68cbc7c53b9 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_parse_name_flags.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_parse_name_flags.rst.txt @@ -37,28 +37,28 @@ krb5_parse_name_flags - Convert a string principal name to a krb5_principal wit -Similar to :c:func:`krb5_parse_name()` , this function converts a single-string representation of a principal name to a krb5_principal structure. +Similar to krb5_parse_name(), this function converts a single-string representation of a principal name to a krb5_principal structure. The following flags are valid: - - :data:`KRB5_PRINCIPAL_PARSE_NO_REALM` - no realm must be present in *name* + - #KRB5_PRINCIPAL_PARSE_NO_REALM - no realm must be present in *name* - - :data:`KRB5_PRINCIPAL_PARSE_REQUIRE_REALM` - realm must be present in *name* + - #KRB5_PRINCIPAL_PARSE_REQUIRE_REALM - realm must be present in *name* - - :data:`KRB5_PRINCIPAL_PARSE_ENTERPRISE` - create single-component enterprise principal + - #KRB5_PRINCIPAL_PARSE_ENTERPRISE - create single-component enterprise principal - - :data:`KRB5_PRINCIPAL_PARSE_IGNORE_REALM` - ignore realm if present in *name* + - #KRB5_PRINCIPAL_PARSE_IGNORE_REALM - ignore realm if present in *name* If **KRB5_PRINCIPAL_PARSE_NO_REALM** or **KRB5_PRINCIPAL_PARSE_IGNORE_REALM** is specified in *flags* , the realm of the new principal will be empty. Otherwise, the default realm for *context* will be used if *name* does not specify a realm. -Use :c:func:`krb5_free_principal()` to free *principal_out* when it is no longer needed. +Use krb5_free_principal() to free *principal_out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_principal_compare_any_realm.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_principal_compare_any_realm.rst.txt index d2766bdb0b6..72c02a6610b 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_principal_compare_any_realm.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_principal_compare_any_realm.rst.txt @@ -32,7 +32,7 @@ krb5_principal_compare_any_realm - Compare two principals ignoring realm compon -Similar to :c:func:`krb5_principal_compare()` , but do not compare the realm components of the principals. +Similar to krb5_principal_compare(), but do not compare the realm components of the principals. diff --git a/doc/html/_sources/appdev/refs/api/krb5_principal_compare_flags.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_principal_compare_flags.rst.txt index 3df09d3f4aa..df8fc5bdbf7 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_principal_compare_flags.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_principal_compare_flags.rst.txt @@ -36,16 +36,16 @@ krb5_principal_compare_flags - Compare two principals with additional flags. Valid flags are: - - :data:`KRB5_PRINCIPAL_COMPARE_IGNORE_REALM` - ignore realm component + - #KRB5_PRINCIPAL_COMPARE_IGNORE_REALM - ignore realm component - - :data:`KRB5_PRINCIPAL_COMPARE_ENTERPRISE` - UPNs as real principals + - #KRB5_PRINCIPAL_COMPARE_ENTERPRISE - UPNs as real principals - - :data:`KRB5_PRINCIPAL_COMPARE_CASEFOLD` case-insensitive + - #KRB5_PRINCIPAL_COMPARE_CASEFOLD case-insensitive - - :data:`KRB5_PRINCIPAL_COMPARE_UTF8` - treat principals as UTF-8 + - #KRB5_PRINCIPAL_COMPARE_UTF8 - treat principals as UTF-8 @@ -57,7 +57,7 @@ Valid flags are: .. .. seealso:: - :c:func:`krb5_principal_compare()` + krb5_principal_compare() diff --git a/doc/html/_sources/appdev/refs/api/krb5_prompter_posix.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_prompter_posix.rst.txt index 5450996a42d..b4012cac5e2 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_prompter_posix.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_prompter_posix.rst.txt @@ -41,7 +41,7 @@ krb5_prompter_posix - Prompt user for password. -This function is intended to be used as a prompter callback for :c:func:`krb5_get_init_creds_password()` or :c:func:`krb5_init_creds_init()` . +This function is intended to be used as a prompter callback for krb5_get_init_creds_password() or krb5_init_creds_init(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_rd_cred.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_rd_cred.rst.txt index 03e087662e1..556a2604716 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_rd_cred.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_rd_cred.rst.txt @@ -40,7 +40,7 @@ krb5_rd_cred - Read and validate a KRB-CRED message. -Use :c:func:`krb5_free_tgt_creds()` to free *creds_out* when it is no longer needed. +Use krb5_free_tgt_creds() to free *creds_out* when it is no longer needed. @@ -60,7 +60,7 @@ Use :c:func:`krb5_free_tgt_creds()` to free *creds_out* when it is no longer nee .. note:: - The *rdata_out* argument is required if the :data:`KRB5_AUTH_CONTEXT_RET_TIME` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` flag is set in *auth_context* .` + The *rdata_out* argument is required if the #KRB5_AUTH_CONTEXT_RET_TIME or #KRB5_AUTH_CONTEXT_RET_SEQUENCE flag is set in *auth_context* .` diff --git a/doc/html/_sources/appdev/refs/api/krb5_rd_error.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_rd_error.rst.txt index dd3437594e1..a748a620975 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_rd_error.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_rd_error.rst.txt @@ -32,7 +32,7 @@ krb5_rd_error - Decode a KRB-ERROR message. -This function processes **KRB-ERROR** message *enc_errbuf* and returns an allocated structure *dec_error* containing the error message. Use :c:func:`krb5_free_error()` to free *dec_error* when it is no longer needed. +This function processes **KRB-ERROR** message *enc_errbuf* and returns an allocated structure *dec_error* containing the error message. Use krb5_free_error() to free *dec_error* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_rd_priv.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_rd_priv.rst.txt index 592d593003b..f2690f41ead 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_rd_priv.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_rd_priv.rst.txt @@ -44,15 +44,15 @@ If *auth_context* has a remote address set, the address will be used to verify t -If the :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` flag is set in *auth_context* , the sequence number of the KRB-PRIV message is checked against the remote sequence number field of *auth_context* . Otherwise, the sequence number is not used. +If the #KRB5_AUTH_CONTEXT_DO_SEQUENCE flag is set in *auth_context* , the sequence number of the KRB-PRIV message is checked against the remote sequence number field of *auth_context* . Otherwise, the sequence number is not used. -If the :data:`KRB5_AUTH_CONTEXT_DO_TIME` flag is set in *auth_context* , then the timestamp in the message is verified to be within the permitted clock skew of the current time, and the message is checked against an in-memory replay cache to detect reflections or replays. +If the #KRB5_AUTH_CONTEXT_DO_TIME flag is set in *auth_context* , then the timestamp in the message is verified to be within the permitted clock skew of the current time, and the message is checked against an in-memory replay cache to detect reflections or replays. -Use :c:func:`krb5_free_data_contents()` to free *userdata_out* when it is no longer needed. +Use krb5_free_data_contents() to free *userdata_out* when it is no longer needed. @@ -72,7 +72,7 @@ Use :c:func:`krb5_free_data_contents()` to free *userdata_out* when it is no lon .. note:: - The *rdata_out* argument is required if the :data:`KRB5_AUTH_CONTEXT_RET_TIME` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` flag is set in *auth_context* . + The *rdata_out* argument is required if the #KRB5_AUTH_CONTEXT_RET_TIME or #KRB5_AUTH_CONTEXT_RET_SEQUENCE flag is set in *auth_context* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_rd_rep.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_rd_rep.rst.txt index 67419a853be..e2acba84b1b 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_rd_rep.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_rd_rep.rst.txt @@ -38,7 +38,7 @@ This function parses, decrypts and verifies a message from *inbuf* and fills in -Use :c:func:`krb5_free_ap_rep_enc_part()` to free *repl* when it is no longer needed. +Use krb5_free_ap_rep_enc_part() to free *repl* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_rd_req.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_rd_req.rst.txt index 85516e3df54..e5b9d73cc5d 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_rd_req.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_rd_req.rst.txt @@ -44,11 +44,11 @@ This function parses, decrypts and verifies a AP-REQ message from *inbuf* and st -If a keyblock was specified in *auth_context* using :c:func:`krb5_auth_con_setuseruserkey()` , that key is used to decrypt the ticket in AP-REQ message and *keytab* is ignored. In this case, *server* should be specified as a complete principal name to allow for proper transited-path checking and replay cache selection. +If a keyblock was specified in *auth_context* using krb5_auth_con_setuseruserkey(), that key is used to decrypt the ticket in AP-REQ message and *keytab* is ignored. In this case, *server* should be specified as a complete principal name to allow for proper transited-path checking and replay cache selection. -Otherwise, the decryption key is obtained from *keytab* , or from the default keytab if it is NULL. In this case, *server* may be a complete principal name, a matching principal (see :c:func:`krb5_sname_match()` ), or NULL to match any principal name. The keys tried against the encrypted part of the ticket are determined as follows: +Otherwise, the decryption key is obtained from *keytab* , or from the default keytab if it is NULL. In this case, *server* may be a complete principal name, a matching principal (see krb5_sname_match()), or NULL to match any principal name. The keys tried against the encrypted part of the ticket are determined as follows: @@ -82,11 +82,11 @@ Various other checks are performed on the decoded data, including cross-realm po -On success the authenticator, subkey, and remote sequence number of the request are stored in *auth_context* . If the :data:`AP_OPTS_MUTUAL_REQUIRED` bit is set, the local sequence number is XORed with the remote sequence number in the request. +On success the authenticator, subkey, and remote sequence number of the request are stored in *auth_context* . If the #AP_OPTS_MUTUAL_REQUIRED bit is set, the local sequence number is XORed with the remote sequence number in the request. -Use :c:func:`krb5_free_ticket()` to free *ticket* when it is no longer needed. +Use krb5_free_ticket() to free *ticket* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_rd_safe.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_rd_safe.rst.txt index 6b7692dd0ee..5166c5501de 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_rd_safe.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_rd_safe.rst.txt @@ -44,15 +44,15 @@ If *auth_context* has a remote address set, the address will be used to verify t -If the :data:`KRB5_AUTH_CONTEXT_DO_SEQUENCE` flag is set in *auth_context* , the sequence number of the KRB-SAFE message is checked against the remote sequence number field of *auth_context* . Otherwise, the sequence number is not used. +If the #KRB5_AUTH_CONTEXT_DO_SEQUENCE flag is set in *auth_context* , the sequence number of the KRB-SAFE message is checked against the remote sequence number field of *auth_context* . Otherwise, the sequence number is not used. -If the :data:`KRB5_AUTH_CONTEXT_DO_TIME` flag is set in *auth_context* , then the timestamp in the message is verified to be within the permitted clock skew of the current time, and the message is checked against an in-memory replay cache to detect reflections or replays. +If the #KRB5_AUTH_CONTEXT_DO_TIME flag is set in *auth_context* , then the timestamp in the message is verified to be within the permitted clock skew of the current time, and the message is checked against an in-memory replay cache to detect reflections or replays. -Use :c:func:`krb5_free_data_contents()` to free *userdata_out* when it is no longer needed. +Use krb5_free_data_contents() to free *userdata_out* when it is no longer needed. @@ -72,7 +72,7 @@ Use :c:func:`krb5_free_data_contents()` to free *userdata_out* when it is no lon .. note:: - The *rdata_out* argument is required if the :data:`KRB5_AUTH_CONTEXT_RET_TIME` or :data:`KRB5_AUTH_CONTEXT_RET_SEQUENCE` flag is set in *auth_context* . + The *rdata_out* argument is required if the #KRB5_AUTH_CONTEXT_RET_TIME or #KRB5_AUTH_CONTEXT_RET_SEQUENCE flag is set in *auth_context* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_recvauth.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_recvauth.rst.txt index c9bcaa870e3..0cc70cf8c16 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_recvauth.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_recvauth.rst.txt @@ -46,7 +46,7 @@ This function performs the server side of a sendauth/recvauth exchange by sendin -Use :c:func:`krb5_free_ticket()` to free *ticket* when it is no longer needed. +Use krb5_free_ticket() to free *ticket* when it is no longer needed. @@ -60,7 +60,7 @@ Use :c:func:`krb5_free_ticket()` to free *ticket* when it is no longer needed. .. .. seealso:: - :c:func:`krb5_sendauth()` + krb5_sendauth() diff --git a/doc/html/_sources/appdev/refs/api/krb5_recvauth_version.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_recvauth_version.rst.txt index 6d3e446c5ca..4ec26ab033e 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_recvauth_version.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_recvauth_version.rst.txt @@ -42,7 +42,7 @@ krb5_recvauth_version - Server function for sendauth protocol with version para -This function is similar to :c:func:`krb5_recvauth()` with the additional output information place into *version* . +This function is similar to krb5_recvauth() with the additional output information place into *version* . diff --git a/doc/html/_sources/appdev/refs/api/krb5_responder_list_questions.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_responder_list_questions.rst.txt index d1efd014852..03491ced4f7 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_responder_list_questions.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_responder_list_questions.rst.txt @@ -27,7 +27,7 @@ krb5_responder_list_questions - List the question names contained in the respon -Return a pointer to a null-terminated list of question names which are present in *rctx* . The pointer is an alias, valid only as long as the lifetime of *rctx* , and should not be modified or freed by the caller. A question's challenge can be retrieved using :c:func:`krb5_responder_get_challenge()` and answered using :c:func:`krb5_responder_set_answer()` . +Return a pointer to a null-terminated list of question names which are present in *rctx* . The pointer is an alias, valid only as long as the lifetime of *rctx* , and should not be modified or freed by the caller. A question's challenge can be retrieved using krb5_responder_get_challenge() and answered using krb5_responder_set_answer(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_responder_otp_challenge_free.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_responder_otp_challenge_free.rst.txt index fb4863ea1bb..a92db44d86c 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_responder_otp_challenge_free.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_responder_otp_challenge_free.rst.txt @@ -1,5 +1,5 @@ -krb5_responder_otp_challenge_free - Free the value returned by krb5_responder_otp_get_challenge() . -===================================================================================================== +krb5_responder_otp_challenge_free - Free the value returned by krb5_responder_otp_get_challenge(). +==================================================================================================== .. diff --git a/doc/html/_sources/appdev/refs/api/krb5_responder_otp_get_challenge.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_responder_otp_get_challenge.rst.txt index 4fd609e980b..7f7755db9de 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_responder_otp_get_challenge.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_responder_otp_get_challenge.rst.txt @@ -33,7 +33,7 @@ A convenience function which parses the KRB5_RESPONDER_QUESTION_OTP question cha -The returned value must be passed to :c:func:`krb5_responder_otp_challenge_free()` to be freed. +The returned value must be passed to krb5_responder_otp_challenge_free() to be freed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_responder_pkinit_challenge_free.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_responder_pkinit_challenge_free.rst.txt index e7376aaf385..a017b2e61ce 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_responder_pkinit_challenge_free.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_responder_pkinit_challenge_free.rst.txt @@ -1,5 +1,5 @@ -krb5_responder_pkinit_challenge_free - Free the value returned by krb5_responder_pkinit_get_challenge() . -=========================================================================================================== +krb5_responder_pkinit_challenge_free - Free the value returned by krb5_responder_pkinit_get_challenge(). +========================================================================================================== .. diff --git a/doc/html/_sources/appdev/refs/api/krb5_responder_pkinit_get_challenge.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_responder_pkinit_get_challenge.rst.txt index a14588127ac..4204e50a5ce 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_responder_pkinit_get_challenge.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_responder_pkinit_get_challenge.rst.txt @@ -33,7 +33,7 @@ A convenience function which parses the KRB5_RESPONDER_QUESTION_PKINIT question -The returned value must be passed to :c:func:`krb5_responder_pkinit_challenge_free()` to be freed. +The returned value must be passed to krb5_responder_pkinit_challenge_free() to be freed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_sendauth.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_sendauth.rst.txt index 29abeaf4a2f..40ef384b5bf 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_sendauth.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_sendauth.rst.txt @@ -22,7 +22,7 @@ krb5_sendauth - Client function for sendauth protocol. **[in]** **server** - Server principal - **[in]** **ap_req_options** - :data:`AP_OPTS` options + **[in]** **ap_req_options** - Options (see AP_OPTS macros) **[in]** **in_data** - Data to be sent to the server @@ -32,7 +32,7 @@ krb5_sendauth - Client function for sendauth protocol. **[out]** **error** - If non-null, contains KRB_ERROR message returned from server - **[out]** **rep_result** - If non-null and *ap_req_options* is :data:`AP_OPTS_MUTUAL_REQUIRED` , contains the result of mutual authentication exchange + **[out]** **rep_result** - If non-null and *ap_req_options* is #AP_OPTS_MUTUAL_REQUIRED, contains the result of mutual authentication exchange **[out]** **out_creds** - If non-null, the retrieved credentials @@ -62,11 +62,11 @@ Credentials may be specified in three ways: - - If *in_creds* is NULL, credentials are obtained with :c:func:`krb5_get_credentials()` using the principals *client* and *server* . *server* must be non-null; *client* may NULL to use the default principal of *ccache* . + - If *in_creds* is NULL, credentials are obtained with krb5_get_credentials() using the principals *client* and *server* . *server* must be non-null; *client* may NULL to use the default principal of *ccache* . - - If *in_creds* is non-null, but does not contain a ticket, credentials for the exchange are obtained with :c:func:`krb5_get_credentials()` using *in_creds* . In this case, the values of *client* and *server* are unused. + - If *in_creds* is non-null, but does not contain a ticket, credentials for the exchange are obtained with krb5_get_credentials() using *in_creds* . In this case, the values of *client* and *server* are unused. @@ -76,7 +76,7 @@ Credentials may be specified in three ways: -Use :c:func:`krb5_free_creds()` to free *out_creds* , :c:func:`krb5_free_ap_rep_enc_part()` to free *rep_result* , and :c:func:`krb5_free_error()` to free *error* when they are no longer needed. +Use krb5_free_creds() to free *out_creds* , krb5_free_ap_rep_enc_part() to free *rep_result* , and krb5_free_error() to free *error* when they are no longer needed. @@ -90,7 +90,7 @@ Use :c:func:`krb5_free_creds()` to free *out_creds* , :c:func:`krb5_free_ap_rep_ .. .. seealso:: - :c:func:`krb5_recvauth()` + krb5_recvauth() diff --git a/doc/html/_sources/appdev/refs/api/krb5_set_kdc_recv_hook.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_set_kdc_recv_hook.rst.txt index 66a334a44b8..70c48ccab3b 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_set_kdc_recv_hook.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_set_kdc_recv_hook.rst.txt @@ -29,7 +29,7 @@ krb5_set_kdc_recv_hook - Set a KDC post-receive hook function. - *recv_hook* will be called after a reply is received from a KDC during a call to a library function such as :c:func:`krb5_get_credentials()` . The hook function may inspect or override the reply. This hook will not be executed if the pre-send hook returns a synthetic reply. + *recv_hook* will be called after a reply is received from a KDC during a call to a library function such as krb5_get_credentials(). The hook function may inspect or override the reply. This hook will not be executed if the pre-send hook returns a synthetic reply. diff --git a/doc/html/_sources/appdev/refs/api/krb5_set_kdc_send_hook.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_set_kdc_send_hook.rst.txt index 7bffffb4461..d2696db9f96 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_set_kdc_send_hook.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_set_kdc_send_hook.rst.txt @@ -29,7 +29,7 @@ krb5_set_kdc_send_hook - Set a KDC pre-send hook function. - *send_hook* will be called before messages are sent to KDCs by library functions such as :c:func:`krb5_get_credentials()` . The hook function may inspect, override, or synthesize its own reply to the message. + *send_hook* will be called before messages are sent to KDCs by library functions such as krb5_get_credentials(). The hook function may inspect, override, or synthesize its own reply to the message. diff --git a/doc/html/_sources/appdev/refs/api/krb5_set_password.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_set_password.rst.txt index 0fefb2cea3e..ff80c966ad4 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_set_password.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_set_password.rst.txt @@ -29,7 +29,7 @@ krb5_set_password - Set a password for a principal using specified credentials. :retval: - - 0 Success and result_code is set to KRB5_KPASSWD_SUCCESS . + - 0 Success and result_code is set to #KRB5_KPASSWD_SUCCESS. :return: diff --git a/doc/html/_sources/appdev/refs/api/krb5_sname_to_principal.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_sname_to_principal.rst.txt index 07b4849a91a..6dd15ddbb33 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_sname_to_principal.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_sname_to_principal.rst.txt @@ -39,7 +39,7 @@ krb5_sname_to_principal - Generate a full principal name from a service name. -This function converts a *hostname* and *sname* into *krb5_principal* structure *ret_princ* . The returned principal will be of the form *sname\/hostname@REALM* where REALM is determined by :c:func:`krb5_get_host_realm()` . In some cases this may be the referral (empty) realm. +This function converts a *hostname* and *sname* into *krb5_principal* structure *ret_princ* . The returned principal will be of the form *sname\/hostname@REALM* where REALM is determined by krb5_get_host_realm(). In some cases this may be the referral (empty) realm. @@ -49,11 +49,11 @@ The *type* can be one of the following: - - :data:`KRB5_NT_SRV_HST` canonicalizes the host name before looking up the realm and generating the principal. + - #KRB5_NT_SRV_HST canonicalizes the host name before looking up the realm and generating the principal. - - :data:`KRB5_NT_UNKNOWN` accepts the hostname as given, and does not canonicalize it. + - #KRB5_NT_UNKNOWN accepts the hostname as given, and does not canonicalize it. Use krb5_free_principal to free *ret_princ* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get.rst.txt index 4ff37fd1321..a193ce92bd1 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get.rst.txt @@ -30,7 +30,7 @@ krb5_tkt_creds_get - Synchronously obtain credentials using a TGS request conte -This function synchronously obtains credentials using a context created by :c:func:`krb5_tkt_creds_init()` . On successful return, the credentials can be retrieved with :c:func:`krb5_tkt_creds_get_creds()` . +This function synchronously obtains credentials using a context created by krb5_tkt_creds_init(). On successful return, the credentials can be retrieved with krb5_tkt_creds_get_creds(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get_creds.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get_creds.rst.txt index 1f402aee8b9..309e8d47b1f 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get_creds.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get_creds.rst.txt @@ -32,7 +32,7 @@ krb5_tkt_creds_get_creds - Retrieve acquired credentials from a TGS request con -This function copies the acquired initial credentials from *ctx* into *creds* , after the successful completion of :c:func:`krb5_tkt_creds_get()` or :c:func:`krb5_tkt_creds_step()` . Use :c:func:`krb5_free_cred_contents()` to free *creds* when it is no longer needed. +This function copies the acquired initial credentials from *ctx* into *creds* , after the successful completion of krb5_tkt_creds_get() or krb5_tkt_creds_step(). Use krb5_free_cred_contents() to free *creds* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get_times.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get_times.rst.txt index 09701f05717..19c9f98066b 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get_times.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_get_times.rst.txt @@ -32,7 +32,7 @@ krb5_tkt_creds_get_times - Retrieve ticket times from a TGS request context. -The TGS request context must have completed obtaining credentials via either :c:func:`krb5_tkt_creds_get()` or :c:func:`krb5_tkt_creds_step()` . +The TGS request context must have completed obtaining credentials via either krb5_tkt_creds_get() or krb5_tkt_creds_step(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_init.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_init.rst.txt index e61ee90f8af..3ec4a35dca1 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_init.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_init.rst.txt @@ -16,7 +16,7 @@ krb5_tkt_creds_init - Create a context to get credentials from a KDC's Ticket G **[in]** **creds** - Input credentials - **[in]** **options** - :data:`KRB5_GC` options for this request. + **[in]** **options** - Options (see KRB5_GC macros) **[out]** **ctx** - New TGS request context @@ -40,11 +40,11 @@ This function prepares to obtain credentials matching *creds* , either by retrie -The resulting TGS acquisition context can be used asynchronously with :c:func:`krb5_tkt_creds_step()` or synchronously with :c:func:`krb5_tkt_creds_get()` . See also :c:func:`krb5_get_credentials()` for synchronous use. +The resulting TGS acquisition context can be used asynchronously with krb5_tkt_creds_step() or synchronously with krb5_tkt_creds_get(). See also krb5_get_credentials() for synchronous use. -Use :c:func:`krb5_tkt_creds_free()` to free *ctx* when it is no longer needed. +Use krb5_tkt_creds_free() to free *ctx* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_step.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_step.rst.txt index 6cab1642b01..919f47c7770 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_step.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_tkt_creds_step.rst.txt @@ -42,7 +42,7 @@ This function constructs the next KDC request for a TGS exchange, allowing the c -If more requests are needed, *flags* will be set to :data:`KRB5_TKT_CREDS_STEP_FLAG_CONTINUE` and the next request will be placed in *out* . If no more requests are needed, *flags* will not contain :data:`KRB5_TKT_CREDS_STEP_FLAG_CONTINUE` and *out* will be empty. +If more requests are needed, *flags* will be set to #KRB5_TKT_CREDS_STEP_FLAG_CONTINUE and the next request will be placed in *out* . If no more requests are needed, *flags* will not contain #KRB5_TKT_CREDS_STEP_FLAG_CONTINUE and *out* will be empty. diff --git a/doc/html/_sources/appdev/refs/api/krb5_unmarshal_credentials.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_unmarshal_credentials.rst.txt index d30905e156a..bbab8765b88 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_unmarshal_credentials.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_unmarshal_credentials.rst.txt @@ -36,7 +36,7 @@ Deserialize *data* to credentials in the format used by the FILE ccache format ( -Use :c:func:`krb5_free_creds()` to free *creds_out* when it is no longer needed. +Use krb5_free_creds() to free *creds_out* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_unparse_name.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_unparse_name.rst.txt index 0f45313b9e5..90ecea7056c 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_unparse_name.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_unparse_name.rst.txt @@ -35,11 +35,11 @@ krb5_unparse_name - Convert a krb5_principal structure to a string representati -The resulting string representation uses the format and quoting conventions described for :c:func:`krb5_parse_name()` . +The resulting string representation uses the format and quoting conventions described for krb5_parse_name(). -Use :c:func:`krb5_free_unparsed_name()` to free *name* when it is no longer needed. +Use krb5_free_unparsed_name() to free *name* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_unparse_name_ext.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_unparse_name_ext.rst.txt index 61b13e1b88b..6456632fa3a 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_unparse_name_ext.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_unparse_name_ext.rst.txt @@ -37,11 +37,11 @@ krb5_unparse_name_ext - Convert krb5_principal structure to string and length. -This function is similar to :c:func:`krb5_unparse_name()` , but allows the use of an existing buffer for the result. If size is not NULL, then *name* must point to either NULL or an existing buffer of at least the size pointed to by *size* . The buffer will be allocated or resized if necessary, with the new pointer stored into *name* . Whether or not the buffer is resized, the necessary space for the result, including null terminator, will be stored into *size* . +This function is similar to krb5_unparse_name(), but allows the use of an existing buffer for the result. If size is not NULL, then *name* must point to either NULL or an existing buffer of at least the size pointed to by *size* . The buffer will be allocated or resized if necessary, with the new pointer stored into *name* . Whether or not the buffer is resized, the necessary space for the result, including null terminator, will be stored into *size* . -If size is NULL, this function behaves exactly as :c:func:`krb5_unparse_name()` . +If size is NULL, this function behaves exactly as krb5_unparse_name(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_unparse_name_flags.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_unparse_name_flags.rst.txt index 0cf41cf4ae8..dce93531412 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_unparse_name_flags.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_unparse_name_flags.rst.txt @@ -37,21 +37,21 @@ krb5_unparse_name_flags - Convert krb5_principal structure to a string with fla -Similar to :c:func:`krb5_unparse_name()` , this function converts a krb5_principal structure to a string representation. +Similar to krb5_unparse_name(), this function converts a krb5_principal structure to a string representation. The following flags are valid: - - :data:`KRB5_PRINCIPAL_UNPARSE_SHORT` - omit realm if it is the local realm + - #KRB5_PRINCIPAL_UNPARSE_SHORT - omit realm if it is the local realm - - :data:`KRB5_PRINCIPAL_UNPARSE_NO_REALM` - omit realm + - #KRB5_PRINCIPAL_UNPARSE_NO_REALM - omit realm - - :data:`KRB5_PRINCIPAL_UNPARSE_DISPLAY` - do not quote special characters + - #KRB5_PRINCIPAL_UNPARSE_DISPLAY - do not quote special characters - Use :c:func:`krb5_free_unparsed_name()` to free *name* when it is no longer needed. + Use krb5_free_unparsed_name() to free *name* when it is no longer needed. diff --git a/doc/html/_sources/appdev/refs/api/krb5_verify_init_creds.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_verify_init_creds.rst.txt index 04185f342d6..1788cad3ce7 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_verify_init_creds.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_verify_init_creds.rst.txt @@ -42,7 +42,7 @@ This function attempts to verify that *creds* were obtained from a KDC with know -If the specified keytab does not exist, or is empty, or cannot be read, or does not contain an entry for *server* , then credential verification may be skipped unless configuration demands that it succeed. The caller can control this behavior by providing a verification options structure; see :c:func:`krb5_verify_init_creds_opt_init()` and :c:func:`krb5_verify_init_creds_opt_set_ap_req_nofail()` . +If the specified keytab does not exist, or is empty, or cannot be read, or does not contain an entry for *server* , then credential verification may be skipped unless configuration demands that it succeed. The caller can control this behavior by providing a verification options structure; see krb5_verify_init_creds_opt_init() and krb5_verify_init_creds_opt_set_ap_req_nofail(). diff --git a/doc/html/_sources/appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail.rst.txt index fc6ac022cba..870f448fc7b 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail.rst.txt @@ -27,11 +27,11 @@ krb5_verify_init_creds_opt_set_ap_req_nofail - Set whether credential verificat -This function determines how :c:func:`krb5_verify_init_creds()` behaves if no keytab information is available. If *ap_req_nofail* is **FALSE** , verification will be skipped in this case and :c:func:`krb5_verify_init_creds()` will return successfully. If *ap_req_nofail* is **TRUE** , :c:func:`krb5_verify_init_creds()` will not return successfully unless verification can be performed. +This function determines how krb5_verify_init_creds() behaves if no keytab information is available. If *ap_req_nofail* is **FALSE** , verification will be skipped in this case and krb5_verify_init_creds() will return successfully. If *ap_req_nofail* is **TRUE** , krb5_verify_init_creds() will not return successfully unless verification can be performed. -If this function is not used, the behavior of :c:func:`krb5_verify_init_creds()` is determined through configuration. +If this function is not used, the behavior of krb5_verify_init_creds() is determined through configuration. diff --git a/doc/html/_sources/appdev/refs/api/krb5_vprepend_error_message.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_vprepend_error_message.rst.txt index 7c493596028..53003d1c67a 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_vprepend_error_message.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_vprepend_error_message.rst.txt @@ -31,7 +31,7 @@ krb5_vprepend_error_message - Add a prefix to the message for an error code usi -This function is similar to :c:func:`krb5_prepend_error_message()` , but uses a va_list instead of variadic arguments. +This function is similar to krb5_prepend_error_message(), but uses a va_list instead of variadic arguments. diff --git a/doc/html/_sources/appdev/refs/api/krb5_vwrap_error_message.rst.txt b/doc/html/_sources/appdev/refs/api/krb5_vwrap_error_message.rst.txt index 1e2a27e7eee..d860efe4fc9 100644 --- a/doc/html/_sources/appdev/refs/api/krb5_vwrap_error_message.rst.txt +++ b/doc/html/_sources/appdev/refs/api/krb5_vwrap_error_message.rst.txt @@ -33,7 +33,7 @@ krb5_vwrap_error_message - Add a prefix to a different error code's message usi -This function is similar to :c:func:`krb5_wrap_error_message()` , but uses a va_list instead of variadic arguments. +This function is similar to krb5_wrap_error_message(), but uses a va_list instead of variadic arguments. diff --git a/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY.rst.txt b/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY.rst.txt index 0bcb60a45e5..adab35dc54c 100644 --- a/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY.rst.txt +++ b/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY.rst.txt @@ -9,7 +9,6 @@ KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY .. data:: KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY .. -Note conflict with :c:data:`KRB5_KEYUSAGE_PA_SAM_RESPONSE` . diff --git a/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST.rst.txt b/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST.rst.txt index d85ad328ec5..03fff049a7d 100644 --- a/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST.rst.txt +++ b/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST.rst.txt @@ -9,7 +9,6 @@ KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST .. data:: KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST .. -Note conflict with :c:data:`KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID` . diff --git a/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID.rst.txt b/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID.rst.txt index ca5f67cf948..1928646ebec 100644 --- a/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID.rst.txt +++ b/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID.rst.txt @@ -9,7 +9,6 @@ KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID .. data:: KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID .. -Note conflict with :c:data:`KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST` . diff --git a/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE.rst.txt b/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE.rst.txt index 96863b9206d..93b83048903 100644 --- a/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE.rst.txt +++ b/doc/html/_sources/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE.rst.txt @@ -9,7 +9,6 @@ KRB5_KEYUSAGE_PA_SAM_RESPONSE .. data:: KRB5_KEYUSAGE_PA_SAM_RESPONSE .. -Note conflict with :c:data:`KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY` . diff --git a/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP.rst.txt b/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP.rst.txt index 367dd3219cd..47ad1732e1a 100644 --- a/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP.rst.txt +++ b/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP.rst.txt @@ -30,7 +30,6 @@ The OTP responder question is asked when the KDC indicates that an OTP value is ] } - The answer to the question MUST be JSON formatted: :: @@ -40,9 +39,8 @@ The answer to the question MUST be JSON formatted: "pin": , } - For more detail, please see RFC 6560. - + ================================== ====================== ``KRB5_RESPONDER_QUESTION_OTP`` ``"otp"`` diff --git a/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD.rst.txt b/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD.rst.txt index 342e459100c..057eac4ad24 100644 --- a/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD.rst.txt +++ b/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD.rst.txt @@ -12,7 +12,7 @@ KRB5_RESPONDER_QUESTION_PASSWORD Long-term password responder question. This question is asked when the long-term password is needed. It has no challenge and the response is simply the password string. - + ======================================= ====================== ``KRB5_RESPONDER_QUESTION_PASSWORD`` ``"password"`` diff --git a/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT.rst.txt b/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT.rst.txt index b8b5b9ddda0..0fb11c73de4 100644 --- a/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT.rst.txt +++ b/doc/html/_sources/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT.rst.txt @@ -19,7 +19,6 @@ The PKINIT responder question is asked when the client needs a password that's b ... } - The answer to the question MUST be JSON formatted: :: @@ -28,8 +27,7 @@ The answer to the question MUST be JSON formatted: ... } - - + ===================================== ====================== ``KRB5_RESPONDER_QUESTION_PKINIT`` ``"pkinit"`` diff --git a/doc/html/_sources/appdev/refs/macros/krb5_princ_component.rst.txt b/doc/html/_sources/appdev/refs/macros/krb5_princ_component.rst.txt index dc6160b52be..cdca4bffb03 100644 --- a/doc/html/_sources/appdev/refs/macros/krb5_princ_component.rst.txt +++ b/doc/html/_sources/appdev/refs/macros/krb5_princ_component.rst.txt @@ -13,5 +13,5 @@ krb5_princ_component ============================================== ====================== -``krb5_princ_component (context, princ, i)`` ``(((i) < krb5_princ_size(context, princ)) ? (princ)->data + (i) : NULL)`` +``krb5_princ_component (context, princ, i)`` `` (((i) < krb5_princ_size(context, princ)) ? (princ)->data + (i) : NULL)`` ============================================== ====================== diff --git a/doc/html/_sources/appdev/refs/types/krb5_address.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_address.rst.txt index 8753a28ecbe..1b433789c6c 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_address.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_address.rst.txt @@ -16,7 +16,7 @@ Structure for address. Declaration ------------ -typedef struct _krb5_address krb5_address +typedef struct _krb5_address krb5_address Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_ap_rep.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_ap_rep.rst.txt index 87005890db0..e2e7e7dfcf5 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_ap_rep.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_ap_rep.rst.txt @@ -16,7 +16,7 @@ The server's response to a client's request for mutual authentication. Declaration ------------ -typedef struct _krb5_ap_rep krb5_ap_rep +typedef struct _krb5_ap_rep krb5_ap_rep Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_ap_rep_enc_part.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_ap_rep_enc_part.rst.txt index 87d62a608cc..b71917831e8 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_ap_rep_enc_part.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_ap_rep_enc_part.rst.txt @@ -16,7 +16,7 @@ Cleartext that is encrypted and put into :c:type:`_krb5_ap_rep` . Declaration ------------ -typedef struct _krb5_ap_rep_enc_part krb5_ap_rep_enc_part +typedef struct _krb5_ap_rep_enc_part krb5_ap_rep_enc_part Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_ap_req.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_ap_req.rst.txt index 425e224258d..8d9642c7786 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_ap_req.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_ap_req.rst.txt @@ -16,7 +16,7 @@ Authentication header. Declaration ------------ -typedef struct _krb5_ap_req krb5_ap_req +typedef struct _krb5_ap_req krb5_ap_req Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_authdata.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_authdata.rst.txt index 409c4df6a94..6419a059e1f 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_authdata.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_authdata.rst.txt @@ -16,7 +16,7 @@ Structure for auth data. Declaration ------------ -typedef struct _krb5_authdata krb5_authdata +typedef struct _krb5_authdata krb5_authdata Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_authenticator.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_authenticator.rst.txt index fcff008af77..4b2b1c92d8f 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_authenticator.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_authenticator.rst.txt @@ -16,7 +16,7 @@ The C representation of an unencrypted authenticator. Declaration ------------ -typedef struct _krb5_authenticator krb5_authenticator +typedef struct _krb5_authenticator krb5_authenticator Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_checksum.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_checksum.rst.txt index 7695e5caab4..de4cc0116fe 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_checksum.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_checksum.rst.txt @@ -15,7 +15,7 @@ krb5_checksum Declaration ------------ -typedef struct _krb5_checksum krb5_checksum +typedef struct _krb5_checksum krb5_checksum Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_cred.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_cred.rst.txt index e5027947197..500d016273a 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_cred.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_cred.rst.txt @@ -16,7 +16,7 @@ Credentials data structure. Declaration ------------ -typedef struct _krb5_cred krb5_cred +typedef struct _krb5_cred krb5_cred Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_cred_enc_part.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_cred_enc_part.rst.txt index ded10822594..a69650a585e 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_cred_enc_part.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_cred_enc_part.rst.txt @@ -16,7 +16,7 @@ Cleartext credentials information. Declaration ------------ -typedef struct _krb5_cred_enc_part krb5_cred_enc_part +typedef struct _krb5_cred_enc_part krb5_cred_enc_part Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_cred_info.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_cred_info.rst.txt index f32e5fef6e6..f0dcc34a06d 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_cred_info.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_cred_info.rst.txt @@ -16,7 +16,7 @@ Credentials information inserted into *EncKrbCredPart* . Declaration ------------ -typedef struct _krb5_cred_info krb5_cred_info +typedef struct _krb5_cred_info krb5_cred_info Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_creds.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_creds.rst.txt index 96f726d4b6b..68c0c663d5b 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_creds.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_creds.rst.txt @@ -16,7 +16,7 @@ Credentials structure including ticket, session key, and lifetime info. Declaration ------------ -typedef struct _krb5_creds krb5_creds +typedef struct _krb5_creds krb5_creds Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_crypto_iov.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_crypto_iov.rst.txt index e818b82f522..e4eb787b13c 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_crypto_iov.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_crypto_iov.rst.txt @@ -16,7 +16,7 @@ The *flags* member describes the type of the iov. The *data* member points to th Declaration ------------ -typedef struct _krb5_crypto_iov krb5_crypto_iov +typedef struct _krb5_crypto_iov krb5_crypto_iov Members @@ -25,7 +25,7 @@ Members .. c:member:: krb5_cryptotype krb5_crypto_iov.flags - :c:data:`KRB5_CRYPTO_TYPE` type of the iov + iov type (see KRB5_CRYPTO_TYPE macros) .. c:member:: krb5_data krb5_crypto_iov.data diff --git a/doc/html/_sources/appdev/refs/types/krb5_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_data.rst.txt index f5c23c7b350..98cc3a76d0d 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_data.rst.txt @@ -15,7 +15,7 @@ krb5_data Declaration ------------ -typedef struct _krb5_data krb5_data +typedef struct _krb5_data krb5_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_enc_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_enc_data.rst.txt index 2f08142c760..0f874c7f5ef 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_enc_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_enc_data.rst.txt @@ -15,7 +15,7 @@ krb5_enc_data Declaration ------------ -typedef struct _krb5_enc_data krb5_enc_data +typedef struct _krb5_enc_data krb5_enc_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_enc_kdc_rep_part.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_enc_kdc_rep_part.rst.txt index 735c76e1e91..7c7a2460685 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_enc_kdc_rep_part.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_enc_kdc_rep_part.rst.txt @@ -16,7 +16,7 @@ This is the cleartext message that is encrypted and inserted in *KDC-REP* . Declaration ------------ -typedef struct _krb5_enc_kdc_rep_part krb5_enc_kdc_rep_part +typedef struct _krb5_enc_kdc_rep_part krb5_enc_kdc_rep_part Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_enc_tkt_part.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_enc_tkt_part.rst.txt index fb29f3a63bf..05cbe481e04 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_enc_tkt_part.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_enc_tkt_part.rst.txt @@ -16,7 +16,7 @@ Encrypted part of ticket. Declaration ------------ -typedef struct _krb5_enc_tkt_part krb5_enc_tkt_part +typedef struct _krb5_enc_tkt_part krb5_enc_tkt_part Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_encrypt_block.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_encrypt_block.rst.txt index 22f7c213711..daf2fa501cc 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_encrypt_block.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_encrypt_block.rst.txt @@ -15,7 +15,7 @@ krb5_encrypt_block Declaration ------------ -typedef struct _krb5_encrypt_block krb5_encrypt_block +typedef struct _krb5_encrypt_block krb5_encrypt_block Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_error.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_error.rst.txt index c2dfb07d278..29a646654c2 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_error.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_error.rst.txt @@ -16,7 +16,7 @@ Error message structure. Declaration ------------ -typedef struct _krb5_error krb5_error +typedef struct _krb5_error krb5_error Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_error_code.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_error_code.rst.txt index 98755b39971..58d374ba301 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_error_code.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_error_code.rst.txt @@ -11,7 +11,7 @@ krb5_error_code Used to convey an operation status. -The value 0 indicates success; any other values are com_err codes. Use :c:func:`krb5_get_error_message()` to obtain a string describing the error. +The value 0 indicates success; any other values are com_err codes. Use krb5_get_error_message() to obtain a string describing the error. Declaration ------------ diff --git a/doc/html/_sources/appdev/refs/types/krb5_get_init_creds_opt.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_get_init_creds_opt.rst.txt index a2ca42db649..19742f20719 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_get_init_creds_opt.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_get_init_creds_opt.rst.txt @@ -16,7 +16,7 @@ Store options for *_krb5_get_init_creds* . Declaration ------------ -typedef struct _krb5_get_init_creds_opt krb5_get_init_creds_opt +typedef struct _krb5_get_init_creds_opt krb5_get_init_creds_opt Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_gic_opt_pa_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_gic_opt_pa_data.rst.txt index fc303966e43..cef8a469bd9 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_gic_opt_pa_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_gic_opt_pa_data.rst.txt @@ -16,7 +16,7 @@ Generic preauth option attribute/value pairs. Declaration ------------ -typedef struct _krb5_gic_opt_pa_data krb5_gic_opt_pa_data +typedef struct _krb5_gic_opt_pa_data krb5_gic_opt_pa_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_kdc_rep.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_kdc_rep.rst.txt index fb7c4bfa525..5e742dfcef5 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_kdc_rep.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_kdc_rep.rst.txt @@ -16,7 +16,7 @@ Representation of the *KDC-REP* protocol message. Declaration ------------ -typedef struct _krb5_kdc_rep krb5_kdc_rep +typedef struct _krb5_kdc_rep krb5_kdc_rep Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_kdc_req.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_kdc_req.rst.txt index 12df057f0e7..51e3512cece 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_kdc_req.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_kdc_req.rst.txt @@ -16,7 +16,7 @@ C representation of KDC-REQ protocol message, including KDC-REQ-BODY. Declaration ------------ -typedef struct _krb5_kdc_req krb5_kdc_req +typedef struct _krb5_kdc_req krb5_kdc_req Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_keyblock.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_keyblock.rst.txt index 9dd414a933d..a6c08225c5e 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_keyblock.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_keyblock.rst.txt @@ -16,7 +16,7 @@ Exposed contents of a key. Declaration ------------ -typedef struct _krb5_keyblock krb5_keyblock +typedef struct _krb5_keyblock krb5_keyblock Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_keytab_entry.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_keytab_entry.rst.txt index f8246f67547..a727744f6f5 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_keytab_entry.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_keytab_entry.rst.txt @@ -16,7 +16,7 @@ A key table entry. Declaration ------------ -typedef struct krb5_keytab_entry_st krb5_keytab_entry +typedef struct krb5_keytab_entry_st krb5_keytab_entry Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_last_req_entry.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_last_req_entry.rst.txt index 3a8555db03a..437472ed1f6 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_last_req_entry.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_last_req_entry.rst.txt @@ -16,7 +16,7 @@ Last request entry. Declaration ------------ -typedef struct _krb5_last_req_entry krb5_last_req_entry +typedef struct _krb5_last_req_entry krb5_last_req_entry Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_pa_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_pa_data.rst.txt index 7bc284c8340..390f810fef7 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_pa_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_pa_data.rst.txt @@ -16,7 +16,7 @@ Pre-authentication data. Declaration ------------ -typedef struct _krb5_pa_data krb5_pa_data +typedef struct _krb5_pa_data krb5_pa_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_pa_pac_req.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_pa_pac_req.rst.txt index fd4428fd143..de072e95533 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_pa_pac_req.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_pa_pac_req.rst.txt @@ -15,7 +15,7 @@ krb5_pa_pac_req Declaration ------------ -typedef struct _krb5_pa_pac_req krb5_pa_pac_req +typedef struct _krb5_pa_pac_req krb5_pa_pac_req Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_pa_server_referral_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_pa_server_referral_data.rst.txt index 2fb466b7041..f9037d2261b 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_pa_server_referral_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_pa_server_referral_data.rst.txt @@ -15,7 +15,7 @@ krb5_pa_server_referral_data Declaration ------------ -typedef struct _krb5_pa_server_referral_data krb5_pa_server_referral_data +typedef struct _krb5_pa_server_referral_data krb5_pa_server_referral_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_pa_svr_referral_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_pa_svr_referral_data.rst.txt index c104078e7f4..8ec298d5f48 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_pa_svr_referral_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_pa_svr_referral_data.rst.txt @@ -15,7 +15,7 @@ krb5_pa_svr_referral_data Declaration ------------ -typedef struct _krb5_pa_svr_referral_data krb5_pa_svr_referral_data +typedef struct _krb5_pa_svr_referral_data krb5_pa_svr_referral_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_post_recv_fn.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_post_recv_fn.rst.txt index c696072efc8..54a64681856 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_post_recv_fn.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_post_recv_fn.rst.txt @@ -12,7 +12,7 @@ krb5_post_recv_fn Hook function for inspecting or overriding KDC replies. If *code* is non-zero, KDC communication failed and *reply* should be ignored. The hook function may return *code* or a different error code, or may synthesize a reply by setting *new_reply_out* and return successfully. -The hook function should use :c:func:`krb5_copy_data()` to construct the value for *new_reply_out* , to ensure that it can be freed correctly by the library. +The hook function should use krb5_copy_data() to construct the value for *new_reply_out* , to ensure that it can be freed correctly by the library. Declaration ------------ diff --git a/doc/html/_sources/appdev/refs/types/krb5_pre_send_fn.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_pre_send_fn.rst.txt index b84ede8141b..76c3f9ab4a1 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_pre_send_fn.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_pre_send_fn.rst.txt @@ -14,7 +14,7 @@ Hook function for inspecting or modifying messages sent to KDCs. If the hook function sets *new_reply_out* , *message* will not be sent to the KDC, and the given reply will used instead. If the hook function sets *new_message_out* , the given message will be sent to the KDC in place of *message* . If the hook function returns successfully without setting either output, *message* will be sent to the KDC normally. -The hook function should use :c:func:`krb5_copy_data()` to construct the value for *new_message_out* or *reply_out* , to ensure that it can be freed correctly by the library. +The hook function should use krb5_copy_data() to construct the value for *new_message_out* or *reply_out* , to ensure that it can be freed correctly by the library. Declaration ------------ diff --git a/doc/html/_sources/appdev/refs/types/krb5_principal_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_principal_data.rst.txt index 4dcf1829475..f58c45b77ef 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_principal_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_principal_data.rst.txt @@ -15,7 +15,7 @@ krb5_principal_data Declaration ------------ -typedef struct krb5_principal_data krb5_principal_data +typedef struct krb5_principal_data krb5_principal_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_prompt.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_prompt.rst.txt index 4d2e76b28a7..f31ac7030ec 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_prompt.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_prompt.rst.txt @@ -16,7 +16,7 @@ Text for prompt used in prompter callback function. Declaration ------------ -typedef struct _krb5_prompt krb5_prompt +typedef struct _krb5_prompt krb5_prompt Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_pwd_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_pwd_data.rst.txt index 75dffa5e8e9..5797d23f45b 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_pwd_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_pwd_data.rst.txt @@ -15,7 +15,7 @@ krb5_pwd_data Declaration ------------ -typedef struct _krb5_pwd_data krb5_pwd_data +typedef struct _krb5_pwd_data krb5_pwd_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_replay_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_replay_data.rst.txt index 63b098e43a4..afd881274a2 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_replay_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_replay_data.rst.txt @@ -11,12 +11,12 @@ krb5_replay_data Replay data. -Sequence number and timestamp information output by :c:func:`krb5_rd_priv()` and :c:func:`krb5_rd_safe()` . +Sequence number and timestamp information output by krb5_rd_priv() and krb5_rd_safe(). Declaration ------------ -typedef struct krb5_replay_data krb5_replay_data +typedef struct krb5_replay_data krb5_replay_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_responder_context.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_responder_context.rst.txt index a8b960dabec..be5ccc42dee 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_responder_context.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_responder_context.rst.txt @@ -11,8 +11,8 @@ krb5_responder_context A container for a set of preauthentication questions and answers. -A responder context is supplied by the krb5 authentication system to a :c:type:`krb5_responder_fn` callback. It contains a list of questions and can receive answers. Questions contained in a responder context can be listed using :c:func:`krb5_responder_list_questions()` , retrieved using :c:func:`krb5_responder_get_challenge()` , or answered using :c:func:`krb5_responder_set_answer()` . The form of a question's challenge and answer depend on the question name. - +A responder context is supplied by the krb5 authentication system to a krb5_responder_fn callback. It contains a list of questions and can receive answers. Questions contained in a responder context can be listed using krb5_responder_list_questions(), retrieved using krb5_responder_get_challenge(), or answered using krb5_responder_set_answer(). The form of a question's challenge and answer depend on the question name. + Declaration ------------ diff --git a/doc/html/_sources/appdev/refs/types/krb5_responder_otp_challenge.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_responder_otp_challenge.rst.txt index f0d31407f16..9001a574ff6 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_responder_otp_challenge.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_responder_otp_challenge.rst.txt @@ -15,7 +15,7 @@ krb5_responder_otp_challenge Declaration ------------ -typedef struct _krb5_responder_otp_challenge krb5_responder_otp_challenge +typedef struct _krb5_responder_otp_challenge krb5_responder_otp_challenge Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_responder_otp_tokeninfo.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_responder_otp_tokeninfo.rst.txt index 3444b274fca..18c53c881a8 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_responder_otp_tokeninfo.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_responder_otp_tokeninfo.rst.txt @@ -15,7 +15,7 @@ krb5_responder_otp_tokeninfo Declaration ------------ -typedef struct _krb5_responder_otp_tokeninfo krb5_responder_otp_tokeninfo +typedef struct _krb5_responder_otp_tokeninfo krb5_responder_otp_tokeninfo Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_responder_pkinit_challenge.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_responder_pkinit_challenge.rst.txt index dd1c4b17990..7e35621d3fc 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_responder_pkinit_challenge.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_responder_pkinit_challenge.rst.txt @@ -15,7 +15,7 @@ krb5_responder_pkinit_challenge Declaration ------------ -typedef struct _krb5_responder_pkinit_challenge krb5_responder_pkinit_challenge +typedef struct _krb5_responder_pkinit_challenge krb5_responder_pkinit_challenge Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_responder_pkinit_identity.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_responder_pkinit_identity.rst.txt index 3633adb8e64..9535693be6f 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_responder_pkinit_identity.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_responder_pkinit_identity.rst.txt @@ -15,7 +15,7 @@ krb5_responder_pkinit_identity Declaration ------------ -typedef struct _krb5_responder_pkinit_identity krb5_responder_pkinit_identity +typedef struct _krb5_responder_pkinit_identity krb5_responder_pkinit_identity Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_response.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_response.rst.txt index a9f3913bf70..1e31caa6318 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_response.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_response.rst.txt @@ -15,7 +15,7 @@ krb5_response Declaration ------------ -typedef struct _krb5_response krb5_response +typedef struct _krb5_response krb5_response Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_ticket.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_ticket.rst.txt index eb047b141a5..b1f9e6ad893 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_ticket.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_ticket.rst.txt @@ -16,7 +16,7 @@ The C representation of the ticket message, with a pointer to the C representati Declaration ------------ -typedef struct _krb5_ticket krb5_ticket +typedef struct _krb5_ticket krb5_ticket Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_ticket_times.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_ticket_times.rst.txt index c1f2096359a..60f7fd53d98 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_ticket_times.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_ticket_times.rst.txt @@ -16,7 +16,7 @@ Ticket start time, end time, and renewal duration. Declaration ------------ -typedef struct _krb5_ticket_times krb5_ticket_times +typedef struct _krb5_ticket_times krb5_ticket_times Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_tkt_authent.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_tkt_authent.rst.txt index 00cc223d885..bbc53e77db1 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_tkt_authent.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_tkt_authent.rst.txt @@ -16,7 +16,7 @@ Ticket authentication data. Declaration ------------ -typedef struct _krb5_tkt_authent krb5_tkt_authent +typedef struct _krb5_tkt_authent krb5_tkt_authent Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_trace_info.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_trace_info.rst.txt index 6636de60ea4..0a90a4efb6e 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_trace_info.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_trace_info.rst.txt @@ -16,7 +16,7 @@ Currently, it only contains the formatted message as determined the the format s Declaration ------------ -typedef struct _krb5_trace_info krb5_trace_info +typedef struct _krb5_trace_info krb5_trace_info Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_transited.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_transited.rst.txt index bb270598643..2c3751ab877 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_transited.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_transited.rst.txt @@ -16,7 +16,7 @@ Structure for transited encoding. Declaration ------------ -typedef struct _krb5_transited krb5_transited +typedef struct _krb5_transited krb5_transited Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_typed_data.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_typed_data.rst.txt index 2031f8590bd..0894be9cda3 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_typed_data.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_typed_data.rst.txt @@ -15,7 +15,7 @@ krb5_typed_data Declaration ------------ -typedef struct _krb5_typed_data krb5_typed_data +typedef struct _krb5_typed_data krb5_typed_data Members diff --git a/doc/html/_sources/appdev/refs/types/krb5_verify_init_creds_opt.rst.txt b/doc/html/_sources/appdev/refs/types/krb5_verify_init_creds_opt.rst.txt index 2f3725d20d6..c46fd9d378e 100644 --- a/doc/html/_sources/appdev/refs/types/krb5_verify_init_creds_opt.rst.txt +++ b/doc/html/_sources/appdev/refs/types/krb5_verify_init_creds_opt.rst.txt @@ -15,7 +15,7 @@ krb5_verify_init_creds_opt Declaration ------------ -typedef struct _krb5_verify_init_creds_opt krb5_verify_init_creds_opt +typedef struct _krb5_verify_init_creds_opt krb5_verify_init_creds_opt Members diff --git a/doc/html/_sources/appdev/refs/types/passwd_phrase_element.rst.txt b/doc/html/_sources/appdev/refs/types/passwd_phrase_element.rst.txt index a0c6c08f988..41532ee15d7 100644 --- a/doc/html/_sources/appdev/refs/types/passwd_phrase_element.rst.txt +++ b/doc/html/_sources/appdev/refs/types/passwd_phrase_element.rst.txt @@ -15,7 +15,7 @@ passwd_phrase_element Declaration ------------ -typedef struct _passwd_phrase_element passwd_phrase_element +typedef struct _passwd_phrase_element passwd_phrase_element Members diff --git a/doc/html/_sources/copyright.rst.txt b/doc/html/_sources/copyright.rst.txt index a98b26833bf..85ecebece00 100644 --- a/doc/html/_sources/copyright.rst.txt +++ b/doc/html/_sources/copyright.rst.txt @@ -1,7 +1,7 @@ Copyright ========= -Copyright |copy| 1985-2023 by the Massachusetts Institute of +Copyright |copy| 1985-2024 by the Massachusetts Institute of Technology and its contributors. All rights reserved. See :ref:`mitK5license` for additional copyright and license diff --git a/doc/html/_static/agogo.css b/doc/html/_static/agogo.css index 0d463e26c9c..f13ad80be67 100644 --- a/doc/html/_static/agogo.css +++ b/doc/html/_static/agogo.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- agogo theme. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -203,7 +203,6 @@ div.document .section:first-child { div.document div.highlight { padding: 3px; - background-color: #eeeeec; border-top: 2px solid #dddddd; border-bottom: 2px solid #dddddd; margin-top: .8em; @@ -363,19 +362,25 @@ div.footer .left { /* Styles copied from basic theme */ -img.align-left, .figure.align-left, object.align-left { +img.align-left, figure.align-left, .figure.align-left, object.align-left { clear: left; float: left; margin-right: 1em; } -img.align-right, .figure.align-right, object.align-right { +img.align-right, figure.align-right, .figure.align-right, object.align-right { clear: right; float: right; margin-left: 1em; } -img.align-center, .figure.align-center, object.align-center { +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { display: block; margin-left: auto; margin-right: auto; @@ -400,11 +405,13 @@ table caption span.caption-number { table caption span.caption-text { } -div.figure p.caption span.caption-number { +div.figure p.caption span.caption-number, +figcaption span.caption-number { font-style: italic; } -div.figure p.caption span.caption-text { +div.figure p.caption span.caption-text, +figcaption span.caption-text { } /* -- search page ----------------------------------------------------------- */ diff --git a/doc/html/_static/ajax-loader.gif b/doc/html/_static/ajax-loader.gif deleted file mode 100644 index 61faf8cab23..00000000000 Binary files a/doc/html/_static/ajax-loader.gif and /dev/null differ diff --git a/doc/html/_static/basic.css b/doc/html/_static/basic.css index 38a60e04b49..5f55daeb7f9 100644 --- a/doc/html/_static/basic.css +++ b/doc/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -15,6 +15,12 @@ div.clearer { clear: both; } +div.section::after { + display: block; + content: ''; + clear: left; +} + /* -- relbar ---------------------------------------------------------------- */ div.related { @@ -49,7 +55,7 @@ div.sphinxsidebarwrapper { div.sphinxsidebar { float: left; - width: 0px; + width: 20%; margin-left: -100%; font-size: 90%; word-wrap: break-word; @@ -81,10 +87,26 @@ div.sphinxsidebar input { font-size: 1em; } -div.sphinxsidebar #searchbox input[type="text"] { - width: 170px; +div.sphinxsidebar #searchbox form.search { + overflow: hidden; } +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + img { border: 0; max-width: 100%; @@ -108,7 +130,7 @@ ul.search li a { font-weight: bold; } -ul.search li div.context { +ul.search li p.context { color: #888; margin: 2px 0 0 30px; text-align: left; @@ -199,6 +221,11 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ +div.body { + min-width: 450px; + max-width: 800px; +} + div.body p, div.body dd, div.body li, div.body blockquote { -moz-hyphens: auto; -ms-hyphens: auto; @@ -210,6 +237,16 @@ a.headerlink { visibility: hidden; } +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -240,19 +277,25 @@ p.rubric { font-weight: bold; } -img.align-left, .figure.align-left, object.align-left { +img.align-left, figure.align-left, .figure.align-left, object.align-left { clear: left; float: left; margin-right: 1em; } -img.align-right, .figure.align-right, object.align-right { +img.align-right, figure.align-right, .figure.align-right, object.align-right { clear: right; float: right; margin-left: 1em; } -img.align-center, .figure.align-center, object.align-center { +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { display: block; margin-left: auto; margin-right: auto; @@ -266,30 +309,41 @@ img.align-center, .figure.align-center, object.align-center { text-align: center; } +.align-default { + text-align: center; +} + .align-right { text-align: right; } /* -- sidebars -------------------------------------------------------------- */ -div.sidebar { +div.sidebar, +aside.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; - padding: 7px 7px 0 7px; + padding: 7px; background-color: #ffe; width: 40%; float: right; + clear: right; + overflow-x: auto; } p.sidebar-title { font-weight: bold; } +div.admonition, div.topic, blockquote { + clear: left; +} + /* -- topics ---------------------------------------------------------------- */ div.topic { border: 1px solid #ccc; - padding: 7px 7px 0 7px; + padding: 7px; margin: 10px 0 10px 0; } @@ -311,10 +365,6 @@ div.admonition dt { font-weight: bold; } -div.admonition dl { - margin-bottom: 0; -} - p.admonition-title { margin: 0px 10px 5px 0px; font-weight: bold; @@ -325,9 +375,30 @@ div.body p.centered { margin-top: 25px; } +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + /* -- tables ---------------------------------------------------------------- */ table.docutils { + margin-top: 10px; + margin-bottom: 10px; border: 0; border-collapse: collapse; } @@ -337,6 +408,11 @@ table.align-center { margin-right: auto; } +table.align-default { + margin-left: auto; + margin-right: auto; +} + table caption span.caption-number { font-style: italic; } @@ -370,22 +446,34 @@ table.citation td { border-bottom: none; } +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + /* -- figures --------------------------------------------------------------- */ -div.figure { +div.figure, figure { margin: 0.5em; padding: 0.5em; } -div.figure p.caption { +div.figure p.caption, figcaption { padding: 0.3em; } -div.figure p.caption span.caption-number { +div.figure p.caption span.caption-number, +figcaption span.caption-number { font-style: italic; } -div.figure p.caption span.caption-text { +div.figure p.caption span.caption-text, +figcaption span.caption-text { } /* -- field list styles ----------------------------------------------------- */ @@ -410,6 +498,74 @@ table.field-list td, table.field-list th { hyphens: manual; } +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + /* -- other body styles ----------------------------------------------------- */ ol.arabic { @@ -432,11 +588,78 @@ ol.upperroman { list-style: upper-roman; } +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +dl.footnote > dt, +dl.citation > dt { + float: left; + margin-right: 0.5em; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dt:after { + content: ":"; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + dl { margin-bottom: 15px; } -dd p { +dd > :first-child { margin-top: 0px; } @@ -450,6 +673,11 @@ dd { margin-left: 30px; } +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + dt:target, span.highlighted { background-color: #fbe54e; } @@ -463,14 +691,6 @@ dl.glossary dt { font-size: 1.1em; } -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - .versionmodified { font-style: italic; } @@ -509,6 +729,13 @@ dl.glossary dt { font-style: oblique; } +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + abbr, acronym { border-bottom: dotted 1px; cursor: help; @@ -521,6 +748,10 @@ pre { overflow-y: hidden; /* fixes display issues on Chrome browsers */ } +pre, div[class*="highlight-"] { + clear: both; +} + span.pre { -moz-hyphens: none; -ms-hyphens: none; @@ -528,22 +759,57 @@ span.pre { hyphens: none; } +div[class*="highlight-"] { + margin: 1em 0; +} + td.linenos pre { - padding: 5px 0px; border: 0; background-color: transparent; color: #aaa; } table.highlighttable { - margin-left: 0.5em; + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; } table.highlighttable td { - padding: 0 0.5em 0 0.5em; + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; } div.code-block-caption { + margin-top: 1em; padding: 2px 5px; font-size: small; } @@ -552,8 +818,14 @@ div.code-block-caption code { background-color: transparent; } -div.code-block-caption + div > div.highlight > pre { - margin-top: 0; +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ } div.code-block-caption span.caption-number { @@ -565,21 +837,7 @@ div.code-block-caption span.caption-text { } div.literal-block-wrapper { - padding: 1em 1em 0; -} - -div.literal-block-wrapper div.highlight { - margin: 0; -} - -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; + margin: 1em 0; } code.xref, a code { @@ -620,8 +878,7 @@ span.eqno { } span.eqno a.headerlink { - position: relative; - left: 0px; + position: absolute; z-index: 1; } diff --git a/doc/html/_static/comment-bright.png b/doc/html/_static/comment-bright.png deleted file mode 100644 index 15e27edb12a..00000000000 Binary files a/doc/html/_static/comment-bright.png and /dev/null differ diff --git a/doc/html/_static/comment-close.png b/doc/html/_static/comment-close.png deleted file mode 100644 index 4d91bcf57de..00000000000 Binary files a/doc/html/_static/comment-close.png and /dev/null differ diff --git a/doc/html/_static/comment.png b/doc/html/_static/comment.png deleted file mode 100644 index dfbc0cbd512..00000000000 Binary files a/doc/html/_static/comment.png and /dev/null differ diff --git a/doc/html/_static/doctools.js b/doc/html/_static/doctools.js index 0c15c0099b5..8cbf1b161a6 100644 --- a/doc/html/_static/doctools.js +++ b/doc/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for all documentation. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -29,9 +29,14 @@ if (!window.console || !console.firebug) { /** * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL */ jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** @@ -70,7 +75,9 @@ jQuery.fn.highlightText = function(text, className) { if (node.nodeType === 3) { var val = node.nodeValue; var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { var span; var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); if (isInSVG) { @@ -85,14 +92,13 @@ jQuery.fn.highlightText = function(text, className) { node.nextSibling)); node.nodeValue = val.substr(0, pos); if (isInSVG) { - var bbox = span.getBBox(); var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - rect.x.baseVal.value = bbox.x; + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; rect.y.baseVal.value = bbox.y; rect.width.baseVal.value = bbox.width; rect.height.baseVal.value = bbox.height; rect.setAttribute('class', className); - var parentOfText = node.parentNode.parentNode; addItems.push({ "parent": node.parentNode, "target": rect}); @@ -148,7 +154,9 @@ var Documentation = { this.fixFirefoxAnchorBug(); this.highlightSearchWords(); this.initIndexTable(); - + if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { + this.initOnKeyListeners(); + } }, /** @@ -280,10 +288,12 @@ var Documentation = { }, initOnKeyListeners: function() { - $(document).keyup(function(event) { + $(document).keydown(function(event) { var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + // don't navigate when in search box, textarea, dropdown or button + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' + && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey + && !event.shiftKey) { switch (event.keyCode) { case 37: // left var prevHref = $('link[rel="prev"]').prop('href'); @@ -291,12 +301,14 @@ var Documentation = { window.location.href = prevHref; return false; } + break; case 39: // right var nextHref = $('link[rel="next"]').prop('href'); if (nextHref) { window.location.href = nextHref; return false; } + break; } } }); @@ -308,4 +320,4 @@ _ = Documentation.gettext; $(document).ready(function() { Documentation.init(); -}); \ No newline at end of file +}); diff --git a/doc/html/_static/documentation_options.js b/doc/html/_static/documentation_options.js new file mode 100644 index 00000000000..f212ba68f13 --- /dev/null +++ b/doc/html/_static/documentation_options.js @@ -0,0 +1,12 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '1.21.3', + LANGUAGE: 'None', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false +}; \ No newline at end of file diff --git a/doc/html/_static/down-pressed.png b/doc/html/_static/down-pressed.png deleted file mode 100644 index 5756c8cad88..00000000000 Binary files a/doc/html/_static/down-pressed.png and /dev/null differ diff --git a/doc/html/_static/down.png b/doc/html/_static/down.png deleted file mode 100644 index 1b3bdad2cef..00000000000 Binary files a/doc/html/_static/down.png and /dev/null differ diff --git a/doc/html/_static/jquery.js b/doc/html/_static/jquery.js index ba171ca3fd8..624bca829ee 100644 --- a/doc/html/_static/jquery.js +++ b/doc/html/_static/jquery.js @@ -1,15 +1,13 @@ /*! - * jQuery JavaScript Library v3.2.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license - * - * Date: 2017-09-03T00:14Z */ ( function( global, factory ) { @@ -43,17 +41,20 @@ // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common // enough that all such attempts are guarded in a try block. - +"use strict"; var arr = []; -var document = window.document; - var getProto = Object.getPrototypeOf; var slice = arr.slice; -var concat = arr.concat; +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + var push = arr.push; @@ -71,16 +72,76 @@ var ObjectFunctionString = fnToString.call( Object ); var support = {}; +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; - function DOMEval( code, doc ) { +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { doc = doc || document; - var script = doc.createElement( "script" ); + var i, val, + script = doc.createElement( "script" ); script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } doc.head.appendChild( script ).parentNode.removeChild( script ); } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} /* global Symbol */ // Defining this global in .eslintrc.json would create a danger of using the global // unguarded in another place, it seems safer to define global only for this module @@ -88,7 +149,7 @@ var support = {}; var - version = "3.2.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -96,19 +157,6 @@ var // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); }; jQuery.fn = jQuery.prototype = { @@ -175,6 +223,18 @@ jQuery.fn = jQuery.prototype = { return this.eq( -1 ); }, + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); @@ -209,7 +269,7 @@ jQuery.extend = jQuery.fn.extend = function() { } // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + if ( typeof target !== "object" && !isFunction( target ) ) { target = {}; } @@ -226,25 +286,28 @@ jQuery.extend = jQuery.fn.extend = function() { // Extend the base object for ( name in options ) { - src = target[ name ]; copy = options[ name ]; + // Prevent Object.prototype pollution // Prevent never-ending loop - if ( target === copy ) { + if ( name === "__proto__" || target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject( copy ) || ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; - if ( copyIsArray ) { - copyIsArray = false; - clone = src && Array.isArray( src ) ? src : []; - + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; + clone = src; } + copyIsArray = false; // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); @@ -275,28 +338,6 @@ jQuery.extend( { noop: function() {}, - isFunction: function( obj ) { - return jQuery.type( obj ) === "function"; - }, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - - // As of jQuery 3.0, isNumeric is limited to - // strings and numbers (primitives or objects) - // that can be coerced to finite numbers (gh-2662) - var type = jQuery.type( obj ); - return ( type === "number" || type === "string" ) && - - // parseFloat NaNs numeric-cast false positives ("") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - !isNaN( obj - parseFloat( obj ) ); - }, - isPlainObject: function( obj ) { var proto, Ctor; @@ -319,9 +360,6 @@ jQuery.extend( { }, isEmptyObject: function( obj ) { - - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 var name; for ( name in obj ) { @@ -330,27 +368,10 @@ jQuery.extend( { return true; }, - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); - }, - - // Convert dashed to camelCase; used by the css and data modules - // Support: IE <=9 - 11, Edge 12 - 13 - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); }, each: function( obj, callback ) { @@ -374,13 +395,6 @@ jQuery.extend( { return obj; }, - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; @@ -389,7 +403,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -467,43 +481,12 @@ jQuery.extend( { } // Flatten any nested arrays - return concat.apply( [], ret ); + return flat( ret ); }, // A global GUID counter for objects guid: 1, - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - // jQuery.support is not used in Core but other projects attach their // properties to it so it needs to exist. support: support @@ -515,9 +498,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -526,9 +509,9 @@ function isArrayLike( obj ) { // hasOwn isn't used here due to false negatives // regarding Nodelist length in IE var length = !!obj && "length" in obj && obj.length, - type = jQuery.type( obj ); + type = toType( obj ); - if ( type === "function" || jQuery.isWindow( obj ) ) { + if ( isFunction( obj ) || isWindow( obj ) ) { return false; } @@ -537,17 +520,16 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.3 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * - * Copyright jQuery Foundation and other contributors + * Copyright JS Foundation and other contributors * Released under the MIT license - * http://jquery.org/license + * https://js.foundation/ * - * Date: 2016-08-08 + * Date: 2021-02-16 */ -(function( window ) { - +( function( window ) { var i, support, Expr, @@ -578,6 +560,7 @@ var i, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), + nonnativeSelectorCache = createCache(), sortOrder = function( a, b ) { if ( a === b ) { hasDuplicate = true; @@ -586,61 +569,71 @@ var i, }, // Instance methods - hasOwn = ({}).hasOwnProperty, + hasOwn = ( {} ).hasOwnProperty, arr = [], pop = arr.pop, - push_native = arr.push, + pushNative = arr.push, push = arr.push, slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { - if ( list[i] === elem ) { + if ( list[ i ] === elem ) { return i; } } return -1; }, - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), rpseudo = new RegExp( pseudos ), ridentifier = new RegExp( "^" + identifier + "$" ), @@ -651,16 +644,19 @@ var i, "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, + rhtml = /HTML$/i, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, @@ -673,18 +669,21 @@ var i, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair high < 0 ? - // BMP codepoint String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, @@ -700,7 +699,8 @@ var i, } // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped @@ -715,9 +715,9 @@ var i, setDocument(); }, - disabledAncestor = addCombinator( + inDisabledFieldset = addCombinator( function( elem ) { - return elem.disabled === true && ("form" in elem || "label" in elem); + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; }, { dir: "parentNode", next: "legend" } ); @@ -725,18 +725,20 @@ var i, // Optimize for push.apply( _, NodeList ) try { push.apply( - (arr = slice.call( preferredDoc.childNodes )), + ( arr = slice.call( preferredDoc.childNodes ) ), preferredDoc.childNodes ); + // Support: Android<4.0 // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { - push_native.apply( target, slice.call(els) ); + pushNative.apply( target, slice.call( els ) ); } : // Support: IE<9 @@ -744,8 +746,9 @@ try { function( target, els ) { var j = target.length, i = 0; + // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} + while ( ( target[ j++ ] = els[ i++ ] ) ) {} target.length = j - 1; } }; @@ -769,24 +772,21 @@ function Sizzle( selector, context, results, seed ) { // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } + setDocument( context ); context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { // ID selector - if ( (m = match[1]) ) { + if ( ( m = match[ 1 ] ) ) { // Document context if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { + if ( ( elem = context.getElementById( m ) ) ) { // Support: IE, Opera, Webkit // TODO: identify versions @@ -805,7 +805,7 @@ function Sizzle( selector, context, results, seed ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && + if ( newContext && ( elem = newContext.getElementById( m ) ) && contains( context, elem ) && elem.id === m ) { @@ -815,12 +815,12 @@ function Sizzle( selector, context, results, seed ) { } // Type selector - } else if ( match[2] ) { + } else if ( match[ 2 ] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); @@ -830,50 +830,62 @@ function Sizzle( selector, context, results, seed ) { // Take advantage of querySelectorAll if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; - - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 + // Support: IE 8 only // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); } newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; } - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); } } } @@ -894,12 +906,14 @@ function createCache() { var keys = []; function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries delete cache[ keys.shift() ]; } - return (cache[ key + " " ] = value); + return ( cache[ key + " " ] = value ); } return cache; } @@ -918,17 +932,19 @@ function markFunction( fn ) { * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { - var el = document.createElement("fieldset"); + var el = document.createElement( "fieldset" ); try { return !!fn( el ); - } catch (e) { + } catch ( e ) { return false; } finally { + // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } + // release memory in IE el = null; } @@ -940,11 +956,11 @@ function assert( fn ) { * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { - var arr = attrs.split("|"), + var arr = attrs.split( "|" ), i = arr.length; while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; + Expr.attrHandle[ arr[ i ] ] = handler; } } @@ -966,7 +982,7 @@ function siblingCheck( a, b ) { // Check if b follows a if ( cur ) { - while ( (cur = cur.nextSibling) ) { + while ( ( cur = cur.nextSibling ) ) { if ( cur === b ) { return -1; } @@ -994,7 +1010,7 @@ function createInputPseudo( type ) { function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; + return ( name === "input" || name === "button" ) && elem.type === type; }; } @@ -1037,7 +1053,7 @@ function createDisabledPseudo( disabled ) { // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && - disabledAncestor( elem ) === disabled; + inDisabledFieldset( elem ) === disabled; } return elem.disabled === disabled; @@ -1059,21 +1075,21 @@ function createDisabledPseudo( disabled ) { * @param {Function} fn */ function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { + return markFunction( function( argument ) { argument = +argument; - return markFunction(function( seed, matches ) { + return markFunction( function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); } } - }); - }); + } ); + } ); } /** @@ -1094,10 +1110,13 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); }; /** @@ -1110,7 +1129,11 @@ setDocument = Sizzle.setDocument = function( node ) { doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } @@ -1119,10 +1142,14 @@ setDocument = Sizzle.setDocument = function( node ) { docElem = document.documentElement; documentIsHTML = !isXML( document ); - // Support: IE 9-11, Edge + // Support: IE 9 - 11+, Edge 12 - 18+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { @@ -1134,25 +1161,36 @@ setDocument = Sizzle.setDocument = function( node ) { } } + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) - support.attributes = assert(function( el ) { + support.attributes = assert( function( el ) { el.className = "i"; - return !el.getAttribute("className"); - }); + return !el.getAttribute( "className" ); + } ); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); @@ -1161,38 +1199,38 @@ setDocument = Sizzle.setDocument = function( node ) { // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { + support.getById = assert( function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); + } ); // ID filter and find if ( support.getById ) { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - return elem.getAttribute("id") === attrId; + return elem.getAttribute( "id" ) === attrId; }; }; - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); + elem.getAttributeNode( "id" ); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); @@ -1200,7 +1238,7 @@ setDocument = Sizzle.setDocument = function( node ) { if ( elem ) { // Verify the id attribute - node = elem.getAttributeNode("id"); + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1208,8 +1246,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1222,7 +1260,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Tag - Expr.find["TAG"] = support.getElementsByTagName ? + Expr.find[ "TAG" ] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); @@ -1237,12 +1275,13 @@ setDocument = Sizzle.setDocument = function( node ) { var elem, tmp = [], i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } @@ -1254,7 +1293,7 @@ setDocument = Sizzle.setDocument = function( node ) { }; // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } @@ -1275,10 +1314,14 @@ setDocument = Sizzle.setDocument = function( node ) { // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + // Build QSA regex // Regex strategy adopted from Diego Perini - assert(function( el ) { + assert( function( el ) { + + var input; + // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, @@ -1292,78 +1335,98 @@ setDocument = Sizzle.setDocument = function( node ) { // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { + if ( !el.querySelectorAll( "[selected]" ).length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); + rbuggyQSA.push( ".#.+[+~]" ); } - }); - assert(function( el ) { + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); + var input = document.createElement( "input" ); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { + if ( el.querySelectorAll( "[name=d]" ).length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } + // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); } - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { - assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); @@ -1372,11 +1435,11 @@ setDocument = Sizzle.setDocument = function( node ) { // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); - }); + } ); } - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); /* Contains ---------------------------------------------------------------------- */ @@ -1393,11 +1456,11 @@ setDocument = Sizzle.setDocument = function( node ) { adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); + ) ); } : function( a, b ) { if ( b ) { - while ( (b = b.parentNode) ) { + while ( ( b = b.parentNode ) ) { if ( b === a ) { return true; } @@ -1426,7 +1489,11 @@ setDocument = Sizzle.setDocument = function( node ) { } // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected @@ -1434,13 +1501,24 @@ setDocument = Sizzle.setDocument = function( node ) { // Disconnected nodes if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { return -1; } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { return 1; } @@ -1453,6 +1531,7 @@ setDocument = Sizzle.setDocument = function( node ) { return compare & 4 ? -1 : 1; } : function( a, b ) { + // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; @@ -1468,8 +1547,14 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ aup ? -1 : bup ? 1 : sortInput ? @@ -1483,26 +1568,32 @@ setDocument = Sizzle.setDocument = function( node ) { // Otherwise we need full lists of their ancestors for comparison cur = a; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { ap.unshift( cur ); } cur = b; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { + while ( ap[ i ] === bp[ i ] ) { i++; } return i ? + // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : + siblingCheck( ap[ i ], bp[ i ] ) : // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ 0; }; @@ -1514,16 +1605,10 @@ Sizzle.matches = function( expr, elements ) { }; Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); + setDocument( elem ); if ( support.matchesSelector && documentIsHTML && - !compilerCache[ expr + " " ] && + !nonnativeSelectorCache[ expr + " " ] && ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { @@ -1532,32 +1617,46 @@ Sizzle.matchesSelector = function( elem, expr ) { // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch (e) {} + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } } return Sizzle( expr, document, null, [ elem ] ).length > 0; }; Sizzle.contains = function( context, elem ) { + // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { + // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : @@ -1567,13 +1666,13 @@ Sizzle.attr = function( elem, name ) { val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); + return ( sel + "" ).replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { @@ -1596,7 +1695,7 @@ Sizzle.uniqueSort = function( results ) { results.sort( sortOrder ); if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } @@ -1624,17 +1723,21 @@ getText = Sizzle.getText = function( elem ) { nodeType = elem.nodeType; if ( !nodeType ) { + // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { + while ( ( node = elem[ i++ ] ) ) { + // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { + // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); @@ -1643,6 +1746,7 @@ getText = Sizzle.getText = function( elem ) { } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } + // Do not include comment or processing instruction nodes return ret; @@ -1670,19 +1774,21 @@ Expr = Sizzle.selectors = { preFilter: { "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) @@ -1693,22 +1799,25 @@ Expr = Sizzle.selectors = { 7 sign of y-component 8 y of y-component */ - match[1] = match[1].toLowerCase(); + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } return match; @@ -1716,26 +1825,28 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[6] && match[2]; + unquoted = !match[ 6 ] && match[ 2 ]; - if ( matchExpr["CHILD"].test( match[0] ) ) { + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { return null; } // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && + ( excess = tokenize( unquoted, true ) ) && + // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) @@ -1748,7 +1859,9 @@ Expr = Sizzle.selectors = { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? - function() { return true; } : + function() { + return true; + } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; @@ -1758,10 +1871,16 @@ Expr = Sizzle.selectors = { var pattern = classCache[ className + " " ]; return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); }, "ATTR": function( name, operator, check ) { @@ -1777,6 +1896,8 @@ Expr = Sizzle.selectors = { result += ""; + /* eslint-disable max-len */ + return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : @@ -1785,10 +1906,12 @@ Expr = Sizzle.selectors = { operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; + /* eslint-enable max-len */ + }; }, - "CHILD": function( type, what, argument, first, last ) { + "CHILD": function( type, what, _argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; @@ -1800,7 +1923,7 @@ Expr = Sizzle.selectors = { return !!elem.parentNode; } : - function( elem, context, xml ) { + function( elem, _context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, @@ -1814,7 +1937,7 @@ Expr = Sizzle.selectors = { if ( simple ) { while ( dir ) { node = elem; - while ( (node = node[ dir ]) ) { + while ( ( node = node[ dir ] ) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { @@ -1822,6 +1945,7 @@ Expr = Sizzle.selectors = { return false; } } + // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } @@ -1837,22 +1961,22 @@ Expr = Sizzle.selectors = { // ...in a gzip-friendly way node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; - while ( (node = ++nodeIndex && node && node[ dir ] || + while ( ( node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { + ( diff = nodeIndex = 0 ) || start.pop() ) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { @@ -1862,16 +1986,18 @@ Expr = Sizzle.selectors = { } } else { + // Use previously-cached element index if available if ( useCache ) { + // ...in a gzip-friendly way node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; @@ -1881,9 +2007,10 @@ Expr = Sizzle.selectors = { // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : @@ -1892,12 +2019,13 @@ Expr = Sizzle.selectors = { // Cache the index of each encountered element if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || + ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); uniqueCache[ type ] = [ dirruns, diff ]; } @@ -1918,6 +2046,7 @@ Expr = Sizzle.selectors = { }, "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters @@ -1937,15 +2066,15 @@ Expr = Sizzle.selectors = { if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { + markFunction( function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); } - }) : + } ) : function( elem ) { return fn( elem, 0, args ); }; @@ -1956,8 +2085,10 @@ Expr = Sizzle.selectors = { }, pseudos: { + // Potentially complex pseudos - "not": markFunction(function( selector ) { + "not": markFunction( function( selector ) { + // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators @@ -1966,39 +2097,40 @@ Expr = Sizzle.selectors = { matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { + markFunction( function( seed, matches, _context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); } } - }) : - function( elem, context, xml ) { - input[0] = elem; + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) - input[0] = null; + input[ 0 ] = null; return !results.pop(); }; - }), + } ), - "has": markFunction(function( selector ) { + "has": markFunction( function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; - }), + } ), - "contains": markFunction(function( text ) { + "contains": markFunction( function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; }; - }), + } ), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value @@ -2008,25 +2140,26 @@ Expr = Sizzle.selectors = { // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { + // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { + if ( !ridentifier.test( lang || "" ) ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { - if ( (elemLang = documentIsHTML ? + if ( ( elemLang = documentIsHTML ? elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); return false; }; - }), + } ), // Miscellaneous "target": function( elem ) { @@ -2039,7 +2172,9 @@ Expr = Sizzle.selectors = { }, "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); }, // Boolean properties @@ -2047,16 +2182,20 @@ Expr = Sizzle.selectors = { "disabled": createDisabledPseudo( true ), "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); }, "selected": function( elem ) { + // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } @@ -2065,6 +2204,7 @@ Expr = Sizzle.selectors = { // Contents "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) @@ -2078,7 +2218,7 @@ Expr = Sizzle.selectors = { }, "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); + return !Expr.pseudos[ "empty" ]( elem ); }, // Element/input types @@ -2102,57 +2242,62 @@ Expr = Sizzle.selectors = { // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); }, // Position-in-collection - "first": createPositionalPseudo(function() { + "first": createPositionalPseudo( function() { return [ 0 ]; - }), + } ), - "last": createPositionalPseudo(function( matchIndexes, length ) { + "last": createPositionalPseudo( function( _matchIndexes, length ) { return [ length - 1 ]; - }), + } ), - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; - }), + } ), - "even": createPositionalPseudo(function( matchIndexes, length ) { + "even": createPositionalPseudo( function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "odd": createPositionalPseudo(function( matchIndexes, length ) { + "odd": createPositionalPseudo( function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; for ( ; --i >= 0; ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; - }) + } ) } }; -Expr.pseudos["nth"] = Expr.pseudos["eq"]; +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { @@ -2183,37 +2328,39 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { while ( soFar ) { // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { if ( match ) { + // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; + soFar = soFar.slice( match[ 0 ].length ) || soFar; } - groups.push( (tokens = []) ); + groups.push( ( tokens = [] ) ); } matched = false; // Combinators - if ( (match = rcombinators.exec( soFar )) ) { + if ( ( match = rcombinators.exec( soFar ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, + // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); + type: match[ 0 ].replace( rtrim, " " ) + } ); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, type: type, matches: match - }); + } ); soFar = soFar.slice( matched.length ); } } @@ -2230,6 +2377,7 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { soFar.length : soFar ? Sizzle.error( selector ) : + // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; @@ -2239,7 +2387,7 @@ function toSelector( tokens ) { len = tokens.length, selector = ""; for ( ; i < len; i++ ) { - selector += tokens[i].value; + selector += tokens[ i ].value; } return selector; } @@ -2252,9 +2400,10 @@ function addCombinator( matcher, combinator, base ) { doneName = done++; return combinator.first ? + // Check against closest ancestor/preceding element function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } @@ -2269,7 +2418,7 @@ function addCombinator( matcher, combinator, base ) { // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; @@ -2277,27 +2426,29 @@ function addCombinator( matcher, combinator, base ) { } } } else { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && + } else if ( ( oldCache = uniqueCache[ key ] ) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); + return ( newCache[ 2 ] = oldCache[ 2 ] ); } else { + // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { return true; } } @@ -2313,20 +2464,20 @@ function elementMatcher( matchers ) { function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { + if ( !matchers[ i ]( elem, context, xml ) ) { return false; } } return true; } : - matchers[0]; + matchers[ 0 ]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); + Sizzle( selector, contexts[ i ], results ); } return results; } @@ -2339,7 +2490,7 @@ function condense( unmatched, map, filter, context, xml ) { mapped = map != null; for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { + if ( ( elem = unmatched[ i ] ) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { @@ -2359,14 +2510,18 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } - return markFunction(function( seed, results, context, xml ) { + return markFunction( function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? @@ -2374,6 +2529,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS elems, matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? @@ -2397,8 +2553,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); } } } @@ -2406,25 +2562,27 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) ) { + if ( ( elem = matcherOut[ i ] ) ) { + // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); + temp.push( ( matcherIn[ i ] = elem ) ); } } - postFinder( null, (matcherOut = []), temp, xml ); + postFinder( null, ( matcherOut = [] ), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - seed[temp] = !(results[temp] = elem); + seed[ temp ] = !( results[ temp ] = elem ); } } } @@ -2442,14 +2600,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS push.apply( results, matcherOut ); } } - }); + } ); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) @@ -2461,38 +2619,43 @@ function matcherFromTokens( tokens ) { }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? + ( checkContext = context ).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { + if ( Expr.relative[ tokens[ j ].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), j < len && toSelector( tokens ) ); } @@ -2513,28 +2676,40 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { unmatched = seed && [], setMatched = [], contextBackup = outermostContext, + // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), len = elems.length; if ( outermost ) { - outermostContext = context === document || context || outermost; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { if ( byElement && elem ) { j = 0; - if ( !context && elem.ownerDocument !== document ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { setDocument( elem ); xml = !documentIsHTML; } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { results.push( elem ); break; } @@ -2546,8 +2721,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // Track unmatched elements for set filters if ( bySet ) { + // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { + if ( ( elem = !matcher && elem ) ) { matchedCount--; } @@ -2571,16 +2747,17 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; - while ( (matcher = setMatchers[j++]) ) { + while ( ( matcher = setMatchers[ j++ ] ) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); } } } @@ -2621,13 +2798,14 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { cached = compilerCache[ selector + " " ]; if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { - cached = matcherFromTokens( match[i] ); + cached = matcherFromTokens( match[ i ] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -2636,7 +2814,10 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { } // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); // Save selector and tokenization cached.selector = selector; @@ -2656,7 +2837,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); results = results || []; @@ -2665,11 +2846,12 @@ select = Sizzle.select = function( selector, context, results, seed ) { if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; if ( !context ) { return results; @@ -2682,20 +2864,22 @@ select = Sizzle.select = function( selector, context, results, seed ) { } // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; while ( i-- ) { - token = tokens[i]; + token = tokens[ i ]; // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { + if ( Expr.relative[ ( type = token.type ) ] ) { break; } - if ( (find = Expr.find[ type ]) ) { + if ( ( find = Expr.find[ type ] ) ) { + // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); @@ -2726,7 +2910,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // One-time assignments // Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function @@ -2737,58 +2921,59 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { +support.sortDetached = assert( function( el ) { + // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { +if ( !assert( function( el ) { el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } - }); + } ); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { +if ( !support.attributes || !assert( function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } - }); + } ); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : - null; + null; } - }); + } ); } return Sizzle; -})( window ); +} )( window ); @@ -2841,18 +3026,16 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); -var risSimple = /^.[^:#\[\.,]*$/; - // Implement the identical functionality for filter and not function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { + if ( isFunction( qualifier ) ) { return jQuery.grep( elements, function( elem, i ) { return !!qualifier.call( elem, i, elem ) !== not; } ); @@ -2872,16 +3055,8 @@ function winnow( elements, qualifier, not ) { } ); } - // Simple selector that can be filtered directly, removing non-Elements - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - // Complex selector, compare the two sets, removing non-Elements - qualifier = jQuery.filter( qualifier, elements ); - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; - } ); + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); } jQuery.filter = function( expr, elems, not ) { @@ -3002,7 +3177,7 @@ var rootjQuery, for ( match in context ) { // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { + if ( isFunction( this[ match ] ) ) { this[ match ]( context[ match ] ); // ...and otherwise set as attributes @@ -3045,7 +3220,7 @@ var rootjQuery, // HANDLE: $(function) // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { + } else if ( isFunction( selector ) ) { return root.ready !== undefined ? root.ready( selector ) : @@ -3167,7 +3342,7 @@ jQuery.each( { parents: function( elem ) { return dir( elem, "parentNode" ); }, - parentsUntil: function( elem, i, until ) { + parentsUntil: function( elem, _i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { @@ -3182,10 +3357,10 @@ jQuery.each( { prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, - nextUntil: function( elem, i, until ) { + nextUntil: function( elem, _i, until ) { return dir( elem, "nextSibling", until ); }, - prevUntil: function( elem, i, until ) { + prevUntil: function( elem, _i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { @@ -3195,18 +3370,24 @@ jQuery.each( { return siblings( elem.firstChild ); }, contents: function( elem ) { - if ( nodeName( elem, "iframe" ) ) { - return elem.contentDocument; - } + if ( elem.contentDocument != null && - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { - return jQuery.merge( [], elem.childNodes ); + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { @@ -3360,11 +3541,11 @@ jQuery.Callbacks = function( options ) { ( function add( args ) { jQuery.each( args, function( _, arg ) { - if ( jQuery.isFunction( arg ) ) { + if ( isFunction( arg ) ) { if ( !options.unique || !self.has( arg ) ) { list.push( arg ); } - } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + } else if ( arg && arg.length && toType( arg ) !== "string" ) { // Inspect recursively add( arg ); @@ -3479,11 +3660,11 @@ function adoptValue( value, resolve, reject, noValue ) { try { // Check for promise aspect first to privilege synchronous behavior - if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { + if ( value && isFunction( ( method = value.promise ) ) ) { method.call( value ).done( resolve ).fail( reject ); // Other thenables - } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { + } else if ( value && isFunction( ( method = value.then ) ) ) { method.call( value, resolve, reject ); // Other non-thenables @@ -3538,17 +3719,17 @@ jQuery.extend( { var fns = arguments; return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { + jQuery.each( tuples, function( _i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; // deferred.progress(function() { bind to newDefer or newDefer.notify }) // deferred.done(function() { bind to newDefer or newDefer.resolve }) // deferred.fail(function() { bind to newDefer or newDefer.reject }) deferred[ tuple[ 1 ] ]( function() { var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { + if ( returned && isFunction( returned.promise ) ) { returned.promise() .progress( newDefer.notify ) .done( newDefer.resolve ) @@ -3602,7 +3783,7 @@ jQuery.extend( { returned.then; // Handle a returned thenable - if ( jQuery.isFunction( then ) ) { + if ( isFunction( then ) ) { // Special processors (notify) just wait for resolution if ( special ) { @@ -3698,7 +3879,7 @@ jQuery.extend( { resolve( 0, newDefer, - jQuery.isFunction( onProgress ) ? + isFunction( onProgress ) ? onProgress : Identity, newDefer.notifyWith @@ -3710,7 +3891,7 @@ jQuery.extend( { resolve( 0, newDefer, - jQuery.isFunction( onFulfilled ) ? + isFunction( onFulfilled ) ? onFulfilled : Identity ) @@ -3721,7 +3902,7 @@ jQuery.extend( { resolve( 0, newDefer, - jQuery.isFunction( onRejected ) ? + isFunction( onRejected ) ? onRejected : Thrower ) @@ -3761,8 +3942,15 @@ jQuery.extend( { // fulfilled_callbacks.disable tuples[ 3 - i ][ 2 ].disable, + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock ); } @@ -3811,8 +3999,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -3820,30 +4008,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + if ( primary.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -3960,7 +4148,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { bulk = key == null; // Sets many values - if ( jQuery.type( key ) === "object" ) { + if ( toType( key ) === "object" ) { chainable = true; for ( i in key ) { access( elems, fn, i, key[ i ], true, emptyGet, raw ); @@ -3970,7 +4158,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { } else if ( value !== undefined ) { chainable = true; - if ( !jQuery.isFunction( value ) ) { + if ( !isFunction( value ) ) { raw = true; } @@ -3984,7 +4172,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { // ...except when executing function values } else { bulk = fn; - fn = function( elem, key, value ) { + fn = function( elem, _key, value ) { return bulk.call( jQuery( elem ), value ); }; } @@ -3994,8 +4182,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -4012,6 +4200,23 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { return len ? fn( elems[ 0 ], key ) : emptyGet; }; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} var acceptData = function( owner ) { // Accepts only: @@ -4074,14 +4279,14 @@ Data.prototype = { // Handle: [ owner, key, value ] args // Always use camelCase key (gh-2257) if ( typeof data === "string" ) { - cache[ jQuery.camelCase( data ) ] = value; + cache[ camelCase( data ) ] = value; // Handle: [ owner, { properties } ] args } else { // Copy the properties one-by-one to the cache object for ( prop in data ) { - cache[ jQuery.camelCase( prop ) ] = data[ prop ]; + cache[ camelCase( prop ) ] = data[ prop ]; } } return cache; @@ -4091,7 +4296,7 @@ Data.prototype = { this.cache( owner ) : // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; }, access: function( owner, key, value ) { @@ -4139,9 +4344,9 @@ Data.prototype = { // If key is an array of keys... // We always set camelCase keys, so remove that. - key = key.map( jQuery.camelCase ); + key = key.map( camelCase ); } else { - key = jQuery.camelCase( key ); + key = camelCase( key ); // If a key with the spaces exists, use it. // Otherwise, create an array by matching non-whitespace @@ -4287,7 +4492,7 @@ jQuery.fn.extend( { if ( attrs[ i ] ) { name = attrs[ i ].name; if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice( 5 ) ); + name = camelCase( name.slice( 5 ) ); dataAttr( elem, name, data[ name ] ); } } @@ -4491,6 +4696,26 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } var isHiddenWithinTree = function( elem, el ) { // isHiddenWithinTree might be called from jQuery#filter function; @@ -4505,37 +4730,15 @@ var isHiddenWithinTree = function( elem, el ) { // Support: Firefox <=43 - 45 // Disconnected elements can have computed display: none, so first confirm that elem is // in the document. - jQuery.contains( elem.ownerDocument, elem ) && + isAttached( elem ) && jQuery.css( elem, "display" ) === "none"; }; -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, - scale = 1, + var adjusted, scale, maxIterations = 20, currentValue = tween ? function() { @@ -4548,35 +4751,39 @@ function adjustCSS( elem, prop, valueParts, tween ) { unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), // Starting value computation is required for potential unit mismatches - initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && rcssNum.exec( jQuery.css( elem, prop ) ); if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + // Trust units reported by jQuery.css unit = unit || initialInUnit[ 3 ]; - // Make sure we update the tween properties later on - valueParts = valueParts || []; - // Iteratively approximate from a nonzero starting point initialInUnit = +initial || 1; - do { + while ( maxIterations-- ) { - // If previous iteration zeroed out, double until we get *something*. - // Use string for doubling so we don't accidentally see scale as unchanged below - scale = scale || ".5"; - - // Adjust and apply - initialInUnit = initialInUnit / scale; + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; - // Update scale, tolerating zero or NaN from tween.cur() - // Break the loop if scale is unchanged or perfect, or if we've just had enough. - } while ( - scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations - ); + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; } if ( valueParts ) { @@ -4692,18 +4899,47 @@ jQuery.fn.extend( { } ); var rcheckableType = ( /^(?:checkbox|radio)$/i ); -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); -var rscriptType = ( /^$|\/(?:java|ecma)script/i ); +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + // We have to close these tags to support XHTML (#13200) var wrapMap = { - // Support: IE <=9 only - option: [ 1, "" ], - // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten // this by omitting or other required elements. @@ -4715,12 +4951,14 @@ var wrapMap = { _default: [ 0, "", "" ] }; -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + function getAll( context, tag ) { @@ -4764,7 +5002,7 @@ function setGlobalEval( elems, refElements ) { var rhtml = /<|&#?\w+;/; function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, contains, j, + var elem, tmp, tag, wrap, attached, j, fragment = context.createDocumentFragment(), nodes = [], i = 0, @@ -4776,7 +5014,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { if ( elem || elem === 0 ) { // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { + if ( toType( elem ) === "object" ) { // Support: Android <=4.0 only, PhantomJS 1 only // push.apply(_, arraylike) throws on ancient WebKit @@ -4828,13 +5066,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) { continue; } - contains = jQuery.contains( elem.ownerDocument, elem ); + attached = isAttached( elem ); // Append to fragment tmp = getAll( fragment.appendChild( elem ), "script" ); // Preserve script evaluation history - if ( contains ) { + if ( attached ) { setGlobalEval( tmp ); } @@ -4853,38 +5091,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); -var documentElement = document.documentElement; - - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -4894,8 +5101,19 @@ function returnFalse() { return false; } +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + // Support: IE <=9 only -// See #13393 for more info +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 function safeActiveElement() { try { return document.activeElement; @@ -4978,8 +5196,8 @@ jQuery.event = { special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { return; } @@ -5003,7 +5221,7 @@ jQuery.event = { // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { - events = elemData.events = {}; + events = elemData.events = Object.create( null ); } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { @@ -5161,12 +5379,15 @@ jQuery.event = { dispatch: function( nativeEvent ) { - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5195,9 +5416,10 @@ jQuery.event = { while ( ( handleObj = matched.handlers[ j++ ] ) && !event.isImmediatePropagationStopped() ) { - // Triggered event must either 1) have no namespace, or 2) have namespace(s) - // a subset or equal to those in the bound event (both can have no namespace). - if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { event.handleObj = handleObj; event.data = handleObj.data; @@ -5286,15 +5508,15 @@ jQuery.event = { enumerable: true, configurable: true, - get: jQuery.isFunction( hook ) ? + get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5321,39 +5543,51 @@ jQuery.event = { // Prevent triggered image.load events from bubbling to window.load noBubble: true }, - focus: { - - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { - this.click(); - return false; + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; }, - // For cross-browser consistency, don't fire native .click() on links + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack _default: function( event ) { - return nodeName( event.target, "a" ); + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); } }, @@ -5370,6 +5604,99 @@ jQuery.event = { } }; +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + jQuery.removeEvent = function( elem, type, handle ) { // This "if" is needed for plain objects @@ -5421,7 +5748,7 @@ jQuery.Event = function( src, props ) { } // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); + this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed this[ jQuery.expando ] = true; @@ -5482,6 +5809,7 @@ jQuery.each( { shiftKey: true, view: true, "char": true, + code: true, charCode: true, key: true, keyCode: true, @@ -5498,36 +5826,42 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + + delegateType: delegateType + }; +} ); + // Create mouseenter/leave events using mouseover/out and event-time checks // so that event delegation works in jQuery. // Do the same for pointerenter/pointerleave and pointerover/pointerout @@ -5613,21 +5947,13 @@ jQuery.fn.extend( { var - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - - // Support: IE <=10 - 11, Edge 12 - 13 + // Support: IE <=10 - 11, Edge 12 - 13 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ rnoInnerhtml = /\s*$/g; // Prefer a tbody over its parent table for containing new rows @@ -5635,7 +5961,7 @@ function manipulationTarget( elem, content ) { if ( nodeName( elem, "table" ) && nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - return jQuery( ">tbody", elem )[ 0 ] || elem; + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; } return elem; @@ -5647,10 +5973,8 @@ function disableScript( elem ) { return elem; } function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - - if ( match ) { - elem.type = match[ 1 ]; + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); } else { elem.removeAttribute( "type" ); } @@ -5659,7 +5983,7 @@ function restoreScript( elem ) { } function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + var i, l, type, pdataOld, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; @@ -5667,13 +5991,11 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); + pdataOld = dataPriv.get( src ); events = pdataOld.events; if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; + dataPriv.remove( dest, "handle events" ); for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { @@ -5709,22 +6031,22 @@ function fixInput( src, dest ) { function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays - args = concat.apply( [], args ); + args = flat( args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, l = collection.length, iNoClone = l - 1, value = args[ 0 ], - isFunction = jQuery.isFunction( value ); + valueIsFunction = isFunction( value ); // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || + if ( valueIsFunction || ( l > 1 && typeof value === "string" && !support.checkClone && rchecked.test( value ) ) ) { return collection.each( function( index ) { var self = collection.eq( index ); - if ( isFunction ) { + if ( valueIsFunction ) { args[ 0 ] = value.call( this, index, self.html() ); } domManip( self, args, callback, ignored ); @@ -5778,14 +6100,16 @@ function domManip( collection, args, callback, ignored ) { !dataPriv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - if ( node.src ) { + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); } } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); } } } @@ -5807,7 +6131,7 @@ function remove( elem, selector, keepData ) { } if ( node.parentNode ) { - if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + if ( keepData && isAttached( node ) ) { setGlobalEval( getAll( node, "script" ) ); } node.parentNode.removeChild( node ); @@ -5819,13 +6143,13 @@ function remove( elem, selector, keepData ) { jQuery.extend( { htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); + return html; }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { var i, l, srcElements, destElements, clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); + inPage = isAttached( elem ); // Fix IE cloning issues if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && @@ -6065,8 +6389,6 @@ jQuery.each( { return this.pushStack( ret ); }; } ); -var rmargin = ( /^margin/ ); - var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); var getStyles = function( elem ) { @@ -6083,6 +6405,29 @@ var getStyles = function( elem ) { return view.getComputedStyle( elem ); }; +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + ( function() { @@ -6096,25 +6441,35 @@ var getStyles = function( elem ) { return; } + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; div.style.cssText = - "box-sizing:border-box;" + - "position:relative;display:block;" + + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + "margin:auto;border:1px;padding:1px;" + - "top:1%;width:50%"; - div.innerHTML = ""; - documentElement.appendChild( container ); + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); var divStyle = window.getComputedStyle( div ); pixelPositionVal = divStyle.top !== "1%"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = divStyle.marginLeft === "2px"; - boxSizingReliableVal = divStyle.width === "4px"; + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - // Support: Android 4.0 - 4.3 only + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 // Some styles come back with percentage values, even though they shouldn't - div.style.marginRight = "50%"; - pixelMarginRightVal = divStyle.marginRight === "4px"; + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; documentElement.removeChild( container ); @@ -6123,7 +6478,12 @@ var getStyles = function( elem ) { div = null; } - var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); @@ -6138,26 +6498,74 @@ var getStyles = function( elem ) { div.cloneNode( true ).style.backgroundClip = ""; support.clearCloneStyle = div.style.backgroundClip === "content-box"; - container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + - "padding:0;margin-top:1px;position:absolute"; - container.appendChild( div ); - jQuery.extend( support, { - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, boxSizingReliable: function() { computeStyleTests(); return boxSizingReliableVal; }, - pixelMarginRight: function() { + pixelBoxStyles: function() { computeStyleTests(); - return pixelMarginRightVal; + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; }, reliableMarginLeft: function() { computeStyleTests(); return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; } } ); } )(); @@ -6180,7 +6588,7 @@ function curCSS( elem, name, computed ) { if ( computed ) { ret = computed.getPropertyValue( name ) || computed[ name ]; - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + if ( ret === "" && !isAttached( elem ) ) { ret = jQuery.style( elem, name ); } @@ -6189,7 +6597,7 @@ function curCSS( elem, name, computed ) { // but width seems to be reliably pixels. // This is against the CSSOM draft spec: // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { // Remember the original values width = style.width; @@ -6236,30 +6644,13 @@ function addGetHookIf( conditionFn, hookFn ) { } -var +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }, - - cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style; - -// Return a css property mapped to a potentially vendor prefixed property +// Return a vendor-prefixed property or undefined function vendorPropName( name ) { - // Shortcut for names that are not vendor prefixed - if ( name in emptyStyle ) { - return name; - } - // Check for vendor prefixed names var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), i = cssPrefixes.length; @@ -6272,17 +6663,34 @@ function vendorPropName( name ) { } } -// Return a property mapped along what jQuery.cssProps suggests or to -// a vendor prefixed property. +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property function finalPropName( name ) { - var ret = jQuery.cssProps[ name ]; - if ( !ret ) { - ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; } - return ret; + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; } -function setPositiveNumber( elem, value, subtract ) { + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point @@ -6294,87 +6702,146 @@ function setPositiveNumber( elem, value, subtract ) { value; } -function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i, - val = 0; +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; - // If we already have the right measurement, avoid augmentation - if ( extra === ( isBorderBox ? "border" : "content" ) ) { - i = 4; - - // Otherwise initialize for horizontal or vertical properties - } else { - i = name === "width" ? 1 : 0; + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; } for ( ; i < 4; i += 2 ) { - // Both box models exclude margin, so add it if we want it - if ( extra === "margin" ) { - val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); } - if ( isBorderBox ) { + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { - // border-box includes padding, so remove it if we want content - if ( extra === "content" ) { - val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); } - // At this point, extra isn't border nor margin, so remove border - if ( extra !== "margin" ) { - val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" } else { - // At this point, extra isn't content, so add padding - val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } - // At this point, extra isn't content nor padding, so add border - if ( extra !== "padding" ) { - val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); } } } - return val; + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; } -function getWidthOrHeight( elem, name, extra ) { +function getWidthOrHeight( elem, dimension, extra ) { // Start with computed style - var valueIsBorderBox, - styles = getStyles( elem ), - val = curCSS( elem, name, styles ), + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test( val ) ) { - return val; + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } } - // Check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && - ( support.boxSizingReliable() || val === elem.style[ name ] ); - - // Fall back to offsetWidth/Height when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - if ( val === "auto" ) { - val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; - } - - // Normalize "", auto, and prepare for extra + // Normalize "" and auto val = parseFloat( val ) || 0; - // Use the active box-sizing model to add/subtract irrelevant styles + // Adjust for the element's box model return ( val + - augmentWidthOrHeight( + boxModelAdjustment( elem, - name, + dimension, extra || ( isBorderBox ? "border" : "content" ), valueIsBorderBox, - styles + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val ) ) + "px"; } @@ -6404,6 +6871,13 @@ jQuery.extend( { "flexGrow": true, "flexShrink": true, "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, "lineHeight": true, "opacity": true, "order": true, @@ -6415,9 +6889,7 @@ jQuery.extend( { // Add in properties whose names you wish to fix before // setting or getting the value - cssProps: { - "float": "cssFloat" - }, + cssProps: {}, // Get and set the style property on a DOM Node style: function( elem, name, value, extra ) { @@ -6429,7 +6901,7 @@ jQuery.extend( { // Make sure that we're working with the right name var ret, type, hooks, - origName = jQuery.camelCase( name ), + origName = camelCase( name ), isCustomProp = rcustomProp.test( name ), style = elem.style; @@ -6461,7 +6933,9 @@ jQuery.extend( { } // If a number was passed in, add the unit (except for certain CSS properties) - if ( type === "number" ) { + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); } @@ -6497,7 +6971,7 @@ jQuery.extend( { css: function( elem, name, extra, styles ) { var val, num, hooks, - origName = jQuery.camelCase( name ), + origName = camelCase( name ), isCustomProp = rcustomProp.test( name ); // Make sure that we're working with the right name. We don't @@ -6535,8 +7009,8 @@ jQuery.extend( { } } ); -jQuery.each( [ "height", "width" ], function( i, name ) { - jQuery.cssHooks[ name ] = { +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { @@ -6551,30 +7025,53 @@ jQuery.each( [ "height", "width" ], function( i, name ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, name, extra ); - } ) : - getWidthOrHeight( elem, name, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, set: function( elem, value, extra ) { var matches, - styles = extra && getStyles( elem ), - subtract = extra && augmentWidthOrHeight( - elem, - name, - extra, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - styles + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 ); + } // Convert to pixels if value adjustment is needed if ( subtract && ( matches = rcssNum.exec( value ) ) && ( matches[ 3 ] || "px" ) !== "px" ) { - elem.style[ name ] = value; - value = jQuery.css( elem, name ); + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); } return setPositiveNumber( elem, value, subtract ); @@ -6590,7 +7087,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -6618,7 +7115,7 @@ jQuery.each( { } }; - if ( !rmargin.test( prefix ) ) { + if ( prefix !== "margin" ) { jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; } } ); @@ -6728,9 +7225,9 @@ Tween.propHooks = { // Use .style if available and use plain properties where available. if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && - ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || - jQuery.cssHooks[ tween.prop ] ) ) { + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { tween.elem[ tween.prop ] = tween.now; @@ -6789,7 +7286,7 @@ function createFxNow() { window.setTimeout( function() { fxNow = undefined; } ); - return ( fxNow = jQuery.now() ); + return ( fxNow = Date.now() ); } // Generate parameters to create a standard animation @@ -6893,9 +7390,10 @@ function defaultPrefilter( elem, props, opts ) { // Restrict "overflow" and "display" styles during box animations if ( isBox && elem.nodeType === 1 ) { - // Support: IE <=9 - 11, Edge 12 - 13 + // Support: IE <=9 - 11, Edge 12 - 15 // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; // Identify a display type, preferring old show/hide data over the CSS cascade @@ -6973,7 +7471,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7003,7 +7501,7 @@ function propFilter( props, specialEasing ) { // camelCase, specialEasing and expand cssHook pass for ( index in props ) { - name = jQuery.camelCase( index ); + name = camelCase( index ); easing = specialEasing[ name ]; value = props[ index ]; if ( Array.isArray( value ) ) { @@ -7093,7 +7591,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7128,9 +7626,9 @@ function Animation( elem, properties, options ) { for ( ; index < length; index++ ) { result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); if ( result ) { - if ( jQuery.isFunction( result.stop ) ) { + if ( isFunction( result.stop ) ) { jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - jQuery.proxy( result.stop, result ); + result.stop.bind( result ); } return result; } @@ -7138,7 +7636,7 @@ function Animation( elem, properties, options ) { jQuery.map( props, createTween, animation ); - if ( jQuery.isFunction( animation.opts.start ) ) { + if ( isFunction( animation.opts.start ) ) { animation.opts.start.call( elem, animation ); } @@ -7171,7 +7669,7 @@ jQuery.Animation = jQuery.extend( Animation, { }, tweener: function( props, callback ) { - if ( jQuery.isFunction( props ) ) { + if ( isFunction( props ) ) { callback = props; props = [ "*" ]; } else { @@ -7203,9 +7701,9 @@ jQuery.Animation = jQuery.extend( Animation, { jQuery.speed = function( speed, easing, fn ) { var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { complete: fn || !fn && easing || - jQuery.isFunction( speed ) && speed, + isFunction( speed ) && speed, duration: speed, - easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + easing: fn && easing || easing && !isFunction( easing ) && easing }; // Go to the end state if fx are off @@ -7232,7 +7730,7 @@ jQuery.speed = function( speed, easing, fn ) { opt.old = opt.complete; opt.complete = function() { - if ( jQuery.isFunction( opt.old ) ) { + if ( isFunction( opt.old ) ) { opt.old.call( this ); } @@ -7266,7 +7764,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -7284,7 +7783,7 @@ jQuery.fn.extend( { clearQueue = type; type = undefined; } - if ( clearQueue && type !== false ) { + if ( clearQueue ) { this.queue( type || "fx", [] ); } @@ -7367,7 +7866,7 @@ jQuery.fn.extend( { } } ); -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? @@ -7396,7 +7895,7 @@ jQuery.fx.tick = function() { i = 0, timers = jQuery.timers; - fxNow = jQuery.now(); + fxNow = Date.now(); for ( ; i < timers.length; i++ ) { timer = timers[ i ]; @@ -7588,7 +8087,7 @@ boolHook = { } }; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { @@ -7749,7 +8248,7 @@ jQuery.each( [ // Strip and collapse whitespace according to HTML spec - // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace function stripAndCollapse( value ) { var tokens = value.match( rnothtmlwhite ) || []; return tokens.join( " " ); @@ -7760,20 +8259,30 @@ function getClass( elem ) { return elem.getAttribute && elem.getAttribute( "class" ) || ""; } +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + jQuery.fn.extend( { addClass: function( value ) { var classes, elem, cur, curValue, clazz, j, finalValue, i = 0; - if ( jQuery.isFunction( value ) ) { + if ( isFunction( value ) ) { return this.each( function( j ) { jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); } ); } - if ( typeof value === "string" && value ) { - classes = value.match( rnothtmlwhite ) || []; + classes = classesToArray( value ); + if ( classes.length ) { while ( ( elem = this[ i++ ] ) ) { curValue = getClass( elem ); cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); @@ -7802,7 +8311,7 @@ jQuery.fn.extend( { var classes, elem, cur, curValue, clazz, j, finalValue, i = 0; - if ( jQuery.isFunction( value ) ) { + if ( isFunction( value ) ) { return this.each( function( j ) { jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); } ); @@ -7812,9 +8321,9 @@ jQuery.fn.extend( { return this.attr( "class", "" ); } - if ( typeof value === "string" && value ) { - classes = value.match( rnothtmlwhite ) || []; + classes = classesToArray( value ); + if ( classes.length ) { while ( ( elem = this[ i++ ] ) ) { curValue = getClass( elem ); @@ -7844,13 +8353,14 @@ jQuery.fn.extend( { }, toggleClass: function( value, stateVal ) { - var type = typeof value; + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); - if ( typeof stateVal === "boolean" && type === "string" ) { + if ( typeof stateVal === "boolean" && isValidValue ) { return stateVal ? this.addClass( value ) : this.removeClass( value ); } - if ( jQuery.isFunction( value ) ) { + if ( isFunction( value ) ) { return this.each( function( i ) { jQuery( this ).toggleClass( value.call( this, i, getClass( this ), stateVal ), @@ -7862,12 +8372,12 @@ jQuery.fn.extend( { return this.each( function() { var className, i, self, classNames; - if ( type === "string" ) { + if ( isValidValue ) { // Toggle individual class names i = 0; self = jQuery( this ); - classNames = value.match( rnothtmlwhite ) || []; + classNames = classesToArray( value ); while ( ( className = classNames[ i++ ] ) ) { @@ -7895,8 +8405,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -7911,7 +8421,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -7926,7 +8436,7 @@ var rreturn = /\r/g; jQuery.fn.extend( { val: function( value ) { - var hooks, ret, isFunction, + var hooks, ret, valueIsFunction, elem = this[ 0 ]; if ( !arguments.length ) { @@ -7955,7 +8465,7 @@ jQuery.fn.extend( { return; } - isFunction = jQuery.isFunction( value ); + valueIsFunction = isFunction( value ); return this.each( function( i ) { var val; @@ -7964,7 +8474,7 @@ jQuery.fn.extend( { return; } - if ( isFunction ) { + if ( valueIsFunction ) { val = value.call( this, i, jQuery( this ).val() ); } else { val = value; @@ -8106,18 +8616,24 @@ jQuery.each( [ "radio", "checkbox" ], function() { // Return jQuery for attributes-only inclusion -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; jQuery.extend( jQuery.event, { trigger: function( event, data, elem, onlyHandlers ) { - var i, cur, tmp, bubbleType, ontype, handle, special, + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, eventPath = [ elem || document ], type = hasOwn.call( event, "type" ) ? event.type : event, namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - cur = tmp = elem = elem || document; + cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes if ( elem.nodeType === 3 || elem.nodeType === 8 ) { @@ -8169,7 +8685,7 @@ jQuery.extend( jQuery.event, { // Determine event propagation path in advance, per W3C events spec (#9951) // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { bubbleType = special.delegateType || type; if ( !rfocusMorph.test( bubbleType + type ) ) { @@ -8189,13 +8705,13 @@ jQuery.extend( jQuery.event, { // Fire handlers on the event path i = 0; while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - + lastElement = cur; event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8221,7 +8737,7 @@ jQuery.extend( jQuery.event, { // Call a native DOM method on the target with the same name as the event. // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { // Don't re-trigger an onFOO event when we call its FOO() method tmp = elem[ ontype ]; @@ -8232,7 +8748,17 @@ jQuery.extend( jQuery.event, { // Prevent re-triggering of the same event, since we already bubbled it above jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + jQuery.event.triggered = undefined; if ( tmp ) { @@ -8278,31 +8804,6 @@ jQuery.fn.extend( { } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup contextmenu" ).split( " " ), - function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); - }; -} ); - -jQuery.fn.extend( { - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -} ); - - - - -support.focusin = "onfocusin" in window; - - // Support: Firefox <=44 // Firefox doesn't have focus(in | out) events // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 @@ -8321,7 +8822,10 @@ if ( !support.focusin ) { jQuery.event.special[ fix ] = { setup: function() { - var doc = this.ownerDocument || this, + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { @@ -8330,7 +8834,7 @@ if ( !support.focusin ) { dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - var doc = this.ownerDocument || this, + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { @@ -8346,7 +8850,7 @@ if ( !support.focusin ) { } var location = window.location; -var nonce = jQuery.now(); +var nonce = { guid: Date.now() }; var rquery = ( /\?/ ); @@ -8354,7 +8858,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8363,12 +8867,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8404,7 +8913,7 @@ function buildParams( prefix, obj, traditional, add ) { } } ); - } else if ( !traditional && jQuery.type( obj ) === "object" ) { + } else if ( !traditional && toType( obj ) === "object" ) { // Serialize object item. for ( name in obj ) { @@ -8426,7 +8935,7 @@ jQuery.param = function( a, traditional ) { add = function( key, valueOrFunction ) { // If value is a function, invoke it and use its return value - var value = jQuery.isFunction( valueOrFunction ) ? + var value = isFunction( valueOrFunction ) ? valueOrFunction() : valueOrFunction; @@ -8434,6 +8943,10 @@ jQuery.param = function( a, traditional ) { encodeURIComponent( value == null ? "" : value ); }; + if ( a == null ) { + return ""; + } + // If an array was passed in, assume that it is an array of form elements. if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { @@ -8465,16 +8978,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -8527,7 +9038,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -8544,7 +9056,7 @@ function addToPrefiltersOrTransports( structure ) { i = 0, dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - if ( jQuery.isFunction( func ) ) { + if ( isFunction( func ) ) { // For each dataType in the dataTypeExpression while ( ( dataType = dataTypes[ i++ ] ) ) { @@ -8908,8 +9420,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -8936,12 +9448,14 @@ jQuery.extend( { if ( !responseHeaders ) { responseHeaders = {}; while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); } } - match = responseHeaders[ key.toLowerCase() ]; + match = responseHeaders[ key.toLowerCase() + " " ]; } - return match == null ? null : match; + return match == null ? null : match.join( ", " ); }, // Raw string @@ -9016,7 +9530,7 @@ jQuery.extend( { if ( s.crossDomain == null ) { urlAnchor = document.createElement( "a" ); - // Support: IE <=8 - 11, Edge 12 - 13 + // Support: IE <=8 - 11, Edge 12 - 15 // IE throws exception on accessing the href property if url is malformed, // e.g. http://example.com:80x/ try { @@ -9074,8 +9588,8 @@ jQuery.extend( { // Remember the hash so we can put it back uncached = s.url.slice( cacheURL.length ); - // If data is available, append data to url - if ( s.data ) { + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; // #9682: remove data so that it's not used in an eventual retry @@ -9085,7 +9599,8 @@ jQuery.extend( { // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) @@ -9218,6 +9733,13 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); @@ -9308,11 +9830,11 @@ jQuery.extend( { } } ); -jQuery.each( [ "get", "post" ], function( i, method ) { +jQuery.each( [ "get", "post" ], function( _i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted - if ( jQuery.isFunction( data ) ) { + if ( isFunction( data ) ) { type = type || callback; callback = data; data = undefined; @@ -9329,8 +9851,17 @@ jQuery.each( [ "get", "post" ], function( i, method ) { }; } ); +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); -jQuery._evalUrl = function( url ) { + +jQuery._evalUrl = function( url, options, doc ) { return jQuery.ajax( { url: url, @@ -9340,7 +9871,16 @@ jQuery._evalUrl = function( url ) { cache: true, async: false, global: false, - "throws": true + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } } ); }; @@ -9350,7 +9890,7 @@ jQuery.fn.extend( { var wrap; if ( this[ 0 ] ) { - if ( jQuery.isFunction( html ) ) { + if ( isFunction( html ) ) { html = html.call( this[ 0 ] ); } @@ -9376,7 +9916,7 @@ jQuery.fn.extend( { }, wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { + if ( isFunction( html ) ) { return this.each( function( i ) { jQuery( this ).wrapInner( html.call( this, i ) ); } ); @@ -9396,10 +9936,10 @@ jQuery.fn.extend( { }, wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); + var htmlIsFunction = isFunction( html ); return this.each( function( i ) { - jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); } ); }, @@ -9491,7 +10031,8 @@ jQuery.ajaxTransport( function( options ) { return function() { if ( callback ) { callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; if ( type === "abort" ) { xhr.abort(); @@ -9531,7 +10072,7 @@ jQuery.ajaxTransport( function( options ) { // Listen to events xhr.onload = callback(); - errorCallback = xhr.onerror = callback( "error" ); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); // Support: IE 9 only // Use onreadystatechange to replace onabort @@ -9622,24 +10163,21 @@ jQuery.ajaxPrefilter( "script", function( s ) { // Bind script tag hack transport jQuery.ajaxTransport( "script", function( s ) { - // This transport only deals with cross domain requests - if ( s.crossDomain ) { + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { var script, callback; return { send: function( _, complete ) { - script = jQuery( " - - - + + + + + + + - - +
@@ -61,7 +52,7 @@
-
+

Contributing to the MIT Kerberos Documentation

We are looking for documentation writers and editors who could contribute towards improving the MIT KC documentation content. If you are an experienced @@ -73,7 +64,7 @@ write about any of the topics listed please send your feedback via email to krb5-bugs@mit.edu. The HTML version of this documentation has a “FEEDBACK” link to the krb5-bugs@mit.edu email address with a pre-constructed subject line.

-
+

Background

Starting with release 1.11, the Kerberos documentation set is unified in a central form. Man pages, HTML documentation, and PDF @@ -90,15 +81,17 @@ easier to use and maintain, reStructuredText-based documents should provide an improved experience for the user. Consolidating all the documentation formats into a single source document makes the documentation set easier to maintain.

-
-
+ + +
@@ -139,8 +133,8 @@ to maintain.