From cbdacec636ce6ea460db527aa9f666e2685c880d Mon Sep 17 00:00:00 2001
From: Liam Morland <lkmorlan@493050.no-reply.drupal.org>
Date: Sun, 5 Feb 2012 11:24:57 -0800
Subject: [PATCH] Issue #1393022: Always use PDF key as-is.

---
 xfdf.inc | 45 +++------------------------------------------
 1 file changed, 3 insertions(+), 42 deletions(-)

diff --git a/xfdf.inc b/xfdf.inc
index 32ac2d9..f253167 100644
--- a/xfdf.inc
+++ b/xfdf.inc
@@ -20,51 +20,12 @@ function create_xfdf($file, $info, $enc = 'UTF-8') {
   $data = '<?xml version="1.0" encoding="' . $enc . '"?>' . "\n" .
     '<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">' . "\n" .
     '<fields>' . "\n";
-  $data .= print_fields($info);
+  foreach ($info as $name => $value) {
+    $data .= '<field name="' . htmlspecialchars($name) . '"><value>' . htmlspecialchars($value) . '</value></field>' . "\n";
+  }
   $data .= '</fields>' . "\n" .
     '<ids original="' . md5($file) . '" modified="' . REQUEST_TIME . '" />' . "\n" .
     '<f href="' . $file . '" />' . "\n" .
     '</xfdf>' . "\n";
   return $data;
 }
-
-function escape_string($str) {
-  if ($str == NULL) {
-    return $str;
-  }
-  $str = str_replace(array('\\', '\''), array('\\\\', '\\\''), $str);
-  return $str;
-}
-
-function print_fields($info) {
-  $fields = array();
-  $str = '';
-  foreach ($info as $field => $val) {
-    $arr = explode('.', $field);
-    $str .= '$fields';
-    foreach ($arr as $node) {
-      $str .= "['" . escape_string($node) . "']";
-    }
-    $str .= "='" . escape_string($val) . "';";
-  }
-  eval($str);
-
-  $str = '';
-  foreach ($fields as $field => $val) {
-    print_fields_recurse($field, $val, $str);
-  }
-  return $str;
-}
-
-function print_fields_recurse($field, $val, &$str) {
-  $str .= '<field name="' . $field . '">' . "\n";
-  if (is_array($val)) {
-    foreach ($val as $field => $val) {
-      print_fields_recurse($field, $val, $str);
-    }
-  }
-  else {
-    $str .= '<value>' . $val . '</value>' . "\n";
-  }
-  $str .= '</field>' . "\n";
-}
-- 
GitLab