Changeset 899
- Timestamp:
- 02/23/07 15:47:59 (2 years ago)
- Files:
-
- trunk/app.php (modified) (29 diffs)
- trunk/wp-admin/index.php (modified) (1 diff)
- trunk/wp-admin/page-new.php (modified) (1 diff)
- trunk/wp-admin/page.php (modified) (1 diff)
- trunk/wp-admin/post-new.php (modified) (1 diff)
- trunk/wp-atom.php (modified) (1 diff)
- trunk/wp-commentsrss2.php (modified) (1 diff)
- trunk/wp-content/themes/classic/comments-popup.php (modified) (1 diff)
- trunk/wp-content/themes/default/comments-popup.php (modified) (1 diff)
- trunk/wp-content/themes/default/comments.php (modified) (3 diffs)
- trunk/wp-includes/feed-atom-comments.php (added)
- trunk/wp-includes/feed-atom.php (added)
- trunk/wp-includes/feed-rdf.php (added)
- trunk/wp-includes/feed-rss.php (added)
- trunk/wp-includes/feed-rss2-comments.php (added)
- trunk/wp-includes/feed-rss2.php (added)
- trunk/wp-includes/feed.php (modified) (1 diff)
- trunk/wp-includes/functions.php (modified) (3 diffs)
- trunk/wp-includes/general-template.php (modified) (2 diffs)
- trunk/wp-includes/gettext.php (modified) (1 diff)
- trunk/wp-includes/js/jquery/jquery.js (modified) (1 diff)
- trunk/wp-includes/js/tinymce/tiny_mce_config.php (modified) (1 diff)
- trunk/wp-includes/link-template.php (modified) (1 diff)
- trunk/wp-includes/post-template.php (modified) (1 diff)
- trunk/wp-rdf.php (modified) (1 diff)
- trunk/wp-rss.php (modified) (1 diff)
- trunk/wp-rss2.php (modified) (1 diff)
- trunk/wp-settings.php (modified) (2 diffs)
- trunk/xmlrpc.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/app.php
r885 r899 5 5 * Modified by: Dougal Campbell, http://dougal.gunters.org/ 6 6 * 7 * Version: 1.0. 0-dc7 * Version: 1.0.5-dc 8 8 */ 9 9 10 10 define('APP_REQUEST', true); 11 11 12 12 require_once('wp-config.php'); 13 require_once('wp-includes/post-template.php'); 13 14 14 15 $use_querystring = 1; … … 16 17 // If using querystring, we need to put the path together manually: 17 18 if ($use_querystring) { 18 $ _GLOBALS['use_querystring'] = $use_querystring;19 $GLOBALS['use_querystring'] = $use_querystring; 19 20 $action = $_GET['action']; 20 21 $eid = (int) $_GET['eid']; … … 29 30 } 30 31 31 $app_logging = 1;32 $app_logging = 0; 32 33 33 34 function log_app($label,$msg) { … … 258 259 259 260 var $ATOM_CONTENT_TYPE = 'application/atom+xml'; 260 261 var $CATEGORIES_CONTENT_TYPE = 'application/atomcat+xml'; 261 262 var $INTROSPECTION_CONTENT_TYPE = 'application/atomserv+xml'; 262 263 263 264 var $ENTRIES_PATH = "posts"; 265 var $CATEGORIES_PATH = "categories"; 264 266 var $MEDIA_PATH = "attachments"; 265 267 var $ENTRY_PATH = "post"; … … 283 285 '@/service@' => 284 286 array('GET' => 'get_service'), 287 '@/categories@' => 288 array('GET' => 'get_categories_xml'), 285 289 '@/post/(\d+)@' => 286 290 array('GET' => 'get_post', … … 349 353 log_app('function','get_service()'); 350 354 $entries_url = $this->get_entries_url(); 355 $categories_url = $this->get_categories_url(); 351 356 $media_url = $this->get_attachments_url(); 352 357 $accepted_content_types = join(',',$this->media_content_types); 353 358 $introspection = <<<EOD 354 <service xmlns="http://purl.org/atom/app#" xmlns:atom="http://www.w3.org/2005/Atom"> 355 <workspace title="WordPress Experimental Workspace"> 356 <collection href="$entries_url" title="WordPress Posts"> 357 <accept>entry</accept> 358 <atom:title>WordPress Posts</atom:title> 359 </collection> 360 <collection href="$media_url" title="WordPress Media"> 361 <accept>$accepted_content_types</accept> 362 <atom:title>WordPress Media</atom:title> 363 </collection> 364 </workspace> 359 <service xmlns="http://purl.org/atom/app#" xmlns:atom="http://www.w3.org/2005/Atom"> 360 <workspace title="WordPress Workspace"> 361 <collection href="$entries_url" title="Posts"> 362 <atom:title>WordPress Posts</atom:title> 363 <accept>entry</accept> 364 <categories href="$categories_url" /> 365 </collection> 366 <collection href="$media_url" title="Media"> 367 <atom:title>WordPress Media</atom:title> 368 <accept>$accepted_content_types</accept> 369 </collection> 370 </workspace> 365 371 </service> 366 372 367 373 EOD; 374 368 375 $this->output($introspection, $this->INTROSPECTION_CONTENT_TYPE); 369 376 } 377 378 function get_categories_xml() { 379 log_app('function','get_categories_xml()'); 380 $home = get_bloginfo_rss('home'); 381 382 $categories = ""; 383 $cats = get_categories("hierarchical=0&hide_empty=0"); 384 foreach ((array) $cats as $cat) { 385 $categories .= " <category term=\"" . attribute_escape($cat->cat_name) . "\" />\n"; 386 } 387 $output = <<<EOD 388 <app:categories xmlns:app="http://purl.org/atom/app#" 389 xmlns="http://www.w3.org/2005/Atom" 390 fixed="yes" scheme="$home"> 391 $categories 392 </app:categories> 393 EOD; 394 $this->output($output, $this->CATEGORIES_CONTENT_TYPE); 395 } 370 396 371 397 /* … … 373 399 */ 374 400 function create_post() { 375 401 global $current_blog; 376 402 $this->get_accepted_content_type($this->atom_content_types); 377 403 … … 390 416 $this->auth_required('Sorry, you do not have the right to edit/publish new posts.'); 391 417 392 $blog_ID = 1;418 $blog_ID = $current_blog->blog_id; 393 419 $post_status = ($publish) ? 'publish' : 'draft'; 394 420 $post_author = $user->ID; … … 401 427 $post_data = compact('blog_ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt'); 402 428 429 log_app('Inserting Post. Data:', print_r($post_data,true)); 430 403 431 $postID = wp_insert_post($post_data); 404 432 … … 438 466 // check for not found 439 467 global $entry; 468 $entry = $GLOBALS['entry']; 440 469 $this->set_current_entry($postID); 441 $this->escape($ entry);470 $this->escape($GLOBALS['entry']); 442 471 443 472 if(!current_user_can('edit_post', $entry['ID'])) … … 508 537 509 538 function create_attachment() { 539 global $wp, $wpdb, $wp_query, $blog_id; 510 540 511 541 $type = $this->get_accepted_content_type(); … … 532 562 $file = wp_upload_bits( $slug, NULL, $bits); 533 563 564 log_app('wp_upload_bits returns:',print_r($file,true)); 565 534 566 $url = $file['url']; 535 567 $file = $file['file']; … … 696 728 $url .= '?action=/' . $this->ENTRIES_PATH; 697 729 if(isset($page) && is_int($page)) { 698 $url .= "& eid=$page";730 $url .= "&eid=$page"; 699 731 } 700 732 } else { … … 712 744 } 713 745 746 function get_categories_url($page = NULL) { 747 global $use_querystring; 748 $url = get_bloginfo('url') . '/' . $this->script_name; 749 if ($use_querystring) { 750 $url .= '?action=/' . $this->CATEGORIES_PATH; 751 } else { 752 $url .= '/' . $this->CATEGORIES_PATH; 753 } 754 return $url; 755 } 756 757 function the_categories_url() { 758 $url = $this->get_categories_url(); 759 echo $url; 760 } 761 714 762 function get_attachments_url($page = NULL) { 715 763 global $use_querystring; … … 718 766 $url .= '?action=/' . $this->MEDIA_PATH; 719 767 if(isset($page) && is_int($page)) { 720 $url .= "& eid=$page";768 $url .= "&eid=$page"; 721 769 } 722 770 } else { … … 739 787 if(!isset($postID)) { 740 788 global $post; 741 $postID = $ post->ID;789 $postID = $GLOBALS['post']->ID; 742 790 } 743 791 744 792 if ($use_querystring) { 745 $url = get_bloginfo('url') . '/' . $this->script_name . '?action=/' . $this->ENTRY_PATH . "& eid=$postID";793 $url = get_bloginfo('url') . '/' . $this->script_name . '?action=/' . $this->ENTRY_PATH . "&eid=$postID"; 746 794 } else { 747 795 $url = get_bloginfo('url') . '/' . $this->script_name . '/' . $this->ENTRY_PATH . "/$postID"; … … 761 809 if(!isset($postID)) { 762 810 global $post; 763 $postID = $ post->ID;811 $postID = $GLOBALS['post']->ID; 764 812 } 765 813 766 814 if ($use_querystring) { 767 $url = get_bloginfo('url') . '/' . $this->script_name . '?action=/' . $this->MEDIA_SINGLE_PATH ."& eid=$postID";815 $url = get_bloginfo('url') . '/' . $this->script_name . '?action=/' . $this->MEDIA_SINGLE_PATH ."&eid=$postID"; 768 816 } else { 769 817 $url = get_bloginfo('url') . '/' . $this->script_name . '/' . $this->MEDIA_SINGLE_PATH ."/$postID"; … … 816 864 817 865 function get_feed($page = 1, $post_type = 'post') { 866 global $post, $wp, $wp_query, $posts, $wpdb, $blog_id, $post_cache; 818 867 log_app('function',"get_feed($page, '$post_type')"); 819 868 ob_start(); … … 830 879 } 831 880 query_posts($query); 832 global $post; 881 $post = $GLOBALS['post']; 882 $posts = $GLOBALS['posts']; 883 $wp = $GLOBALS['wp']; 884 $wp_query = $GLOBALS['wp_query']; 885 $wpdb = $GLOBALS['wpdb']; 886 $blog_id = $GLOBALS['blog_id']; 887 $post_cache = $GLOBALS['post_cache']; 888 833 889 834 890 $total_count = $this->get_posts_count(); … … 852 908 <link rel="self" type="application/atom+xml" href="<?php $this->the_entries_url() ?>" /> 853 909 <rights type="text">Copyright <?php echo mysql2date('Y', get_lastpostdate('blog')); ?></rights> 854 <generator uri="http://wordpress.com/" version="1.0.0-dc">WordPress.com Atom API</generator> 855 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 910 <generator uri="http://wordpress.com/" version="1.0.5-dc">WordPress.com Atom API</generator> 911 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); 912 $post = $GLOBALS['post']; 913 ?> 856 914 <entry> 857 <id><?php the_guid( ); ?></id>915 <id><?php the_guid($post->ID); ?></id> 858 916 <title type="html"><![CDATA[<?php the_title() ?>]]></title> 859 917 <updated><?php echo get_post_modified_time('Y-m-d\TH:i:s\Z', true); ?></updated> 860 918 <published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published> 861 919 <app:control> 862 <app:draft><?php echo ($ post->post_status == 'draft' ? 'yes' : 'no') ?></app:draft>920 <app:draft><?php echo ($GLOBALS['post']->post_status == 'draft' ? 'yes' : 'no') ?></app:draft> 863 921 </app:control> 864 922 <author> … … 869 927 <?php } ?> 870 928 </author> 871 <?php if($ post->post_status == 'attachment') { ?>929 <?php if($GLOBALS['post']->post_status == 'attachment') { ?> 872 930 <link rel="edit" href="<?php $this->the_entry_url() ?>" /> 873 931 <link rel="edit-media" href="<?php $this->the_media_url() ?>" /> … … 879 937 <category scheme="<?php bloginfo_rss('home') ?>" term="<?php echo $category->cat_name?>" /> 880 938 <?php } ?> <summary type="html"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary> 881 <?php if ( strlen( $ post->post_content ) ) : ?>882 <content type="html">< ?php echo get_the_content('', 0, '') ?></content>939 <?php if ( strlen( $GLOBALS['post']->post_content ) ) : ?> 940 <content type="html"><![CDATA[<?php echo get_the_content('', 0, '') ?>]]></content> 883 941 <?php endif; ?> 884 942 </entry> … … 896 954 log_app('function',"get_entry($postID, '$post_type')"); 897 955 ob_start(); 898 global $posts, $post, $wp_query ;956 global $posts, $post, $wp_query, $wp, $wpdb, $blog_id, $post_cache; 899 957 switch($post_type) { 900 958 case 'post': … … 906 964 } 907 965 query_posts($varname . '=' . $postID); 908 if ( have_posts() ) : while ( have_posts() ) : the_post();?> 966 if ( have_posts() ) : while ( have_posts() ) : the_post(); 967 $post = $GLOBALS['post']; 968 ?> 969 <?php log_app('$post',print_r($GLOBALS['post'],true)); ?> 909 970 <entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://purl.org/atom/app#" xml:lang="<?php echo get_option('rss_language'); ?>"> 910 <id><?php the_guid( ); ?></id>971 <id><?php the_guid($post->ID); ?></id> 911 972 <title type="html"><![CDATA[<?php the_title_rss() ?>]]></title> 912 973 … … 914 975 <published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published> 915 976 <app:control> 916 <app:draft><?php echo ($ post->post_status == 'draft' ? 'yes' : 'no') ?></app:draft>977 <app:draft><?php echo ($GLOBALS['post']->post_status == 'draft' ? 'yes' : 'no') ?></app:draft> 917 978 </app:control> 918 979 <author> … … 921 982 <uri><?php the_author_url()?></uri> 922 983 </author> 923 <?php if($ post->post_type == 'attachment') { ?>984 <?php if($GLOBALS['post']->post_type == 'attachment') { ?> 924 985 <link rel="edit" href="<?php $this->the_entry_url() ?>" /> 925 986 <link rel="edit-media" href="<?php $this->the_media_url() ?>" /> 926 <content type="<?php echo $ post->post_mime_type ?>" src="<?php the_guid(); ?>"/>987 <content type="<?php echo $GLOBALS['post']->post_mime_type ?>" src="<?php the_guid(); ?>"/> 927 988 <?php } else { ?> 928 989 <link href="<?php permalink_single_rss() ?>" /> … … 933 994 <summary type="html"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary> 934 995 <?php } 935 if ( strlen( $ post->post_content ) ) : ?>936 <content type="html">< ?php echo get_the_content('', 0, '') ?></content>996 if ( strlen( $GLOBALS['post']->post_content ) ) : ?> 997 <content type="html"><![CDATA[<?php echo get_the_content('', 0, '') ?>]]></content> 937 998 <?php endif; ?> 938 999 </entry> … … 1026 1087 case 'attachment': 1027 1088 if ($use_querystring) { 1028 $edit = get_bloginfo('url') . '/' . $this->script_name . "?action=/attachments& eid=$post_ID";1089 $edit = get_bloginfo('url') . '/' . $this->script_name . "?action=/attachments&eid=$post_ID"; 1029 1090 } else { 1030 1091 $edit = get_bloginfo('url') . '/' . $this->script_name . "/attachments/$post_ID"; … … 1055 1116 function output($xml, $ctype = "application/atom+xml") { 1056 1117 status_header('200'); 1057 $xml = '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?>'."\n".$xml;1118 $xml = '<?xml version="1.0" encoding="' . strtolower(get_option('blog_charset')) . '"?>'."\n".$xml; 1058 1119 header('Connection: close'); 1059 1120 header('Content-Length: '. strlen($xml)); trunk/wp-admin/index.php
r868 r899 16 16 add_action( 'admin_head', 'index_js' ); 17 17 wp_enqueue_script('prototype'); 18 wp_enqueue_script('interface'); 18 19 19 20 $title = __('Dashboard'); trunk/wp-admin/page-new.php
r789 r899 5 5 $editing = true; 6 6 wp_enqueue_script('prototype'); 7 wp_enqueue_script('interface'); 7 8 wp_enqueue_script('autosave'); 8 9 require_once('admin-header.php'); trunk/wp-admin/page.php
r854 r899 54 54 if($post->post_status == 'draft') { 55 55 wp_enqueue_script('prototype'); 56 wp_enqueue_script('interface'); 56 57 wp_enqueue_script('autosave'); 57 58 } trunk/wp-admin/post-new.php
r804 r899 5 5 $editing = true; 6 6 wp_enqueue_script('prototype'); 7 wp_enqueue_script('interface'); 7 8 wp_enqueue_script('autosave'); 8 9 require_once ('./admin-header.php'); trunk/wp-atom.php
r868 r899 6 6 } 7 7 8 header('Content-type: application/atom+xml; charset=' . get_option('blog_charset'), true); 9 $more = 1; 8 require (ABSPATH . WPINC . '/feed-atom.php'); 10 9 11 10 ?> 12 <?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>13 <feed14 xmlns="http://www.w3.org/2005/Atom"15 xmlns:thr="http://purl.org/syndication/thread/1.0"16 xml:lang="<?php echo get_option('rss_language'); ?>"17 xml:base="<?php bloginfo_rss('home') ?>/wp-atom.php"18 <?php do_action('atom_ns'); ?>19 >20 <title type="text"><?php bloginfo_rss('name') ?></title>21 <subtitle type="text"><?php bloginfo_rss("description") ?></subtitle>22 23 <updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT')); ?></updated>24 <generator uri="http://wordpress.org/" version="<?php bloginfo_rss('version'); ?>">WordPress</generator>25 26 <link rel="alternate" type="text/html" href="<?php bloginfo_rss('home') ?>" />27 <id><?php bloginfo('atom_url'); ?></id>28 <link rel="self" type="application/atom+xml" href="<?php bloginfo('atom_url'); ?>" />29 30 <?php do_action('atom_head'); ?>31 <?php while (have_posts()) : the_post(); ?>32 <entry>33 <author>34 <name><?php the_author() ?></name>35 <uri><?php the_author_url()?></uri>36 </author>37 <title type="<?php html_type_rss(); ?>"><![CDATA[<?php the_title_rss() ?>]]></title>38 <link rel="alternate" type="text/html" href="<?php permalink_single_rss() ?>" />39 <id><?php the_guid(); ?></id>40 <updated><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></updated>41 <published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published>42 <?php the_category_rss('atom') ?>43 <summary type="<?php html_type_rss(); ?>"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary>44 <?php if ( !get_option('rss_use_excerpt') ) : ?>45 <content type="<?php html_type_rss(); ?>" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_content('', 0, '') ?>]]></content>46 <?php endif; ?>47 <?php rss_enclosure(); ?>48 <?php do_action('atom_entry'); ?>49 </entry>50 <?php endwhile ; ?>51 </feed>trunk/wp-commentsrss2.php
r823 r899 6 6 } 7 7 8 header('Content-type: text/xml;charset=' . get_option('blog_charset'), true);8 require (ABSPATH . WPINC . '/feed-rss2-comments.php'); 9 9 10 echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';11 10 ?> 12 <!-- generator="wordpress/<?php echo $wp_version ?>" -->13 <rss version="2.0"14 xmlns:content="http://purl.org/rss/1.0/modules/content/">15 <channel>16 <?php17 $i = 0;18 if (have_posts()) :19 while (have_posts()) : the_post();20 if ($i < 1) {21 $i++;22 ?>23 <title><?php if (is_single() || is_page() ) { printf(__('Comments on: %s'), get_the_title_rss()); } else { printf(__('Comments for %s'), get_bloginfo_rss("name")); } ?></title>24 <link><?php (is_single()) ? permalink_single_rss() : bloginfo_rss("url") ?></link>25 <description><?php bloginfo_rss("description") ?></description>26 <pubDate><?php echo gmdate('r'); ?></pubDate>27 <generator>http://wordpress.org/?v=<?php echo $wp_version ?></generator>28 29 <?php30 if (is_single() || is_page()) {31 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email,32 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID,33 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments34 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE comment_post_ID = '" . get_the_ID() . "'35 AND $wpdb->comments.comment_approved = '1' AND $wpdb->posts.post_status = 'publish'36 AND post_date_gmt < '" . gmdate("Y-m-d H:i:59") . "'37 ORDER BY comment_date_gmt ASC" );38 } else { // if no post id passed in, we'll just ue the last 10 comments.39 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email,40 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID,41 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments42 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE $wpdb->posts.post_status = 'publish'43 AND $wpdb->comments.comment_approved = '1' AND post_date_gmt < '" . gmdate("Y-m-d H:i:s") . "'44 ORDER BY comment_date_gmt DESC LIMIT " . get_option('posts_per_rss') );45 }46 // this line is WordPress' motor, do not delete it.47 if ($comments) {48 foreach ($comments as $comment) {49 $GLOBALS['comment'] =& $comment;50 // Some plugins may need to know the metadata51 // associated with this comment's post:52 get_post_custom($comment->comment_post_ID);53 ?>54 <item>55 <title><?php if ( ! (is_single() || is_page()) ) {56 $title = get_the_title($comment->comment_post_ID);57 $title = apply_filters('the_title', $title);58 $title = apply_filters('the_title_rss', $title);59 printf(__('Comment on %1$s by %2$s'), $title, get_comment_author_rss());60 } else {61 printf(__('By: %s'), get_comment_author_rss());62 } ?></title>63 <link><?php comment_link() ?></link>64 <author><?php echo get_comment_author_rss() ?></author>65 <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_comment_time('Y-m-d H:i:s', true), false); ?></pubDate>66 <guid><?php comment_link() ?></guid>67 <?php68 if (!empty($comment->post_password) && $_COOKIE['wp-postpass'] != $comment->post_password) {69 ?>70 <description><?php _e('Protected Comments: Please enter your password to view comments.'); ?></description>71 <content:encoded><![CDATA[<?php echo get_the_password_form() ?>]]></content:encoded>72 <?php73 } else {74 ?>75 <description><?php comment_text_rss() ?></description>76 <content:encoded><![CDATA[<?php comment_text() ?>]]></content:encoded>77 <?php78 } // close check for password79 do_action('commentrss2_item', $comment->comment_ID, $comment->comment_post_ID);80 ?>81 </item>82 <?php83 }84 }85 }86 endwhile; endif;87 ?>88 </channel>89 </rss>trunk/wp-content/themes/classic/comments-popup.php
r889 r899 22 22 <h2 id="comments"><?php _e("Comments"); ?></h2> 23 23 24 <p><a href="<?php echo get_ option('siteurl'); ?>/wp-commentsrss2.php?p=<?php echo $post->ID; ?>"><?php _e("<abbr title=\"Really Simple Syndication\">RSS</abbr> feed for comments on this post."); ?></a></p>24 <p><a href="<?php echo get_post_comments_feed_link($post->ID); ?>"><?php _e("<abbr title=\"Really Simple Syndication\">RSS</abbr> feed for comments on this post."); ?></a></p> 25 25 26 26 <?php if ('open' == $post->ping_status) { ?> trunk/wp-content/themes/default/comments-popup.php
r889 r899 22 22 <h2 id="comments">Comments</h2> 23 23 24 <p><a href="<?php echo get_ option('siteurl'); ?>/wp-commentsrss2.php?p=<?php echo $post->ID; ?>"><abbr title="Really Simple Syndication">RSS</abbr> feed for comments on this post.</a></p>24 <p><a href="<?php echo get_post_comments_feed_link($post->ID); ?>"><abbr title="Really Simple Syndication">RSS</abbr> feed for comments on this post.</a></p> 25 25 26 26 <?php if ('open' == $post->ping_status) { ?> trunk/wp-content/themes/default/comments.php
r894 r899 15 15 16 16 /* This variable is for alternating comment background */ 17 $oddcomment = ' alt';17 $oddcomment = 'class="alt" '; 18 18 ?> 19 19 … … 27 27 <?php foreach ($comments as $comment) : ?> 28 28 29 <li class="<?php echo $oddcomment; ?>"id="comment-<?php comment_ID() ?>">29 <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>"> 30 30 <cite><?php comment_author_link() ?></cite> Says: 31 31 <?php if ($comment->comment_approved == '0') : ?> … … 40 40 </li> 41 41 42 <?php /* Changes every other comment to a different class */43 if ('alt' == $oddcomment) $oddcomment = '';44 else $oddcomment = 'alt';42 <?php 43 /* Changes every other comment to a different class */ 44 $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : ''; 45 45 ?> 46 46 trunk/wp-includes/feed.php
r888 r899 90 90 91 91 92 function comments_rss_link($link_text = 'Comments RSS', $commentsrssfilename = ' ') {93 $url = comments_rss($commentsrssfilename);92 function comments_rss_link($link_text = 'Comments RSS', $commentsrssfilename = 'nolongerused') { 93 $url = get_post_comments_feed_link();; 94 94 echo "<a href='$url'>$link_text</a>"; 95 95 } 96 96 97 97 98 function comments_rss($commentsrssfilename = '') { 99 global $id; 100 101 if ( '' != get_option('permalink_structure') ) 102 $url = trailingslashit( get_permalink() ) . user_trailingslashit('feed'); 103 else 104 $url = get_option('home') . "/$commentsrssfilename?feed=rss2&p=$id"; 105 106 return apply_filters('post_comments_feed_link', $url); 98 function comments_rss($commentsrssfilename = 'nolongerused') { 99 return get_post_comments_feed_link(); 107 100 } 108 101 trunk/wp-includes/functions.php
r896 r899 319 319 // If the new and old values are the same, no need to update. 320 320 $oldvalue = get_option($option_name); 321 if ( $newvalue == $oldvalue ) {321 if ( $newvalue === $oldvalue ) { 322 322 return false; 323 323 } … … 962 962 $feed = preg_replace('/^_+/', '', $feed); 963 963 964 if ( $feed == '' || $feed == 'feed')964 if ( $feed == '' || $feed == 'feed' ) 965 965 $feed = 'rss2'; 966 966 967 967 $for_comments = false; 968 if ( 1 != get_query_var('withoutcomments') && ( is_singular() || get_query_var('withcomments') == 1 || $feed == 'comments-rss2' ) ) { 969 $feed = 'rss2'; 970 $for_comments = true; 971 } 968 969 if ( is_singular() || get_query_var('withcomments') == 1 ) 970 $for_comments = true; 971 972 if ( false !== strpos($feed, 'comments-') ) { 973 $for_comments = true; 974 $feed = str_replace('comments-', '', $feed); 975 } 976 977 if ( get_query_var('withoutcomments') == 1 ) 978 $for_comments = false; 972 979 973 980 $hook = 'do_feed_' . $feed; … … 976 983 977 984 function do_feed_rdf() { 978 load_template(ABSPATH . 'wp-rdf.php');985 load_template(ABSPATH . WPINC . '/feed-rdf.php'); 979 986 } 980 987 981 988 function do_feed_rss() { 982 load_template(ABSPATH . 'wp-rss.php');989 load_template(ABSPATH . WPINC . '/feed-rss.php'); 983 990 } 984 991 985 992 function do_feed_rss2($for_comments) { 986 993 if ( $for_comments ) { 987 load_template(ABSPATH . 'wp-commentsrss2.php'); 988 } else { 989 load_template(ABSPATH . 'wp-rss2.php'); 990 } 991 } 992 993 function do_feed_atom() { 994 load_template(ABSPATH . 'wp-atom.php'); 994 load_template(ABSPATH . WPINC . '/feed-rss2-comments.php'); 995 } else { 996 load_template(ABSPATH . WPINC . '/feed-rss2.php'); 997 } 998 } 999 1000 function do_feed_atom($for_comments) { 1001 if ($for_comments) { 1002 load_template(ABSPATH . WPINC . '/feed-atom-comments.php'); 1003 } else { 1004 load_template(ABSPATH . WPINC . '/feed-atom.php'); 1005 } 995 1006 } 996 1007 trunk/wp-includes/general-template.php
r854 r899 100 100 $output = get_feed_link('atom'); 101 101 break; 102 case 'comments_atom_url': 103 $output = get_feed_link('comments_atom'); 102 104 case 'comments_rss2_url': 103 105 $output = get_feed_link('comments_rss2'); … … 489 491 LIMIT 1"); 490 492 491 echo '<table id="wp-calendar" >493 echo '<table id="wp-calendar" summary="' . __('Calendar') . '"> 492 494 <caption>' . $wp_locale->get_month($thismonth) . ' ' . date('Y', $unixmonth) . '</caption> 493 495 <thead> trunk/wp-includes/gettext.php
r849 r899 109 109 // $MAGIC2 = (int)0xde120495; //bug 110 110 $MAGIC2 = (int) - 569244523; 111 // 64-bit fix 112 $MAGIC3 = (int) 2500072158; 111 113 112 114 $this->STREAM = $Reader; 113 115 $magic = $this->readint(); 114 if ($magic == ($MAGIC1 & 0xFFFFFFFF) ) { // to make sure it works for 64-bit platforms116 if ($magic == ($MAGIC1 & 0xFFFFFFFF) || $magic == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms 115 117 $this->BYTEORDER = 0; 116 118 } elseif ($magic == ($MAGIC2 & 0xFFFFFFFF)) { trunk/wp-includes/js/jquery/jquery.js
r894 r899 1 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('k(1v 1t.6=="Q"){1t.Q=1t.Q;u 6=l(a,c){k(1t==7)q 1p 6(a,c);a=a||12;k(6.1k(a))q 1p 6(12)[6.C.28?"28":"2E"](a);k(1v a=="22"){u m=/^[^<]*(<(.|\\n)+>)[^>]*$/.2B(a);k(m)a=6.3W([m[1]]);H q 1p 6(c).2o(a)}q 7.4M(a.1g==2A&&a||(a.3e||a.G&&a!=1t&&!a.1V&&a[0]!=Q&&a[0].1V)&&6.3H(a)||[a])};k(1v $!="Q")6.2O$=$;u $=6;6.C=6.8o={3e:"1.1.1",8p:l(){q 7.G},G:0,2a:l(1R){q 1R==Q?6.3H(7):7[1R]},2q:l(a){u J=6(7);J.6j=7;q J.4M(a)},4M:l(a){7.G=0;[].1h.14(7,a);q 7},I:l(C,1y){q 6.I(7,C,1y)},2b:l(19){u 4I=-1;7.I(l(i){k(7==19)4I=i});q 4I},1E:l(20,N,v){u 19=20;k(20.1g==3p)k(N==Q)q 7.G&&6[v||"1E"](7[0],20)||Q;H{19={};19[20]=N}q 7.I(l(2b){O(u F 1B 19)6.1E(v?7.1q:7,F,6.F(7,19[F],v,2b,F))})},1f:l(20,N){q 7.1E(20,N,"2V")},2L:l(e){k(1v e=="22")q 7.3n().3t(12.8r(e));u t="";6.I(e||7,l(){6.I(7.38,l(){k(7.1V!=8)t+=7.1V!=1?7.60:6.C.2L([7])})});q t},2D:l(){u a=6.3W(1x);q 7.I(l(){u b=a[0].3V(T);7.V.2T(b,7);1Z(b.17)b=b.17;b.4i(7)})},3t:l(){q 7.35(1x,T,1,l(a){7.4i(a)})},5n:l(){q 7.35(1x,T,-1,l(a){7.2T(a,7.17)})},5h:l(){q 7.35(1x,Y,1,l(a){7.V.2T(a,7)})},5i:l(){q 7.35(1x,Y,-1,l(a){7.V.2T(a,7.2f)})},4E:l(){q 7.6j||6([])},2o:l(t){q 7.2q(6.2X(7,l(a){q 6.2o(t,a)}))},4w:l(4C){q 7.2q(6.2X(7,l(a){q a.3V(4C!=Q?4C:T)}))},1w:l(t){q 7.2q(6.1k(t)&&6.2k(7,l(2G,2b){q t.14(2G,[2b])})||6.3v(t,7))},2c:l(t){q 7.2q(t.1g==3p&&6.3v(t,7,T)||6.2k(7,l(a){k(t.1g==2A||t.3e)q 6.3g(t,a)<0;H q a!=t}))},1J:l(t){q 7.2q(6.2i(7.2a(),t.1g==3p?6(t).2a():t.G!=Q&&!t.1u?t:[t]))},46:l(1n){q 1n?6.1w(1n,7).r.G>0:Y},18:l(18){q 18==Q?(7.G?7[0].N:1c):7.1E("N",18)},4Q:l(18){q 18==Q?(7.G?7[0].2H:1c):7.3n().3t(18)},35:l(1y,1N,3F,C){u 4w=7.G>1;u a=6.3W(1y);k(3F<0)a.8s();q 7.I(l(){u 19=7;k(1N&&6.1u(7,"1N")&&6.1u(a[0],"3U"))19=7.5E("1T")[0]||7.4i(12.6e("1T"));6.I(a,l(){C.14(19,[4w?7.3V(T):7])})})}};6.1A=6.C.1A=l(){u 1P=1x[0],a=1;k(1x.G==1){1P=7;a=0}u F;1Z(F=1x[a++])O(u i 1B F)1P[i]=F[i];q 1P};6.1A({8v:l(){k(6.2O$)$=6.2O$;q 6},1k:l(C){q!!C&&1v C!="22"&&1v C[0]=="Q"&&/l/i.1s(C+"")},1u:l(B,W){q B.1u&&B.1u.3u()==W.3u()},I:l(19,C,1y){k(19.G==Q)O(u i 1B 19)C.14(19[i],1y||[i,19[i]]);H O(u i=0,6l=19.G;i<6l;i++)k(C.14(19[i],1y||[i,19[i]])===Y)4q;q 19},F:l(B,N,v,2b,F){k(6.1k(N))q N.3s(B,[2b]);u 6m=/z-?2b|7C-?7D|1b|64|8x-?26/i;k(N.1g==3N&&v=="2V"&&!6m.1s(F))q N+"49";q N},16:{1J:l(B,c){6.I(c.3o(/\\s+/),l(i,M){k(!6.16.2P(B.16,M))B.16+=(B.16?" ":"")+M})},2g:l(B,c){B.16=c?6.2k(B.16.3o(/\\s+/),l(M){q!6.16.2P(c,M)}).55(" "):""},2P:l(t,c){t=t.16||t;q t&&1p 4V("(^|\\\\s)"+c+"(\\\\s|$)").1s(t)}},44:l(e,o,f){O(u i 1B o){e.1q["1H"+i]=e.1q[i];e.1q[i]=o[i]}f.14(e,[]);O(u i 1B o)e.1q[i]=e.1q["1H"+i]},1f:l(e,p){k(p=="26"||p=="40"){u 1H={},41,3f,d=["7x","8z","8A","8B"];6.I(d,l(){1H["8C"+7]=0;1H["8E"+7+"8F"]=0});6.44(e,1H,l(){k(6.1f(e,"1e")!="1Y"){41=e.6E;3f=e.6v}H{e=6(e.3V(T)).2o(":4h").5j("2S").4E().1f({4g:"1C",3Z:"6q",1e:"2t",7v:"0",6r:"0"}).5f(e.V)[0];u 3c=6.1f(e.V,"3Z");k(3c==""||3c=="43")e.V.1q.3Z="6s";41=e.6t;3f=e.6u;k(3c==""||3c=="43")e.V.1q.3Z="43";e.V.39(e)}});q p=="26"?41:3f}q 6.2V(e,p)},2V:l(B,F,6k){u J;k(F=="1b"&&6.U.1m)q 6.1E(B.1q,"1b");k(F=="4L"||F=="2u")F=6.U.1m?"3l":"2u";k(!6k&&B.1q[F])J=B.1q[F];H k(12.3X&&12.3X.45){k(F=="2u"||F=="3l")F="4L";F=F.1U(/([A-Z])/g,"-$1").4P();u M=12.3X.45(B,1c);k(M)J=M.53(F);H k(F=="1e")J="1Y";H 6.44(B,{1e:"2t"},l(){u c=12.3X.45(7,"");J=c&&c.53(F)||""})}H k(B.4Z){u 54=F.1U(/\\-(\\w)/g,l(m,c){q c.3u()});J=B.4Z[F]||B.4Z[54]}q J},3W:l(a){u r=[];6.I(a,l(i,1L){k(!1L)q;k(1L.1g==3N)1L=1L.8m();k(1v 1L=="22"){u s=6.2Z(1L),1W=12.6e("1W"),2e=[];u 2D=!s.15("<1l")&&[1,"<3T>","</3T>"]||(!s.15("<6y")||!s.15("<1T")||!s.15("<6A"))&&[1,"<1N>","</1N>"]||!s.15("<3U")&&[2,"<1N><1T>","</1T></1N>"]||(!s.15("<6B")||!s.15("<6D"))&&[3,"<1N><1T><3U>","</3U></1T></1N>"]||[0,"",""];1W.2H=2D[1]+s+2D[2];1Z(2D[0]--)1W=1W.17;k(6.U.1m){k(!s.15("<1N")&&s.15("<1T")<0)2e=1W.17&&1W.17.38;H k(2D[1]=="<1N>"&&s.15("<1T")<0)2e=1W.38;O(u n=2e.G-1;n>=0;--n)k(6.1u(2e[n],"1T")&&!2e[n].38.G)2e[n].V.39(2e[n])}1L=1W.38}k(1L.G===0)q;k(1L[0]==Q)r.1h(1L);H r=6.2i(r,1L)});q r},1E:l(B,W,N){u 2m={"O":"6G","6H":"16","4L":6.U.1m?"3l":"2u",2u:6.U.1m?"3l":"2u",2H:"2H",16:"16",N:"N",2R:"2R",2S:"2S",6K:"6L",2Q:"2Q"};k(W=="1b"&&6.U.1m&&N!=Q){B.64=1;q B.1w=B.1w.1U(/4K\\([^\\)]*\\)/6M,"")+(N==1?"":"4K(1b="+N*57+")")}H k(W=="1b"&&6.U.1m)q B.1w?4f(B.1w.6N(/4K\\(1b=(.*)\\)/)[1])/57:1;k(W=="1b"&&6.U.36&&N==1)N=0.7X;k(2m[W]){k(N!=Q)B[2m[W]]=N;q B[2m[W]]}H k(N==Q&&6.U.1m&&6.1u(B,"5S")&&(W=="6Q"||W=="7V"))q B.6S(W).60;H k(B.6T){k(N!=Q)B.7R(W,N);q B.3D(W)}H{W=W.1U(/-([a-z])/6W,l(z,b){q b.3u()});k(N!=Q)B[W]=N;q B[W]}},2Z:l(t){q t.1U(/^\\s+|\\s+$/g,"")},3H:l(a){u r=[];k(a.1g!=2A)O(u i=0,2w=a.G;i<2w;i++)r.1h(a[i]);H r=a.3J(0);q r},3g:l(b,a){O(u i=0,2w=a.G;i<2w;i++)k(a[i]==b)q i;q-1},2i:l(2v,3P){u r=[].3J.3s(2v,0);O(u i=0,63=3P.G;i<63;i++)k(6.3g(3P[i],r)==-1)2v.1h(3P[i]);q 2v},2k:l(1Q,C,48){k(1v C=="22")C=1p 4D("a","i","q "+C);u 1d=[];O(u i=0,2G=1Q.G;i<2G;i++)k(!48&&C(1Q[i],i)||48&&!C(1Q[i],i))1d.1h(1Q[i]);q 1d},2X:l(1Q,C){k(1v C=="22")C=1p 4D("a","q "+C);u 1d=[],r=[];O(u i=0,2G=1Q.G;i<2G;i++){u 18=C(1Q[i],i);k(18!==1c&&18!=Q){k(18.1g!=2A)18=[18];1d=1d.70(18)}}u r=1d.G?[1d[0]]:[];5d:O(u i=1,5N=1d.G;i<5N;i++){O(u j=0;j<i;j++)k(1d[i]==r[j])5z 5d;r.1h(1d[i])}q r}});1p l(){u b=7H.72.4P();6.U={2C:/5I/.1s(b),37:/37/.1s(b),1m:/1m/.1s(b)&&!/37/.1s(b),36:/36/.1s(b)&&!/(74|5I)/.1s(b)};6.75=!6.U.1m||12.76=="7B"};6.I({5p:"a.V",4s:"6.4s(a)",78:"6.25(a,2,\'2f\')",7z:"6.25(a,2,\'5o\')",79:"6.2F(a.V.17,a)",7b:"6.2F(a.17)"},l(i,n){6.C[i]=l(a){u J=6.2X(7,n);k(a&&1v a=="22")J=6.3v(a,J);q 7.2q(J)}});6.I({5f:"3t",7d:"5n",2T:"5h",7f:"5i"},l(i,n){6.C[i]=l(){u a=1x;q 7.I(l(){O(u j=0,2w=a.G;j<2w;j++)6(a[j])[n](7)})}});6.I({5j:l(20){6.1E(7,20,"");7.7h(20)},7i:l(c){6.16.1J(7,c)},7j:l(c){6.16.2g(7,c)},7l:l(c){6.16[6.16.2P(7,c)?"2g":"1J"](7,c)},2g:l(a){k(!a||6.1w(a,[7]).r.G)7.V.39(7)},3n:l(){1Z(7.17)7.39(7.17)}},l(i,n){6.C[i]=l(){q 7.I(n,1x)}});6.I(["5m","5l","5e","5r"],l(i,n){6.C[n]=l(1R,C){q 7.1w(":"+n+"("+1R+")",C)}});6.I(["26","40"],l(i,n){6.C[n]=l(h){q h==Q?(7.G?6.1f(7[0],n):1c):7.1f(n,h.1g==3p?h:h+"49")}});6.1A({1n:{"":"m[2]==\'*\'||6.1u(a,m[2])","#":"a.3D(\'3Y\')==m[2]",":":{5l:"i<m[3]-0",5e:"i>m[3]-0",25:"m[3]-0==i",5m:"m[3]-0==i",2v:"i==0",2W:"i==r.G-1",5M:"i%2==0",5O:"i%2","25-3k":"6.25(a.V.17,m[3],\'2f\',a)==a","2v-3k":"6.25(a.V.17,1,\'2f\')==a","2W-3k":"6.25(a.V.7n,1,\'5o\')==a","7o-3k":"6.2F(a.V.17).G==1",5p:"a.17",3n:"!a.17",5r:"6.C.2L.14([a]).15(m[3])>=0",3a:\'a.v!="1C"&&6.1f(a,"1e")!="1Y"&&6.1f(a,"4g")!="1C"\',1C:\'a.v=="1C"||6.1f(a,"1e")=="1Y"||6.1f(a,"4g")=="1C"\',7q:"!a.2R",2R:"a.2R",2S:"a.2S",2Q:"a.2Q||6.1E(a,\'2Q\')",2L:"a.v==\'2L\'",4h:"a.v==\'4h\'",59:"a.v==\'59\'",42:"a.v==\'42\'",58:"a.v==\'58\'",4O:"a.v==\'4O\'",5v:"a.v==\'5v\'",5w:"a.v==\'5w\'",3h:\'a.v=="3h"||6.1u(a,"3h")\',5x:"/5x|3T|7s|3h/i.1s(a.1u)"},".":"6.16.2P(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"z&&!z.15(m[4])","$=":"z&&z.2Y(z.G - m[4].G,m[4].G)==m[4]","*=":"z&&z.15(m[4])>=0","":"z",4U:l(m){q["",m[1],m[3],m[2],m[5]]},5J:"z=a[m[3]]||6.1E(a,m[3]);"},"[":"6.2o(m[2],a).G"},5G:[/^\\[ *(@)([a-2l-3y-]*) *([!*$^=]*) *(\'?"?)(.*?)\\4 *\\]/i,/^(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]/,/^(:)([a-2l-3y-]*)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/i,/^([:.#]*)([a-2l-3y*-]*)/i],1O:[/^(\\/?\\.\\.)/,"a.V",/^(>|\\/)/,"6.2F(a.17)",/^(\\+)/,"6.25(a,2,\'2f\')",/^(~)/,l(a){u s=6.2F(a.V.17);q s.3J(0,6.3g(a,s))}],3v:l(1n,1Q,2c){u 1H,M=[];1Z(1n&&1n!=1H){1H=1n;u f=6.1w(1n,1Q,2c);1n=f.t.1U(/^\\s*,\\s*/,"");M=2c?1Q=f.r:6.2i(M,f.r)}q M},2o:l(t,1r){k(1v t!="22")q[t];k(1r&&!1r.1V)1r=1c;1r=1r||12;k(!t.15("//")){1r=1r.4y;t=t.2Y(2,t.G)}H k(!t.15("/")){1r=1r.4y;t=t.2Y(1,t.G);k(t.15("/")>=1)t=t.2Y(t.15("/"),t.G)}u J=[1r],29=[],2W=1c;1Z(t&&2W!=t){u r=[];2W=t;t=6.2Z(t).1U(/^\\/\\//i,"");u 3x=Y;u 1G=/^[\\/>]\\s*([a-2l-9*-]+)/i;u m=1G.2B(t);k(m){6.I(J,l(){O(u c=7.17;c;c=c.2f)k(c.1V==1&&(6.1u(c,m[1])||m[1]=="*"))r.1h(c)});J=r;t=t.1U(1G,"");k(t.15(" ")==0)5z;3x=T}H{O(u i=0;i<6.1O.G;i+=2){u 1G=6.1O[i];u m=1G.2B(t);k(m){r=J=6.2X(J,6.1k(6.1O[i+1])?6.1O[i+1]:l(a){q 3B(6.1O[i+1])});t=6.2Z(t.1U(1G,""));3x=T;4q}}}k(t&&!3x){k(!t.15(",")){k(J[0]==1r)J.4m();6.2i(29,J);r=J=[1r];t=" "+t.2Y(1,t.G)}H{u 34=/^([a-2l-3y-]+)(#)([a-2l-9\\\\*2O-]*)/i;u m=34.2B(t);k(m){m=[0,m[2],m[3],m[1]]}H{34=/^([#.]?)([a-2l-9\\\\*2O-]*)/i;m=34.2B(t)}k(m[1]=="#"&&J[J.G-1].4R){u 3z=J[J.G-1].4R(m[2]);J=r=3z&&(!m[3]||6.1u(3z,m[3]))?[3z]:[]}H{k(m[1]==".")u 4k=1p 4V("(^|\\\\s)"+m[2]+"(\\\\s|$)");6.I(J,l(){u 3C=m[1]!=""||m[0]==""?"*":m[2];k(6.1u(7,"7w")&&3C=="*")3C="2U";6.2i(r,m[1]!=""&&J.G!=1?6.4r(7,[],m[1],m[2],4k):7.5E(3C))});k(m[1]=="."&&J.G==1)r=6.2k(r,l(e){q 4k.1s(e.16)});k(m[1]=="#"&&J.G==1){u 5F=r;r=[];6.I(5F,l(){k(7.3D("3Y")==m[2]){r=[7];q Y}})}J=r}t=t.1U(34,"")}}k(t){u 18=6.1w(t,r);J=r=18.r;t=6.2Z(18.t)}}k(J&&J[0]==1r)J.4m();6.2i(29,J);q 29},1w:l(t,r,2c){1Z(t&&/^[a-z[({<*:.#]/i.1s(t)){u p=6.5G,m;6.I(p,l(i,1G){m=1G.2B(t);k(m){t=t.7y(m[0].G);k(6.1n[m[1]].4U)m=6.1n[m[1]].4U(m);q Y}});k(m[1]==":"&&m[2]=="2c")r=6.1w(m[3],r,T).r;H k(m[1]=="."){u 1G=1p 4V("(^|\\\\s)"+m[2]+"(\\\\s|$)");r=6.2k(r,l(e){q 1G.1s(e.16||"")},2c)}H{u f=6.1n[m[1]];k(1v f!="22")f=6.1n[m[1]][m[2]];3B("f = l(a,i){"+(6.1n[m[1]].5J||"")+"q "+f+"}");r=6.2k(r,f,2c)}}q{r:r,t:t}},4r:l(o,r,1O,W,1G){O(u s=o.17;s;s=s.2f)k(s.1V==1){u 1J=T;k(1O==".")1J=s.16&&1G.1s(s.16);H k(1O=="#")1J=s.3D("3Y")==W;k(1J)r.1h(s);k(1O=="#"&&r.G)4q;k(s.17)6.4r(s,r,1O,W,1G)}q r},4s:l(B){u 4N=[];u M=B.V;1Z(M&&M!=12){4N.1h(M);M=M.V}q 4N},25:l(M,1d,3F,B){1d=1d||1;u 1R=0;O(;M;M=M[3F]){k(M.1V==1)1R++;k(1R==1d||1d=="5M"&&1R%2==0&&1R>1&&M==B||1d=="5O"&&1R%2==1&&M==B)q M}},2F:l(n,B){u r=[];O(;n;n=n.2f){k(n.1V==1&&(!B||n!=B))r.1h(n)}q r}});6.E={1J:l(S,v,1j,D){k(6.U.1m&&S.4c!=Q)S=1t;k(D)1j.D=D;k(!1j.2n)1j.2n=7.2n++;k(!S.1I)S.1I={};u 32=S.1I[v];k(!32){32=S.1I[v]={};k(S["3I"+v])32[0]=S["3I"+v]}32[1j.2n]=1j;S["3I"+v]=7.5T;k(!7.1i[v])7.1i[v]=[];7.1i[v].1h(S)},2n:1,1i:{},2g:l(S,v,1j){k(S.1I)k(v&&v.v)4u S.1I[v.v][v.1j.2n];H k(v&&S.1I[v])k(1j)4u S.1I[v][1j.2n];H O(u i 1B S.1I[v])4u S.1I[v][i];H O(u j 1B S.1I)7.2g(S,j)},1M:l(v,D,S){D=6.3H(D||[]);k(!S)6.I(7.1i[v]||[],l(){6.E.1M(v,D,7)});H{u 1j=S["3I"+v],18,C=6.1k(S[v]);k(1j){D.5U(7.2m({v:v,1P:S}));k((18=1j.14(S,D))!==Y)7.4v=T}k(C&&18!==Y)S[v]();7.4v=Y}},5T:l(E){k(1v 6=="Q"||6.E.4v)q;E=6.E.2m(E||1t.E||{});u 3M;u c=7.1I[E.v];u 1y=[].3J.3s(1x,1);1y.5U(E);O(u j 1B c){1y[0].1j=c[j];1y[0].D=c[j].D;k(c[j].14(7,1y)===Y){E.2h();E.2z();3M=Y}}k(6.U.1m)E.1P=E.2h=E.2z=E.1j=E.D=1c;q 3M},2m:l(E){k(!E.1P&&E.5V)E.1P=E.5V;k(E.5W==Q&&E.5Y!=Q){u e=12.4y,b=12.7K;E.5W=E.5Y+(e.5Z||b.5Z);E.7M=E.7N+(e.61||b.61)}k(6.U.2C&&E.1P.1V==3){u 33=E;E=6.1A({},33);E.1P=33.1P.V;E.2h=l(){q 33.2h()};E.2z=l(){q 33.2z()}}k(!E.2h)E.2h=l(){7.3M=Y};k(!E.2z)E.2z=l(){7.7Q=T};q E}};6.C.1A({3R:l(v,D,C){q 7.I(l(){6.E.1J(7,v,C||D,D)})},6n:l(v,D,C){q 7.I(l(){6.E.1J(7,v,l(E){6(7).62(E);q(C||D).14(7,1x)},D)})},62:l(v,C){q 7.I(l(){6.E.2g(7,v,C)})},1M:l(v,D){q 7.I(l(){6.E.1M(v,D,7)})},3r:l(){u a=1x;q 7.69(l(e){7.4F=7.4F==0?1:0;e.2h();q a[7.4F].14(7,[e])||Y})},7T:l(f,g){l 4e(e){u p=(e.v=="3S"?e.7U:e.7Y)||e.7Z;1Z(p&&p!=7)2s{p=p.V}2y(e){p=7};k(p==7)q Y;q(e.v=="3S"?f:g).14(7,[e])}q 7.3S(4e).6b(4e)},28:l(f){k(6.3O)f.14(12,[6]);H{6.3b.1h(l(){q f.14(7,[6])})}q 7}});6.1A({3O:Y,3b:[],28:l(){k(!6.3O){6.3O=T;k(6.3b){6.I(6.3b,l(){7.14(12)});6.3b=1c}k(6.U.36||6.U.37)12.81("6g",6.28,Y)}}});1p l(){6.I(("82,83,2E,84,85,4Y,69,86,"
