Author: rfm
Date: Sat Aug 29 18:52:31 2015
New Revision: 38945

URL: http://svn.gna.org/viewcvs/gnustep?rev=38945&view=rev
Log:
improve diagnostic output for mime

Modified:
    libs/base/trunk/ChangeLog
    libs/base/trunk/Source/Additions/GSMime.m

Modified: libs/base/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/ChangeLog?rev=38945&r1=38944&r2=38945&view=diff
==============================================================================
--- libs/base/trunk/ChangeLog   (original)
+++ libs/base/trunk/ChangeLog   Sat Aug 29 18:52:31 2015
@@ -1,3 +1,7 @@
+2015-08-29  Richard Frith-Macdonald <[email protected]>
+
+       * Source/Additions/GSMime.m: Improve descriptions for debug.
+
 2015-08-24  Richard Frith-Macdonald <[email protected]>
 
        * Source/win32/GSFileHandle.m: include winsock2.h earlier for msys2

Modified: libs/base/trunk/Source/Additions/GSMime.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/Additions/GSMime.m?rev=38945&r1=38944&r2=38945&view=diff
==============================================================================
--- libs/base/trunk/Source/Additions/GSMime.m   (original)
+++ libs/base/trunk/Source/Additions/GSMime.m   Sat Aug 29 18:52:31 2015
@@ -1265,11 +1265,10 @@
 
 - (NSString*) description
 {
-  NSMutableString      *desc;
-
-  desc = [NSMutableString stringWithFormat: @"GSMimeParser <0x%"PRIxPTR"> -\n",
-    (NSUInteger)self];
-  [desc appendString: [document description]];
+  NSString     *desc;
+
+  desc = [NSMutableString stringWithFormat: @"%@ - %@",
+    [super description], document];
   return desc;
 }
 
@@ -3458,10 +3457,19 @@
 
 - (NSString*) description
 {
-  NSMutableString      *desc;
-
-  desc = [NSString stringWithFormat: @"%@ name: %@ value: %@ params: %@",
-    [super description], [self name], [self value], [self parameters]];
+  NSString     *desc;
+  NSDictionary  *p = [self parameters];
+
+  if ([p count] > 0)
+    {
+      desc = [NSString stringWithFormat: @"%@ %@: %@ params: %@",
+        [super description], [self name], [self value], p];
+    }
+  else
+    {
+      desc = [NSString stringWithFormat: @"%@ %@: %@",
+        [super description], [self name], [self value]];
+    }
   return desc;
 }
 
@@ -5528,37 +5536,77 @@
     }
 }
 
-- (NSString*) description
-{
-  NSMutableString      *desc;
-  NSDictionary         *locale;
-
-  desc = [NSMutableString
-    stringWithFormat: @"GSMimeDocument <0x%"PRIxPTR"> -\n",
-    (NSUInteger)self];
-  locale = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
-  [desc appendString: [headers descriptionWithLocale: locale]];
+- (void) _descriptionTo: (NSMutableString*)m level: (NSUInteger)level
+{
+  NSUInteger            count;
+  NSUInteger            index;
+  NSUInteger            pad;
+
+  for (pad = 0; pad < level; pad++) { [m appendString: @"  "]; }
+  [m appendString: [super description]];
+  [m appendString: @"\n"];
+  level++;
+  if ((count = [headers count]) > 0)
+    {
+      for (pad = 0; pad < level; pad++) { [m appendString: @"  "]; }
+      [m appendString: @"Headers:\n"];
+      for (index = 0; index < count; index++)
+        {
+          for (pad = 0; pad <= level; pad++) { [m appendString: @"  "]; }
+          [m appendString: [[headers objectAtIndex: index] description]];
+          [m appendString: @"\n"];
+        }
+    }
+  for (pad = 0; pad < level; pad++) { [m appendString: @"  "]; }
+  [m appendString: @"Content:\n"];
   if ([content isKindOfClass: NSDataClass])
     {
       NSString  *t = [self convertToText];
+      NSData    *d = [[self class] encodeBase64: content];
 
       if (nil != t)
         {
-          [desc appendFormat:
-            @"\nDocument content %lu chars:\n%@\n%lu bytes: %@",
-            [t length], t, [content length], content];
+          for (pad = 0; pad <= level; pad++) { [m appendString: @"  "]; }
+          [m appendFormat: @"%lu chars: ", (unsigned long)[t length]];
+          [m appendString: t];
+          [m appendString: @"\n"];
         }
-      else
+      for (pad = 0; pad <= level; pad++) { [m appendString: @"  "]; }
+      [m appendFormat: @"%lu bytes: ", (unsigned long)[content length]];
+      t = [[NSString alloc] initWithData: d encoding: NSASCIIStringEncoding];
+      [m appendString: t];
+      [m appendString: @"\n"];
+      RELEASE(t);
+    }
+  else if ([content isKindOfClass: NSStringClass])
+    {
+      for (pad = 0; pad <= level; pad++) { [m appendString: @"  "]; }
+      [m appendFormat: @"%lu chars: ", (unsigned long)[content length]];
+      [m appendString: content];
+      [m appendString: @"\n"];
+    }
+  else
+    {
+      count = [content count];
+      for (index = 0; index < count; index++)
         {
-          [desc appendFormat: @"\nDocument content %lu bytes: %@",
-            [content length], content];
+          [[content objectAtIndex: index] _descriptionTo: m
+                                                   level: level+1];
         }
     }
-  else
-    {
-      [desc appendFormat: @"\nDocument content -\n%@", content];
-    }
-  return desc;
+}
+
+- (NSString*) description
+{
+  CREATE_AUTORELEASE_POOL(arp);
+  NSMutableString       *m;
+  NSString              *s;
+
+  m = [NSMutableString stringWithCapacity: 1000];
+  [self _descriptionTo: m level: 0];
+  s = RETAIN(m);
+  RELEASE(arp);
+  return AUTORELEASE(s);  
 }
 
 - (NSUInteger) hash


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to