web/wp-includes/pomo/po.php
changeset 204 09a1c134465b
parent 194 32102edaa81b
--- a/web/wp-includes/pomo/po.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/pomo/po.php	Wed Dec 19 17:46:52 2012 -0800
@@ -2,7 +2,7 @@
 /**
  * Class for working with PO files
  *
- * @version $Id: po.php 589 2010-12-18 01:40:57Z nbachiyski $
+ * @version $Id: po.php 718 2012-10-31 00:32:02Z nbachiyski $
  * @package pomo
  * @subpackage po
  */
@@ -18,7 +18,7 @@
  */
 if ( !class_exists( 'PO' ) ):
 class PO extends Gettext_Translations {
-	
+
 	var $comments_before_headers = '';
 
 	/**
@@ -80,10 +80,10 @@
 		if (false === $res) return false;
 		return fclose($fh);
 	}
-	
+
 	/**
 	 * Text to include as a comment before the start of the PO contents
-	 * 
+	 *
 	 * Doesn't need to include # in the beginning of lines, these are added automatically
 	 */
 	function set_comment_before_headers( $text ) {
@@ -120,10 +120,10 @@
 		$po = str_replace("$newline$quote$quote", '', $po);
 		return $po;
 	}
-	
+
 	/**
 	 * Gives back the original string from a PO-formatted string
-	 * 
+	 *
 	 * @static
 	 * @param string $string PO-formatted string
 	 * @return string enascaped string
@@ -153,7 +153,7 @@
 	}
 
 	/**
-	 * Inserts $with in the beginning of every new line of $string and 
+	 * Inserts $with in the beginning of every new line of $string and
 	 * returns the modified string
 	 *
 	 * @static
@@ -229,9 +229,15 @@
 			}
 		}
 		PO::read_line($f, 'clear');
-		return $res !== false;
+		if ( false === $res ) {
+			return false;
+		}
+		if ( ! $this->headers && ! $this->entries ) {
+			return false;
+		}
+		return true;
 	}
-	
+
 	function read_entry($f, $lineno = 0) {
 		$entry = new Translation_Entry();
 		// where were we in the last step
@@ -336,7 +342,7 @@
 		}
 		return array('entry' => $entry, 'lineno' => $lineno);
 	}
-	
+
 	function read_line($f, $action = 'read') {
 		static $last_line = '';
 		static $use_last_line = false;
@@ -349,11 +355,12 @@
 			return true;
 		}
 		$line = $use_last_line? $last_line : fgets($f);
+		$line = ( "\r\n" == substr( $line, -2 ) ) ? rtrim( $line, "\r\n" ) . "\n" : $line;
 		$last_line = $line;
 		$use_last_line = false;
 		return $line;
 	}
-	
+
 	function add_comment_to_entry(&$entry, $po_comment_line) {
 		$first_two = substr($po_comment_line, 0, 2);
 		$comment = trim(substr($po_comment_line, 2));
@@ -367,11 +374,11 @@
 			$entry->translator_comments = trim($entry->translator_comments . "\n" . $comment);
 		}
 	}
-	
+
 	function trim_quotes($s) {
 		if ( substr($s, 0, 1) == '"') $s = substr($s, 1);
 		if ( substr($s, -1, 1) == '"') $s = substr($s, 0, -1);
 		return $s;
 	}
 }
-endif;
\ No newline at end of file
+endif;