- if (is_null($this->singular)) return false;
- // prepend context and EOT, like in MO files
- return is_null($this->context)? $this->singular : $this->context.chr(4).$this->singular;
+ if ( null === $this->singular || '' === $this->singular ) return false;
+
+ // Prepend context and EOT, like in MO files
+ $key = !$this->context? $this->singular : $this->context.chr(4).$this->singular;
+ // Standardize on \n line endings
+ $key = str_replace( array( "\r\n", "\r" ), "\n", $key );
+
+ return $key;
+ }
+
+ /**
+ * @param object $other
+ */
+ function merge_with(&$other) {
+ $this->flags = array_unique( array_merge( $this->flags, $other->flags ) );
+ $this->references = array_unique( array_merge( $this->references, $other->references ) );
+ if ( $this->extracted_comments != $other->extracted_comments ) {
+ $this->extracted_comments .= $other->extracted_comments;
+ }
+