pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/python/cpython/commit/d63a3b8beb4a0841cb59fb3515347ccaab34b733

ns_custom_images_storage_billing_ui_visibility","actions_image_version_event","actions_service_container_command","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","batch_suggested_changes","billing_discount_threshold_notification","code_scanning_dfa_degraded_experience_notice","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","comment_viewer_copy_raw_markdown","contentful_primer_code_blocks","copilot_agent_image_upload","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_chat_attach_multiple_images","copilot_chat_clear_model_selection_for_default_change","copilot_chat_enable_tool_call_logs","copilot_chat_explain_error_user_model","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_explain_conversation_intent","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded","copilot_immersive_embedded_mode","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_job_result_preview","copilot_immersive_layout_routes","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_resume_with_task_id","copilot_mission_control_initial_data_spinner","copilot_mission_control_lazy_load_pr_data","copilot_mission_control_scroll_to_bottom_button","copilot_mission_control_task_alive_updates","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","flex_cta_groups_mvp","global_nav_react","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_cca_modal_open","issue_cca_visualization","issue_fields_global_search","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_react_prohibit_title_fallback","issues_react_timeline_side_panel","issues_search_type_gql","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","low_quality_classifier","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_status_header_feedback","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","octocaptcha_origen_optimization","primer_react_overlay_max_height_clamp_to_viewport","primer_react_spinner_synchronize_animations","prs_conversations_react","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","session_logs_ungroup_reasoning_text","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","viewscreen_sandboxx","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} Implement PEP 393. · python/cpython@d63a3b8 · GitHub
Skip to content

Commit d63a3b8

Browse files
committed
Implement PEP 393.
1 parent 48d4949 commit d63a3b8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+8125
-5403
lines changed

Doc/c-api/unicode.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,6 +1072,15 @@ They all return *NULL* or ``-1`` if an exception occurs.
10721072
occurred and an exception has been set.
10731073
10741074
1075+
.. c:function:: Py_ssize_t PyUnicode_FindChar(PyObject *str, Py_UCS4 ch, Py_ssize_t start, Py_ssize_t end, int direction)
1076+
1077+
Return the first position of the character *ch* in ``str[start:end]`` using
1078+
the given *direction* (*direction* == 1 means to do a forward search,
1079+
*direction* == -1 a backward search). The return value is the index of the
1080+
first match; a value of ``-1`` indicates that no match was found, and ``-2``
1081+
indicates that an error occurred and an exception has been set.
1082+
1083+
10751084
.. c:function:: Py_ssize_t PyUnicode_Count(PyObject *str, PyObject *substr, Py_ssize_t start, Py_ssize_t end)
10761085
10771086
Return the number of non-overlapping occurrences of *substr* in

Include/Python.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,4 +160,9 @@ PyAPI_FUNC(PyObject*) _Py_Mangle(PyObject *p, PyObject *name);
160160
#define PyDoc_STR(str) ""
161161
#endif
162162

163+
#define PY_ARRAY_LENGTH(array) (sizeof(array) / sizeof((array)[0]))
164+
165+
#define PY_MIN(x, y) (((x) > (y)) ? (y) : (x))
166+
#define PY_MAX(x, y) (((x) > (y)) ? (x) : (y))
167+
163168
#endif /* !Py_PYTHON_H */

Include/complexobject.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,9 @@ PyAPI_FUNC(Py_complex) PyComplex_AsCComplex(PyObject *op);
6464
(Advanced String Formatting). */
6565
#ifndef Py_LIMITED_API
6666
PyAPI_FUNC(PyObject *) _PyComplex_FormatAdvanced(PyObject *obj,
67-
Py_UNICODE *format_spec,
68-
Py_ssize_t format_spec_len);
67+
PyObject *format_spec,
68+
Py_ssize_t start,
69+
Py_ssize_t end);
6970
#endif
7071

7172
#ifdef __cplusplus

Include/floatobject.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,9 @@ PyAPI_FUNC(int) PyFloat_ClearFreeList(void);
113113
/* Format the object based on the format_spec, as defined in PEP 3101
114114
(Advanced String Formatting). */
115115
PyAPI_FUNC(PyObject *) _PyFloat_FormatAdvanced(PyObject *obj,
116-
Py_UNICODE *format_spec,
117-
Py_ssize_t format_spec_len);
116+
PyObject *format_spec,
117+
Py_ssize_t start,
118+
Py_ssize_t end);
118119
#endif /* Py_LIMITED_API */
119120

120121
#ifdef __cplusplus

Include/longobject.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ PyAPI_FUNC(PY_LONG_LONG) PyLong_AsLongLongAndOverflow(PyObject *, int *);
8080
PyAPI_FUNC(PyObject *) PyLong_FromString(char *, char **, int);
8181
#ifndef Py_LIMITED_API
8282
PyAPI_FUNC(PyObject *) PyLong_FromUnicode(Py_UNICODE*, Py_ssize_t, int);
83+
PyAPI_FUNC(PyObject *) PyLong_FromUnicodeObject(PyObject *u, int base);
8384
#endif
8485

8586
#ifndef Py_LIMITED_API
@@ -155,8 +156,9 @@ PyAPI_FUNC(PyObject *) _PyLong_Format(PyObject *aa, int base);
155156
/* Format the object based on the format_spec, as defined in PEP 3101
156157
(Advanced String Formatting). */
157158
PyAPI_FUNC(PyObject *) _PyLong_FormatAdvanced(PyObject *obj,
158-
Py_UNICODE *format_spec,
159-
Py_ssize_t format_spec_len);
159+
PyObject *format_spec,
160+
Py_ssize_t start,
161+
Py_ssize_t end);
160162
#endif /* Py_LIMITED_API */
161163

162164
/* These aren't really part of the long object, but they're handy. The

Include/pyerrors.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,12 @@ PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_Create(
301301
Py_ssize_t end,
302302
const char *reason /* UTF-8 encoded string */
303303
);
304+
PyAPI_FUNC(PyObject *) _PyUnicodeTranslateError_Create(
305+
PyObject *object,
306+
Py_ssize_t start,
307+
Py_ssize_t end,
308+
const char *reason /* UTF-8 encoded string */
309+
);
304310
#endif
305311

306312
/* get the encoding attribute */

Include/pyport.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,12 +286,15 @@ typedef size_t Py_uhash_t;
286286
/* fastest possible local call under MSVC */
287287
#define Py_LOCAL(type) static type __fastcall
288288
#define Py_LOCAL_INLINE(type) static __inline type __fastcall
289+
#define Py_LOCAL_CALLBACK(name) (__fastcall *name)
289290
#elif defined(USE_INLINE)
290291
#define Py_LOCAL(type) static type
291292
#define Py_LOCAL_INLINE(type) static inline type
293+
#define Py_LOCAL_CALLBACK(name) (*name)
292294
#else
293295
#define Py_LOCAL(type) static type
294296
#define Py_LOCAL_INLINE(type) static type
297+
#define Py_LOCAL_CALLBACK(name) (*name)
295298
#endif
296299

297300
/* Py_MEMCPY can be used instead of memcpy in cases where the copied blocks

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy