Changeset 899

Show
Ignore:
Timestamp:
02/23/07 15:47:59 (2 years ago)
Author:
donncha
Message:

WP Merge to 4929

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/app.php

    r885 r899  
    55 * Modified by: Dougal Campbell, http://dougal.gunters.org/ 
    66 * 
    7  * Version: 1.0.0-dc 
     7 * Version: 1.0.5-dc 
    88 */ 
    9          
     9 
    1010define('APP_REQUEST', true); 
    1111 
    1212require_once('wp-config.php'); 
     13require_once('wp-includes/post-template.php'); 
    1314 
    1415$use_querystring = 1; 
     
    1617// If using querystring, we need to put the path together manually: 
    1718if ($use_querystring) { 
    18         $_GLOBALS['use_querystring'] = $use_querystring; 
     19        $GLOBALS['use_querystring'] = $use_querystring; 
    1920        $action = $_GET['action']; 
    2021        $eid = (int) $_GET['eid']; 
     
    2930} 
    3031 
    31 $app_logging = 1
     32$app_logging = 0
    3233 
    3334function log_app($label,$msg) { 
     
    258259 
    259260        var $ATOM_CONTENT_TYPE = 'application/atom+xml'; 
    260  
     261        var $CATEGORIES_CONTENT_TYPE = 'application/atomcat+xml'; 
    261262        var $INTROSPECTION_CONTENT_TYPE = 'application/atomserv+xml'; 
    262263 
    263264        var $ENTRIES_PATH = "posts"; 
     265        var $CATEGORIES_PATH = "categories"; 
    264266        var $MEDIA_PATH = "attachments"; 
    265267        var $ENTRY_PATH = "post"; 
     
    283285                        '@/service@' =>  
    284286                                array('GET' => 'get_service'), 
     287                        '@/categories@' => 
     288                                array('GET' => 'get_categories_xml'), 
    285289                        '@/post/(\d+)@' =>  
    286290                                array('GET' => 'get_post',  
     
    349353                log_app('function','get_service()'); 
    350354                $entries_url = $this->get_entries_url(); 
     355                $categories_url = $this->get_categories_url();  
    351356                $media_url = $this->get_attachments_url(); 
    352357                $accepted_content_types = join(',',$this->media_content_types); 
    353358                $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>  
    365371</service> 
    366372 
    367373EOD; 
     374 
    368375                $this->output($introspection, $this->INTROSPECTION_CONTENT_TYPE);  
    369376        } 
     377 
     378function 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> 
     393EOD; 
     394        $this->output($output, $this->CATEGORIES_CONTENT_TYPE);  
     395} 
    370396 
    371397        /* 
     
    373399         */ 
    374400        function create_post() { 
    375  
     401                global $current_blog; 
    376402                $this->get_accepted_content_type($this->atom_content_types); 
    377403 
     
    390416                        $this->auth_required('Sorry, you do not have the right to edit/publish new posts.'); 
    391417 
    392                 $blog_ID = 1
     418                $blog_ID = $current_blog->blog_id
    393419                $post_status = ($publish) ? 'publish' : 'draft'; 
    394420                $post_author = $user->ID; 
     
    401427                $post_data = compact('blog_ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt'); 
    402428 
     429                log_app('Inserting Post. Data:', print_r($post_data,true)); 
     430 
    403431                $postID = wp_insert_post($post_data); 
    404432 
     
    438466                // check for not found 
    439467                global $entry; 
     468                $entry = $GLOBALS['entry']; 
    440469                $this->set_current_entry($postID); 
    441                 $this->escape($entry); 
     470                $this->escape($GLOBALS['entry']); 
    442471 
    443472                if(!current_user_can('edit_post', $entry['ID'])) 
     
    508537 
    509538        function create_attachment() { 
     539                global $wp, $wpdb, $wp_query, $blog_id; 
    510540 
    511541                $type = $this->get_accepted_content_type(); 
     
    532562                $file = wp_upload_bits( $slug, NULL, $bits); 
    533563 
     564                log_app('wp_upload_bits returns:',print_r($file,true)); 
     565                 
    534566                $url = $file['url']; 
    535567                $file = $file['file']; 
     
    696728                        $url .= '?action=/' . $this->ENTRIES_PATH; 
    697729                        if(isset($page) && is_int($page)) { 
    698                                 $url .= "&eid=$page"; 
     730                                $url .= "&amp;eid=$page"; 
    699731                        } 
    700732                } else { 
     
    712744        } 
    713745 
     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         
    714762        function get_attachments_url($page = NULL) { 
    715763                global $use_querystring; 
     
    718766                        $url .= '?action=/' . $this->MEDIA_PATH; 
    719767                        if(isset($page) && is_int($page)) { 
    720                                 $url .= "&eid=$page"; 
     768                                $url .= "&amp;eid=$page"; 
    721769                        } 
    722770                } else { 
     
    739787                if(!isset($postID)) { 
    740788                        global $post; 
    741                         $postID = $post->ID; 
     789                        $postID = $GLOBALS['post']->ID; 
    742790                } 
    743791                 
    744792                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 . "&amp;eid=$postID"; 
    746794                } else { 
    747795                        $url = get_bloginfo('url') . '/' . $this->script_name . '/' . $this->ENTRY_PATH . "/$postID"; 
     
    761809                if(!isset($postID)) { 
    762810                        global $post; 
    763                         $postID = $post->ID; 
     811                        $postID = $GLOBALS['post']->ID; 
    764812                } 
    765813                 
    766814                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 ."&amp;eid=$postID"; 
    768816                } else { 
    769817                        $url = get_bloginfo('url') . '/' . $this->script_name . '/' . $this->MEDIA_SINGLE_PATH ."/$postID"; 
     
    816864 
    817865        function get_feed($page = 1, $post_type = 'post') { 
     866                global $post, $wp, $wp_query, $posts, $wpdb, $blog_id, $post_cache; 
    818867                log_app('function',"get_feed($page, '$post_type')"); 
    819868                ob_start(); 
     
    830879                } 
    831880                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                 
    833889 
    834890                $total_count = $this->get_posts_count(); 
     
    852908<link rel="self" type="application/atom+xml" href="<?php $this->the_entries_url() ?>" /> 
    853909<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?> 
    856914<entry> 
    857                 <id><?php the_guid(); ?></id> 
     915                <id><?php the_guid($post->ID); ?></id> 
    858916                <title type="html"><![CDATA[<?php the_title() ?>]]></title> 
    859917                <updated><?php echo get_post_modified_time('Y-m-d\TH:i:s\Z', true); ?></updated> 
    860918                <published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published> 
    861919                <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> 
    863921                </app:control> 
    864922                <author> 
     
    869927        <?php } ?> 
    870928                </author> 
    871         <?php if($post->post_status == 'attachment') { ?> 
     929        <?php if($GLOBALS['post']->post_status == 'attachment') { ?> 
    872930                <link rel="edit" href="<?php $this->the_entry_url() ?>" /> 
    873931                <link rel="edit-media" href="<?php $this->the_media_url() ?>" /> 
     
    879937         <category scheme="<?php bloginfo_rss('home') ?>" term="<?php echo $category->cat_name?>" /> 
    880938        <?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> 
    883941<?php endif; ?> 
    884942        </entry> 
     
    896954                log_app('function',"get_entry($postID, '$post_type')"); 
    897955                ob_start(); 
    898                 global $posts, $post, $wp_query
     956                global $posts, $post, $wp_query, $wp, $wpdb, $blog_id, $post_cache
    899957                switch($post_type) { 
    900958                        case 'post': 
     
    906964                } 
    907965                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)); ?> 
    909970<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> 
    911972        <title type="html"><![CDATA[<?php the_title_rss() ?>]]></title> 
    912973 
     
    914975        <published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published> 
    915976        <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> 
    917978        </app:control> 
    918979        <author> 
     
    921982                <uri><?php the_author_url()?></uri> 
    922983        </author> 
    923 <?php if($post->post_type == 'attachment') { ?> 
     984<?php if($GLOBALS['post']->post_type == 'attachment') { ?> 
    924985        <link rel="edit" href="<?php $this->the_entry_url() ?>" /> 
    925986        <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(); ?>"/> 
    927988<?php } else { ?> 
    928989        <link href="<?php permalink_single_rss() ?>" /> 
     
    933994        <summary type="html"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary> 
    934995<?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> 
    937998<?php endif; ?> 
    938999</entry> 
     
    10261087                        case 'attachment': 
    10271088                                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&amp;eid=$post_ID"; 
    10291090                                } else { 
    10301091                                        $edit = get_bloginfo('url') . '/' . $this->script_name . "/attachments/$post_ID"; 
     
    10551116        function output($xml, $ctype = "application/atom+xml") { 
    10561117                        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; 
    10581119                        header('Connection: close'); 
    10591120                        header('Content-Length: '. strlen($xml)); 
  • trunk/wp-admin/index.php

    r868 r899  
    1616add_action( 'admin_head', 'index_js' ); 
    1717wp_enqueue_script('prototype'); 
     18wp_enqueue_script('interface'); 
    1819 
    1920$title = __('Dashboard');  
  • trunk/wp-admin/page-new.php

    r789 r899  
    55$editing = true; 
    66wp_enqueue_script('prototype'); 
     7wp_enqueue_script('interface'); 
    78wp_enqueue_script('autosave'); 
    89require_once('admin-header.php'); 
  • trunk/wp-admin/page.php

    r854 r899  
    5454        if($post->post_status == 'draft') { 
    5555                wp_enqueue_script('prototype'); 
     56                wp_enqueue_script('interface'); 
    5657                wp_enqueue_script('autosave'); 
    5758        } 
  • trunk/wp-admin/post-new.php

    r804 r899  
    55$editing = true; 
    66wp_enqueue_script('prototype'); 
     7wp_enqueue_script('interface'); 
    78wp_enqueue_script('autosave'); 
    89require_once ('./admin-header.php'); 
  • trunk/wp-atom.php

    r868 r899  
    66} 
    77 
    8 header('Content-type: application/atom+xml; charset=' . get_option('blog_charset'), true); 
    9 $more = 1; 
     8require (ABSPATH . WPINC . '/feed-atom.php'); 
    109 
    1110?> 
    12 <?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?> 
    13 <feed 
    14   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  
    66} 
    77 
    8 header('Content-type: text/xml;charset=' . get_option('blog_charset'), true); 
     8require (ABSPATH . WPINC . '/feed-rss2-comments.php'); 
    99 
    10 echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';  
    1110?> 
    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 <?php 
    17 $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 <?php  
    30                 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->comments  
    34                         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->comments  
    42                         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 metadata 
    51                                 // 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                         <?php 
    68                         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                         <?php 
    73                         } else { 
    74                         ?> 
    75                 <description><?php comment_text_rss() ?></description> 
    76                 <content:encoded><![CDATA[<?php comment_text() ?>]]></content:encoded> 
    77                         <?php 
    78                         } // close check for password 
    79                         do_action('commentrss2_item', $comment->comment_ID, $comment->comment_post_ID); 
    80                         ?> 
    81         </item> 
    82 <?php 
    83                         } 
    84                 } 
    85         } 
    86 endwhile; endif; 
    87 ?> 
    88 </channel> 
    89 </rss> 
  • trunk/wp-content/themes/classic/comments-popup.php

    r889 r899  
    2222<h2 id="comments"><?php _e("Comments"); ?></h2> 
    2323 
    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> 
    2525 
    2626<?php if ('open' == $post->ping_status) { ?> 
  • trunk/wp-content/themes/default/comments-popup.php

    r889 r899  
    2222<h2 id="comments">Comments</h2> 
    2323 
    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> 
    2525 
    2626<?php if ('open' == $post->ping_status) { ?> 
  • trunk/wp-content/themes/default/comments.php

    r894 r899  
    1515 
    1616        /* This variable is for alternating comment background */ 
    17         $oddcomment = 'alt'; 
     17        $oddcomment = 'class="alt" '; 
    1818?> 
    1919 
     
    2727        <?php foreach ($comments as $comment) : ?> 
    2828 
    29                 <li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>"> 
     29                <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>"> 
    3030                        <cite><?php comment_author_link() ?></cite> Says: 
    3131                        <?php if ($comment->comment_approved == '0') : ?> 
     
    4040                </li> 
    4141 
    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" ' : ''; 
    4545        ?> 
    4646 
  • trunk/wp-includes/feed.php

    r888 r899  
    9090 
    9191 
    92 function comments_rss_link($link_text = 'Comments RSS', $commentsrssfilename = '') { 
    93         $url = comments_rss($commentsrssfilename)
     92function comments_rss_link($link_text = 'Comments RSS', $commentsrssfilename = 'nolongerused') { 
     93        $url = get_post_comments_feed_link();
    9494        echo "<a href='$url'>$link_text</a>"; 
    9595} 
    9696 
    9797 
    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&amp;p=$id"; 
    105  
    106         return apply_filters('post_comments_feed_link', $url); 
     98function comments_rss($commentsrssfilename = 'nolongerused') { 
     99        return get_post_comments_feed_link(); 
    107100} 
    108101 
  • trunk/wp-includes/functions.php

    r896 r899  
    319319        // If the new and old values are the same, no need to update. 
    320320        $oldvalue = get_option($option_name); 
    321         if ( $newvalue == $oldvalue ) { 
     321        if ( $newvalue === $oldvalue ) { 
    322322                return false; 
    323323        } 
     
    962962        $feed = preg_replace('/^_+/', '', $feed); 
    963963 
    964         if ($feed == '' || $feed == 'feed'
     964        if ( $feed == '' || $feed == 'feed'
    965965        $feed = 'rss2'; 
    966  
     966         
    967967        $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; 
    972979 
    973980        $hook = 'do_feed_' . $feed; 
     
    976983 
    977984function do_feed_rdf() { 
    978         load_template(ABSPATH . 'wp-rdf.php'); 
     985        load_template(ABSPATH . WPINC . '/feed-rdf.php'); 
    979986} 
    980987 
    981988function do_feed_rss() { 
    982         load_template(ABSPATH . 'wp-rss.php'); 
     989        load_template(ABSPATH . WPINC . '/feed-rss.php'); 
    983990} 
    984991 
    985992function do_feed_rss2($for_comments) { 
    986993        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 
     1000function 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        } 
    9951006} 
    9961007 
  • trunk/wp-includes/general-template.php

    r854 r899  
    100100                        $output = get_feed_link('atom'); 
    101101                        break; 
     102                case 'comments_atom_url': 
     103                        $output = get_feed_link('comments_atom'); 
    102104                case 'comments_rss2_url': 
    103105                        $output = get_feed_link('comments_rss2'); 
     
    489491                        LIMIT 1"); 
    490492 
    491         echo '<table id="wp-calendar"
     493        echo '<table id="wp-calendar" summary="' . __('Calendar') . '"
    492494        <caption>' . $wp_locale->get_month($thismonth) . ' ' . date('Y', $unixmonth) . '</caption> 
    493495        <thead> 
  • trunk/wp-includes/gettext.php

    r849 r899  
    109109    // $MAGIC2 = (int)0xde120495; //bug 
    110110    $MAGIC2 = (int) - 569244523; 
     111    // 64-bit fix 
     112    $MAGIC3 = (int) 2500072158; 
    111113 
    112114    $this->STREAM = $Reader; 
    113115    $magic = $this->readint(); 
    114     if ($magic == ($MAGIC1 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms 
     116    if ($magic == ($MAGIC1 & 0xFFFFFFFF) || $magic == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms 
    115117      $this->BYTEORDER = 0; 
    116118    } 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,"