[Lldb-commits] [lldb] r280751 - *** This commit represents a complete reformatting of the LLDB source code

Kate Stone via lldb-commits lldb-commits at lists.llvm.org
Tue Sep 6 13:58:36 PDT 2016


Modified: lldb/trunk/source/Utility/ARM_DWARF_Registers.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ARM_DWARF_Registers.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/ARM_DWARF_Registers.cpp (original)
+++ lldb/trunk/source/Utility/ARM_DWARF_Registers.cpp Tue Sep  6 15:57:50 2016
@@ -15,421 +15,911 @@
 using namespace lldb;
 using namespace lldb_private;
 
-const char *
-GetARMDWARFRegisterName (unsigned reg_num)
-{
-    switch (reg_num)
-    {
-        case dwarf_r0:  return "r0";
-        case dwarf_r1:  return "r1";
-        case dwarf_r2:  return "r2";
-        case dwarf_r3:  return "r3";
-        case dwarf_r4:  return "r4";
-        case dwarf_r5:  return "r5";
-        case dwarf_r6:  return "r6";
-        case dwarf_r7:  return "r7";
-        case dwarf_r8:  return "r8";
-        case dwarf_r9:  return "r9";        
-        case dwarf_r10: return "r10";
-        case dwarf_r11: return "r11";
-        case dwarf_r12: return "r12";
-        case dwarf_sp:  return "sp";
-        case dwarf_lr:  return "lr";
-        case dwarf_pc:  return "pc";
-        case dwarf_cpsr:return "cpsr";
-            
-        case dwarf_s0:  return "s0";
-        case dwarf_s1:  return "s1";
-        case dwarf_s2:  return "s2";
-        case dwarf_s3:  return "s3";
-        case dwarf_s4:  return "s4";
-        case dwarf_s5:  return "s5";
-        case dwarf_s6:  return "s6";
-        case dwarf_s7:  return "s7";
-        case dwarf_s8:  return "s8";
-        case dwarf_s9:  return "s9";
-        case dwarf_s10: return "s10";
-        case dwarf_s11: return "s11";
-        case dwarf_s12: return "s12";
-        case dwarf_s13: return "s13";
-        case dwarf_s14: return "s14";
-        case dwarf_s15: return "s15";
-        case dwarf_s16: return "s16";
-        case dwarf_s17: return "s17";
-        case dwarf_s18: return "s18";
-        case dwarf_s19: return "s19";
-        case dwarf_s20: return "s20";
-        case dwarf_s21: return "s21";
-        case dwarf_s22: return "s22";
-        case dwarf_s23: return "s23";
-        case dwarf_s24: return "s24";
-        case dwarf_s25: return "s25";
-        case dwarf_s26: return "s26";
-        case dwarf_s27: return "s27";
-        case dwarf_s28: return "s28";
-        case dwarf_s29: return "s29";
-        case dwarf_s30: return "s30";
-        case dwarf_s31: return "s31";
-            
-        // FPA Registers 0-7
-        case dwarf_f0:  return "f0";
-        case dwarf_f1:  return "f1";
-        case dwarf_f2:  return "f2";
-        case dwarf_f3:  return "f3";
-        case dwarf_f4:  return "f4";
-        case dwarf_f5:  return "f5";
-        case dwarf_f6:  return "f6";
-        case dwarf_f7:  return "f7";
-            
-        // Intel wireless MMX general purpose registers 0 - 7
-        // XScale accumulator register 0 - 7 (they do overlap with wCGR0 - wCGR7)
-        case dwarf_wCGR0: return "wCGR0/ACC0";   
-        case dwarf_wCGR1: return "wCGR1/ACC1";
-        case dwarf_wCGR2: return "wCGR2/ACC2";
-        case dwarf_wCGR3: return "wCGR3/ACC3";
-        case dwarf_wCGR4: return "wCGR4/ACC4";
-        case dwarf_wCGR5: return "wCGR5/ACC5";
-        case dwarf_wCGR6: return "wCGR6/ACC6";
-        case dwarf_wCGR7: return "wCGR7/ACC7";
-            
-        // Intel wireless MMX data registers 0 - 15
-        case dwarf_wR0:   return "wR0";
-        case dwarf_wR1:   return "wR1";
-        case dwarf_wR2:   return "wR2";
-        case dwarf_wR3:   return "wR3";
-        case dwarf_wR4:   return "wR4";
-        case dwarf_wR5:   return "wR5";
-        case dwarf_wR6:   return "wR6";
-        case dwarf_wR7:   return "wR7";
-        case dwarf_wR8:   return "wR8";
-        case dwarf_wR9:   return "wR9";
-        case dwarf_wR10:  return "wR10";
-        case dwarf_wR11:  return "wR11";
-        case dwarf_wR12:  return "wR12";
-        case dwarf_wR13:  return "wR13";
-        case dwarf_wR14:  return "wR14";
-        case dwarf_wR15:  return "wR15";
-            
-        case dwarf_spsr:        return "spsr";
-        case dwarf_spsr_fiq:    return "spsr_fiq";
-        case dwarf_spsr_irq:    return "spsr_irq";
-        case dwarf_spsr_abt:    return "spsr_abt";
-        case dwarf_spsr_und:    return "spsr_und";
-        case dwarf_spsr_svc:    return "spsr_svc";
-            
-        case dwarf_r8_usr:      return "r8_usr";
-        case dwarf_r9_usr:      return "r9_usr";
-        case dwarf_r10_usr:     return "r10_usr";
-        case dwarf_r11_usr:     return "r11_usr";
-        case dwarf_r12_usr:     return "r12_usr";
-        case dwarf_r13_usr:     return "r13_usr";
-        case dwarf_r14_usr:     return "r14_usr";
-        case dwarf_r8_fiq:      return "r8_fiq";
-        case dwarf_r9_fiq:      return "r9_fiq";
-        case dwarf_r10_fiq:     return "r10_fiq";
-        case dwarf_r11_fiq:     return "r11_fiq";
-        case dwarf_r12_fiq:     return "r12_fiq";
-        case dwarf_r13_fiq:     return "r13_fiq";
-        case dwarf_r14_fiq:     return "r14_fiq";
-        case dwarf_r13_irq:     return "r13_irq";
-        case dwarf_r14_irq:     return "r14_irq";
-        case dwarf_r13_abt:     return "r13_abt";
-        case dwarf_r14_abt:     return "r14_abt";
-        case dwarf_r13_und:     return "r13_und";
-        case dwarf_r14_und:     return "r14_und";
-        case dwarf_r13_svc:     return "r13_svc";
-        case dwarf_r14_svc:     return "r14_svc";
-            
-        // Intel wireless MMX control register in co-processor 0 - 7
-        case dwarf_wC0:         return "wC0";
-        case dwarf_wC1:         return "wC1";
-        case dwarf_wC2:         return "wC2";
-        case dwarf_wC3:         return "wC3";
-        case dwarf_wC4:         return "wC4";
-        case dwarf_wC5:         return "wC5";
-        case dwarf_wC6:         return "wC6";
-        case dwarf_wC7:         return "wC7";
-            
-        // VFP-v3/Neon
-        case dwarf_d0:          return "d0";
-        case dwarf_d1:          return "d1";
-        case dwarf_d2:          return "d2";
-        case dwarf_d3:          return "d3";
-        case dwarf_d4:          return "d4";
-        case dwarf_d5:          return "d5";
-        case dwarf_d6:          return "d6";
-        case dwarf_d7:          return "d7";
-        case dwarf_d8:          return "d8";
-        case dwarf_d9:          return "d9";
-        case dwarf_d10:         return "d10";
-        case dwarf_d11:         return "d11";
-        case dwarf_d12:         return "d12";
-        case dwarf_d13:         return "d13";
-        case dwarf_d14:         return "d14";
-        case dwarf_d15:         return "d15";
-        case dwarf_d16:         return "d16";
-        case dwarf_d17:         return "d17";
-        case dwarf_d18:         return "d18";
-        case dwarf_d19:         return "d19";
-        case dwarf_d20:         return "d20";
-        case dwarf_d21:         return "d21";
-        case dwarf_d22:         return "d22";
-        case dwarf_d23:         return "d23";
-        case dwarf_d24:         return "d24";
-        case dwarf_d25:         return "d25";
-        case dwarf_d26:         return "d26";
-        case dwarf_d27:         return "d27";
-        case dwarf_d28:         return "d28";
-        case dwarf_d29:         return "d29";
-        case dwarf_d30:         return "d30";
-        case dwarf_d31:         return "d31";
-
-        // NEON 128-bit vector registers (overlays the d registers)
-        case dwarf_q0:          return "q0"; 
-        case dwarf_q1:          return "q1"; 
-        case dwarf_q2:          return "q2"; 
-        case dwarf_q3:          return "q3"; 
-        case dwarf_q4:          return "q4"; 
-        case dwarf_q5:          return "q5"; 
-        case dwarf_q6:          return "q6"; 
-        case dwarf_q7:          return "q7"; 
-        case dwarf_q8:          return "q8"; 
-        case dwarf_q9:          return "q9"; 
-        case dwarf_q10:         return "q10";
-        case dwarf_q11:         return "q11";
-        case dwarf_q12:         return "q12";
-        case dwarf_q13:         return "q13";
-        case dwarf_q14:         return "q14";
-        case dwarf_q15:         return "q15";
-    }
-    return nullptr;
+const char *GetARMDWARFRegisterName(unsigned reg_num) {
+  switch (reg_num) {
+  case dwarf_r0:
+    return "r0";
+  case dwarf_r1:
+    return "r1";
+  case dwarf_r2:
+    return "r2";
+  case dwarf_r3:
+    return "r3";
+  case dwarf_r4:
+    return "r4";
+  case dwarf_r5:
+    return "r5";
+  case dwarf_r6:
+    return "r6";
+  case dwarf_r7:
+    return "r7";
+  case dwarf_r8:
+    return "r8";
+  case dwarf_r9:
+    return "r9";
+  case dwarf_r10:
+    return "r10";
+  case dwarf_r11:
+    return "r11";
+  case dwarf_r12:
+    return "r12";
+  case dwarf_sp:
+    return "sp";
+  case dwarf_lr:
+    return "lr";
+  case dwarf_pc:
+    return "pc";
+  case dwarf_cpsr:
+    return "cpsr";
+
+  case dwarf_s0:
+    return "s0";
+  case dwarf_s1:
+    return "s1";
+  case dwarf_s2:
+    return "s2";
+  case dwarf_s3:
+    return "s3";
+  case dwarf_s4:
+    return "s4";
+  case dwarf_s5:
+    return "s5";
+  case dwarf_s6:
+    return "s6";
+  case dwarf_s7:
+    return "s7";
+  case dwarf_s8:
+    return "s8";
+  case dwarf_s9:
+    return "s9";
+  case dwarf_s10:
+    return "s10";
+  case dwarf_s11:
+    return "s11";
+  case dwarf_s12:
+    return "s12";
+  case dwarf_s13:
+    return "s13";
+  case dwarf_s14:
+    return "s14";
+  case dwarf_s15:
+    return "s15";
+  case dwarf_s16:
+    return "s16";
+  case dwarf_s17:
+    return "s17";
+  case dwarf_s18:
+    return "s18";
+  case dwarf_s19:
+    return "s19";
+  case dwarf_s20:
+    return "s20";
+  case dwarf_s21:
+    return "s21";
+  case dwarf_s22:
+    return "s22";
+  case dwarf_s23:
+    return "s23";
+  case dwarf_s24:
+    return "s24";
+  case dwarf_s25:
+    return "s25";
+  case dwarf_s26:
+    return "s26";
+  case dwarf_s27:
+    return "s27";
+  case dwarf_s28:
+    return "s28";
+  case dwarf_s29:
+    return "s29";
+  case dwarf_s30:
+    return "s30";
+  case dwarf_s31:
+    return "s31";
+
+  // FPA Registers 0-7
+  case dwarf_f0:
+    return "f0";
+  case dwarf_f1:
+    return "f1";
+  case dwarf_f2:
+    return "f2";
+  case dwarf_f3:
+    return "f3";
+  case dwarf_f4:
+    return "f4";
+  case dwarf_f5:
+    return "f5";
+  case dwarf_f6:
+    return "f6";
+  case dwarf_f7:
+    return "f7";
+
+  // Intel wireless MMX general purpose registers 0 - 7
+  // XScale accumulator register 0 - 7 (they do overlap with wCGR0 - wCGR7)
+  case dwarf_wCGR0:
+    return "wCGR0/ACC0";
+  case dwarf_wCGR1:
+    return "wCGR1/ACC1";
+  case dwarf_wCGR2:
+    return "wCGR2/ACC2";
+  case dwarf_wCGR3:
+    return "wCGR3/ACC3";
+  case dwarf_wCGR4:
+    return "wCGR4/ACC4";
+  case dwarf_wCGR5:
+    return "wCGR5/ACC5";
+  case dwarf_wCGR6:
+    return "wCGR6/ACC6";
+  case dwarf_wCGR7:
+    return "wCGR7/ACC7";
+
+  // Intel wireless MMX data registers 0 - 15
+  case dwarf_wR0:
+    return "wR0";
+  case dwarf_wR1:
+    return "wR1";
+  case dwarf_wR2:
+    return "wR2";
+  case dwarf_wR3:
+    return "wR3";
+  case dwarf_wR4:
+    return "wR4";
+  case dwarf_wR5:
+    return "wR5";
+  case dwarf_wR6:
+    return "wR6";
+  case dwarf_wR7:
+    return "wR7";
+  case dwarf_wR8:
+    return "wR8";
+  case dwarf_wR9:
+    return "wR9";
+  case dwarf_wR10:
+    return "wR10";
+  case dwarf_wR11:
+    return "wR11";
+  case dwarf_wR12:
+    return "wR12";
+  case dwarf_wR13:
+    return "wR13";
+  case dwarf_wR14:
+    return "wR14";
+  case dwarf_wR15:
+    return "wR15";
+
+  case dwarf_spsr:
+    return "spsr";
+  case dwarf_spsr_fiq:
+    return "spsr_fiq";
+  case dwarf_spsr_irq:
+    return "spsr_irq";
+  case dwarf_spsr_abt:
+    return "spsr_abt";
+  case dwarf_spsr_und:
+    return "spsr_und";
+  case dwarf_spsr_svc:
+    return "spsr_svc";
+
+  case dwarf_r8_usr:
+    return "r8_usr";
+  case dwarf_r9_usr:
+    return "r9_usr";
+  case dwarf_r10_usr:
+    return "r10_usr";
+  case dwarf_r11_usr:
+    return "r11_usr";
+  case dwarf_r12_usr:
+    return "r12_usr";
+  case dwarf_r13_usr:
+    return "r13_usr";
+  case dwarf_r14_usr:
+    return "r14_usr";
+  case dwarf_r8_fiq:
+    return "r8_fiq";
+  case dwarf_r9_fiq:
+    return "r9_fiq";
+  case dwarf_r10_fiq:
+    return "r10_fiq";
+  case dwarf_r11_fiq:
+    return "r11_fiq";
+  case dwarf_r12_fiq:
+    return "r12_fiq";
+  case dwarf_r13_fiq:
+    return "r13_fiq";
+  case dwarf_r14_fiq:
+    return "r14_fiq";
+  case dwarf_r13_irq:
+    return "r13_irq";
+  case dwarf_r14_irq:
+    return "r14_irq";
+  case dwarf_r13_abt:
+    return "r13_abt";
+  case dwarf_r14_abt:
+    return "r14_abt";
+  case dwarf_r13_und:
+    return "r13_und";
+  case dwarf_r14_und:
+    return "r14_und";
+  case dwarf_r13_svc:
+    return "r13_svc";
+  case dwarf_r14_svc:
+    return "r14_svc";
+
+  // Intel wireless MMX control register in co-processor 0 - 7
+  case dwarf_wC0:
+    return "wC0";
+  case dwarf_wC1:
+    return "wC1";
+  case dwarf_wC2:
+    return "wC2";
+  case dwarf_wC3:
+    return "wC3";
+  case dwarf_wC4:
+    return "wC4";
+  case dwarf_wC5:
+    return "wC5";
+  case dwarf_wC6:
+    return "wC6";
+  case dwarf_wC7:
+    return "wC7";
+
+  // VFP-v3/Neon
+  case dwarf_d0:
+    return "d0";
+  case dwarf_d1:
+    return "d1";
+  case dwarf_d2:
+    return "d2";
+  case dwarf_d3:
+    return "d3";
+  case dwarf_d4:
+    return "d4";
+  case dwarf_d5:
+    return "d5";
+  case dwarf_d6:
+    return "d6";
+  case dwarf_d7:
+    return "d7";
+  case dwarf_d8:
+    return "d8";
+  case dwarf_d9:
+    return "d9";
+  case dwarf_d10:
+    return "d10";
+  case dwarf_d11:
+    return "d11";
+  case dwarf_d12:
+    return "d12";
+  case dwarf_d13:
+    return "d13";
+  case dwarf_d14:
+    return "d14";
+  case dwarf_d15:
+    return "d15";
+  case dwarf_d16:
+    return "d16";
+  case dwarf_d17:
+    return "d17";
+  case dwarf_d18:
+    return "d18";
+  case dwarf_d19:
+    return "d19";
+  case dwarf_d20:
+    return "d20";
+  case dwarf_d21:
+    return "d21";
+  case dwarf_d22:
+    return "d22";
+  case dwarf_d23:
+    return "d23";
+  case dwarf_d24:
+    return "d24";
+  case dwarf_d25:
+    return "d25";
+  case dwarf_d26:
+    return "d26";
+  case dwarf_d27:
+    return "d27";
+  case dwarf_d28:
+    return "d28";
+  case dwarf_d29:
+    return "d29";
+  case dwarf_d30:
+    return "d30";
+  case dwarf_d31:
+    return "d31";
+
+  // NEON 128-bit vector registers (overlays the d registers)
+  case dwarf_q0:
+    return "q0";
+  case dwarf_q1:
+    return "q1";
+  case dwarf_q2:
+    return "q2";
+  case dwarf_q3:
+    return "q3";
+  case dwarf_q4:
+    return "q4";
+  case dwarf_q5:
+    return "q5";
+  case dwarf_q6:
+    return "q6";
+  case dwarf_q7:
+    return "q7";
+  case dwarf_q8:
+    return "q8";
+  case dwarf_q9:
+    return "q9";
+  case dwarf_q10:
+    return "q10";
+  case dwarf_q11:
+    return "q11";
+  case dwarf_q12:
+    return "q12";
+  case dwarf_q13:
+    return "q13";
+  case dwarf_q14:
+    return "q14";
+  case dwarf_q15:
+    return "q15";
+  }
+  return nullptr;
 }
 
-bool
-GetARMDWARFRegisterInfo (unsigned reg_num, RegisterInfo &reg_info)
-{
-    ::memset (&reg_info, 0, sizeof(RegisterInfo));
-    ::memset (reg_info.kinds, LLDB_INVALID_REGNUM, sizeof(reg_info.kinds));
-
-    if (reg_num >= dwarf_q0 && reg_num <= dwarf_q15)
-    {
-        reg_info.byte_size = 16;
-        reg_info.format = eFormatVectorOfUInt8;
-        reg_info.encoding = eEncodingVector;
-    }
-    
-    if (reg_num >= dwarf_d0 && reg_num <= dwarf_d31)
-    {
-        reg_info.byte_size = 8;
-        reg_info.format = eFormatFloat;
-        reg_info.encoding = eEncodingIEEE754;
-    }
-    else if (reg_num >= dwarf_s0 && reg_num <= dwarf_s31)
-    {
-        reg_info.byte_size = 4;
-        reg_info.format = eFormatFloat;
-        reg_info.encoding = eEncodingIEEE754;
-    }
-    else if (reg_num >= dwarf_f0 && reg_num <= dwarf_f7)
-    {
-        reg_info.byte_size = 12;
-        reg_info.format = eFormatFloat;
-        reg_info.encoding = eEncodingIEEE754;
-    }
-    else
-    {
-        reg_info.byte_size = 4;
-        reg_info.format = eFormatHex;
-        reg_info.encoding = eEncodingUint;
-    }
-    
-    reg_info.kinds[eRegisterKindDWARF] = reg_num;
-
-    switch (reg_num)
-    {
-        case dwarf_r0:  reg_info.name = "r0"; break;
-        case dwarf_r1:  reg_info.name = "r1"; break;
-        case dwarf_r2:  reg_info.name = "r2"; break;
-        case dwarf_r3:  reg_info.name = "r3"; break;
-        case dwarf_r4:  reg_info.name = "r4"; break;
-        case dwarf_r5:  reg_info.name = "r5"; break;
-        case dwarf_r6:  reg_info.name = "r6"; break;
-        case dwarf_r7:  reg_info.name = "r7"; reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_FP; break;
-        case dwarf_r8:  reg_info.name = "r8"; break;
-        case dwarf_r9:  reg_info.name = "r9"; break;        
-        case dwarf_r10: reg_info.name = "r10"; break;
-        case dwarf_r11: reg_info.name = "r11"; break;
-        case dwarf_r12: reg_info.name = "r12"; break;
-        case dwarf_sp:  reg_info.name = "sp"; reg_info.alt_name = "r13"; reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_SP; break;
-        case dwarf_lr:  reg_info.name = "lr"; reg_info.alt_name = "r14"; reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_RA; break;
-        case dwarf_pc:  reg_info.name = "pc"; reg_info.alt_name = "r15"; reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_PC; break;
-        case dwarf_cpsr:reg_info.name = "cpsr"; reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_FLAGS; break;
-            
-        case dwarf_s0:  reg_info.name = "s0"; break;
-        case dwarf_s1:  reg_info.name = "s1"; break;
-        case dwarf_s2:  reg_info.name = "s2"; break;
-        case dwarf_s3:  reg_info.name = "s3"; break;
-        case dwarf_s4:  reg_info.name = "s4"; break;
-        case dwarf_s5:  reg_info.name = "s5"; break;
-        case dwarf_s6:  reg_info.name = "s6"; break;
-        case dwarf_s7:  reg_info.name = "s7"; break;
-        case dwarf_s8:  reg_info.name = "s8"; break;
-        case dwarf_s9:  reg_info.name = "s9"; break;
-        case dwarf_s10: reg_info.name = "s10"; break;
-        case dwarf_s11: reg_info.name = "s11"; break;
-        case dwarf_s12: reg_info.name = "s12"; break;
-        case dwarf_s13: reg_info.name = "s13"; break;
-        case dwarf_s14: reg_info.name = "s14"; break;
-        case dwarf_s15: reg_info.name = "s15"; break;
-        case dwarf_s16: reg_info.name = "s16"; break;
-        case dwarf_s17: reg_info.name = "s17"; break;
-        case dwarf_s18: reg_info.name = "s18"; break;
-        case dwarf_s19: reg_info.name = "s19"; break;
-        case dwarf_s20: reg_info.name = "s20"; break;
-        case dwarf_s21: reg_info.name = "s21"; break;
-        case dwarf_s22: reg_info.name = "s22"; break;
-        case dwarf_s23: reg_info.name = "s23"; break;
-        case dwarf_s24: reg_info.name = "s24"; break;
-        case dwarf_s25: reg_info.name = "s25"; break;
-        case dwarf_s26: reg_info.name = "s26"; break;
-        case dwarf_s27: reg_info.name = "s27"; break;
-        case dwarf_s28: reg_info.name = "s28"; break;
-        case dwarf_s29: reg_info.name = "s29"; break;
-        case dwarf_s30: reg_info.name = "s30"; break;
-        case dwarf_s31: reg_info.name = "s31"; break;
-            
-        // FPA Registers 0-7
-        case dwarf_f0:  reg_info.name = "f0"; break;
-        case dwarf_f1:  reg_info.name = "f1"; break;
-        case dwarf_f2:  reg_info.name = "f2"; break;
-        case dwarf_f3:  reg_info.name = "f3"; break;
-        case dwarf_f4:  reg_info.name = "f4"; break;
-        case dwarf_f5:  reg_info.name = "f5"; break;
-        case dwarf_f6:  reg_info.name = "f6"; break;
-        case dwarf_f7:  reg_info.name = "f7"; break;
-            
-        // Intel wireless MMX general purpose registers 0 - 7
-        // XScale accumulator register 0 - 7 (they do overlap with wCGR0 - wCGR7)
-        case dwarf_wCGR0: reg_info.name = "wCGR0/ACC0"; break;   
-        case dwarf_wCGR1: reg_info.name = "wCGR1/ACC1"; break;
-        case dwarf_wCGR2: reg_info.name = "wCGR2/ACC2"; break;
-        case dwarf_wCGR3: reg_info.name = "wCGR3/ACC3"; break;
-        case dwarf_wCGR4: reg_info.name = "wCGR4/ACC4"; break;
-        case dwarf_wCGR5: reg_info.name = "wCGR5/ACC5"; break;
-        case dwarf_wCGR6: reg_info.name = "wCGR6/ACC6"; break;
-        case dwarf_wCGR7: reg_info.name = "wCGR7/ACC7"; break;
-            
-        // Intel wireless MMX data registers 0 - 15
-        case dwarf_wR0:   reg_info.name = "wR0"; break;
-        case dwarf_wR1:   reg_info.name = "wR1"; break;
-        case dwarf_wR2:   reg_info.name = "wR2"; break;
-        case dwarf_wR3:   reg_info.name = "wR3"; break;
-        case dwarf_wR4:   reg_info.name = "wR4"; break;
-        case dwarf_wR5:   reg_info.name = "wR5"; break;
-        case dwarf_wR6:   reg_info.name = "wR6"; break;
-        case dwarf_wR7:   reg_info.name = "wR7"; break;
-        case dwarf_wR8:   reg_info.name = "wR8"; break;
-        case dwarf_wR9:   reg_info.name = "wR9"; break;
-        case dwarf_wR10:  reg_info.name = "wR10"; break;
-        case dwarf_wR11:  reg_info.name = "wR11"; break;
-        case dwarf_wR12:  reg_info.name = "wR12"; break;
-        case dwarf_wR13:  reg_info.name = "wR13"; break;
-        case dwarf_wR14:  reg_info.name = "wR14"; break;
-        case dwarf_wR15:  reg_info.name = "wR15"; break;
-            
-        case dwarf_spsr:        reg_info.name = "spsr"; break;
-        case dwarf_spsr_fiq:    reg_info.name = "spsr_fiq"; break;
-        case dwarf_spsr_irq:    reg_info.name = "spsr_irq"; break;
-        case dwarf_spsr_abt:    reg_info.name = "spsr_abt"; break;
-        case dwarf_spsr_und:    reg_info.name = "spsr_und"; break;
-        case dwarf_spsr_svc:    reg_info.name = "spsr_svc"; break;
-            
-        case dwarf_r8_usr:      reg_info.name = "r8_usr"; break;
-        case dwarf_r9_usr:      reg_info.name = "r9_usr"; break;
-        case dwarf_r10_usr:     reg_info.name = "r10_usr"; break;
-        case dwarf_r11_usr:     reg_info.name = "r11_usr"; break;
-        case dwarf_r12_usr:     reg_info.name = "r12_usr"; break;
-        case dwarf_r13_usr:     reg_info.name = "r13_usr"; break;
-        case dwarf_r14_usr:     reg_info.name = "r14_usr"; break;
-        case dwarf_r8_fiq:      reg_info.name = "r8_fiq"; break;
-        case dwarf_r9_fiq:      reg_info.name = "r9_fiq"; break;
-        case dwarf_r10_fiq:     reg_info.name = "r10_fiq"; break;
-        case dwarf_r11_fiq:     reg_info.name = "r11_fiq"; break;
-        case dwarf_r12_fiq:     reg_info.name = "r12_fiq"; break;
-        case dwarf_r13_fiq:     reg_info.name = "r13_fiq"; break;
-        case dwarf_r14_fiq:     reg_info.name = "r14_fiq"; break;
-        case dwarf_r13_irq:     reg_info.name = "r13_irq"; break;
-        case dwarf_r14_irq:     reg_info.name = "r14_irq"; break;
-        case dwarf_r13_abt:     reg_info.name = "r13_abt"; break;
-        case dwarf_r14_abt:     reg_info.name = "r14_abt"; break;
-        case dwarf_r13_und:     reg_info.name = "r13_und"; break;
-        case dwarf_r14_und:     reg_info.name = "r14_und"; break;
-        case dwarf_r13_svc:     reg_info.name = "r13_svc"; break;
-        case dwarf_r14_svc:     reg_info.name = "r14_svc"; break;
-            
-        // Intel wireless MMX control register in co-processor 0 - 7
-        case dwarf_wC0:         reg_info.name = "wC0"; break;
-        case dwarf_wC1:         reg_info.name = "wC1"; break;
-        case dwarf_wC2:         reg_info.name = "wC2"; break;
-        case dwarf_wC3:         reg_info.name = "wC3"; break;
-        case dwarf_wC4:         reg_info.name = "wC4"; break;
-        case dwarf_wC5:         reg_info.name = "wC5"; break;
-        case dwarf_wC6:         reg_info.name = "wC6"; break;
-        case dwarf_wC7:         reg_info.name = "wC7"; break;
-            
-        // VFP-v3/Neon
-        case dwarf_d0:          reg_info.name = "d0"; break;
-        case dwarf_d1:          reg_info.name = "d1"; break;
-        case dwarf_d2:          reg_info.name = "d2"; break;
-        case dwarf_d3:          reg_info.name = "d3"; break;
-        case dwarf_d4:          reg_info.name = "d4"; break;
-        case dwarf_d5:          reg_info.name = "d5"; break;
-        case dwarf_d6:          reg_info.name = "d6"; break;
-        case dwarf_d7:          reg_info.name = "d7"; break;
-        case dwarf_d8:          reg_info.name = "d8"; break;
-        case dwarf_d9:          reg_info.name = "d9"; break;
-        case dwarf_d10:         reg_info.name = "d10"; break;
-        case dwarf_d11:         reg_info.name = "d11"; break;
-        case dwarf_d12:         reg_info.name = "d12"; break;
-        case dwarf_d13:         reg_info.name = "d13"; break;
-        case dwarf_d14:         reg_info.name = "d14"; break;
-        case dwarf_d15:         reg_info.name = "d15"; break;
-        case dwarf_d16:         reg_info.name = "d16"; break;
-        case dwarf_d17:         reg_info.name = "d17"; break;
-        case dwarf_d18:         reg_info.name = "d18"; break;
-        case dwarf_d19:         reg_info.name = "d19"; break;
-        case dwarf_d20:         reg_info.name = "d20"; break;
-        case dwarf_d21:         reg_info.name = "d21"; break;
-        case dwarf_d22:         reg_info.name = "d22"; break;
-        case dwarf_d23:         reg_info.name = "d23"; break;
-        case dwarf_d24:         reg_info.name = "d24"; break;
-        case dwarf_d25:         reg_info.name = "d25"; break;
-        case dwarf_d26:         reg_info.name = "d26"; break;
-        case dwarf_d27:         reg_info.name = "d27"; break;
-        case dwarf_d28:         reg_info.name = "d28"; break;
-        case dwarf_d29:         reg_info.name = "d29"; break;
-        case dwarf_d30:         reg_info.name = "d30"; break;
-        case dwarf_d31:         reg_info.name = "d31"; break;
-
-        // NEON 128-bit vector registers (overlays the d registers)
-        case dwarf_q0:          reg_info.name = "q0"; break;
-        case dwarf_q1:          reg_info.name = "q1"; break;
-        case dwarf_q2:          reg_info.name = "q2"; break;
-        case dwarf_q3:          reg_info.name = "q3"; break;
-        case dwarf_q4:          reg_info.name = "q4"; break;
-        case dwarf_q5:          reg_info.name = "q5"; break;
-        case dwarf_q6:          reg_info.name = "q6"; break;
-        case dwarf_q7:          reg_info.name = "q7"; break;
-        case dwarf_q8:          reg_info.name = "q8"; break;
-        case dwarf_q9:          reg_info.name = "q9"; break;
-        case dwarf_q10:         reg_info.name = "q10"; break;
-        case dwarf_q11:         reg_info.name = "q11"; break;
-        case dwarf_q12:         reg_info.name = "q12"; break;
-        case dwarf_q13:         reg_info.name = "q13"; break;
-        case dwarf_q14:         reg_info.name = "q14"; break;
-        case dwarf_q15:         reg_info.name = "q15"; break;
-
-        default: return false;
-    }
-    return true;
+bool GetARMDWARFRegisterInfo(unsigned reg_num, RegisterInfo &reg_info) {
+  ::memset(&reg_info, 0, sizeof(RegisterInfo));
+  ::memset(reg_info.kinds, LLDB_INVALID_REGNUM, sizeof(reg_info.kinds));
+
+  if (reg_num >= dwarf_q0 && reg_num <= dwarf_q15) {
+    reg_info.byte_size = 16;
+    reg_info.format = eFormatVectorOfUInt8;
+    reg_info.encoding = eEncodingVector;
+  }
+
+  if (reg_num >= dwarf_d0 && reg_num <= dwarf_d31) {
+    reg_info.byte_size = 8;
+    reg_info.format = eFormatFloat;
+    reg_info.encoding = eEncodingIEEE754;
+  } else if (reg_num >= dwarf_s0 && reg_num <= dwarf_s31) {
+    reg_info.byte_size = 4;
+    reg_info.format = eFormatFloat;
+    reg_info.encoding = eEncodingIEEE754;
+  } else if (reg_num >= dwarf_f0 && reg_num <= dwarf_f7) {
+    reg_info.byte_size = 12;
+    reg_info.format = eFormatFloat;
+    reg_info.encoding = eEncodingIEEE754;
+  } else {
+    reg_info.byte_size = 4;
+    reg_info.format = eFormatHex;
+    reg_info.encoding = eEncodingUint;
+  }
+
+  reg_info.kinds[eRegisterKindDWARF] = reg_num;
+
+  switch (reg_num) {
+  case dwarf_r0:
+    reg_info.name = "r0";
+    break;
+  case dwarf_r1:
+    reg_info.name = "r1";
+    break;
+  case dwarf_r2:
+    reg_info.name = "r2";
+    break;
+  case dwarf_r3:
+    reg_info.name = "r3";
+    break;
+  case dwarf_r4:
+    reg_info.name = "r4";
+    break;
+  case dwarf_r5:
+    reg_info.name = "r5";
+    break;
+  case dwarf_r6:
+    reg_info.name = "r6";
+    break;
+  case dwarf_r7:
+    reg_info.name = "r7";
+    reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_FP;
+    break;
+  case dwarf_r8:
+    reg_info.name = "r8";
+    break;
+  case dwarf_r9:
+    reg_info.name = "r9";
+    break;
+  case dwarf_r10:
+    reg_info.name = "r10";
+    break;
+  case dwarf_r11:
+    reg_info.name = "r11";
+    break;
+  case dwarf_r12:
+    reg_info.name = "r12";
+    break;
+  case dwarf_sp:
+    reg_info.name = "sp";
+    reg_info.alt_name = "r13";
+    reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_SP;
+    break;
+  case dwarf_lr:
+    reg_info.name = "lr";
+    reg_info.alt_name = "r14";
+    reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_RA;
+    break;
+  case dwarf_pc:
+    reg_info.name = "pc";
+    reg_info.alt_name = "r15";
+    reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_PC;
+    break;
+  case dwarf_cpsr:
+    reg_info.name = "cpsr";
+    reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_FLAGS;
+    break;
+
+  case dwarf_s0:
+    reg_info.name = "s0";
+    break;
+  case dwarf_s1:
+    reg_info.name = "s1";
+    break;
+  case dwarf_s2:
+    reg_info.name = "s2";
+    break;
+  case dwarf_s3:
+    reg_info.name = "s3";
+    break;
+  case dwarf_s4:
+    reg_info.name = "s4";
+    break;
+  case dwarf_s5:
+    reg_info.name = "s5";
+    break;
+  case dwarf_s6:
+    reg_info.name = "s6";
+    break;
+  case dwarf_s7:
+    reg_info.name = "s7";
+    break;
+  case dwarf_s8:
+    reg_info.name = "s8";
+    break;
+  case dwarf_s9:
+    reg_info.name = "s9";
+    break;
+  case dwarf_s10:
+    reg_info.name = "s10";
+    break;
+  case dwarf_s11:
+    reg_info.name = "s11";
+    break;
+  case dwarf_s12:
+    reg_info.name = "s12";
+    break;
+  case dwarf_s13:
+    reg_info.name = "s13";
+    break;
+  case dwarf_s14:
+    reg_info.name = "s14";
+    break;
+  case dwarf_s15:
+    reg_info.name = "s15";
+    break;
+  case dwarf_s16:
+    reg_info.name = "s16";
+    break;
+  case dwarf_s17:
+    reg_info.name = "s17";
+    break;
+  case dwarf_s18:
+    reg_info.name = "s18";
+    break;
+  case dwarf_s19:
+    reg_info.name = "s19";
+    break;
+  case dwarf_s20:
+    reg_info.name = "s20";
+    break;
+  case dwarf_s21:
+    reg_info.name = "s21";
+    break;
+  case dwarf_s22:
+    reg_info.name = "s22";
+    break;
+  case dwarf_s23:
+    reg_info.name = "s23";
+    break;
+  case dwarf_s24:
+    reg_info.name = "s24";
+    break;
+  case dwarf_s25:
+    reg_info.name = "s25";
+    break;
+  case dwarf_s26:
+    reg_info.name = "s26";
+    break;
+  case dwarf_s27:
+    reg_info.name = "s27";
+    break;
+  case dwarf_s28:
+    reg_info.name = "s28";
+    break;
+  case dwarf_s29:
+    reg_info.name = "s29";
+    break;
+  case dwarf_s30:
+    reg_info.name = "s30";
+    break;
+  case dwarf_s31:
+    reg_info.name = "s31";
+    break;
+
+  // FPA Registers 0-7
+  case dwarf_f0:
+    reg_info.name = "f0";
+    break;
+  case dwarf_f1:
+    reg_info.name = "f1";
+    break;
+  case dwarf_f2:
+    reg_info.name = "f2";
+    break;
+  case dwarf_f3:
+    reg_info.name = "f3";
+    break;
+  case dwarf_f4:
+    reg_info.name = "f4";
+    break;
+  case dwarf_f5:
+    reg_info.name = "f5";
+    break;
+  case dwarf_f6:
+    reg_info.name = "f6";
+    break;
+  case dwarf_f7:
+    reg_info.name = "f7";
+    break;
+
+  // Intel wireless MMX general purpose registers 0 - 7
+  // XScale accumulator register 0 - 7 (they do overlap with wCGR0 - wCGR7)
+  case dwarf_wCGR0:
+    reg_info.name = "wCGR0/ACC0";
+    break;
+  case dwarf_wCGR1:
+    reg_info.name = "wCGR1/ACC1";
+    break;
+  case dwarf_wCGR2:
+    reg_info.name = "wCGR2/ACC2";
+    break;
+  case dwarf_wCGR3:
+    reg_info.name = "wCGR3/ACC3";
+    break;
+  case dwarf_wCGR4:
+    reg_info.name = "wCGR4/ACC4";
+    break;
+  case dwarf_wCGR5:
+    reg_info.name = "wCGR5/ACC5";
+    break;
+  case dwarf_wCGR6:
+    reg_info.name = "wCGR6/ACC6";
+    break;
+  case dwarf_wCGR7:
+    reg_info.name = "wCGR7/ACC7";
+    break;
+
+  // Intel wireless MMX data registers 0 - 15
+  case dwarf_wR0:
+    reg_info.name = "wR0";
+    break;
+  case dwarf_wR1:
+    reg_info.name = "wR1";
+    break;
+  case dwarf_wR2:
+    reg_info.name = "wR2";
+    break;
+  case dwarf_wR3:
+    reg_info.name = "wR3";
+    break;
+  case dwarf_wR4:
+    reg_info.name = "wR4";
+    break;
+  case dwarf_wR5:
+    reg_info.name = "wR5";
+    break;
+  case dwarf_wR6:
+    reg_info.name = "wR6";
+    break;
+  case dwarf_wR7:
+    reg_info.name = "wR7";
+    break;
+  case dwarf_wR8:
+    reg_info.name = "wR8";
+    break;
+  case dwarf_wR9:
+    reg_info.name = "wR9";
+    break;
+  case dwarf_wR10:
+    reg_info.name = "wR10";
+    break;
+  case dwarf_wR11:
+    reg_info.name = "wR11";
+    break;
+  case dwarf_wR12:
+    reg_info.name = "wR12";
+    break;
+  case dwarf_wR13:
+    reg_info.name = "wR13";
+    break;
+  case dwarf_wR14:
+    reg_info.name = "wR14";
+    break;
+  case dwarf_wR15:
+    reg_info.name = "wR15";
+    break;
+
+  case dwarf_spsr:
+    reg_info.name = "spsr";
+    break;
+  case dwarf_spsr_fiq:
+    reg_info.name = "spsr_fiq";
+    break;
+  case dwarf_spsr_irq:
+    reg_info.name = "spsr_irq";
+    break;
+  case dwarf_spsr_abt:
+    reg_info.name = "spsr_abt";
+    break;
+  case dwarf_spsr_und:
+    reg_info.name = "spsr_und";
+    break;
+  case dwarf_spsr_svc:
+    reg_info.name = "spsr_svc";
+    break;
+
+  case dwarf_r8_usr:
+    reg_info.name = "r8_usr";
+    break;
+  case dwarf_r9_usr:
+    reg_info.name = "r9_usr";
+    break;
+  case dwarf_r10_usr:
+    reg_info.name = "r10_usr";
+    break;
+  case dwarf_r11_usr:
+    reg_info.name = "r11_usr";
+    break;
+  case dwarf_r12_usr:
+    reg_info.name = "r12_usr";
+    break;
+  case dwarf_r13_usr:
+    reg_info.name = "r13_usr";
+    break;
+  case dwarf_r14_usr:
+    reg_info.name = "r14_usr";
+    break;
+  case dwarf_r8_fiq:
+    reg_info.name = "r8_fiq";
+    break;
+  case dwarf_r9_fiq:
+    reg_info.name = "r9_fiq";
+    break;
+  case dwarf_r10_fiq:
+    reg_info.name = "r10_fiq";
+    break;
+  case dwarf_r11_fiq:
+    reg_info.name = "r11_fiq";
+    break;
+  case dwarf_r12_fiq:
+    reg_info.name = "r12_fiq";
+    break;
+  case dwarf_r13_fiq:
+    reg_info.name = "r13_fiq";
+    break;
+  case dwarf_r14_fiq:
+    reg_info.name = "r14_fiq";
+    break;
+  case dwarf_r13_irq:
+    reg_info.name = "r13_irq";
+    break;
+  case dwarf_r14_irq:
+    reg_info.name = "r14_irq";
+    break;
+  case dwarf_r13_abt:
+    reg_info.name = "r13_abt";
+    break;
+  case dwarf_r14_abt:
+    reg_info.name = "r14_abt";
+    break;
+  case dwarf_r13_und:
+    reg_info.name = "r13_und";
+    break;
+  case dwarf_r14_und:
+    reg_info.name = "r14_und";
+    break;
+  case dwarf_r13_svc:
+    reg_info.name = "r13_svc";
+    break;
+  case dwarf_r14_svc:
+    reg_info.name = "r14_svc";
+    break;
+
+  // Intel wireless MMX control register in co-processor 0 - 7
+  case dwarf_wC0:
+    reg_info.name = "wC0";
+    break;
+  case dwarf_wC1:
+    reg_info.name = "wC1";
+    break;
+  case dwarf_wC2:
+    reg_info.name = "wC2";
+    break;
+  case dwarf_wC3:
+    reg_info.name = "wC3";
+    break;
+  case dwarf_wC4:
+    reg_info.name = "wC4";
+    break;
+  case dwarf_wC5:
+    reg_info.name = "wC5";
+    break;
+  case dwarf_wC6:
+    reg_info.name = "wC6";
+    break;
+  case dwarf_wC7:
+    reg_info.name = "wC7";
+    break;
+
+  // VFP-v3/Neon
+  case dwarf_d0:
+    reg_info.name = "d0";
+    break;
+  case dwarf_d1:
+    reg_info.name = "d1";
+    break;
+  case dwarf_d2:
+    reg_info.name = "d2";
+    break;
+  case dwarf_d3:
+    reg_info.name = "d3";
+    break;
+  case dwarf_d4:
+    reg_info.name = "d4";
+    break;
+  case dwarf_d5:
+    reg_info.name = "d5";
+    break;
+  case dwarf_d6:
+    reg_info.name = "d6";
+    break;
+  case dwarf_d7:
+    reg_info.name = "d7";
+    break;
+  case dwarf_d8:
+    reg_info.name = "d8";
+    break;
+  case dwarf_d9:
+    reg_info.name = "d9";
+    break;
+  case dwarf_d10:
+    reg_info.name = "d10";
+    break;
+  case dwarf_d11:
+    reg_info.name = "d11";
+    break;
+  case dwarf_d12:
+    reg_info.name = "d12";
+    break;
+  case dwarf_d13:
+    reg_info.name = "d13";
+    break;
+  case dwarf_d14:
+    reg_info.name = "d14";
+    break;
+  case dwarf_d15:
+    reg_info.name = "d15";
+    break;
+  case dwarf_d16:
+    reg_info.name = "d16";
+    break;
+  case dwarf_d17:
+    reg_info.name = "d17";
+    break;
+  case dwarf_d18:
+    reg_info.name = "d18";
+    break;
+  case dwarf_d19:
+    reg_info.name = "d19";
+    break;
+  case dwarf_d20:
+    reg_info.name = "d20";
+    break;
+  case dwarf_d21:
+    reg_info.name = "d21";
+    break;
+  case dwarf_d22:
+    reg_info.name = "d22";
+    break;
+  case dwarf_d23:
+    reg_info.name = "d23";
+    break;
+  case dwarf_d24:
+    reg_info.name = "d24";
+    break;
+  case dwarf_d25:
+    reg_info.name = "d25";
+    break;
+  case dwarf_d26:
+    reg_info.name = "d26";
+    break;
+  case dwarf_d27:
+    reg_info.name = "d27";
+    break;
+  case dwarf_d28:
+    reg_info.name = "d28";
+    break;
+  case dwarf_d29:
+    reg_info.name = "d29";
+    break;
+  case dwarf_d30:
+    reg_info.name = "d30";
+    break;
+  case dwarf_d31:
+    reg_info.name = "d31";
+    break;
+
+  // NEON 128-bit vector registers (overlays the d registers)
+  case dwarf_q0:
+    reg_info.name = "q0";
+    break;
+  case dwarf_q1:
+    reg_info.name = "q1";
+    break;
+  case dwarf_q2:
+    reg_info.name = "q2";
+    break;
+  case dwarf_q3:
+    reg_info.name = "q3";
+    break;
+  case dwarf_q4:
+    reg_info.name = "q4";
+    break;
+  case dwarf_q5:
+    reg_info.name = "q5";
+    break;
+  case dwarf_q6:
+    reg_info.name = "q6";
+    break;
+  case dwarf_q7:
+    reg_info.name = "q7";
+    break;
+  case dwarf_q8:
+    reg_info.name = "q8";
+    break;
+  case dwarf_q9:
+    reg_info.name = "q9";
+    break;
+  case dwarf_q10:
+    reg_info.name = "q10";
+    break;
+  case dwarf_q11:
+    reg_info.name = "q11";
+    break;
+  case dwarf_q12:
+    reg_info.name = "q12";
+    break;
+  case dwarf_q13:
+    reg_info.name = "q13";
+    break;
+  case dwarf_q14:
+    reg_info.name = "q14";
+    break;
+  case dwarf_q15:
+    reg_info.name = "q15";
+    break;
+
+  default:
+    return false;
+  }
+  return true;
 }

Modified: lldb/trunk/source/Utility/ARM_DWARF_Registers.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ARM_DWARF_Registers.h?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/ARM_DWARF_Registers.h (original)
+++ lldb/trunk/source/Utility/ARM_DWARF_Registers.h Tue Sep  6 15:57:50 2016
@@ -12,206 +12,202 @@
 
 #include "lldb/lldb-private.h"
 
-enum
-{
-    dwarf_r0 = 0,
-    dwarf_r1,
-    dwarf_r2,
-    dwarf_r3,
-    dwarf_r4,
-    dwarf_r5,
-    dwarf_r6,
-    dwarf_r7,
-    dwarf_r8,
-    dwarf_r9,
-    dwarf_r10,
-    dwarf_r11,
-    dwarf_r12,
-    dwarf_sp,
-    dwarf_lr,
-    dwarf_pc,
-    dwarf_cpsr,
-
-    dwarf_s0 = 64,
-    dwarf_s1,
-    dwarf_s2,
-    dwarf_s3,
-    dwarf_s4,
-    dwarf_s5,
-    dwarf_s6,
-    dwarf_s7,
-    dwarf_s8,
-    dwarf_s9,
-    dwarf_s10,
-    dwarf_s11,
-    dwarf_s12,
-    dwarf_s13,
-    dwarf_s14,
-    dwarf_s15,
-    dwarf_s16,
-    dwarf_s17,
-    dwarf_s18,
-    dwarf_s19,
-    dwarf_s20,
-    dwarf_s21,
-    dwarf_s22,
-    dwarf_s23,
-    dwarf_s24,
-    dwarf_s25,
-    dwarf_s26,
-    dwarf_s27,
-    dwarf_s28,
-    dwarf_s29,
-    dwarf_s30,
-    dwarf_s31,
-
-    // FPA Registers 0-7
-    dwarf_f0 = 96,
-    dwarf_f1,
-    dwarf_f2,
-    dwarf_f3,
-    dwarf_f4,
-    dwarf_f5,
-    dwarf_f6,
-    dwarf_f7,
-
-    // Intel wireless MMX general purpose registers 0 - 7
-    dwarf_wCGR0 = 104,
-    dwarf_wCGR1,
-    dwarf_wCGR2,
-    dwarf_wCGR3,
-    dwarf_wCGR4,
-    dwarf_wCGR5,
-    dwarf_wCGR6,
-    dwarf_wCGR7,
-
-    // XScale accumulator register 0 - 7 (they do overlap with wCGR0 - wCGR7)
-    dwarf_ACC0 = 104,
-    dwarf_ACC1,
-    dwarf_ACC2,
-    dwarf_ACC3,
-    dwarf_ACC4,
-    dwarf_ACC5,
-    dwarf_ACC6,
-    dwarf_ACC7,
-
-    // Intel wireless MMX data registers 0 - 15
-    dwarf_wR0 = 112,
-    dwarf_wR1,
-    dwarf_wR2,
-    dwarf_wR3,
-    dwarf_wR4,
-    dwarf_wR5,
-    dwarf_wR6,
-    dwarf_wR7,
-    dwarf_wR8,
-    dwarf_wR9,
-    dwarf_wR10,
-    dwarf_wR11,
-    dwarf_wR12,
-    dwarf_wR13,
-    dwarf_wR14,
-    dwarf_wR15,
-
-    dwarf_spsr = 128,
-    dwarf_spsr_fiq,
-    dwarf_spsr_irq,
-    dwarf_spsr_abt,
-    dwarf_spsr_und,
-    dwarf_spsr_svc,
-
-    dwarf_r8_usr = 144,
-    dwarf_r9_usr,
-    dwarf_r10_usr,
-    dwarf_r11_usr,
-    dwarf_r12_usr,
-    dwarf_r13_usr,
-    dwarf_r14_usr,
-    dwarf_r8_fiq,
-    dwarf_r9_fiq,
-    dwarf_r10_fiq,
-    dwarf_r11_fiq,
-    dwarf_r12_fiq,
-    dwarf_r13_fiq,
-    dwarf_r14_fiq,
-    dwarf_r13_irq,
-    dwarf_r14_irq,
-    dwarf_r13_abt,
-    dwarf_r14_abt,
-    dwarf_r13_und,
-    dwarf_r14_und,
-    dwarf_r13_svc,
-    dwarf_r14_svc,
-
-    // Intel wireless MMX control register in co-processor 0 - 7
-    dwarf_wC0 = 192,
-    dwarf_wC1,
-    dwarf_wC2,
-    dwarf_wC3,
-    dwarf_wC4,
-    dwarf_wC5,
-    dwarf_wC6,
-    dwarf_wC7,
-
-    // VFP-v3/Neon
-    dwarf_d0 = 256,
-    dwarf_d1,
-    dwarf_d2,
-    dwarf_d3,
-    dwarf_d4,
-    dwarf_d5,
-    dwarf_d6,
-    dwarf_d7,
-    dwarf_d8,
-    dwarf_d9,
-    dwarf_d10,
-    dwarf_d11,
-    dwarf_d12,
-    dwarf_d13,
-    dwarf_d14,
-    dwarf_d15,
-    dwarf_d16,
-    dwarf_d17,
-    dwarf_d18,
-    dwarf_d19,
-    dwarf_d20,
-    dwarf_d21,
-    dwarf_d22,
-    dwarf_d23,
-    dwarf_d24,
-    dwarf_d25,
-    dwarf_d26,
-    dwarf_d27,
-    dwarf_d28,
-    dwarf_d29,
-    dwarf_d30,
-    dwarf_d31,
-
-    // Neon quadword registers
-    dwarf_q0 = 288,
-    dwarf_q1,
-    dwarf_q2,
-    dwarf_q3,
-    dwarf_q4,
-    dwarf_q5,
-    dwarf_q6,
-    dwarf_q7,
-    dwarf_q8,
-    dwarf_q9,
-    dwarf_q10,
-    dwarf_q11,
-    dwarf_q12,
-    dwarf_q13,
-    dwarf_q14,
-    dwarf_q15
+enum {
+  dwarf_r0 = 0,
+  dwarf_r1,
+  dwarf_r2,
+  dwarf_r3,
+  dwarf_r4,
+  dwarf_r5,
+  dwarf_r6,
+  dwarf_r7,
+  dwarf_r8,
+  dwarf_r9,
+  dwarf_r10,
+  dwarf_r11,
+  dwarf_r12,
+  dwarf_sp,
+  dwarf_lr,
+  dwarf_pc,
+  dwarf_cpsr,
+
+  dwarf_s0 = 64,
+  dwarf_s1,
+  dwarf_s2,
+  dwarf_s3,
+  dwarf_s4,
+  dwarf_s5,
+  dwarf_s6,
+  dwarf_s7,
+  dwarf_s8,
+  dwarf_s9,
+  dwarf_s10,
+  dwarf_s11,
+  dwarf_s12,
+  dwarf_s13,
+  dwarf_s14,
+  dwarf_s15,
+  dwarf_s16,
+  dwarf_s17,
+  dwarf_s18,
+  dwarf_s19,
+  dwarf_s20,
+  dwarf_s21,
+  dwarf_s22,
+  dwarf_s23,
+  dwarf_s24,
+  dwarf_s25,
+  dwarf_s26,
+  dwarf_s27,
+  dwarf_s28,
+  dwarf_s29,
+  dwarf_s30,
+  dwarf_s31,
+
+  // FPA Registers 0-7
+  dwarf_f0 = 96,
+  dwarf_f1,
+  dwarf_f2,
+  dwarf_f3,
+  dwarf_f4,
+  dwarf_f5,
+  dwarf_f6,
+  dwarf_f7,
+
+  // Intel wireless MMX general purpose registers 0 - 7
+  dwarf_wCGR0 = 104,
+  dwarf_wCGR1,
+  dwarf_wCGR2,
+  dwarf_wCGR3,
+  dwarf_wCGR4,
+  dwarf_wCGR5,
+  dwarf_wCGR6,
+  dwarf_wCGR7,
+
+  // XScale accumulator register 0 - 7 (they do overlap with wCGR0 - wCGR7)
+  dwarf_ACC0 = 104,
+  dwarf_ACC1,
+  dwarf_ACC2,
+  dwarf_ACC3,
+  dwarf_ACC4,
+  dwarf_ACC5,
+  dwarf_ACC6,
+  dwarf_ACC7,
+
+  // Intel wireless MMX data registers 0 - 15
+  dwarf_wR0 = 112,
+  dwarf_wR1,
+  dwarf_wR2,
+  dwarf_wR3,
+  dwarf_wR4,
+  dwarf_wR5,
+  dwarf_wR6,
+  dwarf_wR7,
+  dwarf_wR8,
+  dwarf_wR9,
+  dwarf_wR10,
+  dwarf_wR11,
+  dwarf_wR12,
+  dwarf_wR13,
+  dwarf_wR14,
+  dwarf_wR15,
+
+  dwarf_spsr = 128,
+  dwarf_spsr_fiq,
+  dwarf_spsr_irq,
+  dwarf_spsr_abt,
+  dwarf_spsr_und,
+  dwarf_spsr_svc,
+
+  dwarf_r8_usr = 144,
+  dwarf_r9_usr,
+  dwarf_r10_usr,
+  dwarf_r11_usr,
+  dwarf_r12_usr,
+  dwarf_r13_usr,
+  dwarf_r14_usr,
+  dwarf_r8_fiq,
+  dwarf_r9_fiq,
+  dwarf_r10_fiq,
+  dwarf_r11_fiq,
+  dwarf_r12_fiq,
+  dwarf_r13_fiq,
+  dwarf_r14_fiq,
+  dwarf_r13_irq,
+  dwarf_r14_irq,
+  dwarf_r13_abt,
+  dwarf_r14_abt,
+  dwarf_r13_und,
+  dwarf_r14_und,
+  dwarf_r13_svc,
+  dwarf_r14_svc,
+
+  // Intel wireless MMX control register in co-processor 0 - 7
+  dwarf_wC0 = 192,
+  dwarf_wC1,
+  dwarf_wC2,
+  dwarf_wC3,
+  dwarf_wC4,
+  dwarf_wC5,
+  dwarf_wC6,
+  dwarf_wC7,
+
+  // VFP-v3/Neon
+  dwarf_d0 = 256,
+  dwarf_d1,
+  dwarf_d2,
+  dwarf_d3,
+  dwarf_d4,
+  dwarf_d5,
+  dwarf_d6,
+  dwarf_d7,
+  dwarf_d8,
+  dwarf_d9,
+  dwarf_d10,
+  dwarf_d11,
+  dwarf_d12,
+  dwarf_d13,
+  dwarf_d14,
+  dwarf_d15,
+  dwarf_d16,
+  dwarf_d17,
+  dwarf_d18,
+  dwarf_d19,
+  dwarf_d20,
+  dwarf_d21,
+  dwarf_d22,
+  dwarf_d23,
+  dwarf_d24,
+  dwarf_d25,
+  dwarf_d26,
+  dwarf_d27,
+  dwarf_d28,
+  dwarf_d29,
+  dwarf_d30,
+  dwarf_d31,
+
+  // Neon quadword registers
+  dwarf_q0 = 288,
+  dwarf_q1,
+  dwarf_q2,
+  dwarf_q3,
+  dwarf_q4,
+  dwarf_q5,
+  dwarf_q6,
+  dwarf_q7,
+  dwarf_q8,
+  dwarf_q9,
+  dwarf_q10,
+  dwarf_q11,
+  dwarf_q12,
+  dwarf_q13,
+  dwarf_q14,
+  dwarf_q15
 };
 
-const char *
-GetARMDWARFRegisterName (unsigned reg_num);
-    
-bool
-GetARMDWARFRegisterInfo (unsigned reg_num, 
-                         lldb_private::RegisterInfo &reg_info);
+const char *GetARMDWARFRegisterName(unsigned reg_num);
 
-#endif // utility_ARM_DWARF_Registers_h_
+bool GetARMDWARFRegisterInfo(unsigned reg_num,
+                             lldb_private::RegisterInfo &reg_info);
 
+#endif // utility_ARM_DWARF_Registers_h_

Modified: lldb/trunk/source/Utility/ARM_ehframe_Registers.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ARM_ehframe_Registers.h?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/ARM_ehframe_Registers.h (original)
+++ lldb/trunk/source/Utility/ARM_ehframe_Registers.h Tue Sep  6 15:57:50 2016
@@ -1,4 +1,5 @@
-//===-- ARM_ehframe_Registers.h -------------------------------------*- C++ -*-===//
+//===-- ARM_ehframe_Registers.h -------------------------------------*- C++
+//-*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -13,26 +14,24 @@
 // The register numbers used in the eh_frame unwind information.
 // Should be the same as DWARF register numbers.
 
-enum
-{
-    ehframe_r0 = 0,
-    ehframe_r1,
-    ehframe_r2,
-    ehframe_r3,
-    ehframe_r4,
-    ehframe_r5,
-    ehframe_r6,
-    ehframe_r7,
-    ehframe_r8,
-    ehframe_r9,
-    ehframe_r10,
-    ehframe_r11,
-    ehframe_r12,
-    ehframe_sp,
-    ehframe_lr,
-    ehframe_pc,
-    ehframe_cpsr
+enum {
+  ehframe_r0 = 0,
+  ehframe_r1,
+  ehframe_r2,
+  ehframe_r3,
+  ehframe_r4,
+  ehframe_r5,
+  ehframe_r6,
+  ehframe_r7,
+  ehframe_r8,
+  ehframe_r9,
+  ehframe_r10,
+  ehframe_r11,
+  ehframe_r12,
+  ehframe_sp,
+  ehframe_lr,
+  ehframe_pc,
+  ehframe_cpsr
 };
 
 #endif // utility_ARM_ehframe_Registers_h_
-

Modified: lldb/trunk/source/Utility/ConvertEnum.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ConvertEnum.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/ConvertEnum.cpp (original)
+++ lldb/trunk/source/Utility/ConvertEnum.cpp Tue Sep  6 15:57:50 2016
@@ -11,114 +11,108 @@
 using namespace lldb;
 using namespace lldb_private;
 
-const char *
-lldb_private::GetVoteAsCString(Vote vote)
-{
-    switch (vote)
-    {
-        case eVoteNo:
-            return "no";
-        case eVoteNoOpinion:
-            return "no opinion";
-        case eVoteYes:
-            return "yes";
-    }
-    return "invalid";
+const char *lldb_private::GetVoteAsCString(Vote vote) {
+  switch (vote) {
+  case eVoteNo:
+    return "no";
+  case eVoteNoOpinion:
+    return "no opinion";
+  case eVoteYes:
+    return "yes";
+  }
+  return "invalid";
 }
 
-const char *
-lldb_private::GetSectionTypeAsCString(lldb::SectionType sect_type)
-{
-    switch (sect_type)
-    {
-        case eSectionTypeInvalid:
-            return "invalid";
-        case eSectionTypeCode:
-            return "code";
-        case eSectionTypeContainer:
-            return "container";
-        case eSectionTypeData:
-            return "data";
-        case eSectionTypeDataCString:
-            return "data-cstr";
-        case eSectionTypeDataCStringPointers:
-            return "data-cstr-ptr";
-        case eSectionTypeDataSymbolAddress:
-            return "data-symbol-addr";
-        case eSectionTypeData4:
-            return "data-4-byte";
-        case eSectionTypeData8:
-            return "data-8-byte";
-        case eSectionTypeData16:
-            return "data-16-byte";
-        case eSectionTypeDataPointers:
-            return "data-ptrs";
-        case eSectionTypeDebug:
-            return "debug";
-        case eSectionTypeZeroFill:
-            return "zero-fill";
-        case eSectionTypeDataObjCMessageRefs:
-            return "objc-message-refs";
-        case eSectionTypeDataObjCCFStrings:
-            return "objc-cfstrings";
-        case eSectionTypeDWARFDebugAbbrev:
-            return "dwarf-abbrev";
-        case eSectionTypeDWARFDebugAddr:
-            return "dwarf-addr";
-        case eSectionTypeDWARFDebugAranges:
-            return "dwarf-aranges";
-        case eSectionTypeDWARFDebugFrame:
-            return "dwarf-frame";
-        case eSectionTypeDWARFDebugInfo:
-            return "dwarf-info";
-        case eSectionTypeDWARFDebugLine:
-            return "dwarf-line";
-        case eSectionTypeDWARFDebugLoc:
-            return "dwarf-loc";
-        case eSectionTypeDWARFDebugMacInfo:
-            return "dwarf-macinfo";
-        case eSectionTypeDWARFDebugMacro:
-            return "dwarf-macro";
-        case eSectionTypeDWARFDebugPubNames:
-            return "dwarf-pubnames";
-        case eSectionTypeDWARFDebugPubTypes:
-            return "dwarf-pubtypes";
-        case eSectionTypeDWARFDebugRanges:
-            return "dwarf-ranges";
-        case eSectionTypeDWARFDebugStr:
-            return "dwarf-str";
-        case eSectionTypeDWARFDebugStrOffsets:
-            return "dwarf-str-offsets";
-        case eSectionTypeELFSymbolTable:
-            return "elf-symbol-table";
-        case eSectionTypeELFDynamicSymbols:
-            return "elf-dynamic-symbols";
-        case eSectionTypeELFRelocationEntries:
-            return "elf-relocation-entries";
-        case eSectionTypeELFDynamicLinkInfo:
-            return "elf-dynamic-link-info";
-        case eSectionTypeDWARFAppleNames:
-            return "apple-names";
-        case eSectionTypeDWARFAppleTypes:
-            return "apple-types";
-        case eSectionTypeDWARFAppleNamespaces:
-            return "apple-namespaces";
-        case eSectionTypeDWARFAppleObjC:
-            return "apple-objc";
-        case eSectionTypeEHFrame:
-            return "eh-frame";
-        case eSectionTypeARMexidx:
-            return "ARM.exidx";
-        case eSectionTypeARMextab:
-            return "ARM.extab";
-        case eSectionTypeCompactUnwind:
-            return "compact-unwind";
-        case eSectionTypeGoSymtab:
-            return "go-symtab";
-        case eSectionTypeAbsoluteAddress:
-            return "absolute";
-        case eSectionTypeOther:
-            return "regular";
-    }
-    return "unknown";
+const char *lldb_private::GetSectionTypeAsCString(lldb::SectionType sect_type) {
+  switch (sect_type) {
+  case eSectionTypeInvalid:
+    return "invalid";
+  case eSectionTypeCode:
+    return "code";
+  case eSectionTypeContainer:
+    return "container";
+  case eSectionTypeData:
+    return "data";
+  case eSectionTypeDataCString:
+    return "data-cstr";
+  case eSectionTypeDataCStringPointers:
+    return "data-cstr-ptr";
+  case eSectionTypeDataSymbolAddress:
+    return "data-symbol-addr";
+  case eSectionTypeData4:
+    return "data-4-byte";
+  case eSectionTypeData8:
+    return "data-8-byte";
+  case eSectionTypeData16:
+    return "data-16-byte";
+  case eSectionTypeDataPointers:
+    return "data-ptrs";
+  case eSectionTypeDebug:
+    return "debug";
+  case eSectionTypeZeroFill:
+    return "zero-fill";
+  case eSectionTypeDataObjCMessageRefs:
+    return "objc-message-refs";
+  case eSectionTypeDataObjCCFStrings:
+    return "objc-cfstrings";
+  case eSectionTypeDWARFDebugAbbrev:
+    return "dwarf-abbrev";
+  case eSectionTypeDWARFDebugAddr:
+    return "dwarf-addr";
+  case eSectionTypeDWARFDebugAranges:
+    return "dwarf-aranges";
+  case eSectionTypeDWARFDebugFrame:
+    return "dwarf-frame";
+  case eSectionTypeDWARFDebugInfo:
+    return "dwarf-info";
+  case eSectionTypeDWARFDebugLine:
+    return "dwarf-line";
+  case eSectionTypeDWARFDebugLoc:
+    return "dwarf-loc";
+  case eSectionTypeDWARFDebugMacInfo:
+    return "dwarf-macinfo";
+  case eSectionTypeDWARFDebugMacro:
+    return "dwarf-macro";
+  case eSectionTypeDWARFDebugPubNames:
+    return "dwarf-pubnames";
+  case eSectionTypeDWARFDebugPubTypes:
+    return "dwarf-pubtypes";
+  case eSectionTypeDWARFDebugRanges:
+    return "dwarf-ranges";
+  case eSectionTypeDWARFDebugStr:
+    return "dwarf-str";
+  case eSectionTypeDWARFDebugStrOffsets:
+    return "dwarf-str-offsets";
+  case eSectionTypeELFSymbolTable:
+    return "elf-symbol-table";
+  case eSectionTypeELFDynamicSymbols:
+    return "elf-dynamic-symbols";
+  case eSectionTypeELFRelocationEntries:
+    return "elf-relocation-entries";
+  case eSectionTypeELFDynamicLinkInfo:
+    return "elf-dynamic-link-info";
+  case eSectionTypeDWARFAppleNames:
+    return "apple-names";
+  case eSectionTypeDWARFAppleTypes:
+    return "apple-types";
+  case eSectionTypeDWARFAppleNamespaces:
+    return "apple-namespaces";
+  case eSectionTypeDWARFAppleObjC:
+    return "apple-objc";
+  case eSectionTypeEHFrame:
+    return "eh-frame";
+  case eSectionTypeARMexidx:
+    return "ARM.exidx";
+  case eSectionTypeARMextab:
+    return "ARM.extab";
+  case eSectionTypeCompactUnwind:
+    return "compact-unwind";
+  case eSectionTypeGoSymtab:
+    return "go-symtab";
+  case eSectionTypeAbsoluteAddress:
+    return "absolute";
+  case eSectionTypeOther:
+    return "regular";
+  }
+  return "unknown";
 }

Modified: lldb/trunk/source/Utility/JSON.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/JSON.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/JSON.cpp (original)
+++ lldb/trunk/source/Utility/JSON.cpp Tue Sep  6 15:57:50 2016
@@ -9,685 +9,542 @@
 
 #include "lldb/Utility/JSON.h"
 
-#include <limits.h>
 #include "lldb/Core/StreamString.h"
 #include "lldb/Host/StringConvert.h"
 #include "llvm/Support/ErrorHandling.h"
+#include <limits.h>
 
 using namespace lldb_private;
 
-std::string
-JSONString::json_string_quote_metachars (const std::string &s)
-{
-    if (s.find('"') == std::string::npos)
-        return s;
-    
-    std::string output;
-    const size_t s_size = s.size();
-    const char *s_chars = s.c_str();
-    for (size_t i = 0; i < s_size; i++)
-    {
-        unsigned char ch = *(s_chars + i);
-        if (ch == '"')
-        {
-            output.push_back ('\\');
-        }
-        output.push_back (ch);
-    }
-    return output;
-}
-
-JSONString::JSONString () :
-    JSONValue(JSONValue::Kind::String),
-    m_data()
-{
-}
-
-JSONString::JSONString (const char* s) :
-    JSONValue(JSONValue::Kind::String),
-    m_data(s ? s : "")
-{
-}
-
-JSONString::JSONString (const std::string& s) :
-    JSONValue(JSONValue::Kind::String),
-    m_data(s)
-{
-}
-
-void
-JSONString::Write (Stream& s)
-{
-    s.Printf("\"%s\"", json_string_quote_metachars(m_data).c_str());
-}
-
-uint64_t
-JSONNumber::GetAsUnsigned() const
-{
-    switch (m_data_type)
-    {
-        case DataType::Unsigned:
-            return m_data.m_unsigned;
-        case DataType::Signed:
-            return (uint64_t)m_data.m_signed;
-        case DataType::Double:
-            return (uint64_t)m_data.m_double;
-    }
-    llvm_unreachable("Unhandled data type");
-}
-
-int64_t
-JSONNumber::GetAsSigned() const
-{
-    switch (m_data_type)
-    {
-        case DataType::Unsigned:
-            return (int64_t)m_data.m_unsigned;
-        case DataType::Signed:
-            return m_data.m_signed;
-        case DataType::Double:
-            return (int64_t)m_data.m_double;
-    }
-    llvm_unreachable("Unhandled data type");
-}
-
-double
-JSONNumber::GetAsDouble() const
-{
-    switch (m_data_type)
-    {
-        case DataType::Unsigned:
-            return (double)m_data.m_unsigned;
-        case DataType::Signed:
-            return (double)m_data.m_signed;
-        case DataType::Double:
-            return m_data.m_double;
-    }
-    llvm_unreachable("Unhandled data type");
-}
-
-void
-JSONNumber::Write (Stream& s)
-{
-    switch (m_data_type)
-    {
-        case DataType::Unsigned:
-            s.Printf("%" PRIu64, m_data.m_unsigned);
-            break;
-        case DataType::Signed:
-            s.Printf("%" PRId64, m_data.m_signed);
-            break;
-        case DataType::Double:
-            s.Printf("%g", m_data.m_double);
-            break;
-    }
-}
-
-JSONTrue::JSONTrue () :
-    JSONValue(JSONValue::Kind::True)
-{
-}
-
-void
-JSONTrue::Write(Stream& s)
-{
-    s.Printf("true");
-}
-
-JSONFalse::JSONFalse () :
-    JSONValue(JSONValue::Kind::False)
-{
-}
-
-void
-JSONFalse::Write(Stream& s)
-{
-    s.Printf("false");
+std::string JSONString::json_string_quote_metachars(const std::string &s) {
+  if (s.find('"') == std::string::npos)
+    return s;
+
+  std::string output;
+  const size_t s_size = s.size();
+  const char *s_chars = s.c_str();
+  for (size_t i = 0; i < s_size; i++) {
+    unsigned char ch = *(s_chars + i);
+    if (ch == '"') {
+      output.push_back('\\');
+    }
+    output.push_back(ch);
+  }
+  return output;
+}
+
+JSONString::JSONString() : JSONValue(JSONValue::Kind::String), m_data() {}
+
+JSONString::JSONString(const char *s)
+    : JSONValue(JSONValue::Kind::String), m_data(s ? s : "") {}
+
+JSONString::JSONString(const std::string &s)
+    : JSONValue(JSONValue::Kind::String), m_data(s) {}
+
+void JSONString::Write(Stream &s) {
+  s.Printf("\"%s\"", json_string_quote_metachars(m_data).c_str());
+}
+
+uint64_t JSONNumber::GetAsUnsigned() const {
+  switch (m_data_type) {
+  case DataType::Unsigned:
+    return m_data.m_unsigned;
+  case DataType::Signed:
+    return (uint64_t)m_data.m_signed;
+  case DataType::Double:
+    return (uint64_t)m_data.m_double;
+  }
+  llvm_unreachable("Unhandled data type");
+}
+
+int64_t JSONNumber::GetAsSigned() const {
+  switch (m_data_type) {
+  case DataType::Unsigned:
+    return (int64_t)m_data.m_unsigned;
+  case DataType::Signed:
+    return m_data.m_signed;
+  case DataType::Double:
+    return (int64_t)m_data.m_double;
+  }
+  llvm_unreachable("Unhandled data type");
+}
+
+double JSONNumber::GetAsDouble() const {
+  switch (m_data_type) {
+  case DataType::Unsigned:
+    return (double)m_data.m_unsigned;
+  case DataType::Signed:
+    return (double)m_data.m_signed;
+  case DataType::Double:
+    return m_data.m_double;
+  }
+  llvm_unreachable("Unhandled data type");
+}
+
+void JSONNumber::Write(Stream &s) {
+  switch (m_data_type) {
+  case DataType::Unsigned:
+    s.Printf("%" PRIu64, m_data.m_unsigned);
+    break;
+  case DataType::Signed:
+    s.Printf("%" PRId64, m_data.m_signed);
+    break;
+  case DataType::Double:
+    s.Printf("%g", m_data.m_double);
+    break;
+  }
+}
+
+JSONTrue::JSONTrue() : JSONValue(JSONValue::Kind::True) {}
+
+void JSONTrue::Write(Stream &s) { s.Printf("true"); }
+
+JSONFalse::JSONFalse() : JSONValue(JSONValue::Kind::False) {}
+
+void JSONFalse::Write(Stream &s) { s.Printf("false"); }
+
+JSONNull::JSONNull() : JSONValue(JSONValue::Kind::Null) {}
+
+void JSONNull::Write(Stream &s) { s.Printf("null"); }
+
+JSONObject::JSONObject() : JSONValue(JSONValue::Kind::Object) {}
+
+void JSONObject::Write(Stream &s) {
+  bool first = true;
+  s.PutChar('{');
+  auto iter = m_elements.begin(), end = m_elements.end();
+  for (; iter != end; iter++) {
+    if (first)
+      first = false;
+    else
+      s.PutChar(',');
+    JSONString key(iter->first);
+    JSONValue::SP value(iter->second);
+    key.Write(s);
+    s.PutChar(':');
+    value->Write(s);
+  }
+  s.PutChar('}');
 }
 
-JSONNull::JSONNull () :
-    JSONValue(JSONValue::Kind::Null)
-{
-}
-
-void
-JSONNull::Write(Stream& s)
-{
-    s.Printf("null");
-}
-
-JSONObject::JSONObject () :
-    JSONValue(JSONValue::Kind::Object)
-{
+bool JSONObject::SetObject(const std::string &key, JSONValue::SP value) {
+  if (key.empty() || nullptr == value.get())
+    return false;
+  m_elements[key] = value;
+  return true;
 }
 
-void
-JSONObject::Write (Stream& s)
-{
-    bool first = true;
-    s.PutChar('{');
-    auto iter = m_elements.begin(), end = m_elements.end();
-    for (;iter != end; iter++)
-    {
-        if (first)
-            first = false;
-        else
-            s.PutChar(',');
-        JSONString key(iter->first);
-        JSONValue::SP value(iter->second);
-        key.Write(s);
-        s.PutChar(':');
-        value->Write(s);
-    }
-    s.PutChar('}');
+JSONValue::SP JSONObject::GetObject(const std::string &key) {
+  auto iter = m_elements.find(key), end = m_elements.end();
+  if (iter == end)
+    return JSONValue::SP();
+  return iter->second;
 }
 
-bool
-JSONObject::SetObject (const std::string& key,
-                       JSONValue::SP value)
-{
-    if (key.empty() || nullptr == value.get())
-        return false;
-    m_elements[key] = value;
-    return true;
-}
+JSONArray::JSONArray() : JSONValue(JSONValue::Kind::Array) {}
 
-JSONValue::SP
-JSONObject::GetObject (const std::string& key)
-{
-    auto iter = m_elements.find(key), end = m_elements.end();
-    if (iter == end)
-        return JSONValue::SP();
-    return iter->second;
-}
-
-JSONArray::JSONArray () :
-    JSONValue(JSONValue::Kind::Array)
-{
-}
-
-void
-JSONArray::Write (Stream& s)
-{
-    bool first = true;
-    s.PutChar('[');
-    auto iter = m_elements.begin(), end = m_elements.end();
-    for (;iter != end; iter++)
-    {
-        if (first)
-            first = false;
-        else
-            s.PutChar(',');
-        (*iter)->Write(s);
-    }
-    s.PutChar(']');
+void JSONArray::Write(Stream &s) {
+  bool first = true;
+  s.PutChar('[');
+  auto iter = m_elements.begin(), end = m_elements.end();
+  for (; iter != end; iter++) {
+    if (first)
+      first = false;
+    else
+      s.PutChar(',');
+    (*iter)->Write(s);
+  }
+  s.PutChar(']');
 }
 
-bool
-JSONArray::SetObject (Index i,
-                      JSONValue::SP value)
-{
-    if (value.get() == nullptr)
-        return false;
-    if (i < m_elements.size())
-    {
-        m_elements[i] = value;
-        return true;
-    }
-    if (i == m_elements.size())
-    {
-        m_elements.push_back(value);
-        return true;
-    }
+bool JSONArray::SetObject(Index i, JSONValue::SP value) {
+  if (value.get() == nullptr)
     return false;
-}
-
-bool
-JSONArray::AppendObject (JSONValue::SP value)
-{
-    if (value.get() == nullptr)
-        return false;
+  if (i < m_elements.size()) {
+    m_elements[i] = value;
+    return true;
+  }
+  if (i == m_elements.size()) {
     m_elements.push_back(value);
     return true;
+  }
+  return false;
 }
 
-JSONValue::SP
-JSONArray::GetObject (Index i)
-{
-    if (i < m_elements.size())
-        return m_elements[i];
-    return JSONValue::SP();
-}
-
-JSONArray::Size
-JSONArray::GetNumElements ()
-{
-    return m_elements.size();
-}
-
-
-JSONParser::JSONParser (const char *cstr) :
-    StringExtractor(cstr)
-{
-}
-
-JSONParser::Token
-JSONParser::GetToken (std::string &value)
-{
-    StreamString error;
-
-    value.clear();
-    SkipSpaces ();
-    const uint64_t start_index = m_index;
-    const char ch = GetChar();
-    switch (ch)
-    {
-        case '{': return Token::ObjectStart;
-        case '}': return Token::ObjectEnd;
-        case '[': return Token::ArrayStart;
-        case ']': return Token::ArrayEnd;
-        case ',': return Token::Comma;
-        case ':': return Token::Colon;
-        case '\0': return Token::EndOfFile;
-        case 't':
-            if (GetChar() == 'r')
-                if (GetChar() == 'u')
-                    if (GetChar() == 'e')
-                        return Token::True;
-            break;
-
-        case 'f':
-            if (GetChar() == 'a')
-                if (GetChar() == 'l')
-                    if (GetChar() == 's')
-                        if (GetChar() == 'e')
-                            return Token::False;
-            break;
-
-        case 'n':
-            if (GetChar() == 'u')
-                if (GetChar() == 'l')
-                    if (GetChar() == 'l')
-                        return Token::Null;
-            break;
-
-        case '"':
-            {
-                while (1)
-                {
-                    bool was_escaped = false;
-                    int escaped_ch = GetEscapedChar(was_escaped);
-                    if (escaped_ch == -1)
-                    {
-                        error.Printf("error: an error occurred getting a character from offset %" PRIu64, start_index);
-                        value = std::move(error.GetString());
-                        return Token::Error;
-
-                    }
-                    else
-                    {
-                        const bool is_end_quote = escaped_ch == '"';
-                        const bool is_null = escaped_ch == 0;
-                        if (was_escaped || (!is_end_quote && !is_null))
-                        {
-                            if (CHAR_MIN <= escaped_ch && escaped_ch <= CHAR_MAX)
-                            {
-                                value.append(1, (char)escaped_ch);
-                            }
-                            else
-                            {
-                                error.Printf("error: wide character support is needed for unicode character 0x%4.4x at offset %" PRIu64, escaped_ch, start_index);
-                                value = std::move(error.GetString());
-                                return Token::Error;
-                            }
-                        }
-                        else if (is_end_quote)
-                        {
-                            return Token::String;
-                        }
-                        else if (is_null)
-                        {
-                            value = "error: missing end quote for string";
-                            return Token::Error;
-                        }
-                    }
-                }
-            }
-            break;
-
-        case '-':
-        case '0':
-        case '1':
-        case '2':
-        case '3':
-        case '4':
-        case '5':
-        case '6':
-        case '7':
-        case '8':
-        case '9':
-            {
-                bool done = false;
-                bool got_decimal_point = false;
-                uint64_t exp_index = 0;
-                bool got_int_digits = (ch >= '0') && (ch <= '9');
-                bool got_frac_digits = false;
-                bool got_exp_digits = false;
-                while (!done)
-                {
-                    const char next_ch = PeekChar();
-                    switch (next_ch)
-                    {
-                        case '0':
-                        case '1':
-                        case '2':
-                        case '3':
-                        case '4':
-                        case '5':
-                        case '6':
-                        case '7':
-                        case '8':
-                        case '9':
-                            if (exp_index != 0)
-                            {
-                                got_exp_digits = true;
-                            }
-                            else if (got_decimal_point)
-                            {
-                                got_frac_digits = true;
-                            }
-                            else
-                            {
-                                got_int_digits = true;
-                            }
-                            ++m_index; // Skip this character
-                            break;
-
-                        case '.':
-                            if (got_decimal_point)
-                            {
-                                error.Printf("error: extra decimal point found at offset %" PRIu64, start_index);
-                                value = std::move(error.GetString());
-                                return Token::Error;
-                            }
-                            else
-                            {
-                                got_decimal_point = true;
-                                ++m_index; // Skip this character
-                            }
-                            break;
-
-                        case 'e':
-                        case 'E':
-                            if (exp_index != 0)
-                            {
-                                error.Printf("error: extra exponent character found at offset %" PRIu64, start_index);
-                                value = std::move(error.GetString());
-                                return Token::Error;
-                            }
-                            else
-                            {
-                                exp_index = m_index;
-                                ++m_index; // Skip this character
-                            }
-                            break;
-
-                        case '+':
-                        case '-':
-                            // The '+' and '-' can only come after an exponent character...
-                            if (exp_index == m_index - 1)
-                            {
-                                ++m_index; // Skip the exponent sign character
-                            }
-                            else
-                            {
-                                error.Printf("error: unexpected %c character at offset %" PRIu64, next_ch, start_index);
-                                value = std::move(error.GetString());
-                                return Token::Error;
-                            }
-                            break;
-
-                        default:
-                            done = true;
-                            break;
-                    }
-                }
-
-                if (m_index > start_index)
-                {
-                    value = m_packet.substr(start_index, m_index - start_index);
-                    if (got_decimal_point)
-                    {
-                        if (exp_index != 0)
-                        {
-                            // We have an exponent, make sure we got exponent digits
-                            if (got_exp_digits)
-                            {
-                                return Token::Float;
-                            }
-                            else
-                            {
-                                error.Printf("error: got exponent character but no exponent digits at offset in float value \"%s\"", value.c_str());
-                                value = std::move(error.GetString());
-                                return Token::Error;
-                            }
-                        }
-                        else
-                        {
-                            // No exponent, but we need at least one decimal after the decimal point
-                            if (got_frac_digits)
-                            {
-                                return Token::Float;
-                            }
-                            else
-                            {
-                                error.Printf("error: no digits after decimal point \"%s\"", value.c_str());
-                                value = std::move(error.GetString());
-                                return Token::Error;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        // No decimal point
-                        if (got_int_digits)
-                        {
-                            // We need at least some integer digits to make an integer
-                            return Token::Integer;
-                        }
-                        else
-                        {
-                            error.Printf("error: no digits negate sign \"%s\"", value.c_str());
-                            value = std::move(error.GetString());
-                            return Token::Error;
-                        }
-                    }
-                }
-                else
-                {
-                    error.Printf("error: invalid number found at offset %" PRIu64, start_index);
-                    value = std::move(error.GetString());
-                    return Token::Error;
-                }
-            }
-            break;
-        default:
-            break;
-    }
-    error.Printf("error: failed to parse token at offset %" PRIu64 " (around character '%c')", start_index, ch);
-    value = std::move(error.GetString());
-    return Token::Error;
-}
-
-int
-JSONParser::GetEscapedChar(bool &was_escaped)
-{
-    was_escaped = false;
-    const char ch = GetChar();
-    if (ch == '\\')
-    {
-        was_escaped = true;
-        const char ch2 = GetChar();
-        switch (ch2)
-        {
-            case '"':
-            case '\\':
-            case '/':
-            default:
-                break;
-
-            case 'b': return '\b';
-            case 'f': return '\f';
-            case 'n': return '\n';
-            case 'r': return '\r';
-            case 't': return '\t';
-            case 'u':
-                {
-                    const int hi_byte = DecodeHexU8();
-                    const int lo_byte = DecodeHexU8();
-                    if (hi_byte >=0 && lo_byte >= 0)
-                        return hi_byte << 8 | lo_byte;
-                    return -1;
-                }
-                break;
-        }
-        return ch2;
-    }
-    return ch;
-}
-
-JSONValue::SP
-JSONParser::ParseJSONObject ()
-{
-    // The "JSONParser::Token::ObjectStart" token should have already been consumed
-    // by the time this function is called
-    std::unique_ptr<JSONObject> dict_up(new JSONObject());
-
-    std::string value;
-    std::string key;
-    while (1)
-    {
-        JSONParser::Token token = GetToken(value);
-
-        if (token == JSONParser::Token::String)
-        {
-            key.swap(value);
-            token = GetToken(value);
-            if (token == JSONParser::Token::Colon)
-            {
-                JSONValue::SP value_sp = ParseJSONValue();
-                if (value_sp)
-                    dict_up->SetObject(key, value_sp);
-                else
-                    break;
-            }
-        }
-        else if (token == JSONParser::Token::ObjectEnd)
-        {
-            return JSONValue::SP(dict_up.release());
-        }
-        else if (token == JSONParser::Token::Comma)
-        {
-            continue;
-        }
-        else
-        {
-            break;
-        }
-    }
-    return JSONValue::SP();
+bool JSONArray::AppendObject(JSONValue::SP value) {
+  if (value.get() == nullptr)
+    return false;
+  m_elements.push_back(value);
+  return true;
 }
 
-JSONValue::SP
-JSONParser::ParseJSONArray ()
-{
-    // The "JSONParser::Token::ObjectStart" token should have already been consumed
-    // by the time this function is called
-    std::unique_ptr<JSONArray> array_up(new JSONArray());
-
-    std::string value;
-    std::string key;
-    while (1)
-    {
+JSONValue::SP JSONArray::GetObject(Index i) {
+  if (i < m_elements.size())
+    return m_elements[i];
+  return JSONValue::SP();
+}
+
+JSONArray::Size JSONArray::GetNumElements() { return m_elements.size(); }
+
+JSONParser::JSONParser(const char *cstr) : StringExtractor(cstr) {}
+
+JSONParser::Token JSONParser::GetToken(std::string &value) {
+  StreamString error;
+
+  value.clear();
+  SkipSpaces();
+  const uint64_t start_index = m_index;
+  const char ch = GetChar();
+  switch (ch) {
+  case '{':
+    return Token::ObjectStart;
+  case '}':
+    return Token::ObjectEnd;
+  case '[':
+    return Token::ArrayStart;
+  case ']':
+    return Token::ArrayEnd;
+  case ',':
+    return Token::Comma;
+  case ':':
+    return Token::Colon;
+  case '\0':
+    return Token::EndOfFile;
+  case 't':
+    if (GetChar() == 'r')
+      if (GetChar() == 'u')
+        if (GetChar() == 'e')
+          return Token::True;
+    break;
+
+  case 'f':
+    if (GetChar() == 'a')
+      if (GetChar() == 'l')
+        if (GetChar() == 's')
+          if (GetChar() == 'e')
+            return Token::False;
+    break;
+
+  case 'n':
+    if (GetChar() == 'u')
+      if (GetChar() == 'l')
+        if (GetChar() == 'l')
+          return Token::Null;
+    break;
+
+  case '"': {
+    while (1) {
+      bool was_escaped = false;
+      int escaped_ch = GetEscapedChar(was_escaped);
+      if (escaped_ch == -1) {
+        error.Printf(
+            "error: an error occurred getting a character from offset %" PRIu64,
+            start_index);
+        value = std::move(error.GetString());
+        return Token::Error;
+
+      } else {
+        const bool is_end_quote = escaped_ch == '"';
+        const bool is_null = escaped_ch == 0;
+        if (was_escaped || (!is_end_quote && !is_null)) {
+          if (CHAR_MIN <= escaped_ch && escaped_ch <= CHAR_MAX) {
+            value.append(1, (char)escaped_ch);
+          } else {
+            error.Printf("error: wide character support is needed for unicode "
+                         "character 0x%4.4x at offset %" PRIu64,
+                         escaped_ch, start_index);
+            value = std::move(error.GetString());
+            return Token::Error;
+          }
+        } else if (is_end_quote) {
+          return Token::String;
+        } else if (is_null) {
+          value = "error: missing end quote for string";
+          return Token::Error;
+        }
+      }
+    }
+  } break;
+
+  case '-':
+  case '0':
+  case '1':
+  case '2':
+  case '3':
+  case '4':
+  case '5':
+  case '6':
+  case '7':
+  case '8':
+  case '9': {
+    bool done = false;
+    bool got_decimal_point = false;
+    uint64_t exp_index = 0;
+    bool got_int_digits = (ch >= '0') && (ch <= '9');
+    bool got_frac_digits = false;
+    bool got_exp_digits = false;
+    while (!done) {
+      const char next_ch = PeekChar();
+      switch (next_ch) {
+      case '0':
+      case '1':
+      case '2':
+      case '3':
+      case '4':
+      case '5':
+      case '6':
+      case '7':
+      case '8':
+      case '9':
+        if (exp_index != 0) {
+          got_exp_digits = true;
+        } else if (got_decimal_point) {
+          got_frac_digits = true;
+        } else {
+          got_int_digits = true;
+        }
+        ++m_index; // Skip this character
+        break;
+
+      case '.':
+        if (got_decimal_point) {
+          error.Printf("error: extra decimal point found at offset %" PRIu64,
+                       start_index);
+          value = std::move(error.GetString());
+          return Token::Error;
+        } else {
+          got_decimal_point = true;
+          ++m_index; // Skip this character
+        }
+        break;
+
+      case 'e':
+      case 'E':
+        if (exp_index != 0) {
+          error.Printf(
+              "error: extra exponent character found at offset %" PRIu64,
+              start_index);
+          value = std::move(error.GetString());
+          return Token::Error;
+        } else {
+          exp_index = m_index;
+          ++m_index; // Skip this character
+        }
+        break;
+
+      case '+':
+      case '-':
+        // The '+' and '-' can only come after an exponent character...
+        if (exp_index == m_index - 1) {
+          ++m_index; // Skip the exponent sign character
+        } else {
+          error.Printf("error: unexpected %c character at offset %" PRIu64,
+                       next_ch, start_index);
+          value = std::move(error.GetString());
+          return Token::Error;
+        }
+        break;
+
+      default:
+        done = true;
+        break;
+      }
+    }
+
+    if (m_index > start_index) {
+      value = m_packet.substr(start_index, m_index - start_index);
+      if (got_decimal_point) {
+        if (exp_index != 0) {
+          // We have an exponent, make sure we got exponent digits
+          if (got_exp_digits) {
+            return Token::Float;
+          } else {
+            error.Printf("error: got exponent character but no exponent digits "
+                         "at offset in float value \"%s\"",
+                         value.c_str());
+            value = std::move(error.GetString());
+            return Token::Error;
+          }
+        } else {
+          // No exponent, but we need at least one decimal after the decimal
+          // point
+          if (got_frac_digits) {
+            return Token::Float;
+          } else {
+            error.Printf("error: no digits after decimal point \"%s\"",
+                         value.c_str());
+            value = std::move(error.GetString());
+            return Token::Error;
+          }
+        }
+      } else {
+        // No decimal point
+        if (got_int_digits) {
+          // We need at least some integer digits to make an integer
+          return Token::Integer;
+        } else {
+          error.Printf("error: no digits negate sign \"%s\"", value.c_str());
+          value = std::move(error.GetString());
+          return Token::Error;
+        }
+      }
+    } else {
+      error.Printf("error: invalid number found at offset %" PRIu64,
+                   start_index);
+      value = std::move(error.GetString());
+      return Token::Error;
+    }
+  } break;
+  default:
+    break;
+  }
+  error.Printf("error: failed to parse token at offset %" PRIu64
+               " (around character '%c')",
+               start_index, ch);
+  value = std::move(error.GetString());
+  return Token::Error;
+}
+
+int JSONParser::GetEscapedChar(bool &was_escaped) {
+  was_escaped = false;
+  const char ch = GetChar();
+  if (ch == '\\') {
+    was_escaped = true;
+    const char ch2 = GetChar();
+    switch (ch2) {
+    case '"':
+    case '\\':
+    case '/':
+    default:
+      break;
+
+    case 'b':
+      return '\b';
+    case 'f':
+      return '\f';
+    case 'n':
+      return '\n';
+    case 'r':
+      return '\r';
+    case 't':
+      return '\t';
+    case 'u': {
+      const int hi_byte = DecodeHexU8();
+      const int lo_byte = DecodeHexU8();
+      if (hi_byte >= 0 && lo_byte >= 0)
+        return hi_byte << 8 | lo_byte;
+      return -1;
+    } break;
+    }
+    return ch2;
+  }
+  return ch;
+}
+
+JSONValue::SP JSONParser::ParseJSONObject() {
+  // The "JSONParser::Token::ObjectStart" token should have already been
+  // consumed
+  // by the time this function is called
+  std::unique_ptr<JSONObject> dict_up(new JSONObject());
+
+  std::string value;
+  std::string key;
+  while (1) {
+    JSONParser::Token token = GetToken(value);
+
+    if (token == JSONParser::Token::String) {
+      key.swap(value);
+      token = GetToken(value);
+      if (token == JSONParser::Token::Colon) {
         JSONValue::SP value_sp = ParseJSONValue();
         if (value_sp)
-            array_up->AppendObject(value_sp);
-        else
-            break;
-
-        JSONParser::Token token = GetToken(value);
-        if (token == JSONParser::Token::Comma)
-        {
-            continue;
-        }
-        else if (token == JSONParser::Token::ArrayEnd)
-        {
-            return JSONValue::SP(array_up.release());
-        }
+          dict_up->SetObject(key, value_sp);
         else
-        {
-            break;
-        }
-    }
-    return JSONValue::SP();
-}
-
-JSONValue::SP
-JSONParser::ParseJSONValue ()
-{
-    std::string value;
-    const JSONParser::Token token = GetToken(value);
-    switch (token)
-    {
-        case JSONParser::Token::ObjectStart:
-            return ParseJSONObject();
-
-        case JSONParser::Token::ArrayStart:
-            return ParseJSONArray();
-
-        case JSONParser::Token::Integer:
-        {
-            if (value.front() == '-')
-            {
-                bool success = false;
-                int64_t sval = StringConvert::ToSInt64(value.c_str(), 0, 0, &success);
-                if (success)
-                    return JSONValue::SP(new JSONNumber(sval));
-            }
-            else
-            {
-                bool success = false;
-                uint64_t uval = StringConvert::ToUInt64(value.c_str(), 0, 0, &success);
-                if (success)
-                    return JSONValue::SP(new JSONNumber(uval));
-            }
-        }
-            break;
-
-        case JSONParser::Token::Float:
-        {
-            bool success = false;
-            double val = StringConvert::ToDouble(value.c_str(), 0.0, &success);
-            if (success)
-                return JSONValue::SP(new JSONNumber(val));
-        }
-            break;
-
-        case JSONParser::Token::String:
-            return JSONValue::SP(new JSONString(value));
-
-        case JSONParser::Token::True:
-            return JSONValue::SP(new JSONTrue());
-
-        case JSONParser::Token::False:
-            return JSONValue::SP(new JSONFalse());
-
-        case JSONParser::Token::Null:
-            return JSONValue::SP(new JSONNull());
-
-        default:
-            break;
-    }
-    return JSONValue::SP();
-    
+          break;
+      }
+    } else if (token == JSONParser::Token::ObjectEnd) {
+      return JSONValue::SP(dict_up.release());
+    } else if (token == JSONParser::Token::Comma) {
+      continue;
+    } else {
+      break;
+    }
+  }
+  return JSONValue::SP();
+}
+
+JSONValue::SP JSONParser::ParseJSONArray() {
+  // The "JSONParser::Token::ObjectStart" token should have already been
+  // consumed
+  // by the time this function is called
+  std::unique_ptr<JSONArray> array_up(new JSONArray());
+
+  std::string value;
+  std::string key;
+  while (1) {
+    JSONValue::SP value_sp = ParseJSONValue();
+    if (value_sp)
+      array_up->AppendObject(value_sp);
+    else
+      break;
+
+    JSONParser::Token token = GetToken(value);
+    if (token == JSONParser::Token::Comma) {
+      continue;
+    } else if (token == JSONParser::Token::ArrayEnd) {
+      return JSONValue::SP(array_up.release());
+    } else {
+      break;
+    }
+  }
+  return JSONValue::SP();
+}
+
+JSONValue::SP JSONParser::ParseJSONValue() {
+  std::string value;
+  const JSONParser::Token token = GetToken(value);
+  switch (token) {
+  case JSONParser::Token::ObjectStart:
+    return ParseJSONObject();
+
+  case JSONParser::Token::ArrayStart:
+    return ParseJSONArray();
+
+  case JSONParser::Token::Integer: {
+    if (value.front() == '-') {
+      bool success = false;
+      int64_t sval = StringConvert::ToSInt64(value.c_str(), 0, 0, &success);
+      if (success)
+        return JSONValue::SP(new JSONNumber(sval));
+    } else {
+      bool success = false;
+      uint64_t uval = StringConvert::ToUInt64(value.c_str(), 0, 0, &success);
+      if (success)
+        return JSONValue::SP(new JSONNumber(uval));
+    }
+  } break;
+
+  case JSONParser::Token::Float: {
+    bool success = false;
+    double val = StringConvert::ToDouble(value.c_str(), 0.0, &success);
+    if (success)
+      return JSONValue::SP(new JSONNumber(val));
+  } break;
+
+  case JSONParser::Token::String:
+    return JSONValue::SP(new JSONString(value));
+
+  case JSONParser::Token::True:
+    return JSONValue::SP(new JSONTrue());
+
+  case JSONParser::Token::False:
+    return JSONValue::SP(new JSONFalse());
+
+  case JSONParser::Token::Null:
+    return JSONValue::SP(new JSONNull());
+
+  default:
+    break;
+  }
+  return JSONValue::SP();
 }

Modified: lldb/trunk/source/Utility/KQueue.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/KQueue.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/KQueue.cpp (original)
+++ lldb/trunk/source/Utility/KQueue.cpp Tue Sep  6 15:57:50 2016
@@ -17,71 +17,60 @@
 
 using namespace lldb_private;
 
-int
-KQueue::GetFD (bool can_create)
-{
-    if (!IsValid () && can_create)
-        m_fd = kqueue();
-    return m_fd;
+int KQueue::GetFD(bool can_create) {
+  if (!IsValid() && can_create)
+    m_fd = kqueue();
+  return m_fd;
 }
 
-int
-KQueue::Close ()
-{
-    const int fd = m_fd;
-    if (fd >= 0)
-    {
-        m_fd = -1;
-        return close(fd);
-    }
-    return 0;
+int KQueue::Close() {
+  const int fd = m_fd;
+  if (fd >= 0) {
+    m_fd = -1;
+    return close(fd);
+  }
+  return 0;
 }
 
-int
-KQueue::WaitForEvents (struct kevent *events, int num_events, Error &error, uint32_t timeout_usec)
-{
-    const int fd_kqueue = GetFD(false);
-    if (fd_kqueue >= 0)
-    {
-        TimeSpecTimeout timeout;
-        const struct timespec *timeout_ptr = timeout.SetRelativeTimeoutMircoSeconds32 (timeout_usec);
-        int result = ::kevent(fd_kqueue, NULL, 0, events, num_events, timeout_ptr);
-        if (result == -1)
-            error.SetErrorToErrno();
-        else
-            error.Clear();
-        return result;
-    }
+int KQueue::WaitForEvents(struct kevent *events, int num_events, Error &error,
+                          uint32_t timeout_usec) {
+  const int fd_kqueue = GetFD(false);
+  if (fd_kqueue >= 0) {
+    TimeSpecTimeout timeout;
+    const struct timespec *timeout_ptr =
+        timeout.SetRelativeTimeoutMircoSeconds32(timeout_usec);
+    int result = ::kevent(fd_kqueue, NULL, 0, events, num_events, timeout_ptr);
+    if (result == -1)
+      error.SetErrorToErrno();
     else
-    {
-        error.SetErrorString("invalid kqueue fd");
-    }
-    return 0;
+      error.Clear();
+    return result;
+  } else {
+    error.SetErrorString("invalid kqueue fd");
+  }
+  return 0;
 }
 
-bool
-KQueue::AddFDEvent (int fd, bool read, bool write, bool vnode)
-{
-    const int fd_kqueue = GetFD(true);
-    if (fd_kqueue >= 0)
-    {
-        struct kevent event;
-        event.ident  = fd;
-        event.filter = 0;
-        if (read)
-            event.filter |= EVFILT_READ;
-        if (write)
-            event.filter |= EVFILT_WRITE;
-        if (vnode)
-            event.filter |= EVFILT_VNODE;
-        event.flags  = EV_ADD | EV_CLEAR;
-        event.fflags = 0;
-        event.data   = 0;
-        event.udata  = NULL;
-        int err = ::kevent(fd_kqueue, &event, 1, NULL, 0, NULL);
-        return err == 0;
-    }
-    return false;
+bool KQueue::AddFDEvent(int fd, bool read, bool write, bool vnode) {
+  const int fd_kqueue = GetFD(true);
+  if (fd_kqueue >= 0) {
+    struct kevent event;
+    event.ident = fd;
+    event.filter = 0;
+    if (read)
+      event.filter |= EVFILT_READ;
+    if (write)
+      event.filter |= EVFILT_WRITE;
+    if (vnode)
+      event.filter |= EVFILT_VNODE;
+    event.flags = EV_ADD | EV_CLEAR;
+    event.fflags = 0;
+    event.data = 0;
+    event.udata = NULL;
+    int err = ::kevent(fd_kqueue, &event, 1, NULL, 0, NULL);
+    return err == 0;
+  }
+  return false;
 }
 
 #endif

Modified: lldb/trunk/source/Utility/KQueue.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/KQueue.h?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/KQueue.h (original)
+++ lldb/trunk/source/Utility/KQueue.h Tue Sep  6 15:57:50 2016
@@ -16,53 +16,34 @@
 
 #ifdef LLDB_USE_KQUEUES
 
-#include <sys/types.h>
 #include <sys/event.h>
 #include <sys/time.h>
+#include <sys/types.h>
 
 #include "lldb/lldb-defines.h"
 
 namespace lldb_private {
 
-class KQueue
-{
+class KQueue {
 public:
-    KQueue() :
-        m_fd(-1)
-    {
-    }
-
-    ~KQueue()
-    {
-        Close();
-    }
-    
-    bool
-    IsValid () const
-    {
-        return m_fd >= 0;
-    }
-
-    int
-    GetFD (bool can_create);
-
-    int
-    Close ();
-
-    bool
-    AddFDEvent (int fd,
-                bool read,
-                bool write,
-                bool vnode);
-
-    int
-    WaitForEvents (struct kevent *events,
-                   int num_events,
-                   Error &error,
-                   uint32_t timeout_usec = UINT32_MAX); // UINT32_MAX means infinite timeout
+  KQueue() : m_fd(-1) {}
+
+  ~KQueue() { Close(); }
+
+  bool IsValid() const { return m_fd >= 0; }
+
+  int GetFD(bool can_create);
+
+  int Close();
+
+  bool AddFDEvent(int fd, bool read, bool write, bool vnode);
+
+  int WaitForEvents(
+      struct kevent *events, int num_events, Error &error,
+      uint32_t timeout_usec = UINT32_MAX); // UINT32_MAX means infinite timeout
 
 protected:
-    int m_fd; // The kqueue fd
+  int m_fd; // The kqueue fd
 };
 
 } // namespace lldb_private

Modified: lldb/trunk/source/Utility/LLDBAssert.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/LLDBAssert.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/LLDBAssert.cpp (original)
+++ lldb/trunk/source/Utility/LLDBAssert.cpp Tue Sep  6 15:57:50 2016
@@ -1,4 +1,5 @@
-//===--------------------- LLDBAssert.cpp --------------------------*- C++ -*-===//
+//===--------------------- LLDBAssert.cpp --------------------------*- C++
+//-*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -10,27 +11,23 @@
 #include "lldb/Utility/LLDBAssert.h"
 
 #include "llvm/Support/Format.h"
-#include "llvm/Support/raw_ostream.h"
 #include "llvm/Support/Signals.h"
+#include "llvm/Support/raw_ostream.h"
 
 using namespace llvm;
 using namespace lldb_private;
 
-void
-lldb_private::lldb_assert (bool expression,
-                           const char* expr_text,
-                           const char* func,
-                           const char* file,
-                           unsigned int line)
-{
-    if (expression)
-        ;
-    else
-    {
-        errs() << format("Assertion failed: (%s), function %s, file %s, line %u\n",
-                   expr_text, func, file, line);
-        errs() << "backtrace leading to the failure:\n";
-        llvm::sys::PrintStackTrace(errs());
-        errs() << "please file a bug report against lldb reporting this failure log, and as many details as possible\n";
-    }
+void lldb_private::lldb_assert(bool expression, const char *expr_text,
+                               const char *func, const char *file,
+                               unsigned int line) {
+  if (expression)
+    ;
+  else {
+    errs() << format("Assertion failed: (%s), function %s, file %s, line %u\n",
+                     expr_text, func, file, line);
+    errs() << "backtrace leading to the failure:\n";
+    llvm::sys::PrintStackTrace(errs());
+    errs() << "please file a bug report against lldb reporting this failure "
+              "log, and as many details as possible\n";
+  }
 }

Modified: lldb/trunk/source/Utility/ModuleCache.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ModuleCache.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/ModuleCache.cpp (original)
+++ lldb/trunk/source/Utility/ModuleCache.cpp Tue Sep  6 15:57:50 2016
@@ -28,311 +28,309 @@ using namespace lldb_private;
 
 namespace {
 
-const char* kModulesSubdir = ".cache";
-const char* kLockDirName = ".lock";
-const char* kTempFileName = ".temp";
-const char* kTempSymFileName = ".symtemp";
-const char* kSymFileExtension = ".sym";
-const char* kFSIllegalChars = "\\/:*?\"<>|";
-
-std::string
-GetEscapedHostname(const char* hostname)
-{
-    std::string result(hostname);
-    size_t size = result.size();
-    for (size_t i = 0; i < size; ++i)
-    {
-        if ((result[i] >=1 && result[i] <= 31) ||
-            strchr(kFSIllegalChars, result[i]) != nullptr)
-            result[i] = '_';
-    }
-    return result;
+const char *kModulesSubdir = ".cache";
+const char *kLockDirName = ".lock";
+const char *kTempFileName = ".temp";
+const char *kTempSymFileName = ".symtemp";
+const char *kSymFileExtension = ".sym";
+const char *kFSIllegalChars = "\\/:*?\"<>|";
+
+std::string GetEscapedHostname(const char *hostname) {
+  std::string result(hostname);
+  size_t size = result.size();
+  for (size_t i = 0; i < size; ++i) {
+    if ((result[i] >= 1 && result[i] <= 31) ||
+        strchr(kFSIllegalChars, result[i]) != nullptr)
+      result[i] = '_';
+  }
+  return result;
 }
 
-class ModuleLock
-{
+class ModuleLock {
 private:
-    File m_file;
-    std::unique_ptr<lldb_private::LockFile> m_lock;
-    FileSpec m_file_spec;
+  File m_file;
+  std::unique_ptr<lldb_private::LockFile> m_lock;
+  FileSpec m_file_spec;
 
 public:
-    ModuleLock (const FileSpec &root_dir_spec, const UUID &uuid, Error& error);
-    void Delete ();
+  ModuleLock(const FileSpec &root_dir_spec, const UUID &uuid, Error &error);
+  void Delete();
 };
 
-FileSpec
-JoinPath (const FileSpec &path1, const char* path2)
-{
-    FileSpec result_spec (path1);
-    result_spec.AppendPathComponent (path2);
-    return result_spec;
-}
-
-Error
-MakeDirectory (const FileSpec &dir_path)
-{
-    if (dir_path.Exists ())
-    {
-        if (!dir_path.IsDirectory ())
-            return Error ("Invalid existing path");
-
-        return Error ();
-    }
-
-    return FileSystem::MakeDirectory(dir_path, eFilePermissionsDirectoryDefault);
-}
-
-FileSpec
-GetModuleDirectory (const FileSpec &root_dir_spec, const UUID &uuid)
-{
-    const auto modules_dir_spec = JoinPath (root_dir_spec, kModulesSubdir);
-    return JoinPath (modules_dir_spec, uuid.GetAsString ().c_str ());
-}
-
-FileSpec
-GetSymbolFileSpec(const FileSpec& module_file_spec)
-{
-    return FileSpec((module_file_spec.GetPath() + kSymFileExtension).c_str(), false);
-}
-
-void
-DeleteExistingModule (const FileSpec &root_dir_spec, const FileSpec &sysroot_module_path_spec)
-{
-    Log *log (GetLogIfAllCategoriesSet (LIBLLDB_LOG_MODULES));
-    UUID module_uuid;
-    {
-        auto module_sp = std::make_shared<Module>(ModuleSpec (sysroot_module_path_spec));
-        module_uuid = module_sp->GetUUID ();
-    }
-
-    if (!module_uuid.IsValid ())
-        return;
-
-    Error error;
-    ModuleLock lock (root_dir_spec,  module_uuid, error);
-    if (error.Fail ())
-    {
-        if (log)
-            log->Printf ("Failed to lock module %s: %s",
-                         module_uuid.GetAsString ().c_str (),
-                         error.AsCString ());
-    }
-
-    auto link_count = FileSystem::GetHardlinkCount (sysroot_module_path_spec);
-    if (link_count == -1)
-        return;
-
-    if (link_count > 2)  // module is referred by other hosts.
-        return;
-
-    const auto module_spec_dir = GetModuleDirectory (root_dir_spec, module_uuid);
-    FileSystem::DeleteDirectory (module_spec_dir, true);
-    lock.Delete();
-}
-
-void
-DecrementRefExistingModule (const FileSpec &root_dir_spec, const FileSpec &sysroot_module_path_spec)
-{
-    // Remove $platform/.cache/$uuid folder if nobody else references it.
-    DeleteExistingModule (root_dir_spec, sysroot_module_path_spec);
-
-    // Remove sysroot link.
-    FileSystem::Unlink (sysroot_module_path_spec);
-
-    FileSpec symfile_spec = GetSymbolFileSpec (sysroot_module_path_spec);
-    if (symfile_spec.Exists ())  // delete module's symbol file if exists.
-        FileSystem::Unlink (symfile_spec);
-}
-
-Error
-CreateHostSysRootModuleLink (const FileSpec &root_dir_spec, const char *hostname,
-                             const FileSpec &platform_module_spec,
-                             const FileSpec &local_module_spec,
-                             bool delete_existing)
-{
-    const auto sysroot_module_path_spec = JoinPath (
-        JoinPath (root_dir_spec, hostname), platform_module_spec.GetPath ().c_str ());
-    if (sysroot_module_path_spec.Exists())
-    {
-        if (!delete_existing)
-            return Error ();
-
-        DecrementRefExistingModule (root_dir_spec, sysroot_module_path_spec);
-    }
-
-    const auto error = MakeDirectory (FileSpec (sysroot_module_path_spec.GetDirectory ().AsCString (), false));
-    if (error.Fail ())
-        return error;
-
-    return FileSystem::Hardlink(sysroot_module_path_spec, local_module_spec);
-}
-
-}  // namespace
-
-ModuleLock::ModuleLock (const FileSpec &root_dir_spec, const UUID &uuid, Error& error)
-{
-    const auto lock_dir_spec = JoinPath (root_dir_spec, kLockDirName);
-    error = MakeDirectory (lock_dir_spec);
-    if (error.Fail ())
-        return;
-
-    m_file_spec = JoinPath (lock_dir_spec, uuid.GetAsString ().c_str ());
-    m_file.Open (m_file_spec.GetCString (),
-                 File::eOpenOptionWrite | File::eOpenOptionCanCreate | File::eOpenOptionCloseOnExec);
-    if (!m_file)
-    {
-        error.SetErrorToErrno ();
-        return;
-    }
-
-    m_lock.reset (new lldb_private::LockFile (m_file.GetDescriptor ()));
-    error = m_lock->WriteLock (0, 1);
-    if (error.Fail ())
-        error.SetErrorStringWithFormat ("Failed to lock file: %s", error.AsCString ());
-}
-
-void ModuleLock::Delete ()
-{
-    if (!m_file)
-        return;
+FileSpec JoinPath(const FileSpec &path1, const char *path2) {
+  FileSpec result_spec(path1);
+  result_spec.AppendPathComponent(path2);
+  return result_spec;
+}
+
+Error MakeDirectory(const FileSpec &dir_path) {
+  if (dir_path.Exists()) {
+    if (!dir_path.IsDirectory())
+      return Error("Invalid existing path");
+
+    return Error();
+  }
+
+  return FileSystem::MakeDirectory(dir_path, eFilePermissionsDirectoryDefault);
+}
+
+FileSpec GetModuleDirectory(const FileSpec &root_dir_spec, const UUID &uuid) {
+  const auto modules_dir_spec = JoinPath(root_dir_spec, kModulesSubdir);
+  return JoinPath(modules_dir_spec, uuid.GetAsString().c_str());
+}
+
+FileSpec GetSymbolFileSpec(const FileSpec &module_file_spec) {
+  return FileSpec((module_file_spec.GetPath() + kSymFileExtension).c_str(),
+                  false);
+}
+
+void DeleteExistingModule(const FileSpec &root_dir_spec,
+                          const FileSpec &sysroot_module_path_spec) {
+  Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_MODULES));
+  UUID module_uuid;
+  {
+    auto module_sp =
+        std::make_shared<Module>(ModuleSpec(sysroot_module_path_spec));
+    module_uuid = module_sp->GetUUID();
+  }
+
+  if (!module_uuid.IsValid())
+    return;
+
+  Error error;
+  ModuleLock lock(root_dir_spec, module_uuid, error);
+  if (error.Fail()) {
+    if (log)
+      log->Printf("Failed to lock module %s: %s",
+                  module_uuid.GetAsString().c_str(), error.AsCString());
+  }
+
+  auto link_count = FileSystem::GetHardlinkCount(sysroot_module_path_spec);
+  if (link_count == -1)
+    return;
+
+  if (link_count > 2) // module is referred by other hosts.
+    return;
+
+  const auto module_spec_dir = GetModuleDirectory(root_dir_spec, module_uuid);
+  FileSystem::DeleteDirectory(module_spec_dir, true);
+  lock.Delete();
+}
+
+void DecrementRefExistingModule(const FileSpec &root_dir_spec,
+                                const FileSpec &sysroot_module_path_spec) {
+  // Remove $platform/.cache/$uuid folder if nobody else references it.
+  DeleteExistingModule(root_dir_spec, sysroot_module_path_spec);
+
+  // Remove sysroot link.
+  FileSystem::Unlink(sysroot_module_path_spec);
+
+  FileSpec symfile_spec = GetSymbolFileSpec(sysroot_module_path_spec);
+  if (symfile_spec.Exists()) // delete module's symbol file if exists.
+    FileSystem::Unlink(symfile_spec);
+}
+
+Error CreateHostSysRootModuleLink(const FileSpec &root_dir_spec,
+                                  const char *hostname,
+                                  const FileSpec &platform_module_spec,
+                                  const FileSpec &local_module_spec,
+                                  bool delete_existing) {
+  const auto sysroot_module_path_spec =
+      JoinPath(JoinPath(root_dir_spec, hostname),
+               platform_module_spec.GetPath().c_str());
+  if (sysroot_module_path_spec.Exists()) {
+    if (!delete_existing)
+      return Error();
+
+    DecrementRefExistingModule(root_dir_spec, sysroot_module_path_spec);
+  }
+
+  const auto error = MakeDirectory(
+      FileSpec(sysroot_module_path_spec.GetDirectory().AsCString(), false));
+  if (error.Fail())
+    return error;
+
+  return FileSystem::Hardlink(sysroot_module_path_spec, local_module_spec);
+}
+
+} // namespace
+
+ModuleLock::ModuleLock(const FileSpec &root_dir_spec, const UUID &uuid,
+                       Error &error) {
+  const auto lock_dir_spec = JoinPath(root_dir_spec, kLockDirName);
+  error = MakeDirectory(lock_dir_spec);
+  if (error.Fail())
+    return;
+
+  m_file_spec = JoinPath(lock_dir_spec, uuid.GetAsString().c_str());
+  m_file.Open(m_file_spec.GetCString(), File::eOpenOptionWrite |
+                                            File::eOpenOptionCanCreate |
+                                            File::eOpenOptionCloseOnExec);
+  if (!m_file) {
+    error.SetErrorToErrno();
+    return;
+  }
+
+  m_lock.reset(new lldb_private::LockFile(m_file.GetDescriptor()));
+  error = m_lock->WriteLock(0, 1);
+  if (error.Fail())
+    error.SetErrorStringWithFormat("Failed to lock file: %s",
+                                   error.AsCString());
+}
+
+void ModuleLock::Delete() {
+  if (!m_file)
+    return;
 
-    m_file.Close ();
-    FileSystem::Unlink (m_file_spec);
+  m_file.Close();
+  FileSystem::Unlink(m_file_spec);
 }
 
 /////////////////////////////////////////////////////////////////////////
 
-Error
-ModuleCache::Put (const FileSpec &root_dir_spec,
-                  const char *hostname,
-                  const ModuleSpec &module_spec,
-                  const FileSpec &tmp_file,
-                  const FileSpec &target_file)
-{
-    const auto module_spec_dir = GetModuleDirectory (root_dir_spec, module_spec.GetUUID ());
-    const auto module_file_path = JoinPath (module_spec_dir, target_file.GetFilename ().AsCString ());
-
-    const auto tmp_file_path = tmp_file.GetPath ();
-    const auto err_code = llvm::sys::fs::rename (tmp_file_path.c_str (), module_file_path.GetPath ().c_str ());
-    if (err_code)
-        return Error ("Failed to rename file %s to %s: %s",
-                      tmp_file_path.c_str (), module_file_path.GetPath ().c_str (), err_code.message ().c_str ());
-
-    const auto error = CreateHostSysRootModuleLink(root_dir_spec, hostname, target_file, module_file_path, true);
-    if (error.Fail ())
-        return Error ("Failed to create link to %s: %s", module_file_path.GetPath ().c_str (), error.AsCString ());
-    return Error ();
-}
-
-Error
-ModuleCache::Get (const FileSpec &root_dir_spec,
-                  const char *hostname,
-                  const ModuleSpec &module_spec,
-                  ModuleSP &cached_module_sp,
-                  bool *did_create_ptr)
-{
-    const auto find_it = m_loaded_modules.find (module_spec.GetUUID ().GetAsString());
-    if (find_it != m_loaded_modules.end ())
-    {
-        cached_module_sp = (*find_it).second.lock ();
-        if (cached_module_sp)
-            return Error ();
-        m_loaded_modules.erase (find_it);
-    }
-
-    const auto module_spec_dir = GetModuleDirectory (root_dir_spec, module_spec.GetUUID ());
-    const auto module_file_path = JoinPath (module_spec_dir, module_spec.GetFileSpec ().GetFilename ().AsCString ());
-
-    if (!module_file_path.Exists ())
-        return Error ("Module %s not found", module_file_path.GetPath ().c_str ());
-    if (module_file_path.GetByteSize () != module_spec.GetObjectSize ())
-        return Error ("Module %s has invalid file size", module_file_path.GetPath ().c_str ());
-
-    // We may have already cached module but downloaded from an another host - in this case let's create a link to it.
-    auto error = CreateHostSysRootModuleLink(root_dir_spec, hostname, module_spec.GetFileSpec(), module_file_path, false);
-    if (error.Fail ())
-        return Error ("Failed to create link to %s: %s", module_file_path.GetPath().c_str(), error.AsCString());
-
-    auto cached_module_spec (module_spec);
-    cached_module_spec.GetUUID ().Clear ();  // Clear UUID since it may contain md5 content hash instead of real UUID.
-    cached_module_spec.GetFileSpec () = module_file_path;
-    cached_module_spec.GetPlatformFileSpec () = module_spec.GetFileSpec ();
-    
-    error = ModuleList::GetSharedModule(cached_module_spec,
-                                        cached_module_sp,
-                                        nullptr,
-                                        nullptr,
-                                        did_create_ptr,
-                                        false);
-    if (error.Fail())
-        return error;
-
-    FileSpec symfile_spec = GetSymbolFileSpec(cached_module_sp->GetFileSpec ());
-    if (symfile_spec.Exists ())
-        cached_module_sp->SetSymbolFileFileSpec (symfile_spec);
-
-    m_loaded_modules.insert (std::make_pair (module_spec.GetUUID ().GetAsString (), cached_module_sp));
-
-    return Error ();
-}
-
-Error
-ModuleCache::GetAndPut (const FileSpec &root_dir_spec,
-                        const char *hostname,
-                        const ModuleSpec &module_spec,
-                        const ModuleDownloader &module_downloader,
-                        const SymfileDownloader &symfile_downloader,
-                        lldb::ModuleSP &cached_module_sp,
-                        bool *did_create_ptr)
-{
-    const auto module_spec_dir = GetModuleDirectory (root_dir_spec, module_spec.GetUUID ());
-    auto error = MakeDirectory (module_spec_dir);
-    if (error.Fail ())
-        return error;
-
-    ModuleLock lock (root_dir_spec,  module_spec.GetUUID (), error);
-    if (error.Fail ())
-        return Error("Failed to lock module %s: %s", module_spec.GetUUID ().GetAsString().c_str(), error.AsCString ());
-
-    const auto escaped_hostname(GetEscapedHostname(hostname));
-    // Check local cache for a module.
-    error = Get (root_dir_spec, escaped_hostname.c_str(), module_spec, cached_module_sp, did_create_ptr);
-    if (error.Success ())
-        return error;
-
-    const auto tmp_download_file_spec = JoinPath (module_spec_dir, kTempFileName);
-    error = module_downloader (module_spec, tmp_download_file_spec);
-    llvm::FileRemover tmp_file_remover (tmp_download_file_spec.GetPath ().c_str ());
-    if (error.Fail ())
-        return Error("Failed to download module: %s", error.AsCString ());
-
-    // Put downloaded file into local module cache.
-    error = Put (root_dir_spec, escaped_hostname.c_str(), module_spec, tmp_download_file_spec, module_spec.GetFileSpec ());
-    if (error.Fail ())
-        return Error ("Failed to put module into cache: %s", error.AsCString ());
-
-    tmp_file_remover.releaseFile ();
-    error = Get (root_dir_spec, escaped_hostname.c_str(), module_spec, cached_module_sp, did_create_ptr);
-    if (error.Fail ())
-        return error;
-
-    // Fetching a symbol file for the module
-    const auto tmp_download_sym_file_spec = JoinPath (module_spec_dir, kTempSymFileName);
-    error = symfile_downloader (cached_module_sp, tmp_download_sym_file_spec);
-    llvm::FileRemover tmp_symfile_remover (tmp_download_sym_file_spec.GetPath ().c_str ());
-    if (error.Fail ())
-        // Failed to download a symfile but fetching the module was successful. The module might
-        // contain the necessary symbols and the debugging is also possible without a symfile.
-        return Error ();
-
-    error = Put (root_dir_spec, escaped_hostname.c_str(), module_spec, tmp_download_sym_file_spec, GetSymbolFileSpec(module_spec.GetFileSpec ()));
-    if (error.Fail ())
-        return Error ("Failed to put symbol file into cache: %s", error.AsCString ());
-    
-    tmp_symfile_remover.releaseFile();
-
-    FileSpec symfile_spec = GetSymbolFileSpec (cached_module_sp->GetFileSpec ());
-    cached_module_sp->SetSymbolFileFileSpec (symfile_spec);
-    return Error ();
+Error ModuleCache::Put(const FileSpec &root_dir_spec, const char *hostname,
+                       const ModuleSpec &module_spec, const FileSpec &tmp_file,
+                       const FileSpec &target_file) {
+  const auto module_spec_dir =
+      GetModuleDirectory(root_dir_spec, module_spec.GetUUID());
+  const auto module_file_path =
+      JoinPath(module_spec_dir, target_file.GetFilename().AsCString());
+
+  const auto tmp_file_path = tmp_file.GetPath();
+  const auto err_code = llvm::sys::fs::rename(
+      tmp_file_path.c_str(), module_file_path.GetPath().c_str());
+  if (err_code)
+    return Error("Failed to rename file %s to %s: %s", tmp_file_path.c_str(),
+                 module_file_path.GetPath().c_str(),
+                 err_code.message().c_str());
+
+  const auto error = CreateHostSysRootModuleLink(
+      root_dir_spec, hostname, target_file, module_file_path, true);
+  if (error.Fail())
+    return Error("Failed to create link to %s: %s",
+                 module_file_path.GetPath().c_str(), error.AsCString());
+  return Error();
+}
+
+Error ModuleCache::Get(const FileSpec &root_dir_spec, const char *hostname,
+                       const ModuleSpec &module_spec,
+                       ModuleSP &cached_module_sp, bool *did_create_ptr) {
+  const auto find_it =
+      m_loaded_modules.find(module_spec.GetUUID().GetAsString());
+  if (find_it != m_loaded_modules.end()) {
+    cached_module_sp = (*find_it).second.lock();
+    if (cached_module_sp)
+      return Error();
+    m_loaded_modules.erase(find_it);
+  }
+
+  const auto module_spec_dir =
+      GetModuleDirectory(root_dir_spec, module_spec.GetUUID());
+  const auto module_file_path = JoinPath(
+      module_spec_dir, module_spec.GetFileSpec().GetFilename().AsCString());
+
+  if (!module_file_path.Exists())
+    return Error("Module %s not found", module_file_path.GetPath().c_str());
+  if (module_file_path.GetByteSize() != module_spec.GetObjectSize())
+    return Error("Module %s has invalid file size",
+                 module_file_path.GetPath().c_str());
+
+  // We may have already cached module but downloaded from an another host - in
+  // this case let's create a link to it.
+  auto error = CreateHostSysRootModuleLink(root_dir_spec, hostname,
+                                           module_spec.GetFileSpec(),
+                                           module_file_path, false);
+  if (error.Fail())
+    return Error("Failed to create link to %s: %s",
+                 module_file_path.GetPath().c_str(), error.AsCString());
+
+  auto cached_module_spec(module_spec);
+  cached_module_spec.GetUUID().Clear(); // Clear UUID since it may contain md5
+                                        // content hash instead of real UUID.
+  cached_module_spec.GetFileSpec() = module_file_path;
+  cached_module_spec.GetPlatformFileSpec() = module_spec.GetFileSpec();
+
+  error = ModuleList::GetSharedModule(cached_module_spec, cached_module_sp,
+                                      nullptr, nullptr, did_create_ptr, false);
+  if (error.Fail())
+    return error;
+
+  FileSpec symfile_spec = GetSymbolFileSpec(cached_module_sp->GetFileSpec());
+  if (symfile_spec.Exists())
+    cached_module_sp->SetSymbolFileFileSpec(symfile_spec);
+
+  m_loaded_modules.insert(
+      std::make_pair(module_spec.GetUUID().GetAsString(), cached_module_sp));
+
+  return Error();
+}
+
+Error ModuleCache::GetAndPut(const FileSpec &root_dir_spec,
+                             const char *hostname,
+                             const ModuleSpec &module_spec,
+                             const ModuleDownloader &module_downloader,
+                             const SymfileDownloader &symfile_downloader,
+                             lldb::ModuleSP &cached_module_sp,
+                             bool *did_create_ptr) {
+  const auto module_spec_dir =
+      GetModuleDirectory(root_dir_spec, module_spec.GetUUID());
+  auto error = MakeDirectory(module_spec_dir);
+  if (error.Fail())
+    return error;
+
+  ModuleLock lock(root_dir_spec, module_spec.GetUUID(), error);
+  if (error.Fail())
+    return Error("Failed to lock module %s: %s",
+                 module_spec.GetUUID().GetAsString().c_str(),
+                 error.AsCString());
+
+  const auto escaped_hostname(GetEscapedHostname(hostname));
+  // Check local cache for a module.
+  error = Get(root_dir_spec, escaped_hostname.c_str(), module_spec,
+              cached_module_sp, did_create_ptr);
+  if (error.Success())
+    return error;
+
+  const auto tmp_download_file_spec = JoinPath(module_spec_dir, kTempFileName);
+  error = module_downloader(module_spec, tmp_download_file_spec);
+  llvm::FileRemover tmp_file_remover(tmp_download_file_spec.GetPath().c_str());
+  if (error.Fail())
+    return Error("Failed to download module: %s", error.AsCString());
+
+  // Put downloaded file into local module cache.
+  error = Put(root_dir_spec, escaped_hostname.c_str(), module_spec,
+              tmp_download_file_spec, module_spec.GetFileSpec());
+  if (error.Fail())
+    return Error("Failed to put module into cache: %s", error.AsCString());
+
+  tmp_file_remover.releaseFile();
+  error = Get(root_dir_spec, escaped_hostname.c_str(), module_spec,
+              cached_module_sp, did_create_ptr);
+  if (error.Fail())
+    return error;
+
+  // Fetching a symbol file for the module
+  const auto tmp_download_sym_file_spec =
+      JoinPath(module_spec_dir, kTempSymFileName);
+  error = symfile_downloader(cached_module_sp, tmp_download_sym_file_spec);
+  llvm::FileRemover tmp_symfile_remover(
+      tmp_download_sym_file_spec.GetPath().c_str());
+  if (error.Fail())
+    // Failed to download a symfile but fetching the module was successful. The
+    // module might
+    // contain the necessary symbols and the debugging is also possible without
+    // a symfile.
+    return Error();
+
+  error = Put(root_dir_spec, escaped_hostname.c_str(), module_spec,
+              tmp_download_sym_file_spec,
+              GetSymbolFileSpec(module_spec.GetFileSpec()));
+  if (error.Fail())
+    return Error("Failed to put symbol file into cache: %s", error.AsCString());
+
+  tmp_symfile_remover.releaseFile();
+
+  FileSpec symfile_spec = GetSymbolFileSpec(cached_module_sp->GetFileSpec());
+  cached_module_sp->SetSymbolFileFileSpec(symfile_spec);
+  return Error();
 }

Modified: lldb/trunk/source/Utility/ModuleCache.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ModuleCache.h?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/ModuleCache.h (original)
+++ lldb/trunk/source/Utility/ModuleCache.h Tue Sep  6 15:57:50 2016
@@ -10,8 +10,8 @@
 #ifndef utility_ModuleCache_h_
 #define utility_ModuleCache_h_
 
-#include "lldb/lldb-types.h"
 #include "lldb/lldb-forward.h"
+#include "lldb/lldb-types.h"
 
 #include "lldb/Core/Error.h"
 #include "lldb/Host/File.h"
@@ -32,50 +32,45 @@ class UUID;
 ///
 /// Caches locally modules that are downloaded from remote targets.
 /// Each cached module maintains 2 views:
-///  - UUID view:    /${CACHE_ROOT}/${PLATFORM_NAME}/.cache/${UUID}/${MODULE_FILENAME}
-///  - Sysroot view: /${CACHE_ROOT}/${PLATFORM_NAME}/${HOSTNAME}/${MODULE_FULL_FILEPATH}
+///  - UUID view:
+///  /${CACHE_ROOT}/${PLATFORM_NAME}/.cache/${UUID}/${MODULE_FILENAME}
+///  - Sysroot view:
+///  /${CACHE_ROOT}/${PLATFORM_NAME}/${HOSTNAME}/${MODULE_FULL_FILEPATH}
 ///
 /// UUID views stores a real module file, whereas Sysroot view holds a symbolic
 /// link to UUID-view file.
 ///
 /// Example:
-/// UUID view   : /tmp/lldb/remote-linux/.cache/30C94DC6-6A1F-E951-80C3-D68D2B89E576-D5AE213C/libc.so.6
+/// UUID view   :
+/// /tmp/lldb/remote-linux/.cache/30C94DC6-6A1F-E951-80C3-D68D2B89E576-D5AE213C/libc.so.6
 /// Sysroot view: /tmp/lldb/remote-linux/ubuntu/lib/x86_64-linux-gnu/libc.so.6
 //----------------------------------------------------------------------
 
-class ModuleCache
-{
+class ModuleCache {
 public:
-    using ModuleDownloader = std::function<Error (const ModuleSpec&, const FileSpec&)>;
-    using SymfileDownloader = std::function<Error (const lldb::ModuleSP&, const FileSpec&)>;
-
-    Error
-    GetAndPut(const FileSpec &root_dir_spec,
-              const char *hostname,
-              const ModuleSpec &module_spec,
-              const ModuleDownloader &module_downloader,
-              const SymfileDownloader &symfile_downloader,
-              lldb::ModuleSP &cached_module_sp,
-              bool *did_create_ptr);
+  using ModuleDownloader =
+      std::function<Error(const ModuleSpec &, const FileSpec &)>;
+  using SymfileDownloader =
+      std::function<Error(const lldb::ModuleSP &, const FileSpec &)>;
+
+  Error GetAndPut(const FileSpec &root_dir_spec, const char *hostname,
+                  const ModuleSpec &module_spec,
+                  const ModuleDownloader &module_downloader,
+                  const SymfileDownloader &symfile_downloader,
+                  lldb::ModuleSP &cached_module_sp, bool *did_create_ptr);
 
 private:
-    Error
-    Put (const FileSpec &root_dir_spec,
-         const char *hostname,
-         const ModuleSpec &module_spec,
-         const FileSpec &tmp_file,
-         const FileSpec &target_file);
-
-    Error
-    Get (const FileSpec &root_dir_spec,
-         const char *hostname,
-         const ModuleSpec &module_spec,
-         lldb::ModuleSP &cached_module_sp,
-         bool *did_create_ptr);
+  Error Put(const FileSpec &root_dir_spec, const char *hostname,
+            const ModuleSpec &module_spec, const FileSpec &tmp_file,
+            const FileSpec &target_file);
+
+  Error Get(const FileSpec &root_dir_spec, const char *hostname,
+            const ModuleSpec &module_spec, lldb::ModuleSP &cached_module_sp,
+            bool *did_create_ptr);
 
-    std::unordered_map<std::string, lldb::ModuleWP> m_loaded_modules;
+  std::unordered_map<std::string, lldb::ModuleWP> m_loaded_modules;
 };
 
 } // namespace lldb_private
 
-#endif  // utility_ModuleCache_h_
+#endif // utility_ModuleCache_h_

Modified: lldb/trunk/source/Utility/NameMatches.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/NameMatches.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/NameMatches.cpp (original)
+++ lldb/trunk/source/Utility/NameMatches.cpp Tue Sep  6 15:57:50 2016
@@ -6,45 +6,40 @@
 // License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
-#include "lldb/Core/RegularExpression.h"
 #include "lldb/Utility/NameMatches.h"
+#include "lldb/Core/RegularExpression.h"
 
 #include "llvm/ADT/StringRef.h"
 
 using namespace lldb_private;
 
-bool
-lldb_private::NameMatches(const char *name, NameMatchType match_type, const char *match)
-{
-    if (match_type == eNameMatchIgnore)
-        return true;
+bool lldb_private::NameMatches(const char *name, NameMatchType match_type,
+                               const char *match) {
+  if (match_type == eNameMatchIgnore)
+    return true;
 
-    if (name == match)
-        return true;
+  if (name == match)
+    return true;
 
-    if (name && match)
-    {
-        llvm::StringRef name_sref(name);
-        llvm::StringRef match_sref(match);
-        switch (match_type)
-        {
-            case eNameMatchIgnore: // This case cannot occur: tested before
-                return true;
-            case eNameMatchEquals:
-                return name_sref == match_sref;
-            case eNameMatchContains:
-                return name_sref.find(match_sref) != llvm::StringRef::npos;
-            case eNameMatchStartsWith:
-                return name_sref.startswith(match_sref);
-            case eNameMatchEndsWith:
-                return name_sref.endswith(match_sref);
-            case eNameMatchRegularExpression:
-            {
-                RegularExpression regex(match);
-                return regex.Execute(name);
-            }
-            break;
-        }
+  if (name && match) {
+    llvm::StringRef name_sref(name);
+    llvm::StringRef match_sref(match);
+    switch (match_type) {
+    case eNameMatchIgnore: // This case cannot occur: tested before
+      return true;
+    case eNameMatchEquals:
+      return name_sref == match_sref;
+    case eNameMatchContains:
+      return name_sref.find(match_sref) != llvm::StringRef::npos;
+    case eNameMatchStartsWith:
+      return name_sref.startswith(match_sref);
+    case eNameMatchEndsWith:
+      return name_sref.endswith(match_sref);
+    case eNameMatchRegularExpression: {
+      RegularExpression regex(match);
+      return regex.Execute(name);
+    } break;
     }
-    return false;
+  }
+  return false;
 }

Modified: lldb/trunk/source/Utility/PseudoTerminal.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/PseudoTerminal.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/PseudoTerminal.cpp (original)
+++ lldb/trunk/source/Utility/PseudoTerminal.cpp Tue Sep  6 15:57:50 2016
@@ -7,13 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "lldb/Host/Config.h"
 #include "lldb/Utility/PseudoTerminal.h"
+#include "lldb/Host/Config.h"
 
 #include <errno.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <stdio.h>
 #if defined(TIOCSCTTY)
 #include <sys/ioctl.h>
 #endif
@@ -29,11 +29,8 @@ using namespace lldb_utility;
 //----------------------------------------------------------------------
 // PseudoTerminal constructor
 //----------------------------------------------------------------------
-PseudoTerminal::PseudoTerminal () :
-    m_master_fd(invalid_fd),
-    m_slave_fd(invalid_fd)
-{
-}
+PseudoTerminal::PseudoTerminal()
+    : m_master_fd(invalid_fd), m_slave_fd(invalid_fd) {}
 
 //----------------------------------------------------------------------
 // Destructor
@@ -43,40 +40,33 @@ PseudoTerminal::PseudoTerminal () :
 // ReleaseMasterFileDescriptor() or the ReleaseSaveFileDescriptor()
 // member functions.
 //----------------------------------------------------------------------
-PseudoTerminal::~PseudoTerminal ()
-{
-    CloseMasterFileDescriptor();
-    CloseSlaveFileDescriptor();
+PseudoTerminal::~PseudoTerminal() {
+  CloseMasterFileDescriptor();
+  CloseSlaveFileDescriptor();
 }
 
 //----------------------------------------------------------------------
 // Close the master file descriptor if it is valid.
 //----------------------------------------------------------------------
-void
-PseudoTerminal::CloseMasterFileDescriptor ()
-{
-    if (m_master_fd >= 0)
-    {
-    // Don't call 'close' on m_master_fd for Windows as a dummy implementation of
-    // posix_openpt above always gives it a 0 value.
+void PseudoTerminal::CloseMasterFileDescriptor() {
+  if (m_master_fd >= 0) {
+// Don't call 'close' on m_master_fd for Windows as a dummy implementation of
+// posix_openpt above always gives it a 0 value.
 #ifndef _WIN32
-        ::close (m_master_fd);
+    ::close(m_master_fd);
 #endif
-        m_master_fd = invalid_fd;
-    }
+    m_master_fd = invalid_fd;
+  }
 }
 
 //----------------------------------------------------------------------
 // Close the slave file descriptor if it is valid.
 //----------------------------------------------------------------------
-void
-PseudoTerminal::CloseSlaveFileDescriptor ()
-{
-    if (m_slave_fd >= 0)
-    {
-        ::close (m_slave_fd);
-        m_slave_fd = invalid_fd;
-    }
+void PseudoTerminal::CloseSlaveFileDescriptor() {
+  if (m_slave_fd >= 0) {
+    ::close(m_slave_fd);
+    m_slave_fd = invalid_fd;
+  }
 }
 
 //----------------------------------------------------------------------
@@ -93,40 +83,36 @@ PseudoTerminal::CloseSlaveFileDescriptor
 // RETURNS:
 //  Zero when successful, non-zero indicating an error occurred.
 //----------------------------------------------------------------------
-bool
-PseudoTerminal::OpenFirstAvailableMaster (int oflag, char *error_str, size_t error_len)
-{
+bool PseudoTerminal::OpenFirstAvailableMaster(int oflag, char *error_str,
+                                              size_t error_len) {
+  if (error_str)
+    error_str[0] = '\0';
+
+  // Open the master side of a pseudo terminal
+  m_master_fd = ::posix_openpt(oflag);
+  if (m_master_fd < 0) {
     if (error_str)
-        error_str[0] = '\0';
+      ::strerror_r(errno, error_str, error_len);
+    return false;
+  }
 
-    // Open the master side of a pseudo terminal
-    m_master_fd = ::posix_openpt (oflag);
-    if (m_master_fd < 0)
-    {
-        if (error_str)
-            ::strerror_r (errno, error_str, error_len);
-        return false;
-    }
-
-    // Grant access to the slave pseudo terminal
-    if (::grantpt (m_master_fd) < 0)
-    {
-        if (error_str)
-            ::strerror_r (errno, error_str, error_len);
-        CloseMasterFileDescriptor ();
-        return false;
-    }
+  // Grant access to the slave pseudo terminal
+  if (::grantpt(m_master_fd) < 0) {
+    if (error_str)
+      ::strerror_r(errno, error_str, error_len);
+    CloseMasterFileDescriptor();
+    return false;
+  }
 
-    // Clear the lock flag on the slave pseudo terminal
-    if (::unlockpt (m_master_fd) < 0)
-    {
-        if (error_str)
-            ::strerror_r (errno, error_str, error_len);
-        CloseMasterFileDescriptor ();
-        return false;
-    }
+  // Clear the lock flag on the slave pseudo terminal
+  if (::unlockpt(m_master_fd) < 0) {
+    if (error_str)
+      ::strerror_r(errno, error_str, error_len);
+    CloseMasterFileDescriptor();
+    return false;
+  }
 
-    return true;
+  return true;
 }
 
 //----------------------------------------------------------------------
@@ -140,34 +126,29 @@ PseudoTerminal::OpenFirstAvailableMaster
 // RETURNS:
 //  Zero when successful, non-zero indicating an error occurred.
 //----------------------------------------------------------------------
-bool
-PseudoTerminal::OpenSlave (int oflag, char *error_str, size_t error_len)
-{
-    if (error_str)
-        error_str[0] = '\0';
+bool PseudoTerminal::OpenSlave(int oflag, char *error_str, size_t error_len) {
+  if (error_str)
+    error_str[0] = '\0';
 
-    CloseSlaveFileDescriptor();
+  CloseSlaveFileDescriptor();
 
-    // Open the master side of a pseudo terminal
-    const char *slave_name = GetSlaveName (error_str, error_len);
+  // Open the master side of a pseudo terminal
+  const char *slave_name = GetSlaveName(error_str, error_len);
 
-    if (slave_name == nullptr)
-        return false;
+  if (slave_name == nullptr)
+    return false;
 
-    m_slave_fd = ::open (slave_name, oflag);
+  m_slave_fd = ::open(slave_name, oflag);
 
-    if (m_slave_fd < 0)
-    {
-        if (error_str)
-            ::strerror_r (errno, error_str, error_len);
-        return false;
-    }
+  if (m_slave_fd < 0) {
+    if (error_str)
+      ::strerror_r(errno, error_str, error_len);
+    return false;
+  }
 
-    return true;
+  return true;
 }
 
-
-
 //----------------------------------------------------------------------
 // Get the name of the slave pseudo terminal. A master pseudo terminal
 // should already be valid prior to calling this function (see
@@ -179,27 +160,25 @@ PseudoTerminal::OpenSlave (int oflag, ch
 //  that comes from static memory, so a copy of the string should be
 //  made as subsequent calls can change this value.
 //----------------------------------------------------------------------
-const char*
-PseudoTerminal::GetSlaveName (char *error_str, size_t error_len) const
-{
-    if (error_str)
-        error_str[0] = '\0';
+const char *PseudoTerminal::GetSlaveName(char *error_str,
+                                         size_t error_len) const {
+  if (error_str)
+    error_str[0] = '\0';
 
-    if (m_master_fd < 0)
-    {
-        if (error_str)
-            ::snprintf (error_str, error_len, "%s", "master file descriptor is invalid");
-        return nullptr;
-    }
-    const char *slave_name = ::ptsname (m_master_fd);
+  if (m_master_fd < 0) {
+    if (error_str)
+      ::snprintf(error_str, error_len, "%s",
+                 "master file descriptor is invalid");
+    return nullptr;
+  }
+  const char *slave_name = ::ptsname(m_master_fd);
 
-    if (error_str && slave_name == nullptr)
-        ::strerror_r (errno, error_str, error_len);
+  if (error_str && slave_name == nullptr)
+    ::strerror_r(errno, error_str, error_len);
 
-    return slave_name;
+  return slave_name;
 }
 
-
 //----------------------------------------------------------------------
 // Fork a child process and have its stdio routed to a pseudo terminal.
 //
@@ -221,74 +200,62 @@ PseudoTerminal::GetSlaveName (char *erro
 //  in the parent process: the pid of the child, or -1 if fork fails
 //  in the child process: zero
 //----------------------------------------------------------------------
-lldb::pid_t
-PseudoTerminal::Fork (char *error_str, size_t error_len)
-{
-    if (error_str)
-        error_str[0] = '\0';
-    pid_t pid = LLDB_INVALID_PROCESS_ID;
+lldb::pid_t PseudoTerminal::Fork(char *error_str, size_t error_len) {
+  if (error_str)
+    error_str[0] = '\0';
+  pid_t pid = LLDB_INVALID_PROCESS_ID;
 #if !defined(LLDB_DISABLE_POSIX)
-    int flags = O_RDWR;
-    flags |= O_CLOEXEC;
-    if (OpenFirstAvailableMaster (flags, error_str, error_len))
-    {
-        // Successfully opened our master pseudo terminal
-
-        pid = ::fork ();
-        if (pid < 0)
-        {
-            // Fork failed
-            if (error_str)
-            ::strerror_r (errno, error_str, error_len);
-        }
-        else if (pid == 0)
-        {
-            // Child Process
-            ::setsid();
-
-            if (OpenSlave (O_RDWR, error_str, error_len))
-            {
-                // Successfully opened slave
-
-                // Master FD should have O_CLOEXEC set, but let's close it just in case...
-                CloseMasterFileDescriptor ();
+  int flags = O_RDWR;
+  flags |= O_CLOEXEC;
+  if (OpenFirstAvailableMaster(flags, error_str, error_len)) {
+    // Successfully opened our master pseudo terminal
+
+    pid = ::fork();
+    if (pid < 0) {
+      // Fork failed
+      if (error_str)
+        ::strerror_r(errno, error_str, error_len);
+    } else if (pid == 0) {
+      // Child Process
+      ::setsid();
+
+      if (OpenSlave(O_RDWR, error_str, error_len)) {
+        // Successfully opened slave
+
+        // Master FD should have O_CLOEXEC set, but let's close it just in
+        // case...
+        CloseMasterFileDescriptor();
 
 #if defined(TIOCSCTTY)
-                // Acquire the controlling terminal
-                if (::ioctl (m_slave_fd, TIOCSCTTY, (char *)0) < 0)
-                {
-                    if (error_str)
-                        ::strerror_r (errno, error_str, error_len);
-                }
+        // Acquire the controlling terminal
+        if (::ioctl(m_slave_fd, TIOCSCTTY, (char *)0) < 0) {
+          if (error_str)
+            ::strerror_r(errno, error_str, error_len);
+        }
 #endif
-                // Duplicate all stdio file descriptors to the slave pseudo terminal
-                if (::dup2 (m_slave_fd, STDIN_FILENO) != STDIN_FILENO)
-                {
-                    if (error_str && !error_str[0])
-                        ::strerror_r (errno, error_str, error_len);
-                }
-
-                if (::dup2 (m_slave_fd, STDOUT_FILENO) != STDOUT_FILENO)
-                {
-                    if (error_str && !error_str[0])
-                        ::strerror_r (errno, error_str, error_len);
-                }
-
-                if (::dup2 (m_slave_fd, STDERR_FILENO) != STDERR_FILENO)
-                {
-                    if (error_str && !error_str[0])
-                        ::strerror_r (errno, error_str, error_len);
-                }
-            }
+        // Duplicate all stdio file descriptors to the slave pseudo terminal
+        if (::dup2(m_slave_fd, STDIN_FILENO) != STDIN_FILENO) {
+          if (error_str && !error_str[0])
+            ::strerror_r(errno, error_str, error_len);
         }
-        else
-        {
-            // Parent Process
-            // Do nothing and let the pid get returned!
+
+        if (::dup2(m_slave_fd, STDOUT_FILENO) != STDOUT_FILENO) {
+          if (error_str && !error_str[0])
+            ::strerror_r(errno, error_str, error_len);
         }
+
+        if (::dup2(m_slave_fd, STDERR_FILENO) != STDERR_FILENO) {
+          if (error_str && !error_str[0])
+            ::strerror_r(errno, error_str, error_len);
+        }
+      }
+    } else {
+      // Parent Process
+      // Do nothing and let the pid get returned!
     }
+  }
 #endif
-    return pid;
+  return pid;
 }
 
 //----------------------------------------------------------------------
@@ -300,11 +267,7 @@ PseudoTerminal::Fork (char *error_str, s
 // Returns the master file descriptor, or -1 if the master file
 // descriptor is not currently valid.
 //----------------------------------------------------------------------
-int
-PseudoTerminal::GetMasterFileDescriptor () const
-{
-    return m_master_fd;
-}
+int PseudoTerminal::GetMasterFileDescriptor() const { return m_master_fd; }
 
 //----------------------------------------------------------------------
 // The slave file descriptor accessor.
@@ -312,11 +275,7 @@ PseudoTerminal::GetMasterFileDescriptor
 // Returns the slave file descriptor, or -1 if the slave file
 // descriptor is not currently valid.
 //----------------------------------------------------------------------
-int
-PseudoTerminal::GetSlaveFileDescriptor () const
-{
-    return m_slave_fd;
-}
+int PseudoTerminal::GetSlaveFileDescriptor() const { return m_slave_fd; }
 
 //----------------------------------------------------------------------
 // Release ownership of the master pseudo terminal file descriptor
@@ -324,15 +283,13 @@ PseudoTerminal::GetSlaveFileDescriptor (
 // master file descriptor if the ownership isn't released using this
 // call and the master file descriptor has been opened.
 //----------------------------------------------------------------------
-int
-PseudoTerminal::ReleaseMasterFileDescriptor ()
-{
-    // Release ownership of the master pseudo terminal file
-    // descriptor without closing it. (the destructor for this
-    // class will close it otherwise!)
-    int fd = m_master_fd;
-    m_master_fd = invalid_fd;
-    return fd;
+int PseudoTerminal::ReleaseMasterFileDescriptor() {
+  // Release ownership of the master pseudo terminal file
+  // descriptor without closing it. (the destructor for this
+  // class will close it otherwise!)
+  int fd = m_master_fd;
+  m_master_fd = invalid_fd;
+  return fd;
 }
 
 //----------------------------------------------------------------------
@@ -341,14 +298,11 @@ PseudoTerminal::ReleaseMasterFileDescrip
 // slave file descriptor if the ownership isn't released using this
 // call and the slave file descriptor has been opened.
 //----------------------------------------------------------------------
-int
-PseudoTerminal::ReleaseSlaveFileDescriptor ()
-{
-    // Release ownership of the slave pseudo terminal file
-    // descriptor without closing it (the destructor for this
-    // class will close it otherwise!)
-    int fd = m_slave_fd;
-    m_slave_fd = invalid_fd;
-    return fd;
+int PseudoTerminal::ReleaseSlaveFileDescriptor() {
+  // Release ownership of the slave pseudo terminal file
+  // descriptor without closing it (the destructor for this
+  // class will close it otherwise!)
+  int fd = m_slave_fd;
+  m_slave_fd = invalid_fd;
+  return fd;
 }
-

Modified: lldb/trunk/source/Utility/Range.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/Range.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/Range.cpp (original)
+++ lldb/trunk/source/Utility/Range.cpp Tue Sep  6 15:57:50 2016
@@ -1,4 +1,5 @@
-//===--------------------- Range.cpp -----------------------------*- C++ -*-===//
+//===--------------------- Range.cpp -----------------------------*- C++
+//-*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -11,93 +12,63 @@
 
 using namespace lldb_utility;
 
-Range::Range (const Range& rng) :
-m_low(rng.m_low),
-m_high(rng.m_high)
-{
-    InitRange();
-}
-
-Range::Range (Range::ValueType low,
-              Range::ValueType high) :
-m_low(low),
-m_high(high)
-{
-    InitRange();
-}
-
-void
-Range::InitRange ()
-{
-    if (m_low == OPEN_END)
-    {
-        if (m_high == OPEN_END)
-            m_low = 0;
-        else
-        {
-            // make an empty range
-            m_low = 1;
-            m_high = 0;
-        }
-    }
+Range::Range(const Range &rng) : m_low(rng.m_low), m_high(rng.m_high) {
+  InitRange();
 }
 
-Range&
-Range::operator = (const Range& rhs)
-{
-    if (&rhs != this)
-    {
-        this->m_low = rhs.m_low;
-        this->m_high = rhs.m_high;
-    }
-    return *this;
+Range::Range(Range::ValueType low, Range::ValueType high)
+    : m_low(low), m_high(high) {
+  InitRange();
 }
 
-void
-Range::Flip ()
-{
-    std::swap(m_high, m_low);
-}
-
-void
-Range::Intersection (const Range& other)
-{
-    m_low = std::max(m_low,other.m_low);
-    m_high = std::min(m_high,other.m_high);
-}
-
-void
-Range::Union (const Range& other)
-{
-    m_low = std::min(m_low,other.m_low);
-    m_high = std::max(m_high,other.m_high);
-}
-
-void
-Range::Iterate (RangeCallback callback)
-{
-    ValueType counter = m_low;
-    while (counter <= m_high)
-    {
-        bool should_continue = callback(counter);
-        if (!should_continue)
-            return;
-        counter++;
+void Range::InitRange() {
+  if (m_low == OPEN_END) {
+    if (m_high == OPEN_END)
+      m_low = 0;
+    else {
+      // make an empty range
+      m_low = 1;
+      m_high = 0;
     }
+  }
 }
 
-bool
-Range::IsEmpty ()
-{
-    return (m_low > m_high);
+Range &Range::operator=(const Range &rhs) {
+  if (&rhs != this) {
+    this->m_low = rhs.m_low;
+    this->m_high = rhs.m_high;
+  }
+  return *this;
 }
 
-Range::ValueType
-Range::GetSize ()
-{
-    if (m_high == OPEN_END)
-        return OPEN_END;
-    if (m_high >= m_low)
-        return m_high - m_low + 1;
-    return 0;
+void Range::Flip() { std::swap(m_high, m_low); }
+
+void Range::Intersection(const Range &other) {
+  m_low = std::max(m_low, other.m_low);
+  m_high = std::min(m_high, other.m_high);
+}
+
+void Range::Union(const Range &other) {
+  m_low = std::min(m_low, other.m_low);
+  m_high = std::max(m_high, other.m_high);
+}
+
+void Range::Iterate(RangeCallback callback) {
+  ValueType counter = m_low;
+  while (counter <= m_high) {
+    bool should_continue = callback(counter);
+    if (!should_continue)
+      return;
+    counter++;
+  }
+}
+
+bool Range::IsEmpty() { return (m_low > m_high); }
+
+Range::ValueType Range::GetSize() {
+  if (m_high == OPEN_END)
+    return OPEN_END;
+  if (m_high >= m_low)
+    return m_high - m_low + 1;
+  return 0;
 }

Modified: lldb/trunk/source/Utility/RegisterNumber.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/RegisterNumber.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/RegisterNumber.cpp (original)
+++ lldb/trunk/source/Utility/RegisterNumber.cpp Tue Sep  6 15:57:50 2016
@@ -8,150 +8,112 @@
 //===----------------------------------------------------------------------===//
 
 #include "lldb/Utility/RegisterNumber.h"
-#include "lldb/Target/Thread.h"
 #include "lldb/Target/RegisterContext.h"
+#include "lldb/Target/Thread.h"
 
 using namespace lldb_private;
 
-
-RegisterNumber::RegisterNumber (lldb_private::Thread &thread, lldb::RegisterKind kind, uint32_t num) :
-    m_reg_ctx_sp (thread.GetRegisterContext()),
-    m_regnum (num),
-    m_kind (kind),
-    m_kind_regnum_map (),
-    m_name ("")
-{
-    if (m_reg_ctx_sp.get())
-    {
-        const lldb_private::RegisterInfo *reginfo = m_reg_ctx_sp->GetRegisterInfoAtIndex (GetAsKind (lldb::eRegisterKindLLDB));
-        if (reginfo && reginfo->name)
-        {
-            m_name = reginfo->name;
-        }
-    }
-}
-
-RegisterNumber::RegisterNumber () :
-    m_reg_ctx_sp(),
-    m_regnum (LLDB_INVALID_REGNUM),
-    m_kind (lldb::kNumRegisterKinds),
-    m_kind_regnum_map (),
-    m_name (nullptr)
-{
-}
-
-void
-RegisterNumber::init (lldb_private::Thread &thread, lldb::RegisterKind kind, uint32_t num)
-{
-    m_reg_ctx_sp = thread.GetRegisterContext();
-    m_regnum = num;
-    m_kind = kind;
-    if (m_reg_ctx_sp.get())
-    {
-        const lldb_private::RegisterInfo *reginfo = m_reg_ctx_sp->GetRegisterInfoAtIndex (GetAsKind (lldb::eRegisterKindLLDB));
-        if (reginfo && reginfo->name)
-        {
-            m_name = reginfo->name;
-        }
-    }
+RegisterNumber::RegisterNumber(lldb_private::Thread &thread,
+                               lldb::RegisterKind kind, uint32_t num)
+    : m_reg_ctx_sp(thread.GetRegisterContext()), m_regnum(num), m_kind(kind),
+      m_kind_regnum_map(), m_name("") {
+  if (m_reg_ctx_sp.get()) {
+    const lldb_private::RegisterInfo *reginfo =
+        m_reg_ctx_sp->GetRegisterInfoAtIndex(
+            GetAsKind(lldb::eRegisterKindLLDB));
+    if (reginfo && reginfo->name) {
+      m_name = reginfo->name;
+    }
+  }
+}
+
+RegisterNumber::RegisterNumber()
+    : m_reg_ctx_sp(), m_regnum(LLDB_INVALID_REGNUM),
+      m_kind(lldb::kNumRegisterKinds), m_kind_regnum_map(), m_name(nullptr) {}
+
+void RegisterNumber::init(lldb_private::Thread &thread, lldb::RegisterKind kind,
+                          uint32_t num) {
+  m_reg_ctx_sp = thread.GetRegisterContext();
+  m_regnum = num;
+  m_kind = kind;
+  if (m_reg_ctx_sp.get()) {
+    const lldb_private::RegisterInfo *reginfo =
+        m_reg_ctx_sp->GetRegisterInfoAtIndex(
+            GetAsKind(lldb::eRegisterKindLLDB));
+    if (reginfo && reginfo->name) {
+      m_name = reginfo->name;
+    }
+  }
+}
+
+const RegisterNumber &RegisterNumber::operator=(const RegisterNumber &rhs) {
+  m_reg_ctx_sp = rhs.m_reg_ctx_sp;
+  m_regnum = rhs.m_regnum;
+  m_kind = rhs.m_kind;
+  for (auto it : rhs.m_kind_regnum_map)
+    m_kind_regnum_map[it.first] = it.second;
+  m_name = rhs.m_name;
+  return *this;
 }
 
-const RegisterNumber &
-RegisterNumber::operator = (const RegisterNumber &rhs)
-{
-    m_reg_ctx_sp = rhs.m_reg_ctx_sp;
-    m_regnum = rhs.m_regnum;
-    m_kind = rhs.m_kind;
-    for (auto it : rhs.m_kind_regnum_map)
-        m_kind_regnum_map[it.first] = it.second;
-    m_name = rhs.m_name;
-    return *this;
-}
-
-bool
-RegisterNumber::operator == (RegisterNumber &rhs)
-{
-    if (IsValid() != rhs.IsValid())
-        return false;
-
-    if (m_kind == rhs.m_kind)
-    {
-        if (m_regnum == rhs.m_regnum)
-            return true;
-        else
-            return false;
-    }
-
-    uint32_t rhs_regnum = rhs.GetAsKind (m_kind);
-    if (rhs_regnum != LLDB_INVALID_REGNUM)
-    {
-        if (m_regnum == rhs_regnum)
-            return true;
-        else
-            return false;
-    }
-    uint32_t lhs_regnum = GetAsKind (rhs.m_kind);
-    {
-        if (lhs_regnum == rhs.m_regnum)
-            return true;
-        else 
-            return false;
-    }
+bool RegisterNumber::operator==(RegisterNumber &rhs) {
+  if (IsValid() != rhs.IsValid())
     return false;
-}
 
-bool
-RegisterNumber::operator != (RegisterNumber &rhs)
-{
-    return !(*this == rhs);
-}
-
-bool
-RegisterNumber::IsValid () const
-{
-    return m_reg_ctx_sp.get()
-        && m_kind != lldb::kNumRegisterKinds 
-        && m_regnum != LLDB_INVALID_REGNUM;
-}
-
-uint32_t
-RegisterNumber::GetAsKind (lldb::RegisterKind kind)
-{
-    if (m_regnum == LLDB_INVALID_REGNUM)
-        return LLDB_INVALID_REGNUM;
-
-    if (kind == m_kind)
-        return m_regnum;
-
-    Collection::iterator iter = m_kind_regnum_map.find (kind);
-    if (iter != m_kind_regnum_map.end())
-    {
-        return iter->second;
-    }
-    uint32_t output_regnum = LLDB_INVALID_REGNUM;
-    if (m_reg_ctx_sp 
-        && m_reg_ctx_sp->ConvertBetweenRegisterKinds (m_kind, m_regnum, kind, output_regnum)
-        && output_regnum != LLDB_INVALID_REGNUM)
-    {
-        m_kind_regnum_map[kind] = output_regnum;
-    }
-    return output_regnum;
-}
+  if (m_kind == rhs.m_kind) {
+    if (m_regnum == rhs.m_regnum)
+      return true;
+    else
+      return false;
+  }
+
+  uint32_t rhs_regnum = rhs.GetAsKind(m_kind);
+  if (rhs_regnum != LLDB_INVALID_REGNUM) {
+    if (m_regnum == rhs_regnum)
+      return true;
+    else
+      return false;
+  }
+  uint32_t lhs_regnum = GetAsKind(rhs.m_kind);
+  {
+    if (lhs_regnum == rhs.m_regnum)
+      return true;
+    else
+      return false;
+  }
+  return false;
+}
+
+bool RegisterNumber::operator!=(RegisterNumber &rhs) { return !(*this == rhs); }
+
+bool RegisterNumber::IsValid() const {
+  return m_reg_ctx_sp.get() && m_kind != lldb::kNumRegisterKinds &&
+         m_regnum != LLDB_INVALID_REGNUM;
+}
+
+uint32_t RegisterNumber::GetAsKind(lldb::RegisterKind kind) {
+  if (m_regnum == LLDB_INVALID_REGNUM)
+    return LLDB_INVALID_REGNUM;
 
-uint32_t
-RegisterNumber::GetRegisterNumber () const
-{
+  if (kind == m_kind)
     return m_regnum;
-}
 
-lldb::RegisterKind
-RegisterNumber::GetRegisterKind () const
-{
-    return m_kind;
+  Collection::iterator iter = m_kind_regnum_map.find(kind);
+  if (iter != m_kind_regnum_map.end()) {
+    return iter->second;
+  }
+  uint32_t output_regnum = LLDB_INVALID_REGNUM;
+  if (m_reg_ctx_sp &&
+      m_reg_ctx_sp->ConvertBetweenRegisterKinds(m_kind, m_regnum, kind,
+                                                output_regnum) &&
+      output_regnum != LLDB_INVALID_REGNUM) {
+    m_kind_regnum_map[kind] = output_regnum;
+  }
+  return output_regnum;
 }
 
-const char *
-RegisterNumber::GetName ()
-{
-    return m_name;
-}
+uint32_t RegisterNumber::GetRegisterNumber() const { return m_regnum; }
+
+lldb::RegisterKind RegisterNumber::GetRegisterKind() const { return m_kind; }
+
+const char *RegisterNumber::GetName() { return m_name; }

Modified: lldb/trunk/source/Utility/SelectHelper.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/SelectHelper.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/SelectHelper.cpp (original)
+++ lldb/trunk/source/Utility/SelectHelper.cpp Tue Sep  6 15:57:50 2016
@@ -32,269 +32,220 @@
 
 // Project includes
 #include "lldb/Core/Error.h"
-#include "lldb/Utility/SelectHelper.h"
 #include "lldb/Utility/LLDBAssert.h"
+#include "lldb/Utility/SelectHelper.h"
 
-SelectHelper::SelectHelper() :
-    m_fd_map(),
-    m_end_time() // Infinite timeout unless SelectHelper::SetTimeout() gets called
-{
-}
+SelectHelper::SelectHelper()
+    : m_fd_map(), m_end_time() // Infinite timeout unless
+                               // SelectHelper::SetTimeout() gets called
+{}
 
-void
-SelectHelper::SetTimeout(const std::chrono::microseconds &timeout)
-{
-    using namespace std::chrono;
-    m_end_time = steady_clock::time_point(steady_clock::now() + timeout);
+void SelectHelper::SetTimeout(const std::chrono::microseconds &timeout) {
+  using namespace std::chrono;
+  m_end_time = steady_clock::time_point(steady_clock::now() + timeout);
 }
 
-void
-SelectHelper::FDSetRead(int fd)
-{
-    m_fd_map[fd].read_set = true;
-}
+void SelectHelper::FDSetRead(int fd) { m_fd_map[fd].read_set = true; }
 
-void
-SelectHelper::FDSetWrite(int fd)
-{
-    m_fd_map[fd].write_set = true;
-}
+void SelectHelper::FDSetWrite(int fd) { m_fd_map[fd].write_set = true; }
 
-void
-SelectHelper::FDSetError(int fd)
-{
-    m_fd_map[fd].error_set = true;
-}
+void SelectHelper::FDSetError(int fd) { m_fd_map[fd].error_set = true; }
 
-bool
-SelectHelper::FDIsSetRead(int fd) const
-{
-    auto pos = m_fd_map.find(fd);
-    if (pos != m_fd_map.end())
-        return pos->second.read_is_set;
-    else
-        return false;
+bool SelectHelper::FDIsSetRead(int fd) const {
+  auto pos = m_fd_map.find(fd);
+  if (pos != m_fd_map.end())
+    return pos->second.read_is_set;
+  else
+    return false;
 }
 
-bool
-SelectHelper::FDIsSetWrite(int fd) const
-{
-    auto pos = m_fd_map.find(fd);
-    if (pos != m_fd_map.end())
-        return pos->second.write_is_set;
-    else
-        return false;
+bool SelectHelper::FDIsSetWrite(int fd) const {
+  auto pos = m_fd_map.find(fd);
+  if (pos != m_fd_map.end())
+    return pos->second.write_is_set;
+  else
+    return false;
 }
 
-bool
-SelectHelper::FDIsSetError(int fd) const
-{
-    auto pos = m_fd_map.find(fd);
-    if (pos != m_fd_map.end())
-        return pos->second.error_is_set;
-    else
-        return false;
+bool SelectHelper::FDIsSetError(int fd) const {
+  auto pos = m_fd_map.find(fd);
+  if (pos != m_fd_map.end())
+    return pos->second.error_is_set;
+  else
+    return false;
 }
 
-lldb_private::Error
-SelectHelper::Select()
-{
-    lldb_private::Error error;
+lldb_private::Error SelectHelper::Select() {
+  lldb_private::Error error;
 #ifdef _MSC_VER
-    // On windows FD_SETSIZE limits the number of file descriptors, not their numeric value.
-    lldbassert(m_fd_map.size() <= FD_SETSIZE);
-    if (m_fd_map.size() > FD_SETSIZE)
-        return lldb_private::Error("Too many file descriptors for select()");
+  // On windows FD_SETSIZE limits the number of file descriptors, not their
+  // numeric value.
+  lldbassert(m_fd_map.size() <= FD_SETSIZE);
+  if (m_fd_map.size() > FD_SETSIZE)
+    return lldb_private::Error("Too many file descriptors for select()");
 #endif
 
-    int max_read_fd = -1;
-    int max_write_fd = -1;
-    int max_error_fd = -1;
-    int max_fd = -1;
-    for (auto &pair : m_fd_map)
-    {
-        pair.second.PrepareForSelect();
-        const int fd = pair.first;
+  int max_read_fd = -1;
+  int max_write_fd = -1;
+  int max_error_fd = -1;
+  int max_fd = -1;
+  for (auto &pair : m_fd_map) {
+    pair.second.PrepareForSelect();
+    const int fd = pair.first;
 #if !defined(__APPLE__) && !defined(_MSC_VER)
-        lldbassert(fd < FD_SETSIZE);
-        if (fd >= FD_SETSIZE)
-        {
-            error.SetErrorStringWithFormat("%i is too large for select()", fd);
-            return error;
-        }
+    lldbassert(fd < FD_SETSIZE);
+    if (fd >= FD_SETSIZE) {
+      error.SetErrorStringWithFormat("%i is too large for select()", fd);
+      return error;
+    }
 #endif
-        if (pair.second.read_set)
-        {
-            max_read_fd = std::max<int>(fd, max_read_fd);
-            max_fd = std::max<int>(fd, max_fd);
-        }
-        if (pair.second.write_set)
-        {
-            max_write_fd = std::max<int>(fd, max_write_fd);
-            max_fd = std::max<int>(fd, max_fd);
-        }
-        if (pair.second.error_set)
-        {
-            max_error_fd = std::max<int>(fd, max_error_fd);
-            max_fd = std::max<int>(fd, max_fd);
-        }
+    if (pair.second.read_set) {
+      max_read_fd = std::max<int>(fd, max_read_fd);
+      max_fd = std::max<int>(fd, max_fd);
+    }
+    if (pair.second.write_set) {
+      max_write_fd = std::max<int>(fd, max_write_fd);
+      max_fd = std::max<int>(fd, max_fd);
+    }
+    if (pair.second.error_set) {
+      max_error_fd = std::max<int>(fd, max_error_fd);
+      max_fd = std::max<int>(fd, max_fd);
     }
+  }
 
-    if (max_fd == -1)
-    {
-        error.SetErrorString("no valid file descriptors");
-        return error;
-    }
+  if (max_fd == -1) {
+    error.SetErrorString("no valid file descriptors");
+    return error;
+  }
 
-    const int nfds = max_fd + 1;
-    fd_set *read_fdset_ptr = nullptr;
-    fd_set *write_fdset_ptr = nullptr;
-    fd_set *error_fdset_ptr = nullptr;
-    //----------------------------------------------------------------------
-    // Initialize and zero out the fdsets
-    //----------------------------------------------------------------------
+  const int nfds = max_fd + 1;
+  fd_set *read_fdset_ptr = nullptr;
+  fd_set *write_fdset_ptr = nullptr;
+  fd_set *error_fdset_ptr = nullptr;
+//----------------------------------------------------------------------
+// Initialize and zero out the fdsets
+//----------------------------------------------------------------------
 #if defined(__APPLE__)
-    llvm::SmallVector<fd_set, 1> read_fdset;
-    llvm::SmallVector<fd_set, 1> write_fdset;
-    llvm::SmallVector<fd_set, 1> error_fdset;
-
-    if (max_read_fd >= 0)
-    {
-        read_fdset.resize((nfds / FD_SETSIZE) + 1);
-        read_fdset_ptr = read_fdset.data();
-    }
-    if (max_write_fd >= 0)
-    {
-        write_fdset.resize((nfds / FD_SETSIZE) + 1);
-        write_fdset_ptr = write_fdset.data();
-    }
-    if (max_error_fd >= 0)
-    {
-        error_fdset.resize((nfds / FD_SETSIZE) + 1);
-        error_fdset_ptr = error_fdset.data();
-    }
-    for (auto &fd_set : read_fdset)
-        FD_ZERO(&fd_set);
-    for (auto &fd_set : write_fdset)
-        FD_ZERO(&fd_set);
-    for (auto &fd_set : error_fdset)
-        FD_ZERO(&fd_set);
+  llvm::SmallVector<fd_set, 1> read_fdset;
+  llvm::SmallVector<fd_set, 1> write_fdset;
+  llvm::SmallVector<fd_set, 1> error_fdset;
+
+  if (max_read_fd >= 0) {
+    read_fdset.resize((nfds / FD_SETSIZE) + 1);
+    read_fdset_ptr = read_fdset.data();
+  }
+  if (max_write_fd >= 0) {
+    write_fdset.resize((nfds / FD_SETSIZE) + 1);
+    write_fdset_ptr = write_fdset.data();
+  }
+  if (max_error_fd >= 0) {
+    error_fdset.resize((nfds / FD_SETSIZE) + 1);
+    error_fdset_ptr = error_fdset.data();
+  }
+  for (auto &fd_set : read_fdset)
+    FD_ZERO(&fd_set);
+  for (auto &fd_set : write_fdset)
+    FD_ZERO(&fd_set);
+  for (auto &fd_set : error_fdset)
+    FD_ZERO(&fd_set);
 #else
-    fd_set read_fdset;
-    fd_set write_fdset;
-    fd_set error_fdset;
-
-    if (max_read_fd >= 0)
-    {
-        FD_ZERO(&read_fdset);
-        read_fdset_ptr = &read_fdset;
-    }
-    if (max_write_fd >= 0)
-    {
-        FD_ZERO(&write_fdset);
-        write_fdset_ptr = &write_fdset;
-    }
-    if (max_error_fd >= 0)
-    {
-        FD_ZERO(&error_fdset);
-        error_fdset_ptr = &error_fdset;
-    }
+  fd_set read_fdset;
+  fd_set write_fdset;
+  fd_set error_fdset;
+
+  if (max_read_fd >= 0) {
+    FD_ZERO(&read_fdset);
+    read_fdset_ptr = &read_fdset;
+  }
+  if (max_write_fd >= 0) {
+    FD_ZERO(&write_fdset);
+    write_fdset_ptr = &write_fdset;
+  }
+  if (max_error_fd >= 0) {
+    FD_ZERO(&error_fdset);
+    error_fdset_ptr = &error_fdset;
+  }
 #endif
-    //----------------------------------------------------------------------
-    // Set the FD bits in the fdsets for read/write/error
-    //----------------------------------------------------------------------
-    for (auto &pair : m_fd_map)
-    {
-        const int fd = pair.first;
-
-        if (pair.second.read_set)
-            FD_SET(fd, read_fdset_ptr);
+  //----------------------------------------------------------------------
+  // Set the FD bits in the fdsets for read/write/error
+  //----------------------------------------------------------------------
+  for (auto &pair : m_fd_map) {
+    const int fd = pair.first;
+
+    if (pair.second.read_set)
+      FD_SET(fd, read_fdset_ptr);
+
+    if (pair.second.write_set)
+      FD_SET(fd, write_fdset_ptr);
+
+    if (pair.second.error_set)
+      FD_SET(fd, error_fdset_ptr);
+  }
+
+  //----------------------------------------------------------------------
+  // Setup our timeout time value if needed
+  //----------------------------------------------------------------------
+  struct timeval *tv_ptr = nullptr;
+  struct timeval tv = {0, 0};
 
-        if (pair.second.write_set)
-            FD_SET(fd, write_fdset_ptr);
+  while (1) {
+    using namespace std::chrono;
+    //------------------------------------------------------------------
+    // Setup out relative timeout based on the end time if we have one
+    //------------------------------------------------------------------
+    if (m_end_time.hasValue()) {
+      tv_ptr = &tv;
+      const auto remaining_dur = duration_cast<microseconds>(
+          m_end_time.getValue() - steady_clock::now());
+      if (remaining_dur.count() > 0) {
+        // Wait for a specific amount of time
+        const auto dur_secs = duration_cast<seconds>(remaining_dur);
+        const auto dur_usecs = remaining_dur % seconds(1);
+        tv.tv_sec = dur_secs.count();
+        tv.tv_usec = dur_usecs.count();
+      } else {
+        // Just poll once with no timeout
+        tv.tv_sec = 0;
+        tv.tv_usec = 0;
+      }
+    }
+    const int num_set_fds = ::select(nfds, read_fdset_ptr, write_fdset_ptr,
+                                     error_fdset_ptr, tv_ptr);
+    if (num_set_fds < 0) {
+      // We got an error
+      error.SetErrorToErrno();
+      if (error.GetError() == EINTR) {
+        error.Clear();
+        continue; // Keep calling select if we get EINTR
+      } else
+        return error;
+    } else if (num_set_fds == 0) {
+      // Timeout
+      error.SetError(ETIMEDOUT, lldb::eErrorTypePOSIX);
+      error.SetErrorString("timed out");
+      return error;
+    } else {
+      // One or more descriptors were set, update the FDInfo::select_is_set mask
+      // so users can ask the SelectHelper class so clients can call one of:
 
-        if (pair.second.error_set)
-            FD_SET(fd, error_fdset_ptr);
-    }
+      for (auto &pair : m_fd_map) {
+        const int fd = pair.first;
 
-    //----------------------------------------------------------------------
-    // Setup our timeout time value if needed
-    //----------------------------------------------------------------------
-    struct timeval *tv_ptr = nullptr;
-    struct timeval tv = {0, 0};
-
-    while (1)
-    {
-        using namespace std::chrono;
-        //------------------------------------------------------------------
-        // Setup out relative timeout based on the end time if we have one
-        //------------------------------------------------------------------
-        if (m_end_time.hasValue())
-        {
-            tv_ptr = &tv;
-            const auto remaining_dur = duration_cast<microseconds>(m_end_time.getValue() - steady_clock::now());
-            if (remaining_dur.count() > 0)
-            {
-                // Wait for a specific amount of time
-                const auto dur_secs = duration_cast<seconds>(remaining_dur);
-                const auto dur_usecs = remaining_dur % seconds(1);
-                tv.tv_sec = dur_secs.count();
-                tv.tv_usec = dur_usecs.count();
-            }
-            else
-            {
-                // Just poll once with no timeout
-                tv.tv_sec = 0;
-                tv.tv_usec = 0;
-            }
-        }
-        const int num_set_fds = ::select(nfds, read_fdset_ptr, write_fdset_ptr, error_fdset_ptr, tv_ptr);
-        if (num_set_fds < 0)
-        {
-            // We got an error
-            error.SetErrorToErrno();
-            if (error.GetError() == EINTR)
-            {
-                error.Clear();
-                continue; // Keep calling select if we get EINTR
-            }
-            else
-                return error;
-        }
-        else if (num_set_fds == 0)
-        {
-            // Timeout
-            error.SetError(ETIMEDOUT, lldb::eErrorTypePOSIX);
-            error.SetErrorString("timed out");
-            return error;
-        }
-        else
-        {
-            // One or more descriptors were set, update the FDInfo::select_is_set mask
-            // so users can ask the SelectHelper class so clients can call one of:
-
-            for (auto &pair : m_fd_map)
-            {
-                const int fd = pair.first;
-
-                if (pair.second.read_set)
-                {
-                    if (FD_ISSET(fd, read_fdset_ptr))
-                        pair.second.read_is_set = true;
-                }
-                if (pair.second.write_set)
-                {
-                    if (FD_ISSET(fd, write_fdset_ptr))
-                        pair.second.write_is_set = true;
-                }
-                if (pair.second.error_set)
-                {
-                    if (FD_ISSET(fd, error_fdset_ptr))
-                        pair.second.error_is_set = true;
-                }
-            }
-            break;
+        if (pair.second.read_set) {
+          if (FD_ISSET(fd, read_fdset_ptr))
+            pair.second.read_is_set = true;
+        }
+        if (pair.second.write_set) {
+          if (FD_ISSET(fd, write_fdset_ptr))
+            pair.second.write_is_set = true;
+        }
+        if (pair.second.error_set) {
+          if (FD_ISSET(fd, error_fdset_ptr))
+            pair.second.error_is_set = true;
         }
+      }
+      break;
     }
-    return error;
+  }
+  return error;
 }

Modified: lldb/trunk/source/Utility/SharingPtr.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/SharingPtr.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/SharingPtr.cpp (original)
+++ lldb/trunk/source/Utility/SharingPtr.cpp Tue Sep  6 15:57:50 2016
@@ -9,12 +9,12 @@
 
 #include "lldb/Utility/SharingPtr.h"
 
-#if defined (ENABLE_SP_LOGGING)
+#if defined(ENABLE_SP_LOGGING)
 
 // If ENABLE_SP_LOGGING is defined, then log all shared pointer assignments
 // and allow them to be queried using a pointer by a call to:
-#include <execinfo.h>
 #include <assert.h>
+#include <execinfo.h>
 
 #include "llvm/ADT/STLExtras.h"
 
@@ -22,147 +22,114 @@
 #include <mutex>
 #include <vector>
 
-class Backtrace
-{
+class Backtrace {
 public:
-    Backtrace ();
-    
-    ~Backtrace ();
-    
-    void
-    GetFrames ();
-    
-    void
-    Dump () const;
-    
+  Backtrace();
+
+  ~Backtrace();
+
+  void GetFrames();
+
+  void Dump() const;
+
 private:
-    void *m_sp_this;
-    std::vector<void *> m_frames;
+  void *m_sp_this;
+  std::vector<void *> m_frames;
 };
 
+Backtrace::Backtrace() : m_frames() {}
 
-Backtrace::Backtrace () : m_frames()
-{
-}
+Backtrace::~Backtrace() {}
 
-Backtrace::~Backtrace ()
-{
-}
-
-void
-Backtrace::GetFrames ()
-{
-    void *frames[1024];
-    const int count = ::backtrace (frames, llvm::array_lengthof(frames));
-    if (count > 2)
-        m_frames.assign (frames + 2, frames + (count - 2));
-}
-
-void
-Backtrace::Dump () const
-{
-    if (!m_frames.empty())
-        ::backtrace_symbols_fd (m_frames.data(), m_frames.size(), STDOUT_FILENO);
-    write (STDOUT_FILENO, "\n\n", 2);
-}
-
-extern "C" void track_sp (void *sp_this, void *ptr, long use_count)
-{
-    typedef std::pair<void *, Backtrace> PtrBacktracePair;
-    typedef std::map<void *, PtrBacktracePair> PtrToBacktraceMap;
-    static std::mutex g_mutex;
-    std::lock_guard<std::mutex> guard(g_mutex);
-    static PtrToBacktraceMap g_map;
-
-    if (sp_this)
-    {
-        printf ("sp(%p) -> %p %lu\n", sp_this, ptr, use_count);
-
-        if (ptr)
-        {
-            Backtrace bt;
-            bt.GetFrames();
-            g_map[sp_this] = std::make_pair(ptr, bt);
-        }
-        else
-        {
-            g_map.erase (sp_this);
-        }
+void Backtrace::GetFrames() {
+  void *frames[1024];
+  const int count = ::backtrace(frames, llvm::array_lengthof(frames));
+  if (count > 2)
+    m_frames.assign(frames + 2, frames + (count - 2));
+}
+
+void Backtrace::Dump() const {
+  if (!m_frames.empty())
+    ::backtrace_symbols_fd(m_frames.data(), m_frames.size(), STDOUT_FILENO);
+  write(STDOUT_FILENO, "\n\n", 2);
+}
+
+extern "C" void track_sp(void *sp_this, void *ptr, long use_count) {
+  typedef std::pair<void *, Backtrace> PtrBacktracePair;
+  typedef std::map<void *, PtrBacktracePair> PtrToBacktraceMap;
+  static std::mutex g_mutex;
+  std::lock_guard<std::mutex> guard(g_mutex);
+  static PtrToBacktraceMap g_map;
+
+  if (sp_this) {
+    printf("sp(%p) -> %p %lu\n", sp_this, ptr, use_count);
+
+    if (ptr) {
+      Backtrace bt;
+      bt.GetFrames();
+      g_map[sp_this] = std::make_pair(ptr, bt);
+    } else {
+      g_map.erase(sp_this);
+    }
+  } else {
+    if (ptr)
+      printf("Searching for shared pointers that are tracking %p: ", ptr);
+    else
+      printf("Dump all live shared pointres: ");
+
+    uint32_t matches = 0;
+    PtrToBacktraceMap::iterator pos, end = g_map.end();
+    for (pos = g_map.begin(); pos != end; ++pos) {
+      if (ptr == NULL || pos->second.first == ptr) {
+        ++matches;
+        printf("\nsp(%p): %p\n", pos->first, pos->second.first);
+        pos->second.second.Dump();
+      }
     }
-    else 
-    {
-        if (ptr)
-            printf ("Searching for shared pointers that are tracking %p: ", ptr);
-        else
-            printf ("Dump all live shared pointres: ");
-
-        uint32_t matches = 0;
-        PtrToBacktraceMap::iterator pos, end = g_map.end();
-        for (pos = g_map.begin(); pos != end; ++pos)
-        {
-            if (ptr == NULL || pos->second.first == ptr)
-            {
-                ++matches;
-                printf ("\nsp(%p): %p\n", pos->first, pos->second.first);
-                pos->second.second.Dump();
-            }
-        }
-        if (matches == 0)
-        {
-            printf ("none.\n");
-        }
+    if (matches == 0) {
+      printf("none.\n");
     }
+  }
 }
-// Put dump_sp_refs in the lldb namespace to it gets through our exports lists filter in the LLDB.framework or lldb.so
+// Put dump_sp_refs in the lldb namespace to it gets through our exports lists
+// filter in the LLDB.framework or lldb.so
 namespace lldb {
-    
-    void dump_sp_refs (void *ptr)
-    {
-        // Use a specially crafted call to "track_sp" which will
-        // dump info on all live shared pointers that reference "ptr"
-        track_sp (NULL, ptr, 0);
-    }
-    
+
+void dump_sp_refs(void *ptr) {
+  // Use a specially crafted call to "track_sp" which will
+  // dump info on all live shared pointers that reference "ptr"
+  track_sp(NULL, ptr, 0);
+}
 }
 
 #endif
 
 namespace lldb_private {
 
-namespace imp
-{
+namespace imp {
 
+shared_count::~shared_count() {}
 
-    shared_count::~shared_count()
-    {
-    }
-
-    void
-    shared_count::add_shared()
-    {
+void shared_count::add_shared() {
 #ifdef _MSC_VER
-        _InterlockedIncrement(&shared_owners_);
+  _InterlockedIncrement(&shared_owners_);
 #else
-        ++shared_owners_;
+  ++shared_owners_;
 #endif
-    }
+}
 
-    void
-    shared_count::release_shared()
-    {
+void shared_count::release_shared() {
 #ifdef _MSC_VER
-        if (_InterlockedDecrement(&shared_owners_) == -1)
+  if (_InterlockedDecrement(&shared_owners_) == -1)
 #else
-        if (--shared_owners_ == -1)
+  if (--shared_owners_ == -1)
 #endif
-        {
-            on_zero_shared();
-            delete this;
-        }
-    }
+  {
+    on_zero_shared();
+    delete this;
+  }
+}
 
 } // imp
 
-
 } // namespace lldb
-

Modified: lldb/trunk/source/Utility/StdStringExtractor.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/StdStringExtractor.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/StdStringExtractor.cpp (original)
+++ lldb/trunk/source/Utility/StdStringExtractor.cpp Tue Sep  6 15:57:50 2016
@@ -16,81 +16,58 @@
 // Other libraries and framework includes
 // Project includes
 
-static inline int
-xdigit_to_sint (char ch)
-{
-    if (ch >= 'a' && ch <= 'f')
-        return 10 + ch - 'a';
-    if (ch >= 'A' && ch <= 'F')
-        return 10 + ch - 'A';
-    if (ch >= '0' && ch <= '9')
-        return ch - '0';
-    return -1;
+static inline int xdigit_to_sint(char ch) {
+  if (ch >= 'a' && ch <= 'f')
+    return 10 + ch - 'a';
+  if (ch >= 'A' && ch <= 'F')
+    return 10 + ch - 'A';
+  if (ch >= '0' && ch <= '9')
+    return ch - '0';
+  return -1;
 }
 
 //----------------------------------------------------------------------
 // StdStringExtractor constructor
 //----------------------------------------------------------------------
-StdStringExtractor::StdStringExtractor() :
-    m_packet(),
-    m_index (0)
-{
-}
-
+StdStringExtractor::StdStringExtractor() : m_packet(), m_index(0) {}
 
-StdStringExtractor::StdStringExtractor(const char *packet_cstr) :
-    m_packet(),
-    m_index (0)
-{
-    if (packet_cstr)
-        m_packet.assign (packet_cstr);
+StdStringExtractor::StdStringExtractor(const char *packet_cstr)
+    : m_packet(), m_index(0) {
+  if (packet_cstr)
+    m_packet.assign(packet_cstr);
 }
 
-
 //----------------------------------------------------------------------
 // StdStringExtractor copy constructor
 //----------------------------------------------------------------------
-StdStringExtractor::StdStringExtractor(const StdStringExtractor& rhs) :
-    m_packet (rhs.m_packet),
-    m_index (rhs.m_index)
-{
-
-}
+StdStringExtractor::StdStringExtractor(const StdStringExtractor &rhs)
+    : m_packet(rhs.m_packet), m_index(rhs.m_index) {}
 
 //----------------------------------------------------------------------
 // StdStringExtractor assignment operator
 //----------------------------------------------------------------------
-const StdStringExtractor&
-StdStringExtractor::operator=(const StdStringExtractor& rhs)
-{
-    if (this != &rhs)
-    {
-        m_packet = rhs.m_packet;
-        m_index = rhs.m_index;
-
-    }
-    return *this;
+const StdStringExtractor &StdStringExtractor::
+operator=(const StdStringExtractor &rhs) {
+  if (this != &rhs) {
+    m_packet = rhs.m_packet;
+    m_index = rhs.m_index;
+  }
+  return *this;
 }
 
 //----------------------------------------------------------------------
 // Destructor
 //----------------------------------------------------------------------
-StdStringExtractor::~StdStringExtractor()
-{
-}
+StdStringExtractor::~StdStringExtractor() {}
 
-
-char
-StdStringExtractor::GetChar (char fail_value)
-{
-    if (m_index < m_packet.size())
-    {
-        char ch = m_packet[m_index];
-        ++m_index;
-        return ch;
-    }
-    m_index = UINT64_MAX;
-    return fail_value;
+char StdStringExtractor::GetChar(char fail_value) {
+  if (m_index < m_packet.size()) {
+    char ch = m_packet[m_index];
+    ++m_index;
+    return ch;
+  }
+  m_index = UINT64_MAX;
+  return fail_value;
 }
 
 //----------------------------------------------------------------------
@@ -101,274 +78,221 @@ StdStringExtractor::GetChar (char fail_v
 // If there is not a pair of valid hex digits at the head of the
 // StdStringExtractor, it is left unchanged and -1 is returned
 //----------------------------------------------------------------------
-int
-StdStringExtractor::DecodeHexU8()
-{
-    SkipSpaces();
-    if (GetBytesLeft() < 2)
-    {
-        return -1;
-    }
-    const int hi_nibble = xdigit_to_sint(m_packet[m_index]);
-    const int lo_nibble = xdigit_to_sint(m_packet[m_index+1]);
-    if (hi_nibble == -1 || lo_nibble == -1)
-    {
-        return -1;
-    }
-    m_index += 2;
-    return (uint8_t)((hi_nibble << 4) + lo_nibble);
+int StdStringExtractor::DecodeHexU8() {
+  SkipSpaces();
+  if (GetBytesLeft() < 2) {
+    return -1;
+  }
+  const int hi_nibble = xdigit_to_sint(m_packet[m_index]);
+  const int lo_nibble = xdigit_to_sint(m_packet[m_index + 1]);
+  if (hi_nibble == -1 || lo_nibble == -1) {
+    return -1;
+  }
+  m_index += 2;
+  return (uint8_t)((hi_nibble << 4) + lo_nibble);
 }
 
 //----------------------------------------------------------------------
 // Extract an unsigned character from two hex ASCII chars in the packet
 // string, or return fail_value on failure
 //----------------------------------------------------------------------
-uint8_t
-StdStringExtractor::GetHexU8 (uint8_t fail_value, bool set_eof_on_fail)
-{
-    // On success, fail_value will be overwritten with the next
-    // character in the stream
-    GetHexU8Ex(fail_value, set_eof_on_fail);
-    return fail_value;
-}
-
-bool
-StdStringExtractor::GetHexU8Ex (uint8_t& ch, bool set_eof_on_fail)
-{
-    int byte = DecodeHexU8();
-    if (byte == -1)
-    {
-        if (set_eof_on_fail || m_index >= m_packet.size())
-            m_index = UINT64_MAX;
-        // ch should not be changed in case of failure
-        return false;
-    }
-    ch = (uint8_t)byte;
-    return true;
-}
-
-uint32_t
-StdStringExtractor::GetU32 (uint32_t fail_value, int base)
-{
-    if (m_index < m_packet.size())
-    {
-        char *end = nullptr;
-        const char *start = m_packet.c_str();
-        const char *cstr = start + m_index;
-        uint32_t result = static_cast<uint32_t>(::strtoul (cstr, &end, base));
-
-        if (end && end != cstr)
-        {
-            m_index = end - start;
-            return result;
-        }
-    }
-    return fail_value;
-}
-
-int32_t
-StdStringExtractor::GetS32 (int32_t fail_value, int base)
-{
-    if (m_index < m_packet.size())
-    {
-        char *end = nullptr;
-        const char *start = m_packet.c_str();
-        const char *cstr = start + m_index;
-        int32_t result = static_cast<int32_t>(::strtol (cstr, &end, base));
-        
-        if (end && end != cstr)
-        {
-            m_index = end - start;
-            return result;
-        }
-    }
-    return fail_value;
-}
-
-
-uint64_t
-StdStringExtractor::GetU64 (uint64_t fail_value, int base)
-{
-    if (m_index < m_packet.size())
-    {
-        char *end = nullptr;
-        const char *start = m_packet.c_str();
-        const char *cstr = start + m_index;
-        uint64_t result = ::strtoull (cstr, &end, base);
-        
-        if (end && end != cstr)
-        {
-            m_index = end - start;
-            return result;
-        }
-    }
-    return fail_value;
-}
-
-int64_t
-StdStringExtractor::GetS64 (int64_t fail_value, int base)
-{
-    if (m_index < m_packet.size())
-    {
-        char *end = nullptr;
-        const char *start = m_packet.c_str();
-        const char *cstr = start + m_index;
-        int64_t result = ::strtoll (cstr, &end, base);
-        
-        if (end && end != cstr)
-        {
-            m_index = end - start;
-            return result;
-        }
-    }
-    return fail_value;
-}
-
-
-uint32_t
-StdStringExtractor::GetHexMaxU32 (bool little_endian, uint32_t fail_value)
-{
-    uint32_t result = 0;
-    uint32_t nibble_count = 0;
-
-    SkipSpaces();
-    if (little_endian)
-    {
-        uint32_t shift_amount = 0;
-        while (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-        {
-            // Make sure we don't exceed the size of a uint32_t...
-            if (nibble_count >= (sizeof(uint32_t) * 2))
-            {
-                m_index = UINT64_MAX;
-                return fail_value;
-            }
-
-            uint8_t nibble_lo;
-            uint8_t nibble_hi = xdigit_to_sint (m_packet[m_index]);
-            ++m_index;
-            if (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-            {
-                nibble_lo = xdigit_to_sint (m_packet[m_index]);
-                ++m_index;
-                result |= ((uint32_t)nibble_hi << (shift_amount + 4));
-                result |= ((uint32_t)nibble_lo << shift_amount);
-                nibble_count += 2;
-                shift_amount += 8;
-            }
-            else
-            {
-                result |= ((uint32_t)nibble_hi << shift_amount);
-                nibble_count += 1;
-                shift_amount += 4;
-            }
-
-        }
-    }
-    else
-    {
-        while (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-        {
-            // Make sure we don't exceed the size of a uint32_t...
-            if (nibble_count >= (sizeof(uint32_t) * 2))
-            {
-                m_index = UINT64_MAX;
-                return fail_value;
-            }
-
-            uint8_t nibble = xdigit_to_sint (m_packet[m_index]);
-            // Big Endian
-            result <<= 4;
-            result |= nibble;
-
-            ++m_index;
-            ++nibble_count;
-        }
-    }
-    return result;
-}
-
-uint64_t
-StdStringExtractor::GetHexMaxU64 (bool little_endian, uint64_t fail_value)
-{
-    uint64_t result = 0;
-    uint32_t nibble_count = 0;
-
-    SkipSpaces();
-    if (little_endian)
-    {
-        uint32_t shift_amount = 0;
-        while (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-        {
-            // Make sure we don't exceed the size of a uint64_t...
-            if (nibble_count >= (sizeof(uint64_t) * 2))
-            {
-                m_index = UINT64_MAX;
-                return fail_value;
-            }
-
-            uint8_t nibble_lo;
-            uint8_t nibble_hi = xdigit_to_sint (m_packet[m_index]);
-            ++m_index;
-            if (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-            {
-                nibble_lo = xdigit_to_sint (m_packet[m_index]);
-                ++m_index;
-                result |= ((uint64_t)nibble_hi << (shift_amount + 4));
-                result |= ((uint64_t)nibble_lo << shift_amount);
-                nibble_count += 2;
-                shift_amount += 8;
-            }
-            else
-            {
-                result |= ((uint64_t)nibble_hi << shift_amount);
-                nibble_count += 1;
-                shift_amount += 4;
-            }
+uint8_t StdStringExtractor::GetHexU8(uint8_t fail_value, bool set_eof_on_fail) {
+  // On success, fail_value will be overwritten with the next
+  // character in the stream
+  GetHexU8Ex(fail_value, set_eof_on_fail);
+  return fail_value;
+}
 
-        }
-    }
+bool StdStringExtractor::GetHexU8Ex(uint8_t &ch, bool set_eof_on_fail) {
+  int byte = DecodeHexU8();
+  if (byte == -1) {
+    if (set_eof_on_fail || m_index >= m_packet.size())
+      m_index = UINT64_MAX;
+    // ch should not be changed in case of failure
+    return false;
+  }
+  ch = (uint8_t)byte;
+  return true;
+}
+
+uint32_t StdStringExtractor::GetU32(uint32_t fail_value, int base) {
+  if (m_index < m_packet.size()) {
+    char *end = nullptr;
+    const char *start = m_packet.c_str();
+    const char *cstr = start + m_index;
+    uint32_t result = static_cast<uint32_t>(::strtoul(cstr, &end, base));
+
+    if (end && end != cstr) {
+      m_index = end - start;
+      return result;
+    }
+  }
+  return fail_value;
+}
+
+int32_t StdStringExtractor::GetS32(int32_t fail_value, int base) {
+  if (m_index < m_packet.size()) {
+    char *end = nullptr;
+    const char *start = m_packet.c_str();
+    const char *cstr = start + m_index;
+    int32_t result = static_cast<int32_t>(::strtol(cstr, &end, base));
+
+    if (end && end != cstr) {
+      m_index = end - start;
+      return result;
+    }
+  }
+  return fail_value;
+}
+
+uint64_t StdStringExtractor::GetU64(uint64_t fail_value, int base) {
+  if (m_index < m_packet.size()) {
+    char *end = nullptr;
+    const char *start = m_packet.c_str();
+    const char *cstr = start + m_index;
+    uint64_t result = ::strtoull(cstr, &end, base);
+
+    if (end && end != cstr) {
+      m_index = end - start;
+      return result;
+    }
+  }
+  return fail_value;
+}
+
+int64_t StdStringExtractor::GetS64(int64_t fail_value, int base) {
+  if (m_index < m_packet.size()) {
+    char *end = nullptr;
+    const char *start = m_packet.c_str();
+    const char *cstr = start + m_index;
+    int64_t result = ::strtoll(cstr, &end, base);
+
+    if (end && end != cstr) {
+      m_index = end - start;
+      return result;
+    }
+  }
+  return fail_value;
+}
+
+uint32_t StdStringExtractor::GetHexMaxU32(bool little_endian,
+                                          uint32_t fail_value) {
+  uint32_t result = 0;
+  uint32_t nibble_count = 0;
+
+  SkipSpaces();
+  if (little_endian) {
+    uint32_t shift_amount = 0;
+    while (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+      // Make sure we don't exceed the size of a uint32_t...
+      if (nibble_count >= (sizeof(uint32_t) * 2)) {
+        m_index = UINT64_MAX;
+        return fail_value;
+      }
+
+      uint8_t nibble_lo;
+      uint8_t nibble_hi = xdigit_to_sint(m_packet[m_index]);
+      ++m_index;
+      if (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+        nibble_lo = xdigit_to_sint(m_packet[m_index]);
+        ++m_index;
+        result |= ((uint32_t)nibble_hi << (shift_amount + 4));
+        result |= ((uint32_t)nibble_lo << shift_amount);
+        nibble_count += 2;
+        shift_amount += 8;
+      } else {
+        result |= ((uint32_t)nibble_hi << shift_amount);
+        nibble_count += 1;
+        shift_amount += 4;
+      }
+    }
+  } else {
+    while (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+      // Make sure we don't exceed the size of a uint32_t...
+      if (nibble_count >= (sizeof(uint32_t) * 2)) {
+        m_index = UINT64_MAX;
+        return fail_value;
+      }
+
+      uint8_t nibble = xdigit_to_sint(m_packet[m_index]);
+      // Big Endian
+      result <<= 4;
+      result |= nibble;
+
+      ++m_index;
+      ++nibble_count;
+    }
+  }
+  return result;
+}
+
+uint64_t StdStringExtractor::GetHexMaxU64(bool little_endian,
+                                          uint64_t fail_value) {
+  uint64_t result = 0;
+  uint32_t nibble_count = 0;
+
+  SkipSpaces();
+  if (little_endian) {
+    uint32_t shift_amount = 0;
+    while (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+      // Make sure we don't exceed the size of a uint64_t...
+      if (nibble_count >= (sizeof(uint64_t) * 2)) {
+        m_index = UINT64_MAX;
+        return fail_value;
+      }
+
+      uint8_t nibble_lo;
+      uint8_t nibble_hi = xdigit_to_sint(m_packet[m_index]);
+      ++m_index;
+      if (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+        nibble_lo = xdigit_to_sint(m_packet[m_index]);
+        ++m_index;
+        result |= ((uint64_t)nibble_hi << (shift_amount + 4));
+        result |= ((uint64_t)nibble_lo << shift_amount);
+        nibble_count += 2;
+        shift_amount += 8;
+      } else {
+        result |= ((uint64_t)nibble_hi << shift_amount);
+        nibble_count += 1;
+        shift_amount += 4;
+      }
+    }
+  } else {
+    while (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+      // Make sure we don't exceed the size of a uint64_t...
+      if (nibble_count >= (sizeof(uint64_t) * 2)) {
+        m_index = UINT64_MAX;
+        return fail_value;
+      }
+
+      uint8_t nibble = xdigit_to_sint(m_packet[m_index]);
+      // Big Endian
+      result <<= 4;
+      result |= nibble;
+
+      ++m_index;
+      ++nibble_count;
+    }
+  }
+  return result;
+}
+
+size_t StdStringExtractor::GetHexBytes(void *dst_void, size_t dst_len,
+                                       uint8_t fail_fill_value) {
+  uint8_t *dst = (uint8_t *)dst_void;
+  size_t bytes_extracted = 0;
+  while (bytes_extracted < dst_len && GetBytesLeft()) {
+    dst[bytes_extracted] = GetHexU8(fail_fill_value);
+    if (IsGood())
+      ++bytes_extracted;
     else
-    {
-        while (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-        {
-            // Make sure we don't exceed the size of a uint64_t...
-            if (nibble_count >= (sizeof(uint64_t) * 2))
-            {
-                m_index = UINT64_MAX;
-                return fail_value;
-            }
-
-            uint8_t nibble = xdigit_to_sint (m_packet[m_index]);
-            // Big Endian
-            result <<= 4;
-            result |= nibble;
-
-            ++m_index;
-            ++nibble_count;
-        }
-    }
-    return result;
-}
-
-size_t
-StdStringExtractor::GetHexBytes (void *dst_void, size_t dst_len, uint8_t fail_fill_value)
-{
-    uint8_t *dst = (uint8_t*)dst_void;
-    size_t bytes_extracted = 0;
-    while (bytes_extracted < dst_len && GetBytesLeft ())
-    {
-        dst[bytes_extracted] = GetHexU8 (fail_fill_value);
-        if (IsGood())
-            ++bytes_extracted;
-        else
-            break;
-    }
+      break;
+  }
 
-    for (size_t i = bytes_extracted; i < dst_len; ++i)
-        dst[i] = fail_fill_value;
+  for (size_t i = bytes_extracted; i < dst_len; ++i)
+    dst[i] = fail_fill_value;
 
-    return bytes_extracted;
+  return bytes_extracted;
 }
 
 //----------------------------------------------------------------------
@@ -377,126 +301,105 @@ StdStringExtractor::GetHexBytes (void *d
 //
 // Returns the number of bytes successfully decoded
 //----------------------------------------------------------------------
-size_t
-StdStringExtractor::GetHexBytesAvail (void *dst_void, size_t dst_len)
-{
-    uint8_t *dst = (uint8_t*)dst_void;
-    size_t bytes_extracted = 0;
-    while (bytes_extracted < dst_len)
-    {
-        int decode = DecodeHexU8();
-        if (decode == -1)
-        {
-            break;
-        }
-        dst[bytes_extracted++] = (uint8_t)decode;
-    }
-    return bytes_extracted;
+size_t StdStringExtractor::GetHexBytesAvail(void *dst_void, size_t dst_len) {
+  uint8_t *dst = (uint8_t *)dst_void;
+  size_t bytes_extracted = 0;
+  while (bytes_extracted < dst_len) {
+    int decode = DecodeHexU8();
+    if (decode == -1) {
+      break;
+    }
+    dst[bytes_extracted++] = (uint8_t)decode;
+  }
+  return bytes_extracted;
 }
 
 // Consume ASCII hex nibble character pairs until we have decoded byte_size
 // bytes of data.
 
-uint64_t
-StdStringExtractor::GetHexWithFixedSize (uint32_t byte_size, bool little_endian, uint64_t fail_value)
-{
-    if (byte_size <= 8 && GetBytesLeft() >= byte_size * 2)
-    {
-        uint64_t result = 0;
-        uint32_t i;
-        if (little_endian)
-        {
-            // Little Endian
-            uint32_t shift_amount;
-            for (i = 0, shift_amount = 0;
-                 i < byte_size && IsGood();
-                 ++i, shift_amount += 8)
-            {
-                result |= ((uint64_t)GetHexU8() << shift_amount);
-            }
-        }
-        else
-        {
-            // Big Endian
-            for (i = 0; i < byte_size && IsGood(); ++i)
-            {
-                result <<= 8;
-                result |= GetHexU8();
-            }
-        }
-    }
-    m_index = UINT64_MAX;
-    return fail_value;
-}
-
-size_t
-StdStringExtractor::GetHexByteString (std::string &str)
-{
-    str.clear();
-    str.reserve(GetBytesLeft() / 2);
-    char ch;
-    while ((ch = GetHexU8()) != '\0')
-        str.append(1, ch);
-    return str.size();
-}
-
-size_t
-StdStringExtractor::GetHexByteStringFixedLength (std::string &str, uint32_t nibble_length)
-{
-    str.clear();
-
-    uint32_t nibble_count = 0;
-    for (const char *pch = Peek(); (nibble_count < nibble_length) && (pch != nullptr); str.append(1, GetHexU8(0, false)), pch = Peek (), nibble_count += 2)
-    {}
-
-    return str.size();
-}
-
-size_t
-StdStringExtractor::GetHexByteStringTerminatedBy (std::string &str,
-                                               char terminator)
-{
-    str.clear();
-    char ch;
-    while ((ch = GetHexU8(0,false)) != '\0')
-        str.append(1, ch);
-    if (Peek() && *Peek() == terminator)
-        return str.size();
-
-    str.clear();
+uint64_t StdStringExtractor::GetHexWithFixedSize(uint32_t byte_size,
+                                                 bool little_endian,
+                                                 uint64_t fail_value) {
+  if (byte_size <= 8 && GetBytesLeft() >= byte_size * 2) {
+    uint64_t result = 0;
+    uint32_t i;
+    if (little_endian) {
+      // Little Endian
+      uint32_t shift_amount;
+      for (i = 0, shift_amount = 0; i < byte_size && IsGood();
+           ++i, shift_amount += 8) {
+        result |= ((uint64_t)GetHexU8() << shift_amount);
+      }
+    } else {
+      // Big Endian
+      for (i = 0; i < byte_size && IsGood(); ++i) {
+        result <<= 8;
+        result |= GetHexU8();
+      }
+    }
+  }
+  m_index = UINT64_MAX;
+  return fail_value;
+}
+
+size_t StdStringExtractor::GetHexByteString(std::string &str) {
+  str.clear();
+  str.reserve(GetBytesLeft() / 2);
+  char ch;
+  while ((ch = GetHexU8()) != '\0')
+    str.append(1, ch);
+  return str.size();
+}
+
+size_t StdStringExtractor::GetHexByteStringFixedLength(std::string &str,
+                                                       uint32_t nibble_length) {
+  str.clear();
+
+  uint32_t nibble_count = 0;
+  for (const char *pch = Peek();
+       (nibble_count < nibble_length) && (pch != nullptr);
+       str.append(1, GetHexU8(0, false)), pch = Peek(), nibble_count += 2) {
+  }
+
+  return str.size();
+}
+
+size_t StdStringExtractor::GetHexByteStringTerminatedBy(std::string &str,
+                                                        char terminator) {
+  str.clear();
+  char ch;
+  while ((ch = GetHexU8(0, false)) != '\0')
+    str.append(1, ch);
+  if (Peek() && *Peek() == terminator)
     return str.size();
-}
 
-bool
-StdStringExtractor::GetNameColonValue (std::string &name, std::string &value)
-{
-    // Read something in the form of NNNN:VVVV; where NNNN is any character
-    // that is not a colon, followed by a ':' character, then a value (one or
-    // more ';' chars), followed by a ';'
-    if (m_index < m_packet.size())
-    {
-        const size_t colon_idx = m_packet.find (':', m_index);
-        if (colon_idx != std::string::npos)
-        {
-            const size_t semicolon_idx = m_packet.find (';', colon_idx);
-            if (semicolon_idx != std::string::npos)
-            {
-                name.assign (m_packet, m_index, colon_idx - m_index);
-                value.assign (m_packet, colon_idx + 1, semicolon_idx - (colon_idx + 1));
-                m_index = semicolon_idx + 1;
-                return true;
-            }
-        }
-    }
-    m_index = UINT64_MAX;
-    return false;
+  str.clear();
+  return str.size();
 }
 
-void
-StdStringExtractor::SkipSpaces ()
-{
-    const size_t n = m_packet.size();
-    while (m_index < n && isspace(m_packet[m_index]))
-        ++m_index;
+bool StdStringExtractor::GetNameColonValue(std::string &name,
+                                           std::string &value) {
+  // Read something in the form of NNNN:VVVV; where NNNN is any character
+  // that is not a colon, followed by a ':' character, then a value (one or
+  // more ';' chars), followed by a ';'
+  if (m_index < m_packet.size()) {
+    const size_t colon_idx = m_packet.find(':', m_index);
+    if (colon_idx != std::string::npos) {
+      const size_t semicolon_idx = m_packet.find(';', colon_idx);
+      if (semicolon_idx != std::string::npos) {
+        name.assign(m_packet, m_index, colon_idx - m_index);
+        value.assign(m_packet, colon_idx + 1, semicolon_idx - (colon_idx + 1));
+        m_index = semicolon_idx + 1;
+        return true;
+      }
+    }
+  }
+  m_index = UINT64_MAX;
+  return false;
+}
+
+void StdStringExtractor::SkipSpaces() {
+  const size_t n = m_packet.size();
+  while (m_index < n && isspace(m_packet[m_index]))
+    ++m_index;
 }
-

Modified: lldb/trunk/source/Utility/StringExtractor.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/StringExtractor.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/StringExtractor.cpp (original)
+++ lldb/trunk/source/Utility/StringExtractor.cpp Tue Sep  6 15:57:50 2016
@@ -17,85 +17,62 @@
 // Other libraries and framework includes
 // Project includes
 
-static inline int
-xdigit_to_sint (char ch)
-{
-    if (ch >= 'a' && ch <= 'f')
-        return 10 + ch - 'a';
-    if (ch >= 'A' && ch <= 'F')
-        return 10 + ch - 'A';
-    if (ch >= '0' && ch <= '9')
-        return ch - '0';
-    return -1;
+static inline int xdigit_to_sint(char ch) {
+  if (ch >= 'a' && ch <= 'f')
+    return 10 + ch - 'a';
+  if (ch >= 'A' && ch <= 'F')
+    return 10 + ch - 'A';
+  if (ch >= '0' && ch <= '9')
+    return ch - '0';
+  return -1;
 }
 
 //----------------------------------------------------------------------
 // StringExtractor constructor
 //----------------------------------------------------------------------
-StringExtractor::StringExtractor() :
-    m_packet(),
-    m_index (0)
-{
-}
-
-StringExtractor::StringExtractor(llvm::StringRef packet_str) : m_packet(), m_index(0)
-{
-    m_packet.assign(packet_str.begin(), packet_str.end());
-}
-
-StringExtractor::StringExtractor(const char *packet_cstr) :
-    m_packet(),
-    m_index (0)
-{
-    if (packet_cstr)
-        m_packet.assign (packet_cstr);
+StringExtractor::StringExtractor() : m_packet(), m_index(0) {}
+
+StringExtractor::StringExtractor(llvm::StringRef packet_str)
+    : m_packet(), m_index(0) {
+  m_packet.assign(packet_str.begin(), packet_str.end());
 }
 
+StringExtractor::StringExtractor(const char *packet_cstr)
+    : m_packet(), m_index(0) {
+  if (packet_cstr)
+    m_packet.assign(packet_cstr);
+}
 
 //----------------------------------------------------------------------
 // StringExtractor copy constructor
 //----------------------------------------------------------------------
-StringExtractor::StringExtractor(const StringExtractor& rhs) :
-    m_packet (rhs.m_packet),
-    m_index (rhs.m_index)
-{
-
-}
+StringExtractor::StringExtractor(const StringExtractor &rhs)
+    : m_packet(rhs.m_packet), m_index(rhs.m_index) {}
 
 //----------------------------------------------------------------------
 // StringExtractor assignment operator
 //----------------------------------------------------------------------
-const StringExtractor&
-StringExtractor::operator=(const StringExtractor& rhs)
-{
-    if (this != &rhs)
-    {
-        m_packet = rhs.m_packet;
-        m_index = rhs.m_index;
-
-    }
-    return *this;
+const StringExtractor &StringExtractor::operator=(const StringExtractor &rhs) {
+  if (this != &rhs) {
+    m_packet = rhs.m_packet;
+    m_index = rhs.m_index;
+  }
+  return *this;
 }
 
 //----------------------------------------------------------------------
 // Destructor
 //----------------------------------------------------------------------
-StringExtractor::~StringExtractor()
-{
-}
+StringExtractor::~StringExtractor() {}
 
-
-char
-StringExtractor::GetChar (char fail_value)
-{
-    if (m_index < m_packet.size())
-    {
-        char ch = m_packet[m_index];
-        ++m_index;
-        return ch;
-    }
-    m_index = UINT64_MAX;
-    return fail_value;
+char StringExtractor::GetChar(char fail_value) {
+  if (m_index < m_packet.size()) {
+    char ch = m_packet[m_index];
+    ++m_index;
+    return ch;
+  }
+  m_index = UINT64_MAX;
+  return fail_value;
 }
 
 //----------------------------------------------------------------------
@@ -106,273 +83,220 @@ StringExtractor::GetChar (char fail_valu
 // If there is not a pair of valid hex digits at the head of the
 // StringExtractor, it is left unchanged and -1 is returned
 //----------------------------------------------------------------------
-int
-StringExtractor::DecodeHexU8()
-{
-    SkipSpaces();
-    if (GetBytesLeft() < 2)
-    {
-        return -1;
-    }
-    const int hi_nibble = xdigit_to_sint(m_packet[m_index]);
-    const int lo_nibble = xdigit_to_sint(m_packet[m_index+1]);
-    if (hi_nibble == -1 || lo_nibble == -1)
-    {
-        return -1;
-    }
-    m_index += 2;
-    return (uint8_t)((hi_nibble << 4) + lo_nibble);
+int StringExtractor::DecodeHexU8() {
+  SkipSpaces();
+  if (GetBytesLeft() < 2) {
+    return -1;
+  }
+  const int hi_nibble = xdigit_to_sint(m_packet[m_index]);
+  const int lo_nibble = xdigit_to_sint(m_packet[m_index + 1]);
+  if (hi_nibble == -1 || lo_nibble == -1) {
+    return -1;
+  }
+  m_index += 2;
+  return (uint8_t)((hi_nibble << 4) + lo_nibble);
 }
 
 //----------------------------------------------------------------------
 // Extract an unsigned character from two hex ASCII chars in the packet
 // string, or return fail_value on failure
 //----------------------------------------------------------------------
-uint8_t
-StringExtractor::GetHexU8 (uint8_t fail_value, bool set_eof_on_fail)
-{
-    // On success, fail_value will be overwritten with the next
-    // character in the stream
-    GetHexU8Ex(fail_value, set_eof_on_fail);
-    return fail_value;
-}
-
-bool
-StringExtractor::GetHexU8Ex (uint8_t& ch, bool set_eof_on_fail)
-{
-    int byte = DecodeHexU8();
-    if (byte == -1)
-    {
-        if (set_eof_on_fail || m_index >= m_packet.size())
-            m_index = UINT64_MAX;
-        // ch should not be changed in case of failure
-        return false;
-    }
-    ch = (uint8_t)byte;
-    return true;
-}
-
-uint32_t
-StringExtractor::GetU32 (uint32_t fail_value, int base)
-{
-    if (m_index < m_packet.size())
-    {
-        char *end = nullptr;
-        const char *start = m_packet.c_str();
-        const char *cstr = start + m_index;
-        uint32_t result = static_cast<uint32_t>(::strtoul (cstr, &end, base));
-
-        if (end && end != cstr)
-        {
-            m_index = end - start;
-            return result;
-        }
-    }
-    return fail_value;
-}
-
-int32_t
-StringExtractor::GetS32 (int32_t fail_value, int base)
-{
-    if (m_index < m_packet.size())
-    {
-        char *end = nullptr;
-        const char *start = m_packet.c_str();
-        const char *cstr = start + m_index;
-        int32_t result = static_cast<int32_t>(::strtol (cstr, &end, base));
-        
-        if (end && end != cstr)
-        {
-            m_index = end - start;
-            return result;
-        }
-    }
-    return fail_value;
-}
-
-
-uint64_t
-StringExtractor::GetU64 (uint64_t fail_value, int base)
-{
-    if (m_index < m_packet.size())
-    {
-        char *end = nullptr;
-        const char *start = m_packet.c_str();
-        const char *cstr = start + m_index;
-        uint64_t result = ::strtoull (cstr, &end, base);
-        
-        if (end && end != cstr)
-        {
-            m_index = end - start;
-            return result;
-        }
-    }
-    return fail_value;
-}
-
-int64_t
-StringExtractor::GetS64 (int64_t fail_value, int base)
-{
-    if (m_index < m_packet.size())
-    {
-        char *end = nullptr;
-        const char *start = m_packet.c_str();
-        const char *cstr = start + m_index;
-        int64_t result = ::strtoll (cstr, &end, base);
-        
-        if (end && end != cstr)
-        {
-            m_index = end - start;
-            return result;
-        }
-    }
-    return fail_value;
-}
-
-
-uint32_t
-StringExtractor::GetHexMaxU32 (bool little_endian, uint32_t fail_value)
-{
-    uint32_t result = 0;
-    uint32_t nibble_count = 0;
-
-    SkipSpaces();
-    if (little_endian)
-    {
-        uint32_t shift_amount = 0;
-        while (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-        {
-            // Make sure we don't exceed the size of a uint32_t...
-            if (nibble_count >= (sizeof(uint32_t) * 2))
-            {
-                m_index = UINT64_MAX;
-                return fail_value;
-            }
-
-            uint8_t nibble_lo;
-            uint8_t nibble_hi = xdigit_to_sint (m_packet[m_index]);
-            ++m_index;
-            if (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-            {
-                nibble_lo = xdigit_to_sint (m_packet[m_index]);
-                ++m_index;
-                result |= ((uint32_t)nibble_hi << (shift_amount + 4));
-                result |= ((uint32_t)nibble_lo << shift_amount);
-                nibble_count += 2;
-                shift_amount += 8;
-            }
-            else
-            {
-                result |= ((uint32_t)nibble_hi << shift_amount);
-                nibble_count += 1;
-                shift_amount += 4;
-            }
-
-        }
-    }
-    else
-    {
-        while (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-        {
-            // Make sure we don't exceed the size of a uint32_t...
-            if (nibble_count >= (sizeof(uint32_t) * 2))
-            {
-                m_index = UINT64_MAX;
-                return fail_value;
-            }
-
-            uint8_t nibble = xdigit_to_sint (m_packet[m_index]);
-            // Big Endian
-            result <<= 4;
-            result |= nibble;
-
-            ++m_index;
-            ++nibble_count;
-        }
-    }
-    return result;
-}
-
-uint64_t
-StringExtractor::GetHexMaxU64 (bool little_endian, uint64_t fail_value)
-{
-    uint64_t result = 0;
-    uint32_t nibble_count = 0;
-
-    SkipSpaces();
-    if (little_endian)
-    {
-        uint32_t shift_amount = 0;
-        while (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-        {
-            // Make sure we don't exceed the size of a uint64_t...
-            if (nibble_count >= (sizeof(uint64_t) * 2))
-            {
-                m_index = UINT64_MAX;
-                return fail_value;
-            }
-
-            uint8_t nibble_lo;
-            uint8_t nibble_hi = xdigit_to_sint (m_packet[m_index]);
-            ++m_index;
-            if (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-            {
-                nibble_lo = xdigit_to_sint (m_packet[m_index]);
-                ++m_index;
-                result |= ((uint64_t)nibble_hi << (shift_amount + 4));
-                result |= ((uint64_t)nibble_lo << shift_amount);
-                nibble_count += 2;
-                shift_amount += 8;
-            }
-            else
-            {
-                result |= ((uint64_t)nibble_hi << shift_amount);
-                nibble_count += 1;
-                shift_amount += 4;
-            }
-
-        }
-    }
-    else
-    {
-        while (m_index < m_packet.size() && ::isxdigit (m_packet[m_index]))
-        {
-            // Make sure we don't exceed the size of a uint64_t...
-            if (nibble_count >= (sizeof(uint64_t) * 2))
-            {
-                m_index = UINT64_MAX;
-                return fail_value;
-            }
-
-            uint8_t nibble = xdigit_to_sint (m_packet[m_index]);
-            // Big Endian
-            result <<= 4;
-            result |= nibble;
-
-            ++m_index;
-            ++nibble_count;
-        }
-    }
-    return result;
-}
-
-size_t
-StringExtractor::GetHexBytes (llvm::MutableArrayRef<uint8_t> dest, uint8_t fail_fill_value)
-{
-    size_t bytes_extracted = 0;
-    while (!dest.empty() && GetBytesLeft() > 0)
-    {
-        dest[0] = GetHexU8 (fail_fill_value);
-        if (!IsGood())
-            break;
-        ++bytes_extracted;
-        dest = dest.drop_front();
-    }
+uint8_t StringExtractor::GetHexU8(uint8_t fail_value, bool set_eof_on_fail) {
+  // On success, fail_value will be overwritten with the next
+  // character in the stream
+  GetHexU8Ex(fail_value, set_eof_on_fail);
+  return fail_value;
+}
+
+bool StringExtractor::GetHexU8Ex(uint8_t &ch, bool set_eof_on_fail) {
+  int byte = DecodeHexU8();
+  if (byte == -1) {
+    if (set_eof_on_fail || m_index >= m_packet.size())
+      m_index = UINT64_MAX;
+    // ch should not be changed in case of failure
+    return false;
+  }
+  ch = (uint8_t)byte;
+  return true;
+}
+
+uint32_t StringExtractor::GetU32(uint32_t fail_value, int base) {
+  if (m_index < m_packet.size()) {
+    char *end = nullptr;
+    const char *start = m_packet.c_str();
+    const char *cstr = start + m_index;
+    uint32_t result = static_cast<uint32_t>(::strtoul(cstr, &end, base));
+
+    if (end && end != cstr) {
+      m_index = end - start;
+      return result;
+    }
+  }
+  return fail_value;
+}
+
+int32_t StringExtractor::GetS32(int32_t fail_value, int base) {
+  if (m_index < m_packet.size()) {
+    char *end = nullptr;
+    const char *start = m_packet.c_str();
+    const char *cstr = start + m_index;
+    int32_t result = static_cast<int32_t>(::strtol(cstr, &end, base));
+
+    if (end && end != cstr) {
+      m_index = end - start;
+      return result;
+    }
+  }
+  return fail_value;
+}
+
+uint64_t StringExtractor::GetU64(uint64_t fail_value, int base) {
+  if (m_index < m_packet.size()) {
+    char *end = nullptr;
+    const char *start = m_packet.c_str();
+    const char *cstr = start + m_index;
+    uint64_t result = ::strtoull(cstr, &end, base);
+
+    if (end && end != cstr) {
+      m_index = end - start;
+      return result;
+    }
+  }
+  return fail_value;
+}
+
+int64_t StringExtractor::GetS64(int64_t fail_value, int base) {
+  if (m_index < m_packet.size()) {
+    char *end = nullptr;
+    const char *start = m_packet.c_str();
+    const char *cstr = start + m_index;
+    int64_t result = ::strtoll(cstr, &end, base);
+
+    if (end && end != cstr) {
+      m_index = end - start;
+      return result;
+    }
+  }
+  return fail_value;
+}
+
+uint32_t StringExtractor::GetHexMaxU32(bool little_endian,
+                                       uint32_t fail_value) {
+  uint32_t result = 0;
+  uint32_t nibble_count = 0;
+
+  SkipSpaces();
+  if (little_endian) {
+    uint32_t shift_amount = 0;
+    while (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+      // Make sure we don't exceed the size of a uint32_t...
+      if (nibble_count >= (sizeof(uint32_t) * 2)) {
+        m_index = UINT64_MAX;
+        return fail_value;
+      }
+
+      uint8_t nibble_lo;
+      uint8_t nibble_hi = xdigit_to_sint(m_packet[m_index]);
+      ++m_index;
+      if (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+        nibble_lo = xdigit_to_sint(m_packet[m_index]);
+        ++m_index;
+        result |= ((uint32_t)nibble_hi << (shift_amount + 4));
+        result |= ((uint32_t)nibble_lo << shift_amount);
+        nibble_count += 2;
+        shift_amount += 8;
+      } else {
+        result |= ((uint32_t)nibble_hi << shift_amount);
+        nibble_count += 1;
+        shift_amount += 4;
+      }
+    }
+  } else {
+    while (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+      // Make sure we don't exceed the size of a uint32_t...
+      if (nibble_count >= (sizeof(uint32_t) * 2)) {
+        m_index = UINT64_MAX;
+        return fail_value;
+      }
+
+      uint8_t nibble = xdigit_to_sint(m_packet[m_index]);
+      // Big Endian
+      result <<= 4;
+      result |= nibble;
+
+      ++m_index;
+      ++nibble_count;
+    }
+  }
+  return result;
+}
+
+uint64_t StringExtractor::GetHexMaxU64(bool little_endian,
+                                       uint64_t fail_value) {
+  uint64_t result = 0;
+  uint32_t nibble_count = 0;
+
+  SkipSpaces();
+  if (little_endian) {
+    uint32_t shift_amount = 0;
+    while (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+      // Make sure we don't exceed the size of a uint64_t...
+      if (nibble_count >= (sizeof(uint64_t) * 2)) {
+        m_index = UINT64_MAX;
+        return fail_value;
+      }
+
+      uint8_t nibble_lo;
+      uint8_t nibble_hi = xdigit_to_sint(m_packet[m_index]);
+      ++m_index;
+      if (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+        nibble_lo = xdigit_to_sint(m_packet[m_index]);
+        ++m_index;
+        result |= ((uint64_t)nibble_hi << (shift_amount + 4));
+        result |= ((uint64_t)nibble_lo << shift_amount);
+        nibble_count += 2;
+        shift_amount += 8;
+      } else {
+        result |= ((uint64_t)nibble_hi << shift_amount);
+        nibble_count += 1;
+        shift_amount += 4;
+      }
+    }
+  } else {
+    while (m_index < m_packet.size() && ::isxdigit(m_packet[m_index])) {
+      // Make sure we don't exceed the size of a uint64_t...
+      if (nibble_count >= (sizeof(uint64_t) * 2)) {
+        m_index = UINT64_MAX;
+        return fail_value;
+      }
+
+      uint8_t nibble = xdigit_to_sint(m_packet[m_index]);
+      // Big Endian
+      result <<= 4;
+      result |= nibble;
+
+      ++m_index;
+      ++nibble_count;
+    }
+  }
+  return result;
+}
+
+size_t StringExtractor::GetHexBytes(llvm::MutableArrayRef<uint8_t> dest,
+                                    uint8_t fail_fill_value) {
+  size_t bytes_extracted = 0;
+  while (!dest.empty() && GetBytesLeft() > 0) {
+    dest[0] = GetHexU8(fail_fill_value);
+    if (!IsGood())
+      break;
+    ++bytes_extracted;
+    dest = dest.drop_front();
+  }
 
-    if (!dest.empty())
-        ::memset(dest.data(), fail_fill_value, dest.size());
+  if (!dest.empty())
+    ::memset(dest.data(), fail_fill_value, dest.size());
 
-    return bytes_extracted;
+  return bytes_extracted;
 }
 
 //----------------------------------------------------------------------
@@ -381,134 +305,116 @@ StringExtractor::GetHexBytes (llvm::Muta
 //
 // Returns the number of bytes successfully decoded
 //----------------------------------------------------------------------
-size_t
-StringExtractor::GetHexBytesAvail (llvm::MutableArrayRef<uint8_t> dest)
-{
-    size_t bytes_extracted = 0;
-    while (!dest.empty())
-    {
-        int decode = DecodeHexU8();
-        if (decode == -1)
-            break;
-        dest[0] = (uint8_t)decode;
-        dest = dest.drop_front();
-        ++bytes_extracted;
-    }
-    return bytes_extracted;
+size_t StringExtractor::GetHexBytesAvail(llvm::MutableArrayRef<uint8_t> dest) {
+  size_t bytes_extracted = 0;
+  while (!dest.empty()) {
+    int decode = DecodeHexU8();
+    if (decode == -1)
+      break;
+    dest[0] = (uint8_t)decode;
+    dest = dest.drop_front();
+    ++bytes_extracted;
+  }
+  return bytes_extracted;
 }
 
 // Consume ASCII hex nibble character pairs until we have decoded byte_size
 // bytes of data.
 
-uint64_t
-StringExtractor::GetHexWithFixedSize (uint32_t byte_size, bool little_endian, uint64_t fail_value)
-{
-    if (byte_size <= 8 && GetBytesLeft() >= byte_size * 2)
-    {
-        uint64_t result = 0;
-        uint32_t i;
-        if (little_endian)
-        {
-            // Little Endian
-            uint32_t shift_amount;
-            for (i = 0, shift_amount = 0;
-                 i < byte_size && IsGood();
-                 ++i, shift_amount += 8)
-            {
-                result |= ((uint64_t)GetHexU8() << shift_amount);
-            }
-        }
-        else
-        {
-            // Big Endian
-            for (i = 0; i < byte_size && IsGood(); ++i)
-            {
-                result <<= 8;
-                result |= GetHexU8();
-            }
-        }
-    }
-    m_index = UINT64_MAX;
-    return fail_value;
-}
-
-size_t
-StringExtractor::GetHexByteString (std::string &str)
-{
-    str.clear();
-    str.reserve(GetBytesLeft() / 2);
-    char ch;
-    while ((ch = GetHexU8()) != '\0')
-        str.append(1, ch);
-    return str.size();
-}
-
-size_t
-StringExtractor::GetHexByteStringFixedLength (std::string &str, uint32_t nibble_length)
-{
-    str.clear();
-
-    uint32_t nibble_count = 0;
-    for (const char *pch = Peek(); (nibble_count < nibble_length) && (pch != nullptr); str.append(1, GetHexU8(0, false)), pch = Peek (), nibble_count += 2)
-    {}
-
-    return str.size();
-}
-
-size_t
-StringExtractor::GetHexByteStringTerminatedBy (std::string &str,
-                                               char terminator)
-{
-    str.clear();
-    char ch;
-    while ((ch = GetHexU8(0,false)) != '\0')
-        str.append(1, ch);
-    if (Peek() && *Peek() == terminator)
-        return str.size();
-
-    str.clear();
+uint64_t StringExtractor::GetHexWithFixedSize(uint32_t byte_size,
+                                              bool little_endian,
+                                              uint64_t fail_value) {
+  if (byte_size <= 8 && GetBytesLeft() >= byte_size * 2) {
+    uint64_t result = 0;
+    uint32_t i;
+    if (little_endian) {
+      // Little Endian
+      uint32_t shift_amount;
+      for (i = 0, shift_amount = 0; i < byte_size && IsGood();
+           ++i, shift_amount += 8) {
+        result |= ((uint64_t)GetHexU8() << shift_amount);
+      }
+    } else {
+      // Big Endian
+      for (i = 0; i < byte_size && IsGood(); ++i) {
+        result <<= 8;
+        result |= GetHexU8();
+      }
+    }
+  }
+  m_index = UINT64_MAX;
+  return fail_value;
+}
+
+size_t StringExtractor::GetHexByteString(std::string &str) {
+  str.clear();
+  str.reserve(GetBytesLeft() / 2);
+  char ch;
+  while ((ch = GetHexU8()) != '\0')
+    str.append(1, ch);
+  return str.size();
+}
+
+size_t StringExtractor::GetHexByteStringFixedLength(std::string &str,
+                                                    uint32_t nibble_length) {
+  str.clear();
+
+  uint32_t nibble_count = 0;
+  for (const char *pch = Peek();
+       (nibble_count < nibble_length) && (pch != nullptr);
+       str.append(1, GetHexU8(0, false)), pch = Peek(), nibble_count += 2) {
+  }
+
+  return str.size();
+}
+
+size_t StringExtractor::GetHexByteStringTerminatedBy(std::string &str,
+                                                     char terminator) {
+  str.clear();
+  char ch;
+  while ((ch = GetHexU8(0, false)) != '\0')
+    str.append(1, ch);
+  if (Peek() && *Peek() == terminator)
     return str.size();
-}
 
-bool
-StringExtractor::GetNameColonValue(llvm::StringRef &name, llvm::StringRef &value)
-{
-    // Read something in the form of NNNN:VVVV; where NNNN is any character
-    // that is not a colon, followed by a ':' character, then a value (one or
-    // more ';' chars), followed by a ';'
-    if (m_index >= m_packet.size())
-        return fail();
-
-    llvm::StringRef view(m_packet);
-    if (view.empty())
-        return fail();
-
-    llvm::StringRef a, b, c, d;
-    view = view.substr(m_index);
-    std::tie(a, b) = view.split(':');
-    if (a.empty() || b.empty())
-        return fail();
-    std::tie(c, d) = b.split(';');
-    if (b == c && d.empty())
-        return fail();
-
-    name = a;
-    value = c;
-    if (d.empty())
-        m_index = m_packet.size();
-    else
-    {
-        size_t bytes_consumed = d.data() - view.data();
-        m_index += bytes_consumed;
-    }
-    return true;
+  str.clear();
+  return str.size();
 }
 
-void
-StringExtractor::SkipSpaces ()
-{
-    const size_t n = m_packet.size();
-    while (m_index < n && isspace(m_packet[m_index]))
-        ++m_index;
+bool StringExtractor::GetNameColonValue(llvm::StringRef &name,
+                                        llvm::StringRef &value) {
+  // Read something in the form of NNNN:VVVV; where NNNN is any character
+  // that is not a colon, followed by a ':' character, then a value (one or
+  // more ';' chars), followed by a ';'
+  if (m_index >= m_packet.size())
+    return fail();
+
+  llvm::StringRef view(m_packet);
+  if (view.empty())
+    return fail();
+
+  llvm::StringRef a, b, c, d;
+  view = view.substr(m_index);
+  std::tie(a, b) = view.split(':');
+  if (a.empty() || b.empty())
+    return fail();
+  std::tie(c, d) = b.split(';');
+  if (b == c && d.empty())
+    return fail();
+
+  name = a;
+  value = c;
+  if (d.empty())
+    m_index = m_packet.size();
+  else {
+    size_t bytes_consumed = d.data() - view.data();
+    m_index += bytes_consumed;
+  }
+  return true;
+}
+
+void StringExtractor::SkipSpaces() {
+  const size_t n = m_packet.size();
+  while (m_index < n && isspace(m_packet[m_index]))
+    ++m_index;
 }
-

Modified: lldb/trunk/source/Utility/StringExtractorGDBRemote.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/StringExtractorGDBRemote.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/StringExtractorGDBRemote.cpp (original)
+++ lldb/trunk/source/Utility/StringExtractorGDBRemote.cpp Tue Sep  6 15:57:50 2016
@@ -16,505 +16,550 @@
 #include "Utility/StringExtractorGDBRemote.h"
 
 StringExtractorGDBRemote::ResponseType
-StringExtractorGDBRemote::GetResponseType () const
-{
-    if (m_packet.empty())
-        return eUnsupported;
+StringExtractorGDBRemote::GetResponseType() const {
+  if (m_packet.empty())
+    return eUnsupported;
+
+  switch (m_packet[0]) {
+  case 'E':
+    if (m_packet.size() == 3 && isxdigit(m_packet[1]) && isxdigit(m_packet[2]))
+      return eError;
+    break;
+
+  case 'O':
+    if (m_packet.size() == 2 && m_packet[1] == 'K')
+      return eOK;
+    break;
+
+  case '+':
+    if (m_packet.size() == 1)
+      return eAck;
+    break;
+
+  case '-':
+    if (m_packet.size() == 1)
+      return eNack;
+    break;
+  }
+  return eResponse;
+}
+
+StringExtractorGDBRemote::ServerPacketType
+StringExtractorGDBRemote::GetServerPacketType() const {
+#define PACKET_MATCHES(s)                                                      \
+  ((packet_size == (sizeof(s) - 1)) && (strcmp((packet_cstr), (s)) == 0))
+#define PACKET_STARTS_WITH(s)                                                  \
+  ((packet_size >= (sizeof(s) - 1)) &&                                         \
+   ::strncmp(packet_cstr, s, (sizeof(s) - 1)) == 0)
+
+  // Empty is not a supported packet...
+  if (m_packet.empty())
+    return eServerPacketType_invalid;
+
+  const size_t packet_size = m_packet.size();
+  const char *packet_cstr = m_packet.c_str();
+  switch (m_packet[0]) {
+
+  case '%':
+    return eServerPacketType_notify;
+
+  case '\x03':
+    if (packet_size == 1)
+      return eServerPacketType_interrupt;
+    break;
+
+  case '-':
+    if (packet_size == 1)
+      return eServerPacketType_nack;
+    break;
+
+  case '+':
+    if (packet_size == 1)
+      return eServerPacketType_ack;
+    break;
+
+  case 'A':
+    return eServerPacketType_A;
+
+  case 'Q':
 
-    switch (m_packet[0])
-    {
+    switch (packet_cstr[1]) {
     case 'E':
-        if (m_packet.size() == 3 &&
-            isxdigit(m_packet[1]) &&
-            isxdigit(m_packet[2]))
-            return eError;
-        break;
-
-    case 'O':
-        if (m_packet.size() == 2 && m_packet[1] == 'K')
-            return eOK;
-        break;
-
-    case '+':
-        if (m_packet.size() == 1)
-            return eAck;
-        break;
-
-    case '-':
-        if (m_packet.size() == 1)
-            return eNack;
-        break;
+      if (PACKET_STARTS_WITH("QEnvironment:"))
+        return eServerPacketType_QEnvironment;
+      if (PACKET_STARTS_WITH("QEnvironmentHexEncoded:"))
+        return eServerPacketType_QEnvironmentHexEncoded;
+      break;
+
+    case 'S':
+      if (PACKET_MATCHES("QStartNoAckMode"))
+        return eServerPacketType_QStartNoAckMode;
+      if (PACKET_STARTS_WITH("QSaveRegisterState"))
+        return eServerPacketType_QSaveRegisterState;
+      if (PACKET_STARTS_WITH("QSetDisableASLR:"))
+        return eServerPacketType_QSetDisableASLR;
+      if (PACKET_STARTS_WITH("QSetDetachOnError:"))
+        return eServerPacketType_QSetDetachOnError;
+      if (PACKET_STARTS_WITH("QSetSTDIN:"))
+        return eServerPacketType_QSetSTDIN;
+      if (PACKET_STARTS_WITH("QSetSTDOUT:"))
+        return eServerPacketType_QSetSTDOUT;
+      if (PACKET_STARTS_WITH("QSetSTDERR:"))
+        return eServerPacketType_QSetSTDERR;
+      if (PACKET_STARTS_WITH("QSetWorkingDir:"))
+        return eServerPacketType_QSetWorkingDir;
+      if (PACKET_STARTS_WITH("QSetLogging:"))
+        return eServerPacketType_QSetLogging;
+      if (PACKET_STARTS_WITH("QSetMaxPacketSize:"))
+        return eServerPacketType_QSetMaxPacketSize;
+      if (PACKET_STARTS_WITH("QSetMaxPayloadSize:"))
+        return eServerPacketType_QSetMaxPayloadSize;
+      if (PACKET_STARTS_WITH("QSetEnableAsyncProfiling;"))
+        return eServerPacketType_QSetEnableAsyncProfiling;
+      if (PACKET_STARTS_WITH("QSyncThreadState:"))
+        return eServerPacketType_QSyncThreadState;
+      break;
+
+    case 'L':
+      if (PACKET_STARTS_WITH("QLaunchArch:"))
+        return eServerPacketType_QLaunchArch;
+      if (PACKET_MATCHES("QListThreadsInStopReply"))
+        return eServerPacketType_QListThreadsInStopReply;
+      break;
+
+    case 'R':
+      if (PACKET_STARTS_WITH("QRestoreRegisterState:"))
+        return eServerPacketType_QRestoreRegisterState;
+      break;
+
+    case 'T':
+      if (PACKET_MATCHES("QThreadSuffixSupported"))
+        return eServerPacketType_QThreadSuffixSupported;
+      break;
     }
-    return eResponse;
-}
+    break;
 
-StringExtractorGDBRemote::ServerPacketType
-StringExtractorGDBRemote::GetServerPacketType () const
-{
-#define PACKET_MATCHES(s) ((packet_size == (sizeof(s)-1)) && (strcmp((packet_cstr),(s)) == 0))
-#define PACKET_STARTS_WITH(s) ((packet_size >= (sizeof(s)-1)) && ::strncmp(packet_cstr, s, (sizeof(s)-1))==0)
-    
-    // Empty is not a supported packet...
-    if (m_packet.empty())
-        return eServerPacketType_invalid;
-
-    const size_t packet_size = m_packet.size();
-    const char *packet_cstr = m_packet.c_str();
-    switch (m_packet[0])
-    {
-
-    case '%':
-        return eServerPacketType_notify;
-
-    case '\x03':
-        if (packet_size == 1) return eServerPacketType_interrupt;
-        break;
-
-    case '-':
-        if (packet_size == 1) return eServerPacketType_nack;
-        break;
-
-    case '+':
-        if (packet_size == 1) return eServerPacketType_ack;
-        break;
+  case 'q':
+    switch (packet_cstr[1]) {
+    case 's':
+      if (PACKET_MATCHES("qsProcessInfo"))
+        return eServerPacketType_qsProcessInfo;
+      if (PACKET_MATCHES("qsThreadInfo"))
+        return eServerPacketType_qsThreadInfo;
+      break;
+
+    case 'f':
+      if (PACKET_STARTS_WITH("qfProcessInfo"))
+        return eServerPacketType_qfProcessInfo;
+      if (PACKET_STARTS_WITH("qfThreadInfo"))
+        return eServerPacketType_qfThreadInfo;
+      break;
+
+    case 'C':
+      if (packet_size == 2)
+        return eServerPacketType_qC;
+      break;
 
-    case 'A':
-        return eServerPacketType_A;
+    case 'E':
+      if (PACKET_STARTS_WITH("qEcho:"))
+        return eServerPacketType_qEcho;
+      break;
+
+    case 'F':
+      if (PACKET_STARTS_WITH("qFileLoadAddress:"))
+        return eServerPacketType_qFileLoadAddress;
+      break;
+
+    case 'G':
+      if (PACKET_STARTS_WITH("qGroupName:"))
+        return eServerPacketType_qGroupName;
+      if (PACKET_MATCHES("qGetWorkingDir"))
+        return eServerPacketType_qGetWorkingDir;
+      if (PACKET_MATCHES("qGetPid"))
+        return eServerPacketType_qGetPid;
+      if (PACKET_STARTS_WITH("qGetProfileData;"))
+        return eServerPacketType_qGetProfileData;
+      if (PACKET_MATCHES("qGDBServerVersion"))
+        return eServerPacketType_qGDBServerVersion;
+      break;
+
+    case 'H':
+      if (PACKET_MATCHES("qHostInfo"))
+        return eServerPacketType_qHostInfo;
+      break;
+
+    case 'K':
+      if (PACKET_STARTS_WITH("qKillSpawnedProcess"))
+        return eServerPacketType_qKillSpawnedProcess;
+      break;
+
+    case 'L':
+      if (PACKET_STARTS_WITH("qLaunchGDBServer"))
+        return eServerPacketType_qLaunchGDBServer;
+      if (PACKET_MATCHES("qLaunchSuccess"))
+        return eServerPacketType_qLaunchSuccess;
+      break;
+
+    case 'M':
+      if (PACKET_STARTS_WITH("qMemoryRegionInfo:"))
+        return eServerPacketType_qMemoryRegionInfo;
+      if (PACKET_MATCHES("qMemoryRegionInfo"))
+        return eServerPacketType_qMemoryRegionInfoSupported;
+      if (PACKET_STARTS_WITH("qModuleInfo:"))
+        return eServerPacketType_qModuleInfo;
+      break;
+
+    case 'P':
+      if (PACKET_STARTS_WITH("qProcessInfoPID:"))
+        return eServerPacketType_qProcessInfoPID;
+      if (PACKET_STARTS_WITH("qPlatform_shell:"))
+        return eServerPacketType_qPlatform_shell;
+      if (PACKET_STARTS_WITH("qPlatform_mkdir:"))
+        return eServerPacketType_qPlatform_mkdir;
+      if (PACKET_STARTS_WITH("qPlatform_chmod:"))
+        return eServerPacketType_qPlatform_chmod;
+      if (PACKET_MATCHES("qProcessInfo"))
+        return eServerPacketType_qProcessInfo;
+      break;
 
     case 'Q':
+      if (PACKET_MATCHES("qQueryGDBServer"))
+        return eServerPacketType_qQueryGDBServer;
+      break;
+
+    case 'R':
+      if (PACKET_STARTS_WITH("qRcmd,"))
+        return eServerPacketType_qRcmd;
+      if (PACKET_STARTS_WITH("qRegisterInfo"))
+        return eServerPacketType_qRegisterInfo;
+      break;
+
+    case 'S':
+      if (PACKET_STARTS_WITH("qSpeedTest:"))
+        return eServerPacketType_qSpeedTest;
+      if (PACKET_MATCHES("qShlibInfoAddr"))
+        return eServerPacketType_qShlibInfoAddr;
+      if (PACKET_MATCHES("qStepPacketSupported"))
+        return eServerPacketType_qStepPacketSupported;
+      if (PACKET_STARTS_WITH("qSupported"))
+        return eServerPacketType_qSupported;
+      if (PACKET_MATCHES("qSyncThreadStateSupported"))
+        return eServerPacketType_qSyncThreadStateSupported;
+      break;
+
+    case 'T':
+      if (PACKET_STARTS_WITH("qThreadExtraInfo,"))
+        return eServerPacketType_qThreadExtraInfo;
+      if (PACKET_STARTS_WITH("qThreadStopInfo"))
+        return eServerPacketType_qThreadStopInfo;
+      break;
+
+    case 'U':
+      if (PACKET_STARTS_WITH("qUserName:"))
+        return eServerPacketType_qUserName;
+      break;
+
+    case 'V':
+      if (PACKET_MATCHES("qVAttachOrWaitSupported"))
+        return eServerPacketType_qVAttachOrWaitSupported;
+      break;
+
+    case 'W':
+      if (PACKET_STARTS_WITH("qWatchpointSupportInfo:"))
+        return eServerPacketType_qWatchpointSupportInfo;
+      if (PACKET_MATCHES("qWatchpointSupportInfo"))
+        return eServerPacketType_qWatchpointSupportInfoSupported;
+      break;
+
+    case 'X':
+      if (PACKET_STARTS_WITH("qXfer:auxv:read::"))
+        return eServerPacketType_qXfer_auxv_read;
+      break;
+    }
+    break;
 
-        switch (packet_cstr[1])
-        {
-        case 'E':
-            if (PACKET_STARTS_WITH ("QEnvironment:"))           return eServerPacketType_QEnvironment;
-            if (PACKET_STARTS_WITH ("QEnvironmentHexEncoded:")) return eServerPacketType_QEnvironmentHexEncoded;
-            break;
-
-        case 'S':
-            if (PACKET_MATCHES ("QStartNoAckMode"))               return eServerPacketType_QStartNoAckMode;
-            if (PACKET_STARTS_WITH ("QSaveRegisterState"))        return eServerPacketType_QSaveRegisterState;
-            if (PACKET_STARTS_WITH ("QSetDisableASLR:"))          return eServerPacketType_QSetDisableASLR;
-            if (PACKET_STARTS_WITH ("QSetDetachOnError:"))        return eServerPacketType_QSetDetachOnError;
-            if (PACKET_STARTS_WITH ("QSetSTDIN:"))                return eServerPacketType_QSetSTDIN;
-            if (PACKET_STARTS_WITH ("QSetSTDOUT:"))               return eServerPacketType_QSetSTDOUT;
-            if (PACKET_STARTS_WITH ("QSetSTDERR:"))               return eServerPacketType_QSetSTDERR;
-            if (PACKET_STARTS_WITH ("QSetWorkingDir:"))           return eServerPacketType_QSetWorkingDir;
-            if (PACKET_STARTS_WITH ("QSetLogging:"))              return eServerPacketType_QSetLogging;
-            if (PACKET_STARTS_WITH ("QSetMaxPacketSize:"))        return eServerPacketType_QSetMaxPacketSize;
-            if (PACKET_STARTS_WITH ("QSetMaxPayloadSize:"))       return eServerPacketType_QSetMaxPayloadSize;
-            if (PACKET_STARTS_WITH ("QSetEnableAsyncProfiling;")) return eServerPacketType_QSetEnableAsyncProfiling;
-            if (PACKET_STARTS_WITH ("QSyncThreadState:"))         return eServerPacketType_QSyncThreadState;
-            break;
-
-        case 'L':
-            if (PACKET_STARTS_WITH ("QLaunchArch:"))              return eServerPacketType_QLaunchArch;
-            if (PACKET_MATCHES("QListThreadsInStopReply"))        return eServerPacketType_QListThreadsInStopReply;
-            break;
-
-        case 'R':
-            if (PACKET_STARTS_WITH ("QRestoreRegisterState:"))    return eServerPacketType_QRestoreRegisterState;
-            break;
-
-        case 'T':
-            if (PACKET_MATCHES ("QThreadSuffixSupported"))        return eServerPacketType_QThreadSuffixSupported;
-            break;
-        }
-        break;
-
-    case 'q':
-        switch (packet_cstr[1])
-        {
-        case 's':
-            if (PACKET_MATCHES ("qsProcessInfo"))               return eServerPacketType_qsProcessInfo;
-            if (PACKET_MATCHES ("qsThreadInfo"))                return eServerPacketType_qsThreadInfo;
-            break;
-
-        case 'f':
-            if (PACKET_STARTS_WITH ("qfProcessInfo"))           return eServerPacketType_qfProcessInfo;
-            if (PACKET_STARTS_WITH ("qfThreadInfo"))            return eServerPacketType_qfThreadInfo;
-            break;
-
-        case 'C':
-            if (packet_size == 2)                               return eServerPacketType_qC;
-            break;
-
-        case 'E':
-            if (PACKET_STARTS_WITH ("qEcho:"))                  return eServerPacketType_qEcho;
-            break;
-
-        case 'F':
-            if (PACKET_STARTS_WITH ("qFileLoadAddress:"))       return eServerPacketType_qFileLoadAddress;
-            break;
-
-        case 'G':
-            if (PACKET_STARTS_WITH ("qGroupName:"))             return eServerPacketType_qGroupName;
-            if (PACKET_MATCHES ("qGetWorkingDir"))              return eServerPacketType_qGetWorkingDir;
-            if (PACKET_MATCHES ("qGetPid"))                     return eServerPacketType_qGetPid;
-            if (PACKET_STARTS_WITH ("qGetProfileData;"))        return eServerPacketType_qGetProfileData;
-            if (PACKET_MATCHES ("qGDBServerVersion"))           return eServerPacketType_qGDBServerVersion;
-            break;
-
-        case 'H':
-            if (PACKET_MATCHES ("qHostInfo"))                   return eServerPacketType_qHostInfo;
-            break;
-
-        case 'K':
-            if (PACKET_STARTS_WITH ("qKillSpawnedProcess"))     return eServerPacketType_qKillSpawnedProcess;
-            break;
-
-        case 'L':
-            if (PACKET_STARTS_WITH ("qLaunchGDBServer"))        return eServerPacketType_qLaunchGDBServer;
-            if (PACKET_MATCHES ("qLaunchSuccess"))              return eServerPacketType_qLaunchSuccess;
-            break;
-
-        case 'M':
-            if (PACKET_STARTS_WITH ("qMemoryRegionInfo:"))      return eServerPacketType_qMemoryRegionInfo;
-            if (PACKET_MATCHES ("qMemoryRegionInfo"))           return eServerPacketType_qMemoryRegionInfoSupported;
-            if (PACKET_STARTS_WITH ("qModuleInfo:"))             return eServerPacketType_qModuleInfo;
-            break;
-
-        case 'P':
-            if (PACKET_STARTS_WITH ("qProcessInfoPID:"))        return eServerPacketType_qProcessInfoPID;
-            if (PACKET_STARTS_WITH ("qPlatform_shell:"))        return eServerPacketType_qPlatform_shell;
-            if (PACKET_STARTS_WITH ("qPlatform_mkdir:"))        return eServerPacketType_qPlatform_mkdir;
-            if (PACKET_STARTS_WITH ("qPlatform_chmod:"))        return eServerPacketType_qPlatform_chmod;
-            if (PACKET_MATCHES ("qProcessInfo"))                return eServerPacketType_qProcessInfo;
-            break;
-        
-        case 'Q':
-            if (PACKET_MATCHES ("qQueryGDBServer"))             return eServerPacketType_qQueryGDBServer;
-            break;
-
-        case 'R':
-            if (PACKET_STARTS_WITH ("qRcmd,"))                  return eServerPacketType_qRcmd;
-            if (PACKET_STARTS_WITH ("qRegisterInfo"))           return eServerPacketType_qRegisterInfo;
-            break;
-
-        case 'S':
-            if (PACKET_STARTS_WITH ("qSpeedTest:"))             return eServerPacketType_qSpeedTest;
-            if (PACKET_MATCHES ("qShlibInfoAddr"))              return eServerPacketType_qShlibInfoAddr;
-            if (PACKET_MATCHES ("qStepPacketSupported"))        return eServerPacketType_qStepPacketSupported;
-            if (PACKET_STARTS_WITH ("qSupported"))              return eServerPacketType_qSupported;
-            if (PACKET_MATCHES ("qSyncThreadStateSupported"))   return eServerPacketType_qSyncThreadStateSupported;
-            break;
-
-        case 'T':
-            if (PACKET_STARTS_WITH ("qThreadExtraInfo,"))       return eServerPacketType_qThreadExtraInfo;
-            if (PACKET_STARTS_WITH ("qThreadStopInfo"))         return eServerPacketType_qThreadStopInfo;
-            break;
-
-        case 'U':
-            if (PACKET_STARTS_WITH ("qUserName:"))              return eServerPacketType_qUserName;
-            break;
-
-        case 'V':
-            if (PACKET_MATCHES ("qVAttachOrWaitSupported"))     return eServerPacketType_qVAttachOrWaitSupported;
-            break;
-
-        case 'W':
-            if (PACKET_STARTS_WITH ("qWatchpointSupportInfo:")) return eServerPacketType_qWatchpointSupportInfo;
-            if (PACKET_MATCHES ("qWatchpointSupportInfo"))      return eServerPacketType_qWatchpointSupportInfoSupported;
-            break;
-
-        case 'X':
-            if (PACKET_STARTS_WITH ("qXfer:auxv:read::"))       return eServerPacketType_qXfer_auxv_read;
-            break;
-        }
-        break;
-
-    case 'j':
-        if (PACKET_MATCHES("jSignalsInfo"))                     return eServerPacketType_jSignalsInfo;
-        if (PACKET_MATCHES("jThreadsInfo"))                     return eServerPacketType_jThreadsInfo;
-        break;
-
-    case 'v':
-            if (PACKET_STARTS_WITH("vFile:"))
-            {
-                if (PACKET_STARTS_WITH("vFile:open:"))          return eServerPacketType_vFile_open;
-                else if (PACKET_STARTS_WITH("vFile:close:"))    return eServerPacketType_vFile_close;
-                else if (PACKET_STARTS_WITH("vFile:pread"))     return eServerPacketType_vFile_pread;
-                else if (PACKET_STARTS_WITH("vFile:pwrite"))    return eServerPacketType_vFile_pwrite;
-                else if (PACKET_STARTS_WITH("vFile:size"))      return eServerPacketType_vFile_size;
-                else if (PACKET_STARTS_WITH("vFile:exists"))    return eServerPacketType_vFile_exists;
-                else if (PACKET_STARTS_WITH("vFile:stat"))      return eServerPacketType_vFile_stat;
-                else if (PACKET_STARTS_WITH("vFile:mode"))      return eServerPacketType_vFile_mode;
-                else if (PACKET_STARTS_WITH("vFile:MD5"))       return eServerPacketType_vFile_md5;
-                else if (PACKET_STARTS_WITH("vFile:symlink"))   return eServerPacketType_vFile_symlink;
-                else if (PACKET_STARTS_WITH("vFile:unlink"))    return eServerPacketType_vFile_unlink;
-
-            } else {
-              if (PACKET_STARTS_WITH ("vAttach;"))              return eServerPacketType_vAttach;
-              if (PACKET_STARTS_WITH ("vAttachWait;"))          return eServerPacketType_vAttachWait;
-              if (PACKET_STARTS_WITH ("vAttachOrWait;"))        return eServerPacketType_vAttachOrWait;
-              if (PACKET_STARTS_WITH ("vAttachName;"))          return eServerPacketType_vAttachName;
-              if (PACKET_STARTS_WITH("vCont;"))                 return eServerPacketType_vCont;
-              if (PACKET_MATCHES ("vCont?"))                    return eServerPacketType_vCont_actions;
-            }
-            break;
-      case '_':
-        switch (packet_cstr[1])
-        {
-        case 'M':
-            return eServerPacketType__M;
-
-        case 'm':
-            return eServerPacketType__m;
-        }
-        break;
-
-      case '?':
-        if (packet_size == 1) return eServerPacketType_stop_reason;
-        break;
-
-      case 'c':
-        return eServerPacketType_c;
-
-      case 'C':
-        return eServerPacketType_C;
-
-      case 'D':
-        if (packet_size == 1) return eServerPacketType_D;
-        break;
-
-      case 'g':
-        if (packet_size == 1) return eServerPacketType_g;
-        break;
-
-      case 'G':
-        return eServerPacketType_G;
-
-      case 'H':
-        return eServerPacketType_H;
-
-      case 'I':
-        return eServerPacketType_I;
-
-      case 'k':
-        if (packet_size == 1) return eServerPacketType_k;
-        break;
-
-      case 'm':
-        return eServerPacketType_m;
-
-      case 'M':
-        return eServerPacketType_M;
-
-      case 'p':
-        return eServerPacketType_p;
-
-      case 'P':
-        return eServerPacketType_P;
-
-      case 's':
-        if (packet_size == 1) return eServerPacketType_s;
-        break;
-
-      case 'S':
-        return eServerPacketType_S;
-
-      case 'x':
-        return eServerPacketType_x;
-
-      case 'X':
-        return eServerPacketType_X;
-
-      case 'T':
-        return eServerPacketType_T;
-
-      case 'z':
-        if (packet_cstr[1] >= '0' && packet_cstr[1] <= '4')
-          return eServerPacketType_z;
-        break;
-
-      case 'Z':
-        if (packet_cstr[1] >= '0' && packet_cstr[1] <= '4')
-          return eServerPacketType_Z;
-        break;
+  case 'j':
+    if (PACKET_MATCHES("jSignalsInfo"))
+      return eServerPacketType_jSignalsInfo;
+    if (PACKET_MATCHES("jThreadsInfo"))
+      return eServerPacketType_jThreadsInfo;
+    break;
+
+  case 'v':
+    if (PACKET_STARTS_WITH("vFile:")) {
+      if (PACKET_STARTS_WITH("vFile:open:"))
+        return eServerPacketType_vFile_open;
+      else if (PACKET_STARTS_WITH("vFile:close:"))
+        return eServerPacketType_vFile_close;
+      else if (PACKET_STARTS_WITH("vFile:pread"))
+        return eServerPacketType_vFile_pread;
+      else if (PACKET_STARTS_WITH("vFile:pwrite"))
+        return eServerPacketType_vFile_pwrite;
+      else if (PACKET_STARTS_WITH("vFile:size"))
+        return eServerPacketType_vFile_size;
+      else if (PACKET_STARTS_WITH("vFile:exists"))
+        return eServerPacketType_vFile_exists;
+      else if (PACKET_STARTS_WITH("vFile:stat"))
+        return eServerPacketType_vFile_stat;
+      else if (PACKET_STARTS_WITH("vFile:mode"))
+        return eServerPacketType_vFile_mode;
+      else if (PACKET_STARTS_WITH("vFile:MD5"))
+        return eServerPacketType_vFile_md5;
+      else if (PACKET_STARTS_WITH("vFile:symlink"))
+        return eServerPacketType_vFile_symlink;
+      else if (PACKET_STARTS_WITH("vFile:unlink"))
+        return eServerPacketType_vFile_unlink;
+
+    } else {
+      if (PACKET_STARTS_WITH("vAttach;"))
+        return eServerPacketType_vAttach;
+      if (PACKET_STARTS_WITH("vAttachWait;"))
+        return eServerPacketType_vAttachWait;
+      if (PACKET_STARTS_WITH("vAttachOrWait;"))
+        return eServerPacketType_vAttachOrWait;
+      if (PACKET_STARTS_WITH("vAttachName;"))
+        return eServerPacketType_vAttachName;
+      if (PACKET_STARTS_WITH("vCont;"))
+        return eServerPacketType_vCont;
+      if (PACKET_MATCHES("vCont?"))
+        return eServerPacketType_vCont_actions;
     }
-    return eServerPacketType_unimplemented;
-}
+    break;
+  case '_':
+    switch (packet_cstr[1]) {
+    case 'M':
+      return eServerPacketType__M;
 
-bool
-StringExtractorGDBRemote::IsOKResponse() const
-{
-    return GetResponseType () == eOK;
-}
+    case 'm':
+      return eServerPacketType__m;
+    }
+    break;
+
+  case '?':
+    if (packet_size == 1)
+      return eServerPacketType_stop_reason;
+    break;
+
+  case 'c':
+    return eServerPacketType_c;
+
+  case 'C':
+    return eServerPacketType_C;
+
+  case 'D':
+    if (packet_size == 1)
+      return eServerPacketType_D;
+    break;
+
+  case 'g':
+    if (packet_size == 1)
+      return eServerPacketType_g;
+    break;
+
+  case 'G':
+    return eServerPacketType_G;
+
+  case 'H':
+    return eServerPacketType_H;
 
+  case 'I':
+    return eServerPacketType_I;
 
-bool
-StringExtractorGDBRemote::IsUnsupportedResponse() const
-{
-    return GetResponseType () == eUnsupported;
+  case 'k':
+    if (packet_size == 1)
+      return eServerPacketType_k;
+    break;
+
+  case 'm':
+    return eServerPacketType_m;
+
+  case 'M':
+    return eServerPacketType_M;
+
+  case 'p':
+    return eServerPacketType_p;
+
+  case 'P':
+    return eServerPacketType_P;
+
+  case 's':
+    if (packet_size == 1)
+      return eServerPacketType_s;
+    break;
+
+  case 'S':
+    return eServerPacketType_S;
+
+  case 'x':
+    return eServerPacketType_x;
+
+  case 'X':
+    return eServerPacketType_X;
+
+  case 'T':
+    return eServerPacketType_T;
+
+  case 'z':
+    if (packet_cstr[1] >= '0' && packet_cstr[1] <= '4')
+      return eServerPacketType_z;
+    break;
+
+  case 'Z':
+    if (packet_cstr[1] >= '0' && packet_cstr[1] <= '4')
+      return eServerPacketType_Z;
+    break;
+  }
+  return eServerPacketType_unimplemented;
 }
 
-bool
-StringExtractorGDBRemote::IsNormalResponse() const
-{
-    return GetResponseType () == eResponse;
+bool StringExtractorGDBRemote::IsOKResponse() const {
+  return GetResponseType() == eOK;
 }
 
-bool
-StringExtractorGDBRemote::IsErrorResponse() const
-{
-    return GetResponseType () == eError &&
-           m_packet.size() == 3 &&
-           isxdigit(m_packet[1]) &&
-           isxdigit(m_packet[2]);
+bool StringExtractorGDBRemote::IsUnsupportedResponse() const {
+  return GetResponseType() == eUnsupported;
 }
 
-uint8_t
-StringExtractorGDBRemote::GetError ()
-{
-    if (GetResponseType() == eError)
-    {
-        SetFilePos(1);
-        return GetHexU8(255);
-    }
-    return 0;
+bool StringExtractorGDBRemote::IsNormalResponse() const {
+  return GetResponseType() == eResponse;
 }
 
-size_t
-StringExtractorGDBRemote::GetEscapedBinaryData (std::string &str)
-{
-    // Just get the data bytes in the string as GDBRemoteCommunication::CheckForPacket()
-    // already removes any 0x7d escaped characters. If any 0x7d characters are left in
-    // the packet, then they are supposed to be there...
-    str.clear();
-    const size_t bytes_left = GetBytesLeft();
-    if (bytes_left > 0)
-    {
-        str.assign(m_packet, m_index, bytes_left);
-        m_index += bytes_left;
-    }
-    return str.size();
+bool StringExtractorGDBRemote::IsErrorResponse() const {
+  return GetResponseType() == eError && m_packet.size() == 3 &&
+         isxdigit(m_packet[1]) && isxdigit(m_packet[2]);
 }
 
-static bool
-OKErrorNotSupportedResponseValidator(void *, const StringExtractorGDBRemote &response)
-{
-    switch (response.GetResponseType())
-    {
-        case StringExtractorGDBRemote::eOK:
-        case StringExtractorGDBRemote::eError:
-        case StringExtractorGDBRemote::eUnsupported:
-            return true;
-
-        case StringExtractorGDBRemote::eAck:
-        case StringExtractorGDBRemote::eNack:
-        case StringExtractorGDBRemote::eResponse:
-            break;
-    }
-    return false;
+uint8_t StringExtractorGDBRemote::GetError() {
+  if (GetResponseType() == eError) {
+    SetFilePos(1);
+    return GetHexU8(255);
+  }
+  return 0;
+}
+
+size_t StringExtractorGDBRemote::GetEscapedBinaryData(std::string &str) {
+  // Just get the data bytes in the string as
+  // GDBRemoteCommunication::CheckForPacket()
+  // already removes any 0x7d escaped characters. If any 0x7d characters are
+  // left in
+  // the packet, then they are supposed to be there...
+  str.clear();
+  const size_t bytes_left = GetBytesLeft();
+  if (bytes_left > 0) {
+    str.assign(m_packet, m_index, bytes_left);
+    m_index += bytes_left;
+  }
+  return str.size();
 }
 
 static bool
-JSONResponseValidator(void *, const StringExtractorGDBRemote &response)
-{
-    switch (response.GetResponseType())
-    {
-        case StringExtractorGDBRemote::eUnsupported:
-        case StringExtractorGDBRemote::eError:
-            return true; // Accept unsupported or EXX as valid responses
-
-        case StringExtractorGDBRemote::eOK:
-        case StringExtractorGDBRemote::eAck:
-        case StringExtractorGDBRemote::eNack:
-            break;
-
-        case StringExtractorGDBRemote::eResponse:
-            // JSON that is returned in from JSON query packets is currently always
-            // either a dictionary which starts with a '{', or an array which
-            // starts with a '['. This is a quick validator to just make sure the
-            // response could be valid JSON without having to validate all of the
-            // JSON content.
-            switch (response.GetStringRef()[0])
-            {
-                case '{': return true;
-                case '[': return true;
-                default:
-                    break;
-            }
-            break;
+OKErrorNotSupportedResponseValidator(void *,
+                                     const StringExtractorGDBRemote &response) {
+  switch (response.GetResponseType()) {
+  case StringExtractorGDBRemote::eOK:
+  case StringExtractorGDBRemote::eError:
+  case StringExtractorGDBRemote::eUnsupported:
+    return true;
+
+  case StringExtractorGDBRemote::eAck:
+  case StringExtractorGDBRemote::eNack:
+  case StringExtractorGDBRemote::eResponse:
+    break;
+  }
+  return false;
+}
+
+static bool JSONResponseValidator(void *,
+                                  const StringExtractorGDBRemote &response) {
+  switch (response.GetResponseType()) {
+  case StringExtractorGDBRemote::eUnsupported:
+  case StringExtractorGDBRemote::eError:
+    return true; // Accept unsupported or EXX as valid responses
+
+  case StringExtractorGDBRemote::eOK:
+  case StringExtractorGDBRemote::eAck:
+  case StringExtractorGDBRemote::eNack:
+    break;
+
+  case StringExtractorGDBRemote::eResponse:
+    // JSON that is returned in from JSON query packets is currently always
+    // either a dictionary which starts with a '{', or an array which
+    // starts with a '['. This is a quick validator to just make sure the
+    // response could be valid JSON without having to validate all of the
+    // JSON content.
+    switch (response.GetStringRef()[0]) {
+    case '{':
+      return true;
+    case '[':
+      return true;
+    default:
+      break;
     }
-    return false;
+    break;
+  }
+  return false;
 }
 
 static bool
-ASCIIHexBytesResponseValidator(void *, const StringExtractorGDBRemote &response)
-{
-    switch (response.GetResponseType())
-    {
-        case StringExtractorGDBRemote::eUnsupported:
-        case StringExtractorGDBRemote::eError:
-            return true; // Accept unsupported or EXX as valid responses
-
-        case StringExtractorGDBRemote::eOK:
-        case StringExtractorGDBRemote::eAck:
-        case StringExtractorGDBRemote::eNack:
-            break;
-
-        case StringExtractorGDBRemote::eResponse:
-            {
-                uint32_t valid_count = 0;
-                for (const char ch : response.GetStringRef())
-                {
-                    if (!isxdigit(ch))
-                    {
-                        return false;
-                    }
-                    if (++valid_count >= 16)
-                        break; // Don't validate all the characters in case the packet is very large
-                }
-                return true;
-            }
-            break;
+ASCIIHexBytesResponseValidator(void *,
+                               const StringExtractorGDBRemote &response) {
+  switch (response.GetResponseType()) {
+  case StringExtractorGDBRemote::eUnsupported:
+  case StringExtractorGDBRemote::eError:
+    return true; // Accept unsupported or EXX as valid responses
+
+  case StringExtractorGDBRemote::eOK:
+  case StringExtractorGDBRemote::eAck:
+  case StringExtractorGDBRemote::eNack:
+    break;
+
+  case StringExtractorGDBRemote::eResponse: {
+    uint32_t valid_count = 0;
+    for (const char ch : response.GetStringRef()) {
+      if (!isxdigit(ch)) {
+        return false;
+      }
+      if (++valid_count >= 16)
+        break; // Don't validate all the characters in case the packet is very
+               // large
     }
-    return false;
+    return true;
+  } break;
+  }
+  return false;
 }
 
-void
-StringExtractorGDBRemote::CopyResponseValidator(const StringExtractorGDBRemote& rhs)
-{
-    m_validator = rhs.m_validator;
-    m_validator_baton = rhs.m_validator_baton;
+void StringExtractorGDBRemote::CopyResponseValidator(
+    const StringExtractorGDBRemote &rhs) {
+  m_validator = rhs.m_validator;
+  m_validator_baton = rhs.m_validator_baton;
 }
 
-void
-StringExtractorGDBRemote::SetResponseValidator(ResponseValidatorCallback callback, void *baton)
-{
-    m_validator = callback;
-    m_validator_baton = baton;
+void StringExtractorGDBRemote::SetResponseValidator(
+    ResponseValidatorCallback callback, void *baton) {
+  m_validator = callback;
+  m_validator_baton = baton;
 }
 
-void
-StringExtractorGDBRemote::SetResponseValidatorToOKErrorNotSupported()
-{
-    m_validator = OKErrorNotSupportedResponseValidator;
-    m_validator_baton = nullptr;
+void StringExtractorGDBRemote::SetResponseValidatorToOKErrorNotSupported() {
+  m_validator = OKErrorNotSupportedResponseValidator;
+  m_validator_baton = nullptr;
 }
 
-void
-StringExtractorGDBRemote::SetResponseValidatorToASCIIHexBytes()
-{
-    m_validator = ASCIIHexBytesResponseValidator;
-    m_validator_baton = nullptr;
+void StringExtractorGDBRemote::SetResponseValidatorToASCIIHexBytes() {
+  m_validator = ASCIIHexBytesResponseValidator;
+  m_validator_baton = nullptr;
 }
 
-void
-StringExtractorGDBRemote::SetResponseValidatorToJSON()
-{
-    m_validator = JSONResponseValidator;
-    m_validator_baton = nullptr;
+void StringExtractorGDBRemote::SetResponseValidatorToJSON() {
+  m_validator = JSONResponseValidator;
+  m_validator_baton = nullptr;
 }
 
-bool
-StringExtractorGDBRemote::ValidateResponse() const
-{
-    // If we have a validator callback, try to validate the callback
-    if (m_validator)
-        return m_validator(m_validator_baton, *this);
-    else
-        return true; // No validator, so response is valid
+bool StringExtractorGDBRemote::ValidateResponse() const {
+  // If we have a validator callback, try to validate the callback
+  if (m_validator)
+    return m_validator(m_validator_baton, *this);
+  else
+    return true; // No validator, so response is valid
 }
-
-

Modified: lldb/trunk/source/Utility/StringExtractorGDBRemote.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/StringExtractorGDBRemote.h?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/StringExtractorGDBRemote.h (original)
+++ lldb/trunk/source/Utility/StringExtractorGDBRemote.h Tue Sep  6 15:57:50 2016
@@ -17,209 +17,175 @@
 // Project includes
 #include "lldb/Utility/StringExtractor.h"
 
-class StringExtractorGDBRemote : public StringExtractor
-{
+class StringExtractorGDBRemote : public StringExtractor {
 public:
-    typedef bool (*ResponseValidatorCallback)(void * baton, const StringExtractorGDBRemote &response);
+  typedef bool (*ResponseValidatorCallback)(
+      void *baton, const StringExtractorGDBRemote &response);
 
-    StringExtractorGDBRemote() :
-        StringExtractor(),
-        m_validator(nullptr)
-    {
-    }
-
-    StringExtractorGDBRemote(llvm::StringRef str) : StringExtractor(str), m_validator(nullptr) {}
-
-    StringExtractorGDBRemote(const char *cstr) :
-        StringExtractor(cstr),
-        m_validator(nullptr)
-    {
-    }
-
-    StringExtractorGDBRemote(const StringExtractorGDBRemote& rhs) :
-        StringExtractor(rhs),
-        m_validator(rhs.m_validator)
-    {
-    }
-
-    virtual ~StringExtractorGDBRemote()
-    {
-    }
-
-    bool
-    ValidateResponse() const;
-
-    void
-    CopyResponseValidator(const StringExtractorGDBRemote& rhs);
-
-    void
-    SetResponseValidator(ResponseValidatorCallback callback, void *baton);
-
-    void
-    SetResponseValidatorToOKErrorNotSupported();
-
-    void
-    SetResponseValidatorToASCIIHexBytes();
-
-    void
-    SetResponseValidatorToJSON();
-
-    enum ServerPacketType
-    {
-        eServerPacketType_nack = 0,
-        eServerPacketType_ack,
-        eServerPacketType_invalid,
-        eServerPacketType_unimplemented,
-        eServerPacketType_interrupt, // CTRL+c packet or "\x03"
-        eServerPacketType_A, // Program arguments packet
-        eServerPacketType_qfProcessInfo,
-        eServerPacketType_qsProcessInfo,
-        eServerPacketType_qC,
-        eServerPacketType_qEcho,
-        eServerPacketType_qGroupName,
-        eServerPacketType_qHostInfo,
-        eServerPacketType_qLaunchGDBServer,
-        eServerPacketType_qQueryGDBServer,
-        eServerPacketType_qKillSpawnedProcess,
-        eServerPacketType_qLaunchSuccess,
-        eServerPacketType_qModuleInfo,
-        eServerPacketType_qProcessInfoPID,
-        eServerPacketType_qSpeedTest,
-        eServerPacketType_qUserName,
-        eServerPacketType_qGetWorkingDir,
-        eServerPacketType_qFileLoadAddress,
-        eServerPacketType_QEnvironment,
-        eServerPacketType_QLaunchArch,
-        eServerPacketType_QSetDisableASLR,
-        eServerPacketType_QSetDetachOnError,
-        eServerPacketType_QSetSTDIN,
-        eServerPacketType_QSetSTDOUT,
-        eServerPacketType_QSetSTDERR,
-        eServerPacketType_QSetWorkingDir,
-        eServerPacketType_QStartNoAckMode,
-        eServerPacketType_qPlatform_shell,
-        eServerPacketType_qPlatform_mkdir,
-        eServerPacketType_qPlatform_chmod,
-        eServerPacketType_vFile_open,
-        eServerPacketType_vFile_close,
-        eServerPacketType_vFile_pread,
-        eServerPacketType_vFile_pwrite,
-        eServerPacketType_vFile_size,
-        eServerPacketType_vFile_mode,
-        eServerPacketType_vFile_exists,
-        eServerPacketType_vFile_md5,
-        eServerPacketType_vFile_stat,
-        eServerPacketType_vFile_symlink,
-        eServerPacketType_vFile_unlink,
-      // debug server packages
-        eServerPacketType_QEnvironmentHexEncoded,
-        eServerPacketType_QListThreadsInStopReply,
-        eServerPacketType_QRestoreRegisterState,
-        eServerPacketType_QSaveRegisterState,
-        eServerPacketType_QSetLogging,
-        eServerPacketType_QSetMaxPacketSize,
-        eServerPacketType_QSetMaxPayloadSize,
-        eServerPacketType_QSetEnableAsyncProfiling,
-        eServerPacketType_QSyncThreadState,
-        eServerPacketType_QThreadSuffixSupported,
-
-        eServerPacketType_jThreadsInfo,
-        eServerPacketType_qsThreadInfo,
-        eServerPacketType_qfThreadInfo,
-        eServerPacketType_qGetPid,
-        eServerPacketType_qGetProfileData,
-        eServerPacketType_qGDBServerVersion,
-        eServerPacketType_qMemoryRegionInfo,
-        eServerPacketType_qMemoryRegionInfoSupported,
-        eServerPacketType_qProcessInfo,
-        eServerPacketType_qRcmd,
-        eServerPacketType_qRegisterInfo,
-        eServerPacketType_qShlibInfoAddr,
-        eServerPacketType_qStepPacketSupported,
-        eServerPacketType_qSupported,
-        eServerPacketType_qSyncThreadStateSupported,
-        eServerPacketType_qThreadExtraInfo,
-        eServerPacketType_qThreadStopInfo,
-        eServerPacketType_qVAttachOrWaitSupported,
-        eServerPacketType_qWatchpointSupportInfo,
-        eServerPacketType_qWatchpointSupportInfoSupported,
-        eServerPacketType_qXfer_auxv_read,
-
-        eServerPacketType_jSignalsInfo,
-
-        eServerPacketType_vAttach,
-        eServerPacketType_vAttachWait,
-        eServerPacketType_vAttachOrWait,
-        eServerPacketType_vAttachName,
-        eServerPacketType_vCont,
-        eServerPacketType_vCont_actions, // vCont?
-
-        eServerPacketType_stop_reason, // '?'
-
-        eServerPacketType_c,
-        eServerPacketType_C,
-        eServerPacketType_D,
-        eServerPacketType_g,
-        eServerPacketType_G,
-        eServerPacketType_H,
-        eServerPacketType_I, // stdin notification
-        eServerPacketType_k,
-        eServerPacketType_m,
-        eServerPacketType_M,
-        eServerPacketType_p,
-        eServerPacketType_P,
-        eServerPacketType_s,
-        eServerPacketType_S,
-        eServerPacketType_T,
-        eServerPacketType_x,
-        eServerPacketType_X,
-        eServerPacketType_Z,
-        eServerPacketType_z,
-
-        eServerPacketType__M,
-        eServerPacketType__m,
-        eServerPacketType_notify, // '%' notification
-    };
-    
-    ServerPacketType
-    GetServerPacketType () const;
-
-    enum ResponseType
-    {
-        eUnsupported = 0,
-        eAck,
-        eNack,
-        eError,
-        eOK,
-        eResponse
-    };
-
-    ResponseType
-    GetResponseType () const;
-
-    bool
-    IsOKResponse() const;
-
-    bool
-    IsUnsupportedResponse() const;
-
-    bool
-    IsNormalResponse () const;
-
-    bool
-    IsErrorResponse() const;
-
-    // Returns zero if the packet isn't a EXX packet where XX are two hex
-    // digits. Otherwise the error encoded in XX is returned.
-    uint8_t
-    GetError();
-    
-    size_t
-    GetEscapedBinaryData (std::string &str);
+  StringExtractorGDBRemote() : StringExtractor(), m_validator(nullptr) {}
+
+  StringExtractorGDBRemote(llvm::StringRef str)
+      : StringExtractor(str), m_validator(nullptr) {}
+
+  StringExtractorGDBRemote(const char *cstr)
+      : StringExtractor(cstr), m_validator(nullptr) {}
+
+  StringExtractorGDBRemote(const StringExtractorGDBRemote &rhs)
+      : StringExtractor(rhs), m_validator(rhs.m_validator) {}
+
+  virtual ~StringExtractorGDBRemote() {}
+
+  bool ValidateResponse() const;
+
+  void CopyResponseValidator(const StringExtractorGDBRemote &rhs);
+
+  void SetResponseValidator(ResponseValidatorCallback callback, void *baton);
+
+  void SetResponseValidatorToOKErrorNotSupported();
+
+  void SetResponseValidatorToASCIIHexBytes();
+
+  void SetResponseValidatorToJSON();
+
+  enum ServerPacketType {
+    eServerPacketType_nack = 0,
+    eServerPacketType_ack,
+    eServerPacketType_invalid,
+    eServerPacketType_unimplemented,
+    eServerPacketType_interrupt, // CTRL+c packet or "\x03"
+    eServerPacketType_A,         // Program arguments packet
+    eServerPacketType_qfProcessInfo,
+    eServerPacketType_qsProcessInfo,
+    eServerPacketType_qC,
+    eServerPacketType_qEcho,
+    eServerPacketType_qGroupName,
+    eServerPacketType_qHostInfo,
+    eServerPacketType_qLaunchGDBServer,
+    eServerPacketType_qQueryGDBServer,
+    eServerPacketType_qKillSpawnedProcess,
+    eServerPacketType_qLaunchSuccess,
+    eServerPacketType_qModuleInfo,
+    eServerPacketType_qProcessInfoPID,
+    eServerPacketType_qSpeedTest,
+    eServerPacketType_qUserName,
+    eServerPacketType_qGetWorkingDir,
+    eServerPacketType_qFileLoadAddress,
+    eServerPacketType_QEnvironment,
+    eServerPacketType_QLaunchArch,
+    eServerPacketType_QSetDisableASLR,
+    eServerPacketType_QSetDetachOnError,
+    eServerPacketType_QSetSTDIN,
+    eServerPacketType_QSetSTDOUT,
+    eServerPacketType_QSetSTDERR,
+    eServerPacketType_QSetWorkingDir,
+    eServerPacketType_QStartNoAckMode,
+    eServerPacketType_qPlatform_shell,
+    eServerPacketType_qPlatform_mkdir,
+    eServerPacketType_qPlatform_chmod,
+    eServerPacketType_vFile_open,
+    eServerPacketType_vFile_close,
+    eServerPacketType_vFile_pread,
+    eServerPacketType_vFile_pwrite,
+    eServerPacketType_vFile_size,
+    eServerPacketType_vFile_mode,
+    eServerPacketType_vFile_exists,
+    eServerPacketType_vFile_md5,
+    eServerPacketType_vFile_stat,
+    eServerPacketType_vFile_symlink,
+    eServerPacketType_vFile_unlink,
+    // debug server packages
+    eServerPacketType_QEnvironmentHexEncoded,
+    eServerPacketType_QListThreadsInStopReply,
+    eServerPacketType_QRestoreRegisterState,
+    eServerPacketType_QSaveRegisterState,
+    eServerPacketType_QSetLogging,
+    eServerPacketType_QSetMaxPacketSize,
+    eServerPacketType_QSetMaxPayloadSize,
+    eServerPacketType_QSetEnableAsyncProfiling,
+    eServerPacketType_QSyncThreadState,
+    eServerPacketType_QThreadSuffixSupported,
+
+    eServerPacketType_jThreadsInfo,
+    eServerPacketType_qsThreadInfo,
+    eServerPacketType_qfThreadInfo,
+    eServerPacketType_qGetPid,
+    eServerPacketType_qGetProfileData,
+    eServerPacketType_qGDBServerVersion,
+    eServerPacketType_qMemoryRegionInfo,
+    eServerPacketType_qMemoryRegionInfoSupported,
+    eServerPacketType_qProcessInfo,
+    eServerPacketType_qRcmd,
+    eServerPacketType_qRegisterInfo,
+    eServerPacketType_qShlibInfoAddr,
+    eServerPacketType_qStepPacketSupported,
+    eServerPacketType_qSupported,
+    eServerPacketType_qSyncThreadStateSupported,
+    eServerPacketType_qThreadExtraInfo,
+    eServerPacketType_qThreadStopInfo,
+    eServerPacketType_qVAttachOrWaitSupported,
+    eServerPacketType_qWatchpointSupportInfo,
+    eServerPacketType_qWatchpointSupportInfoSupported,
+    eServerPacketType_qXfer_auxv_read,
+
+    eServerPacketType_jSignalsInfo,
+
+    eServerPacketType_vAttach,
+    eServerPacketType_vAttachWait,
+    eServerPacketType_vAttachOrWait,
+    eServerPacketType_vAttachName,
+    eServerPacketType_vCont,
+    eServerPacketType_vCont_actions, // vCont?
+
+    eServerPacketType_stop_reason, // '?'
+
+    eServerPacketType_c,
+    eServerPacketType_C,
+    eServerPacketType_D,
+    eServerPacketType_g,
+    eServerPacketType_G,
+    eServerPacketType_H,
+    eServerPacketType_I, // stdin notification
+    eServerPacketType_k,
+    eServerPacketType_m,
+    eServerPacketType_M,
+    eServerPacketType_p,
+    eServerPacketType_P,
+    eServerPacketType_s,
+    eServerPacketType_S,
+    eServerPacketType_T,
+    eServerPacketType_x,
+    eServerPacketType_X,
+    eServerPacketType_Z,
+    eServerPacketType_z,
+
+    eServerPacketType__M,
+    eServerPacketType__m,
+    eServerPacketType_notify, // '%' notification
+  };
+
+  ServerPacketType GetServerPacketType() const;
+
+  enum ResponseType { eUnsupported = 0, eAck, eNack, eError, eOK, eResponse };
+
+  ResponseType GetResponseType() const;
+
+  bool IsOKResponse() const;
+
+  bool IsUnsupportedResponse() const;
+
+  bool IsNormalResponse() const;
+
+  bool IsErrorResponse() const;
+
+  // Returns zero if the packet isn't a EXX packet where XX are two hex
+  // digits. Otherwise the error encoded in XX is returned.
+  uint8_t GetError();
+
+  size_t GetEscapedBinaryData(std::string &str);
 
 protected:
-    ResponseValidatorCallback m_validator;
-    void *m_validator_baton;
+  ResponseValidatorCallback m_validator;
+  void *m_validator_baton;
 };
 
-#endif  // utility_StringExtractorGDBRemote_h_
+#endif // utility_StringExtractorGDBRemote_h_

Modified: lldb/trunk/source/Utility/StringLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/StringLexer.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/StringLexer.cpp (original)
+++ lldb/trunk/source/Utility/StringLexer.cpp Tue Sep  6 15:57:50 2016
@@ -1,4 +1,5 @@
-//===--------------------- StringLexer.cpp -----------------------*- C++ -*-===//
+//===--------------------- StringLexer.cpp -----------------------*- C++
+//-*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -14,116 +15,79 @@
 
 using namespace lldb_utility;
 
-StringLexer::StringLexer (std::string s) :
-    m_data(s),
-    m_position(0)
-{ }
-
-StringLexer::StringLexer (const StringLexer& rhs) :
-    m_data(rhs.m_data),
-    m_position(rhs.m_position)
-{ }
-
-StringLexer::Character
-StringLexer::Peek ()
-{
-    return m_data[m_position];
-}
-
-bool
-StringLexer::NextIf (Character c)
-{
-    auto val = Peek();
-    if (val == c)
-    {
-        Next();
-        return true;
-    }
-    return false;
+StringLexer::StringLexer(std::string s) : m_data(s), m_position(0) {}
+
+StringLexer::StringLexer(const StringLexer &rhs)
+    : m_data(rhs.m_data), m_position(rhs.m_position) {}
+
+StringLexer::Character StringLexer::Peek() { return m_data[m_position]; }
+
+bool StringLexer::NextIf(Character c) {
+  auto val = Peek();
+  if (val == c) {
+    Next();
+    return true;
+  }
+  return false;
 }
 
 std::pair<bool, StringLexer::Character>
-StringLexer::NextIf (std::initializer_list<Character> cs)
-{
-    auto val = Peek();
-    for (auto c : cs)
-    {
-        if (val == c)
-        {
-            Next();
-            return {true,c};
-        }
+StringLexer::NextIf(std::initializer_list<Character> cs) {
+  auto val = Peek();
+  for (auto c : cs) {
+    if (val == c) {
+      Next();
+      return {true, c};
     }
-    return {false,0};
+  }
+  return {false, 0};
 }
 
-bool
-StringLexer::AdvanceIf (const std::string& token)
-{
-    auto pos = m_position;
-    bool matches = true;
-    for (auto c : token)
-    {
-        if (!NextIf(c))
-        {
-            matches = false;
-            break;
-        }
+bool StringLexer::AdvanceIf(const std::string &token) {
+  auto pos = m_position;
+  bool matches = true;
+  for (auto c : token) {
+    if (!NextIf(c)) {
+      matches = false;
+      break;
     }
-    if (!matches)
-    {
-        m_position = pos;
-        return false;
-    }
-    return true;
+  }
+  if (!matches) {
+    m_position = pos;
+    return false;
+  }
+  return true;
 }
 
-StringLexer::Character
-StringLexer::Next ()
-{
-    auto val = Peek();
-    Consume();
-    return val;
+StringLexer::Character StringLexer::Next() {
+  auto val = Peek();
+  Consume();
+  return val;
 }
 
-bool
-StringLexer::HasAtLeast (Size s)
-{
-    return (m_data.size() - m_position) >= s;
+bool StringLexer::HasAtLeast(Size s) {
+  return (m_data.size() - m_position) >= s;
 }
 
-void
-StringLexer::PutBack (Size s)
-{
-    assert (m_position >= s);
-    m_position -= s;
+void StringLexer::PutBack(Size s) {
+  assert(m_position >= s);
+  m_position -= s;
 }
 
-bool
-StringLexer::HasAny (Character c)
-{
-    return m_data.find(c, m_position) != std::string::npos;
+bool StringLexer::HasAny(Character c) {
+  return m_data.find(c, m_position) != std::string::npos;
 }
 
-std::string
-StringLexer::GetUnlexed ()
-{
-    return std::string(m_data, m_position);
+std::string StringLexer::GetUnlexed() {
+  return std::string(m_data, m_position);
 }
 
-void
-StringLexer::Consume()
-{
-    m_position++;
-}
+void StringLexer::Consume() { m_position++; }
 
-StringLexer&
-StringLexer::operator = (const StringLexer& rhs)
-{
-    if (this != &rhs)
-    {
-        m_data = rhs.m_data;
-        m_position = rhs.m_position;
-    }
-    return *this;
+StringLexer &StringLexer::operator=(const StringLexer &rhs) {
+  if (this != &rhs) {
+    m_data = rhs.m_data;
+    m_position = rhs.m_position;
+  }
+  return *this;
 }

Modified: lldb/trunk/source/Utility/TaskPool.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/TaskPool.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/TaskPool.cpp (original)
+++ lldb/trunk/source/Utility/TaskPool.cpp Tue Sep  6 15:57:50 2016
@@ -9,81 +9,63 @@
 
 #include "lldb/Utility/TaskPool.h"
 
-namespace
-{
-    class TaskPoolImpl
-    {
-    public:
-        static TaskPoolImpl&
-        GetInstance();
-
-        void
-        AddTask(std::function<void()>&& task_fn);
-
-    private:
-        TaskPoolImpl();
-
-        static void
-        Worker(TaskPoolImpl* pool);
-
-        std::queue<std::function<void()>> m_tasks;
-        std::mutex                        m_tasks_mutex;
-        uint32_t                          m_thread_count;
-    };
+namespace {
+class TaskPoolImpl {
+public:
+  static TaskPoolImpl &GetInstance();
+
+  void AddTask(std::function<void()> &&task_fn);
+
+private:
+  TaskPoolImpl();
+
+  static void Worker(TaskPoolImpl *pool);
+
+  std::queue<std::function<void()>> m_tasks;
+  std::mutex m_tasks_mutex;
+  uint32_t m_thread_count;
+};
 
 } // end of anonymous namespace
 
-TaskPoolImpl&
-TaskPoolImpl::GetInstance()
-{
-    static TaskPoolImpl g_task_pool_impl;
-    return g_task_pool_impl;
+TaskPoolImpl &TaskPoolImpl::GetInstance() {
+  static TaskPoolImpl g_task_pool_impl;
+  return g_task_pool_impl;
 }
 
-void
-TaskPool::AddTaskImpl(std::function<void()>&& task_fn)
-{
-    TaskPoolImpl::GetInstance().AddTask(std::move(task_fn));
+void TaskPool::AddTaskImpl(std::function<void()> &&task_fn) {
+  TaskPoolImpl::GetInstance().AddTask(std::move(task_fn));
 }
 
-TaskPoolImpl::TaskPoolImpl() :
-    m_thread_count(0)
-{
+TaskPoolImpl::TaskPoolImpl() : m_thread_count(0) {}
+
+void TaskPoolImpl::AddTask(std::function<void()> &&task_fn) {
+  static const uint32_t max_threads = std::thread::hardware_concurrency();
+
+  std::unique_lock<std::mutex> lock(m_tasks_mutex);
+  m_tasks.emplace(std::move(task_fn));
+  if (m_thread_count < max_threads) {
+    m_thread_count++;
+    // Note that this detach call needs to happen with the m_tasks_mutex held.
+    // This prevents the thread
+    // from exiting prematurely and triggering a linux libc bug
+    // (https://sourceware.org/bugzilla/show_bug.cgi?id=19951).
+    std::thread(Worker, this).detach();
+  }
 }
 
-void
-TaskPoolImpl::AddTask(std::function<void()>&& task_fn)
-{
-    static const uint32_t max_threads = std::thread::hardware_concurrency();
-
-    std::unique_lock<std::mutex> lock(m_tasks_mutex);
-    m_tasks.emplace(std::move(task_fn));
-    if (m_thread_count < max_threads)
-    {
-        m_thread_count++;
-        // Note that this detach call needs to happen with the m_tasks_mutex held. This prevents the thread
-        // from exiting prematurely and triggering a linux libc bug
-        // (https://sourceware.org/bugzilla/show_bug.cgi?id=19951).
-        std::thread (Worker, this).detach();
+void TaskPoolImpl::Worker(TaskPoolImpl *pool) {
+  while (true) {
+    std::unique_lock<std::mutex> lock(pool->m_tasks_mutex);
+    if (pool->m_tasks.empty()) {
+      pool->m_thread_count--;
+      break;
     }
-}
 
-void
-TaskPoolImpl::Worker(TaskPoolImpl* pool)
-{
-    while (true)
-    {
-        std::unique_lock<std::mutex> lock(pool->m_tasks_mutex);
-        if (pool->m_tasks.empty())
-        {
-            pool->m_thread_count--;
-            break;
-        }
-
-        std::function<void()> f = pool->m_tasks.front();
-        pool->m_tasks.pop();
-        lock.unlock();
+    std::function<void()> f = pool->m_tasks.front();
+    pool->m_tasks.pop();
+    lock.unlock();
 
-        f();
-    }
+    f();
+  }
 }

Modified: lldb/trunk/source/Utility/TimeSpecTimeout.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/TimeSpecTimeout.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/TimeSpecTimeout.cpp (original)
+++ lldb/trunk/source/Utility/TimeSpecTimeout.cpp Tue Sep  6 15:57:50 2016
@@ -12,37 +12,27 @@
 using namespace lldb_private;
 
 const struct timespec *
-TimeSpecTimeout::SetAbsoluteTimeoutMircoSeconds32 (uint32_t timeout_usec)
-{
-    if (timeout_usec == UINT32_MAX)
-    {
-        m_infinite = true;
-    }
-    else
-    {
-        m_infinite = false;
-        TimeValue time_value(TimeValue::Now());
-        time_value.OffsetWithMicroSeconds(timeout_usec);
-        m_timespec = time_value.GetAsTimeSpec();
-    }
-    return GetTimeSpecPtr ();
+TimeSpecTimeout::SetAbsoluteTimeoutMircoSeconds32(uint32_t timeout_usec) {
+  if (timeout_usec == UINT32_MAX) {
+    m_infinite = true;
+  } else {
+    m_infinite = false;
+    TimeValue time_value(TimeValue::Now());
+    time_value.OffsetWithMicroSeconds(timeout_usec);
+    m_timespec = time_value.GetAsTimeSpec();
+  }
+  return GetTimeSpecPtr();
 }
 
 const struct timespec *
-TimeSpecTimeout::SetRelativeTimeoutMircoSeconds32 (uint32_t timeout_usec)
-{
-    if (timeout_usec == UINT32_MAX)
-    {
-        m_infinite = true;
-    }
-    else
-    {
-        m_infinite = false;
-        TimeValue time_value;
-        time_value.OffsetWithMicroSeconds(timeout_usec);
-        m_timespec = time_value.GetAsTimeSpec();
-    }
-    return GetTimeSpecPtr ();
+TimeSpecTimeout::SetRelativeTimeoutMircoSeconds32(uint32_t timeout_usec) {
+  if (timeout_usec == UINT32_MAX) {
+    m_infinite = true;
+  } else {
+    m_infinite = false;
+    TimeValue time_value;
+    time_value.OffsetWithMicroSeconds(timeout_usec);
+    m_timespec = time_value.GetAsTimeSpec();
+  }
+  return GetTimeSpecPtr();
 }
-
-

Modified: lldb/trunk/source/Utility/TimeSpecTimeout.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/TimeSpecTimeout.h?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/TimeSpecTimeout.h (original)
+++ lldb/trunk/source/Utility/TimeSpecTimeout.h Tue Sep  6 15:57:50 2016
@@ -15,75 +15,68 @@
 
 namespace lldb_private {
 
-class TimeSpecTimeout
-{
+class TimeSpecTimeout {
 public:
-    TimeSpecTimeout() :
-        m_infinite (false)
-    {
-        m_timespec.tv_sec = 0;
-        m_timespec.tv_nsec = 0;
-    }
-    ~TimeSpecTimeout()
-    {
-    }
-
-    //----------------------------------------------------------------------
-    /// Sets the timespec pointer correctly given a timeout relative to the
-    /// current time. This function should be called immediately prior to
-    /// calling the function you will use this timeout with since time can
-    /// elapse between when this function is called and when the timeout is
-    /// used.
-    ///
-    /// @param[in] timeout_usec
-    ///     The timeout in micro seconds. If timeout_usec is UINT32_MAX, the
-    ///     timeout should be set to INFINITE. Otherwise the current time is
-    ///     filled into the timespec and \a timeout_usec is added to the
-    ///     current time.
-    ///
-    /// @return
-    ///     If the timeout is INFINITE, then return NULL, otherwise return
-    ///     a pointer to the timespec with the appropriate timeout value.
-    //----------------------------------------------------------------------
-    const struct timespec *
-    SetAbsoluteTimeoutMircoSeconds32 (uint32_t timeout_usec);
-
-    //----------------------------------------------------------------------
-    /// Sets the timespec pointer correctly given a relative time in micro
-    /// seconds. 
-    ///
-    /// @param[in] timeout_usec
-    ///     The timeout in micro seconds. If timeout_usec is UINT32_MAX, the
-    ///     timeout should be set to INFINITE. Otherwise \a timeout_usec
-    ///     is correctly placed into the timespec.
-    ///
-    /// @return
-    ///     If the timeout is INFINITE, then return NULL, otherwise return
-    ///     a pointer to the timespec with the appropriate timeout value.
-    //----------------------------------------------------------------------
-    const struct timespec *
-    SetRelativeTimeoutMircoSeconds32 (uint32_t timeout_usec);
-
-    //----------------------------------------------------------------------
-    /// Gets the timespec pointer that is appropriate for the timeout
-    /// specified. This function should only be used after a call to
-    /// SetRelativeTimeoutXXX() functions.
-    ///
-    /// @return
-    ///     If the timeout is INFINITE, then return NULL, otherwise return
-    ///     a pointer to the timespec with the appropriate timeout value.
-    //----------------------------------------------------------------------
-    const struct timespec *
-    GetTimeSpecPtr () const
-    {
-        if (m_infinite)
-            return nullptr;
-        return &m_timespec;
-    }
-    
+  TimeSpecTimeout() : m_infinite(false) {
+    m_timespec.tv_sec = 0;
+    m_timespec.tv_nsec = 0;
+  }
+  ~TimeSpecTimeout() {}
+
+  //----------------------------------------------------------------------
+  /// Sets the timespec pointer correctly given a timeout relative to the
+  /// current time. This function should be called immediately prior to
+  /// calling the function you will use this timeout with since time can
+  /// elapse between when this function is called and when the timeout is
+  /// used.
+  ///
+  /// @param[in] timeout_usec
+  ///     The timeout in micro seconds. If timeout_usec is UINT32_MAX, the
+  ///     timeout should be set to INFINITE. Otherwise the current time is
+  ///     filled into the timespec and \a timeout_usec is added to the
+  ///     current time.
+  ///
+  /// @return
+  ///     If the timeout is INFINITE, then return NULL, otherwise return
+  ///     a pointer to the timespec with the appropriate timeout value.
+  //----------------------------------------------------------------------
+  const struct timespec *
+  SetAbsoluteTimeoutMircoSeconds32(uint32_t timeout_usec);
+
+  //----------------------------------------------------------------------
+  /// Sets the timespec pointer correctly given a relative time in micro
+  /// seconds.
+  ///
+  /// @param[in] timeout_usec
+  ///     The timeout in micro seconds. If timeout_usec is UINT32_MAX, the
+  ///     timeout should be set to INFINITE. Otherwise \a timeout_usec
+  ///     is correctly placed into the timespec.
+  ///
+  /// @return
+  ///     If the timeout is INFINITE, then return NULL, otherwise return
+  ///     a pointer to the timespec with the appropriate timeout value.
+  //----------------------------------------------------------------------
+  const struct timespec *
+  SetRelativeTimeoutMircoSeconds32(uint32_t timeout_usec);
+
+  //----------------------------------------------------------------------
+  /// Gets the timespec pointer that is appropriate for the timeout
+  /// specified. This function should only be used after a call to
+  /// SetRelativeTimeoutXXX() functions.
+  ///
+  /// @return
+  ///     If the timeout is INFINITE, then return NULL, otherwise return
+  ///     a pointer to the timespec with the appropriate timeout value.
+  //----------------------------------------------------------------------
+  const struct timespec *GetTimeSpecPtr() const {
+    if (m_infinite)
+      return nullptr;
+    return &m_timespec;
+  }
+
 protected:
-    struct timespec m_timespec;
-    bool m_infinite;
+  struct timespec m_timespec;
+  bool m_infinite;
 };
 
 } // namespace lldb_private

Modified: lldb/trunk/source/Utility/UriParser.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/UriParser.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/UriParser.cpp (original)
+++ lldb/trunk/source/Utility/UriParser.cpp Tue Sep  6 15:57:50 2016
@@ -23,72 +23,63 @@ using namespace lldb_private;
 //----------------------------------------------------------------------
 // UriParser::Parse
 //----------------------------------------------------------------------
-bool
-UriParser::Parse(const std::string& uri,
-                 std::string& scheme,
-                 std::string& hostname,
-                 int& port,
-                 std::string& path)
-{
-    std::string tmp_scheme, tmp_hostname, tmp_port, tmp_path;
-
-    static const char* kSchemeSep = "://";
-    auto pos = uri.find(kSchemeSep);
+bool UriParser::Parse(const std::string &uri, std::string &scheme,
+                      std::string &hostname, int &port, std::string &path) {
+  std::string tmp_scheme, tmp_hostname, tmp_port, tmp_path;
+
+  static const char *kSchemeSep = "://";
+  auto pos = uri.find(kSchemeSep);
+  if (pos == std::string::npos)
+    return false;
+
+  // Extract path.
+  tmp_scheme = uri.substr(0, pos);
+  auto host_pos = pos + strlen(kSchemeSep);
+  auto path_pos = uri.find('/', host_pos);
+  if (path_pos != std::string::npos)
+    tmp_path = uri.substr(path_pos);
+  else
+    tmp_path = "/";
+
+  auto host_port = uri.substr(
+      host_pos,
+      ((path_pos != std::string::npos) ? path_pos : uri.size()) - host_pos);
+
+  // Extract hostname
+  if (host_port[0] == '[') {
+    // hostname is enclosed with square brackets.
+    pos = host_port.find(']');
     if (pos == std::string::npos)
-        return false;
-
-    // Extract path.
-    tmp_scheme = uri.substr(0, pos);
-    auto host_pos = pos + strlen(kSchemeSep);
-    auto path_pos = uri.find('/', host_pos);
-    if (path_pos != std::string::npos)
-        tmp_path = uri.substr(path_pos);
-    else
-        tmp_path = "/";
-
-    auto host_port = uri.substr(
-        host_pos, ((path_pos != std::string::npos) ? path_pos  : uri.size()) - host_pos);
-
-    // Extract hostname
-    if (host_port[0] == '[')
-    {
-        // hostname is enclosed with square brackets.
-        pos = host_port.find(']');
-        if (pos == std::string::npos)
-            return false;
+      return false;
 
-        tmp_hostname = host_port.substr(1, pos - 1);
-        host_port.erase(0, pos + 1);
+    tmp_hostname = host_port.substr(1, pos - 1);
+    host_port.erase(0, pos + 1);
+  } else {
+    pos = host_port.find(':');
+    tmp_hostname = host_port.substr(
+        0, (pos != std::string::npos) ? pos : host_port.size());
+    host_port.erase(0, (pos != std::string::npos) ? pos : host_port.size());
+  }
+
+  // Extract port
+  tmp_port = host_port;
+  if (!tmp_port.empty()) {
+    if (tmp_port[0] != ':')
+      return false;
+    tmp_port = tmp_port.substr(1);
+    bool success = false;
+    auto port_tmp =
+        StringConvert::ToUInt32(tmp_port.c_str(), UINT32_MAX, 10, &success);
+    if (!success || port_tmp > 65535) {
+      // there are invalid characters in port_buf
+      return false;
     }
-    else
-    {
-        pos = host_port.find(':');
-        tmp_hostname = host_port.substr(0, (pos != std::string::npos) ? pos : host_port.size());
-        host_port.erase(0, (pos != std::string::npos) ? pos : host_port.size());
-    }
-
-    // Extract port
-    tmp_port = host_port;
-    if (!tmp_port.empty())
-    {
-        if (tmp_port[0] != ':')
-            return false;
-        tmp_port = tmp_port.substr(1);
-        bool success = false;
-        auto port_tmp = StringConvert::ToUInt32(tmp_port.c_str(), UINT32_MAX, 10, &success);
-        if (!success || port_tmp > 65535)
-        {
-            // there are invalid characters in port_buf
-            return false;
-        }
-        port = port_tmp;
-    }
-    else
-        port = -1;
-
-    scheme = tmp_scheme;
-    hostname = tmp_hostname;
-    path = tmp_path;
-    return true;
+    port = port_tmp;
+  } else
+    port = -1;
+
+  scheme = tmp_scheme;
+  hostname = tmp_hostname;
+  path = tmp_path;
+  return true;
 }
-

Modified: lldb/trunk/source/Utility/UriParser.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/UriParser.h?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/Utility/UriParser.h (original)
+++ lldb/trunk/source/Utility/UriParser.h Tue Sep  6 15:57:50 2016
@@ -17,23 +17,18 @@
 // Other libraries and framework includes
 // Project includes
 
-class UriParser
-{
+class UriParser {
 public:
-    // Parses
-    // RETURN VALUE
-    //   if url is valid, function returns true and 
-    //   scheme/hostname/port/path are set to the parsed values
-    //   port it set to -1 if it is not included in the URL
-    //
-    //   if the url is invalid, function returns false and
-    //   output parameters remain unchanged
-    static bool
-    Parse(const std::string& uri,
-          std::string& scheme,
-          std::string& hostname,
-          int& port,
-          std::string& path);
+  // Parses
+  // RETURN VALUE
+  //   if url is valid, function returns true and
+  //   scheme/hostname/port/path are set to the parsed values
+  //   port it set to -1 if it is not included in the URL
+  //
+  //   if the url is invalid, function returns false and
+  //   output parameters remain unchanged
+  static bool Parse(const std::string &uri, std::string &scheme,
+                    std::string &hostname, int &port, std::string &path);
 };
 
-#endif  // utility_UriParser_h_
+#endif // utility_UriParser_h_

Modified: lldb/trunk/source/lldb.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/lldb.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/source/lldb.cpp (original)
+++ lldb/trunk/source/lldb.cpp Tue Sep  6 15:57:50 2016
@@ -12,96 +12,86 @@
 using namespace lldb;
 using namespace lldb_private;
 
-#if defined (__APPLE__)
+#if defined(__APPLE__)
 extern "C" const unsigned char liblldb_coreVersionString[];
 #else
 
 #include "clang/Basic/Version.h"
 
-static const char *
-GetLLDBRevision()
-{
+static const char *GetLLDBRevision() {
 #ifdef LLDB_REVISION
-    return LLDB_REVISION;
+  return LLDB_REVISION;
 #else
-    return NULL;
+  return NULL;
 #endif
 }
 
-static const char *
-GetLLDBRepository()
-{
+static const char *GetLLDBRepository() {
 #ifdef LLDB_REPOSITORY
-    return LLDB_REPOSITORY;
+  return LLDB_REPOSITORY;
 #else
-    return NULL;
+  return NULL;
 #endif
 }
 
 #endif
 
-const char *
-lldb_private::GetVersion ()
-{
-#if defined (__APPLE__)
-    static char g_version_string[32];
-    if (g_version_string[0] == '\0')
-    {
-        const char *version_string = ::strstr ((const char *)liblldb_coreVersionString, "PROJECT:");
-        
-        if (version_string)
-            version_string += sizeof("PROJECT:") - 1;
-        else
-            version_string = "unknown";
-        
-        const char *newline_loc = strchr(version_string, '\n');
-        
-        size_t version_len = sizeof(g_version_string) - 1;
-        
-        if (newline_loc &&
-            (newline_loc - version_string < static_cast<ptrdiff_t>(version_len)))
-            version_len = newline_loc - version_string;
-        
-        ::snprintf(g_version_string, version_len + 1, "%s", version_string);
-    }
+const char *lldb_private::GetVersion() {
+#if defined(__APPLE__)
+  static char g_version_string[32];
+  if (g_version_string[0] == '\0') {
+    const char *version_string =
+        ::strstr((const char *)liblldb_coreVersionString, "PROJECT:");
+
+    if (version_string)
+      version_string += sizeof("PROJECT:") - 1;
+    else
+      version_string = "unknown";
+
+    const char *newline_loc = strchr(version_string, '\n');
+
+    size_t version_len = sizeof(g_version_string) - 1;
+
+    if (newline_loc &&
+        (newline_loc - version_string < static_cast<ptrdiff_t>(version_len)))
+      version_len = newline_loc - version_string;
+
+    ::snprintf(g_version_string, version_len + 1, "%s", version_string);
+  }
 
-    return g_version_string;
+  return g_version_string;
 #else
-    // On platforms other than Darwin, report a version number in the same style as the clang tool.
-    static std::string g_version_str;
-    if (g_version_str.empty())
-    {
-        g_version_str += "lldb version ";
-        g_version_str += CLANG_VERSION_STRING;
-        const char * lldb_repo = GetLLDBRepository();
-        if (lldb_repo)
-        {
-            g_version_str += " (";
-            g_version_str += lldb_repo;
-        }
-
-        const char *lldb_rev = GetLLDBRevision();
-        if (lldb_rev)
-        {
-            g_version_str += " revision ";
-            g_version_str += lldb_rev;
-        }
-        std::string clang_rev (clang::getClangRevision());
-        if (clang_rev.length() > 0)
-        {
-            g_version_str += " clang revision ";
-            g_version_str += clang_rev;
-        }
-        std::string llvm_rev (clang::getLLVMRevision());
-        if (llvm_rev.length() > 0)
-        {
-            g_version_str += " llvm revision ";
-            g_version_str += llvm_rev;
-        }
+  // On platforms other than Darwin, report a version number in the same style
+  // as the clang tool.
+  static std::string g_version_str;
+  if (g_version_str.empty()) {
+    g_version_str += "lldb version ";
+    g_version_str += CLANG_VERSION_STRING;
+    const char *lldb_repo = GetLLDBRepository();
+    if (lldb_repo) {
+      g_version_str += " (";
+      g_version_str += lldb_repo;
+    }
 
-        if (lldb_repo)
-            g_version_str += ")";
+    const char *lldb_rev = GetLLDBRevision();
+    if (lldb_rev) {
+      g_version_str += " revision ";
+      g_version_str += lldb_rev;
     }
-    return g_version_str.c_str();
+    std::string clang_rev(clang::getClangRevision());
+    if (clang_rev.length() > 0) {
+      g_version_str += " clang revision ";
+      g_version_str += clang_rev;
+    }
+    std::string llvm_rev(clang::getLLVMRevision());
+    if (llvm_rev.length() > 0) {
+      g_version_str += " llvm revision ";
+      g_version_str += llvm_rev;
+    }
+
+    if (lldb_repo)
+      g_version_str += ")";
+  }
+  return g_version_str.c_str();
 #endif
 }

Modified: lldb/trunk/test/use_lldb_suite.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/use_lldb_suite.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/test/use_lldb_suite.py (original)
+++ lldb/trunk/test/use_lldb_suite.py Tue Sep  6 15:57:50 2016
@@ -2,6 +2,7 @@ import inspect
 import os
 import sys
 
+
 def find_lldb_root():
     lldb_root = os.path.dirname(inspect.getfile(inspect.currentframe()))
     while True:

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/ANSI.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/ANSI.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/ANSI.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/ANSI.py Tue Sep  6 15:57:50 2016
@@ -13,90 +13,106 @@ import FSM
 import copy
 import string
 
-def Emit (fsm):
+
+def Emit(fsm):
 
     screen = fsm.memory[0]
     screen.write_ch(fsm.input_symbol)
 
-def StartNumber (fsm):
 
-    fsm.memory.append (fsm.input_symbol)
+def StartNumber(fsm):
+
+    fsm.memory.append(fsm.input_symbol)
 
-def BuildNumber (fsm):
+
+def BuildNumber(fsm):
 
     ns = fsm.memory.pop()
     ns = ns + fsm.input_symbol
-    fsm.memory.append (ns)
+    fsm.memory.append(ns)
+
 
-def DoBackOne (fsm):
+def DoBackOne(fsm):
 
     screen = fsm.memory[0]
-    screen.cursor_back ()
+    screen.cursor_back()
 
-def DoBack (fsm):
+
+def DoBack(fsm):
 
     count = int(fsm.memory.pop())
     screen = fsm.memory[0]
-    screen.cursor_back (count)
+    screen.cursor_back(count)
+
 
-def DoDownOne (fsm):
+def DoDownOne(fsm):
 
     screen = fsm.memory[0]
-    screen.cursor_down ()
+    screen.cursor_down()
 
-def DoDown (fsm):
+
+def DoDown(fsm):
 
     count = int(fsm.memory.pop())
     screen = fsm.memory[0]
-    screen.cursor_down (count)
+    screen.cursor_down(count)
+
 
-def DoForwardOne (fsm):
+def DoForwardOne(fsm):
 
     screen = fsm.memory[0]
-    screen.cursor_forward ()
+    screen.cursor_forward()
 
-def DoForward (fsm):
+
+def DoForward(fsm):
 
     count = int(fsm.memory.pop())
     screen = fsm.memory[0]
-    screen.cursor_forward (count)
+    screen.cursor_forward(count)
+
 
-def DoUpReverse (fsm):
+def DoUpReverse(fsm):
 
     screen = fsm.memory[0]
     screen.cursor_up_reverse()
 
-def DoUpOne (fsm):
+
+def DoUpOne(fsm):
 
     screen = fsm.memory[0]
-    screen.cursor_up ()
+    screen.cursor_up()
+
 
-def DoUp (fsm):
+def DoUp(fsm):
 
     count = int(fsm.memory.pop())
     screen = fsm.memory[0]
-    screen.cursor_up (count)
+    screen.cursor_up(count)
 
-def DoHome (fsm):
+
+def DoHome(fsm):
 
     c = int(fsm.memory.pop())
     r = int(fsm.memory.pop())
     screen = fsm.memory[0]
-    screen.cursor_home (r,c)
+    screen.cursor_home(r, c)
+
 
-def DoHomeOrigin (fsm):
+def DoHomeOrigin(fsm):
 
     c = 1
     r = 1
     screen = fsm.memory[0]
-    screen.cursor_home (r,c)
+    screen.cursor_home(r, c)
+
 
-def DoEraseDown (fsm):
+def DoEraseDown(fsm):
 
     screen = fsm.memory[0]
     screen.erase_down()
 
-def DoErase (fsm):
+
+def DoErase(fsm):
 
     arg = int(fsm.memory.pop())
     screen = fsm.memory[0]
@@ -107,12 +123,14 @@ def DoErase (fsm):
     elif arg == 2:
         screen.erase_screen()
 
-def DoEraseEndOfLine (fsm):
+
+def DoEraseEndOfLine(fsm):
 
     screen = fsm.memory[0]
     screen.erase_end_of_line()
 
-def DoEraseLine (fsm):
+
+def DoEraseLine(fsm):
 
     screen = fsm.memory[0]
     if arg == 0:
@@ -122,146 +140,164 @@ def DoEraseLine (fsm):
     elif arg == 2:
         screen.erase_line()
 
-def DoEnableScroll (fsm):
+
+def DoEnableScroll(fsm):
 
     screen = fsm.memory[0]
     screen.scroll_screen()
 
-def DoCursorSave (fsm):
+
+def DoCursorSave(fsm):
 
     screen = fsm.memory[0]
     screen.cursor_save_attrs()
 
-def DoCursorRestore (fsm):
+
+def DoCursorRestore(fsm):
 
     screen = fsm.memory[0]
     screen.cursor_restore_attrs()
 
-def DoScrollRegion (fsm):
+
+def DoScrollRegion(fsm):
 
     screen = fsm.memory[0]
     r2 = int(fsm.memory.pop())
     r1 = int(fsm.memory.pop())
-    screen.scroll_screen_rows (r1,r2)
+    screen.scroll_screen_rows(r1, r2)
 
-def DoMode (fsm):
+
+def DoMode(fsm):
 
     screen = fsm.memory[0]
-    mode = fsm.memory.pop() # Should be 4
+    mode = fsm.memory.pop()  # Should be 4
     # screen.setReplaceMode ()
 
-def Log (fsm):
+
+def Log(fsm):
 
     screen = fsm.memory[0]
     fsm.memory = [screen]
-    fout = open ('log', 'a')
-    fout.write (fsm.input_symbol + ',' + fsm.current_state + '\n')
+    fout = open('log', 'a')
+    fout.write(fsm.input_symbol + ',' + fsm.current_state + '\n')
     fout.close()
 
+
 class term (screen.screen):
-    """This is a placeholder. 
+    """This is a placeholder.
     In theory I might want to add other terminal types.
     """
-    def __init__ (self, r=24, c=80):
-        screen.screen.__init__(self, r,c)
+
+    def __init__(self, r=24, c=80):
+        screen.screen.__init__(self, r, c)
+
 
 class ANSI (term):
 
     """This class encapsulates a generic terminal. It filters a stream and
     maintains the state of a screen object. """
 
-    def __init__ (self, r=24,c=80):
+    def __init__(self, r=24, c=80):
 
-        term.__init__(self,r,c)
+        term.__init__(self, r, c)
 
         #self.screen = screen (24,80)
-        self.state = FSM.FSM ('INIT',[self])
-        self.state.set_default_transition (Log, 'INIT')
-        self.state.add_transition_any ('INIT', Emit, 'INIT')
-        self.state.add_transition ('\x1b', 'INIT', None, 'ESC')
-        self.state.add_transition_any ('ESC', Log, 'INIT')
-        self.state.add_transition ('(', 'ESC', None, 'G0SCS')
-        self.state.add_transition (')', 'ESC', None, 'G1SCS')
-        self.state.add_transition_list ('AB012', 'G0SCS', None, 'INIT')
-        self.state.add_transition_list ('AB012', 'G1SCS', None, 'INIT')
-        self.state.add_transition ('7', 'ESC', DoCursorSave, 'INIT')
-        self.state.add_transition ('8', 'ESC', DoCursorRestore, 'INIT')
-        self.state.add_transition ('M', 'ESC', DoUpReverse, 'INIT')
-        self.state.add_transition ('>', 'ESC', DoUpReverse, 'INIT')
-        self.state.add_transition ('<', 'ESC', DoUpReverse, 'INIT')
-        self.state.add_transition ('=', 'ESC', None, 'INIT') # Selects application keypad.
-        self.state.add_transition ('#', 'ESC', None, 'GRAPHICS_POUND')
-        self.state.add_transition_any ('GRAPHICS_POUND', None, 'INIT')
-        self.state.add_transition ('[', 'ESC', None, 'ELB')
+        self.state = FSM.FSM('INIT', [self])
+        self.state.set_default_transition(Log, 'INIT')
+        self.state.add_transition_any('INIT', Emit, 'INIT')
+        self.state.add_transition('\x1b', 'INIT', None, 'ESC')
+        self.state.add_transition_any('ESC', Log, 'INIT')
+        self.state.add_transition('(', 'ESC', None, 'G0SCS')
+        self.state.add_transition(')', 'ESC', None, 'G1SCS')
+        self.state.add_transition_list('AB012', 'G0SCS', None, 'INIT')
+        self.state.add_transition_list('AB012', 'G1SCS', None, 'INIT')
+        self.state.add_transition('7', 'ESC', DoCursorSave, 'INIT')
+        self.state.add_transition('8', 'ESC', DoCursorRestore, 'INIT')
+        self.state.add_transition('M', 'ESC', DoUpReverse, 'INIT')
+        self.state.add_transition('>', 'ESC', DoUpReverse, 'INIT')
+        self.state.add_transition('<', 'ESC', DoUpReverse, 'INIT')
+        # Selects application keypad.
+        self.state.add_transition('=', 'ESC', None, 'INIT')
+        self.state.add_transition('#', 'ESC', None, 'GRAPHICS_POUND')
+        self.state.add_transition_any('GRAPHICS_POUND', None, 'INIT')
+        self.state.add_transition('[', 'ESC', None, 'ELB')
         # ELB means Escape Left Bracket. That is ^[[
-        self.state.add_transition ('H', 'ELB', DoHomeOrigin, 'INIT')
-        self.state.add_transition ('D', 'ELB', DoBackOne, 'INIT')
-        self.state.add_transition ('B', 'ELB', DoDownOne, 'INIT')
-        self.state.add_transition ('C', 'ELB', DoForwardOne, 'INIT')
-        self.state.add_transition ('A', 'ELB', DoUpOne, 'INIT')
-        self.state.add_transition ('J', 'ELB', DoEraseDown, 'INIT')
-        self.state.add_transition ('K', 'ELB', DoEraseEndOfLine, 'INIT')
-        self.state.add_transition ('r', 'ELB', DoEnableScroll, 'INIT')
-        self.state.add_transition ('m', 'ELB', None, 'INIT')
-        self.state.add_transition ('?', 'ELB', None, 'MODECRAP')
-        self.state.add_transition_list (string.digits, 'ELB', StartNumber, 'NUMBER_1')
-        self.state.add_transition_list (string.digits, 'NUMBER_1', BuildNumber, 'NUMBER_1')
-        self.state.add_transition ('D', 'NUMBER_1', DoBack, 'INIT')
-        self.state.add_transition ('B', 'NUMBER_1', DoDown, 'INIT')
-        self.state.add_transition ('C', 'NUMBER_1', DoForward, 'INIT')
-        self.state.add_transition ('A', 'NUMBER_1', DoUp, 'INIT')
-        self.state.add_transition ('J', 'NUMBER_1', DoErase, 'INIT')
-        self.state.add_transition ('K', 'NUMBER_1', DoEraseLine, 'INIT')
-        self.state.add_transition ('l', 'NUMBER_1', DoMode, 'INIT')
-        ### It gets worse... the 'm' code can have infinite number of
-        ### number;number;number before it. I've never seen more than two,
-        ### but the specs say it's allowed. crap!
-        self.state.add_transition ('m', 'NUMBER_1', None, 'INIT')
-        ### LED control. Same problem as 'm' code.
-        self.state.add_transition ('q', 'NUMBER_1', None, 'INIT') 
-        
+        self.state.add_transition('H', 'ELB', DoHomeOrigin, 'INIT')
+        self.state.add_transition('D', 'ELB', DoBackOne, 'INIT')
+        self.state.add_transition('B', 'ELB', DoDownOne, 'INIT')
+        self.state.add_transition('C', 'ELB', DoForwardOne, 'INIT')
+        self.state.add_transition('A', 'ELB', DoUpOne, 'INIT')
+        self.state.add_transition('J', 'ELB', DoEraseDown, 'INIT')
+        self.state.add_transition('K', 'ELB', DoEraseEndOfLine, 'INIT')
+        self.state.add_transition('r', 'ELB', DoEnableScroll, 'INIT')
+        self.state.add_transition('m', 'ELB', None, 'INIT')
+        self.state.add_transition('?', 'ELB', None, 'MODECRAP')
+        self.state.add_transition_list(
+            string.digits, 'ELB', StartNumber, 'NUMBER_1')
+        self.state.add_transition_list(
+            string.digits, 'NUMBER_1', BuildNumber, 'NUMBER_1')
+        self.state.add_transition('D', 'NUMBER_1', DoBack, 'INIT')
+        self.state.add_transition('B', 'NUMBER_1', DoDown, 'INIT')
+        self.state.add_transition('C', 'NUMBER_1', DoForward, 'INIT')
+        self.state.add_transition('A', 'NUMBER_1', DoUp, 'INIT')
+        self.state.add_transition('J', 'NUMBER_1', DoErase, 'INIT')
+        self.state.add_transition('K', 'NUMBER_1', DoEraseLine, 'INIT')
+        self.state.add_transition('l', 'NUMBER_1', DoMode, 'INIT')
+        # It gets worse... the 'm' code can have infinite number of
+        # number;number;number before it. I've never seen more than two,
+        # but the specs say it's allowed. crap!
+        self.state.add_transition('m', 'NUMBER_1', None, 'INIT')
+        # LED control. Same problem as 'm' code.
+        self.state.add_transition('q', 'NUMBER_1', None, 'INIT')
+
         # \E[?47h appears to be "switch to alternate screen"
         # \E[?47l restores alternate screen... I think.
-        self.state.add_transition_list (string.digits, 'MODECRAP', StartNumber, 'MODECRAP_NUM')
-        self.state.add_transition_list (string.digits, 'MODECRAP_NUM', BuildNumber, 'MODECRAP_NUM')
-        self.state.add_transition ('l', 'MODECRAP_NUM', None, 'INIT')
-        self.state.add_transition ('h', 'MODECRAP_NUM', None, 'INIT')
-
-#RM   Reset Mode                Esc [ Ps l                   none
-        self.state.add_transition (';', 'NUMBER_1', None, 'SEMICOLON')
-        self.state.add_transition_any ('SEMICOLON', Log, 'INIT')
-        self.state.add_transition_list (string.digits, 'SEMICOLON', StartNumber, 'NUMBER_2')
-        self.state.add_transition_list (string.digits, 'NUMBER_2', BuildNumber, 'NUMBER_2')
-        self.state.add_transition_any ('NUMBER_2', Log, 'INIT')
-        self.state.add_transition ('H', 'NUMBER_2', DoHome, 'INIT')
-        self.state.add_transition ('f', 'NUMBER_2', DoHome, 'INIT')
-        self.state.add_transition ('r', 'NUMBER_2', DoScrollRegion, 'INIT')
-        ### It gets worse... the 'm' code can have infinite number of
-        ### number;number;number before it. I've never seen more than two,
-        ### but the specs say it's allowed. crap!
-        self.state.add_transition ('m', 'NUMBER_2', None, 'INIT')
-        ### LED control. Same problem as 'm' code.
-        self.state.add_transition ('q', 'NUMBER_2', None, 'INIT') 
+        self.state.add_transition_list(
+            string.digits, 'MODECRAP', StartNumber, 'MODECRAP_NUM')
+        self.state.add_transition_list(
+            string.digits,
+            'MODECRAP_NUM',
+            BuildNumber,
+            'MODECRAP_NUM')
+        self.state.add_transition('l', 'MODECRAP_NUM', None, 'INIT')
+        self.state.add_transition('h', 'MODECRAP_NUM', None, 'INIT')
+
+# RM   Reset Mode                Esc [ Ps l                   none
+        self.state.add_transition(';', 'NUMBER_1', None, 'SEMICOLON')
+        self.state.add_transition_any('SEMICOLON', Log, 'INIT')
+        self.state.add_transition_list(
+            string.digits, 'SEMICOLON', StartNumber, 'NUMBER_2')
+        self.state.add_transition_list(
+            string.digits, 'NUMBER_2', BuildNumber, 'NUMBER_2')
+        self.state.add_transition_any('NUMBER_2', Log, 'INIT')
+        self.state.add_transition('H', 'NUMBER_2', DoHome, 'INIT')
+        self.state.add_transition('f', 'NUMBER_2', DoHome, 'INIT')
+        self.state.add_transition('r', 'NUMBER_2', DoScrollRegion, 'INIT')
+        # It gets worse... the 'm' code can have infinite number of
+        # number;number;number before it. I've never seen more than two,
+        # but the specs say it's allowed. crap!
+        self.state.add_transition('m', 'NUMBER_2', None, 'INIT')
+        # LED control. Same problem as 'm' code.
+        self.state.add_transition('q', 'NUMBER_2', None, 'INIT')
 
-    def process (self, c):
+    def process(self, c):
 
         self.state.process(c)
 
-    def process_list (self, l):
+    def process_list(self, l):
 
         self.write(l)
 
-    def write (self, s):
+    def write(self, s):
 
         for c in s:
             self.process(c)
 
-    def flush (self):
+    def flush(self):
 
         pass
 
-    def write_ch (self, ch):
-
+    def write_ch(self, ch):
         """This puts a character at the current cursor position. cursor
         position if moved forward with wrap-around, but no scrolling is done if
         the cursor hits the lower-right corner of the screen. """
@@ -270,7 +306,7 @@ class ANSI (term):
         ch = ch[0]
 
         if ch == '\r':
-        #    self.crlf()
+            #    self.crlf()
             return
         if ch == '\n':
             self.crlf()
@@ -281,8 +317,8 @@ class ANSI (term):
             return
 
         if ch not in string.printable:
-            fout = open ('log', 'a')
-            fout.write ('Nonprint: ' + str(ord(ch)) + '\n')
+            fout = open('log', 'a')
+            fout.write('Nonprint: ' + str(ord(ch)) + '\n')
             fout.close()
             return
         self.put_abs(self.cur_r, self.cur_c, ch)
@@ -292,10 +328,10 @@ class ANSI (term):
         if old_c == self.cur_c:
             self.cursor_down()
             if old_r != self.cur_r:
-                self.cursor_home (self.cur_r, 1)
+                self.cursor_home(self.cur_r, 1)
             else:
-                self.scroll_up ()
-                self.cursor_home (self.cur_r, 1)
+                self.scroll_up()
+                self.cursor_home(self.cur_r, 1)
                 self.erase_line()
 
 #    def test (self):
@@ -329,6 +365,6 @@ class ANSI (term):
 #            self.write_ch (c)
 #        print str(self)
 #
-#if __name__ == '__main__':
+# if __name__ == '__main__':
 #    t = ANSI(6,65)
 #    t.test()

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/FSM.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/FSM.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/FSM.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/FSM.py Tue Sep  6 15:57:50 2016
@@ -66,6 +66,7 @@ you can always prevent this just by defi
 Noah Spurrier 20020822
 """
 
+
 class ExceptionFSM(Exception):
 
     """This is the FSM Exception class."""
@@ -74,7 +75,8 @@ class ExceptionFSM(Exception):
         self.value = value
 
     def __str__(self):
-        return `self.value`
+        return repr(self.value)
+
 
 class FSM:
 
@@ -82,7 +84,6 @@ class FSM:
     """
 
     def __init__(self, initial_state, memory=None):
-
         """This creates the FSM. You set the initial state here. The "memory"
         attribute is any object that you want to pass along to the action
         functions. It is not used by the FSM. For parsing you would typically
@@ -101,8 +102,7 @@ class FSM:
         self.action = None
         self.memory = memory
 
-    def reset (self):
-
+    def reset(self):
         """This sets the current_state to the initial_state and sets
         input_symbol to None. The initial state was set by the constructor
         __init__(). """
@@ -110,8 +110,12 @@ class FSM:
         self.current_state = self.initial_state
         self.input_symbol = None
 
-    def add_transition (self, input_symbol, state, action=None, next_state=None):
-
+    def add_transition(
+            self,
+            input_symbol,
+            state,
+            action=None,
+            next_state=None):
         """This adds a transition that associates:
 
                 (input_symbol, current_state) --> (action, next_state)
@@ -127,8 +131,12 @@ class FSM:
             next_state = state
         self.state_transitions[(input_symbol, state)] = (action, next_state)
 
-    def add_transition_list (self, list_input_symbols, state, action=None, next_state=None):
-
+    def add_transition_list(
+            self,
+            list_input_symbols,
+            state,
+            action=None,
+            next_state=None):
         """This adds the same transition for a list of input symbols.
         You can pass a list or a string. Note that it is handy to use
         string.digits, string.whitespace, string.letters, etc. to add
@@ -141,10 +149,9 @@ class FSM:
         if next_state is None:
             next_state = state
         for input_symbol in list_input_symbols:
-            self.add_transition (input_symbol, state, action, next_state)
-
-    def add_transition_any (self, state, action=None, next_state=None):
+            self.add_transition(input_symbol, state, action, next_state)
 
+    def add_transition_any(self, state, action=None, next_state=None):
         """This adds a transition that associates:
 
                 (current_state) --> (action, next_state)
@@ -159,10 +166,9 @@ class FSM:
 
         if next_state is None:
             next_state = state
-        self.state_transitions_any [state] = (action, next_state)
-
-    def set_default_transition (self, action, next_state):
+        self.state_transitions_any[state] = (action, next_state)
 
+    def set_default_transition(self, action, next_state):
         """This sets the default transition. This defines an action and
         next_state if the FSM cannot find the input symbol and the current
         state in the transition list and if the FSM cannot find the
@@ -174,8 +180,7 @@ class FSM:
 
         self.default_transition = (action, next_state)
 
-    def get_transition (self, input_symbol, state):
-
+    def get_transition(self, input_symbol, state):
         """This returns (action, next state) given an input_symbol and state.
         This does not modify the FSM state, so calling this method has no side
         effects. Normally you do not call this method directly. It is called by
@@ -197,18 +202,17 @@ class FSM:
         4. No transition was defined. If we get here then raise an exception.
         """
 
-        if self.state_transitions.has_key((input_symbol, state)):
+        if (input_symbol, state) in self.state_transitions:
             return self.state_transitions[(input_symbol, state)]
-        elif self.state_transitions_any.has_key (state):
+        elif state in self.state_transitions_any:
             return self.state_transitions_any[state]
         elif self.default_transition is not None:
             return self.default_transition
         else:
-            raise ExceptionFSM ('Transition is undefined: (%s, %s).' %
-                (str(input_symbol), str(state)) )
-
-    def process (self, input_symbol):
+            raise ExceptionFSM('Transition is undefined: (%s, %s).' %
+                               (str(input_symbol), str(state)))
 
+    def process(self, input_symbol):
         """This is the main method that you call to process input. This may
         cause the FSM to change state and call an action. This method calls
         get_transition() to find the action and next_state associated with the
@@ -218,26 +222,26 @@ class FSM:
         (or a string) by calling process_list(). """
 
         self.input_symbol = input_symbol
-        (self.action, self.next_state) = self.get_transition (self.input_symbol, self.current_state)
+        (self.action, self.next_state) = self.get_transition(
+            self.input_symbol, self.current_state)
         if self.action is not None:
-            self.action (self)
+            self.action(self)
         self.current_state = self.next_state
         self.next_state = None
 
-    def process_list (self, input_symbols):
-
+    def process_list(self, input_symbols):
         """This takes a list and sends each element to process(). The list may
         be a string or any iterable object. """
 
         for s in input_symbols:
-            self.process (s)
+            self.process(s)
 
 ##############################################################################
 # The following is an example that demonstrates the use of the FSM class to
 # process an RPN expression. Run this module from the command line. You will
 # get a prompt > for input. Enter an RPN Expression. Numbers may be integers.
 # Operators are * / + - Use the = sign to evaluate and print the expression.
-# For example: 
+# For example:
 #
 #    167 3 2 2 * * * 1 - =
 #
@@ -246,58 +250,81 @@ class FSM:
 #    2003
 ##############################################################################
 
-import sys, os, traceback, optparse, time, string
+import sys
+import os
+import traceback
+import optparse
+import time
+import string
 
 #
-# These define the actions. 
+# These define the actions.
 # Note that "memory" is a list being used as a stack.
 #
 
-def BeginBuildNumber (fsm):
-    fsm.memory.append (fsm.input_symbol)
 
-def BuildNumber (fsm):
-    s = fsm.memory.pop ()
+def BeginBuildNumber(fsm):
+    fsm.memory.append(fsm.input_symbol)
+
+
+def BuildNumber(fsm):
+    s = fsm.memory.pop()
     s = s + fsm.input_symbol
-    fsm.memory.append (s)
+    fsm.memory.append(s)
+
+
+def EndBuildNumber(fsm):
+    s = fsm.memory.pop()
+    fsm.memory.append(int(s))
 
-def EndBuildNumber (fsm):
-    s = fsm.memory.pop ()
-    fsm.memory.append (int(s))
 
-def DoOperator (fsm):
+def DoOperator(fsm):
     ar = fsm.memory.pop()
     al = fsm.memory.pop()
     if fsm.input_symbol == '+':
-        fsm.memory.append (al + ar)
+        fsm.memory.append(al + ar)
     elif fsm.input_symbol == '-':
-        fsm.memory.append (al - ar)
+        fsm.memory.append(al - ar)
     elif fsm.input_symbol == '*':
-        fsm.memory.append (al * ar)
+        fsm.memory.append(al * ar)
     elif fsm.input_symbol == '/':
-        fsm.memory.append (al / ar)
+        fsm.memory.append(al / ar)
 
-def DoEqual (fsm):
+
+def DoEqual(fsm):
     print str(fsm.memory.pop())
 
-def Error (fsm):
+
+def Error(fsm):
     print 'That does not compute.'
     print str(fsm.input_symbol)
 
-def main():
 
+def main():
     """This is where the example starts and the FSM state transitions are
     defined. Note that states are strings (such as 'INIT'). This is not
     necessary, but it makes the example easier to read. """
 
-    f = FSM ('INIT', []) # "memory" will be used as a stack.
-    f.set_default_transition (Error, 'INIT')
-    f.add_transition_any  ('INIT', None, 'INIT')
-    f.add_transition      ('=',               'INIT',            DoEqual,          'INIT')
-    f.add_transition_list (string.digits,     'INIT',            BeginBuildNumber, 'BUILDING_NUMBER')
-    f.add_transition_list (string.digits,     'BUILDING_NUMBER', BuildNumber,      'BUILDING_NUMBER')
-    f.add_transition_list (string.whitespace, 'BUILDING_NUMBER', EndBuildNumber,   'INIT')
-    f.add_transition_list ('+-*/',            'INIT',            DoOperator,       'INIT')
+    f = FSM('INIT', [])  # "memory" will be used as a stack.
+    f.set_default_transition(Error, 'INIT')
+    f.add_transition_any('INIT', None, 'INIT')
+    f.add_transition('=', 'INIT', DoEqual, 'INIT')
+    f.add_transition_list(
+        string.digits,
+        'INIT',
+        BeginBuildNumber,
+        'BUILDING_NUMBER')
+    f.add_transition_list(
+        string.digits,
+        'BUILDING_NUMBER',
+        BuildNumber,
+        'BUILDING_NUMBER')
+    f.add_transition_list(
+        string.whitespace,
+        'BUILDING_NUMBER',
+        EndBuildNumber,
+        'INIT')
+    f.add_transition_list('+-*/', 'INIT', DoOperator, 'INIT')
 
     print
     print 'Enter an RPN Expression.'
@@ -305,26 +332,38 @@ def main():
     print 'Use the = sign to evaluate and print the expression.'
     print 'For example: '
     print '    167 3 2 2 * * * 1 - ='
-    inputstr = raw_input ('> ')
+    inputstr = raw_input('> ')
     f.process_list(inputstr)
 
 if __name__ == '__main__':
     try:
         start_time = time.time()
-        parser = optparse.OptionParser(formatter=optparse.TitledHelpFormatter(), usage=globals()['__doc__'], version='$Id: FSM.py 490 2007-12-07 15:46:24Z noah $')
-        parser.add_option ('-v', '--verbose', action='store_true', default=False, help='verbose output')
+        parser = optparse.OptionParser(
+            formatter=optparse.TitledHelpFormatter(),
+            usage=globals()['__doc__'],
+            version='$Id: FSM.py 490 2007-12-07 15:46:24Z noah $')
+        parser.add_option(
+            '-v',
+            '--verbose',
+            action='store_true',
+            default=False,
+            help='verbose output')
         (options, args) = parser.parse_args()
-        if options.verbose: print time.asctime()
+        if options.verbose:
+            print time.asctime()
         main()
-        if options.verbose: print time.asctime()
-        if options.verbose: print 'TOTAL TIME IN MINUTES:',
-        if options.verbose: print (time.time() - start_time) / 60.0
+        if options.verbose:
+            print time.asctime()
+        if options.verbose:
+            print 'TOTAL TIME IN MINUTES:',
+        if options.verbose:
+            print (time.time() - start_time) / 60.0
         sys.exit(0)
-    except KeyboardInterrupt, e: # Ctrl-C
+    except KeyboardInterrupt as e:  # Ctrl-C
         raise e
-    except SystemExit, e: # sys.exit()
+    except SystemExit as e:  # sys.exit()
         raise e
-    except Exception, e:
+    except Exception as e:
         print 'ERROR, UNEXPECTED EXCEPTION'
         print str(e)
         traceback.print_exc()

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/astat.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/astat.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/astat.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/astat.py Tue Sep  6 15:57:50 2016
@@ -13,30 +13,42 @@ Example:
 
 """
 
-import os, sys, time, re, getopt, getpass
+import os
+import sys
+import time
+import re
+import getopt
+import getpass
 import traceback
-import pexpect, pxssh
+import pexpect
+import pxssh
+
 
 def exit_with_usage():
 
     print globals()['__doc__']
     os._exit(1)
 
+
 def main():
 
     ######################################################################
-    ## Parse the options, arguments, get ready, etc.
+    # Parse the options, arguments, get ready, etc.
     ######################################################################
     try:
-        optlist, args = getopt.getopt(sys.argv[1:], 'h?s:u:p:', ['help','h','?'])
-    except Exception, e:
+        optlist, args = getopt.getopt(
+            sys.argv[
+                1:], 'h?s:u:p:', [
+                'help', 'h', '?'])
+    except Exception as e:
         print str(e)
         exit_with_usage()
     options = dict(optlist)
     if len(args) > 1:
         exit_with_usage()
 
-    if [elem for elem in options if elem in ['-h','--h','-?','--?','--help']]:
+    if [elem for elem in options if elem in [
+            '-h', '--h', '-?', '--?', '--help']]:
         print "Help:"
         exit_with_usage()
 
@@ -67,8 +79,7 @@ def main():
 if __name__ == "__main__":
     try:
         main()
-    except Exception, e:
+    except Exception as e:
         print str(e)
         traceback.print_exc()
         os._exit(1)
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/bd_client.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/bd_client.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/bd_client.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/bd_client.py Tue Sep  6 15:57:50 2016
@@ -4,35 +4,37 @@
 for testing rather than normal use. See bd_serv.py """
 
 import socket
-import sys, time, select
+import sys
+import time
+import select
+
 
 def recv_wrapper(s):
-    r,w,e = select.select([s.fileno()],[],[], 2)
+    r, w, e = select.select([s.fileno()], [], [], 2)
     if not r:
         return ''
     #cols = int(s.recv(4))
     #rows = int(s.recv(4))
     cols = 80
     rows = 24
-    packet_size = cols * rows * 2 # double it for good measure
+    packet_size = cols * rows * 2  # double it for good measure
     return s.recv(packet_size)
 
-#HOST = '' #'localhost'    # The remote host
-#PORT = 1664 # The same port as used by the server
+# HOST = '' #'localhost'    # The remote host
+# PORT = 1664 # The same port as used by the server
 s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
-s.connect(sys.argv[1])#(HOST, PORT))
+s.connect(sys.argv[1])  # (HOST, PORT))
 time.sleep(1)
-#s.setblocking(0)
+# s.setblocking(0)
 #s.send('COMMAND' + '\x01' + sys.argv[1])
 s.send(':sendline ' + sys.argv[2])
 print recv_wrapper(s)
 s.close()
 sys.exit()
-#while True:
+# while True:
 #    data = recv_wrapper(s)
 #    if data == '':
 #        break
 #    sys.stdout.write (data)
 #    sys.stdout.flush()
-#s.close()
-
+# s.close()

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/bd_serv.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/bd_serv.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/bd_serv.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/bd_serv.py Tue Sep  6 15:57:50 2016
@@ -14,20 +14,30 @@ This exposes an shell terminal on a sock
 # Having the password on the command line is not a good idea, but
 # then this entire project is probably not the most security concious thing
 # I've ever built. This should be considered an experimental tool -- at best.
-import pxssh, pexpect, ANSI
-import time, sys, os, getopt, getpass, traceback, threading, socket
+import pxssh
+import pexpect
+import ANSI
+import time
+import sys
+import os
+import getopt
+import getpass
+import traceback
+import threading
+import socket
+
 
 def exit_with_usage(exit_code=1):
 
     print globals()['__doc__']
     os._exit(exit_code)
 
+
 class roller (threading.Thread):
 
     """This runs a function in a loop in a thread."""
 
     def __init__(self, interval, function, args=[], kwargs={}):
-
         """The interval parameter defines time between each call to the function.
         """
 
@@ -39,7 +49,6 @@ class roller (threading.Thread):
         self.finished = threading.Event()
 
     def cancel(self):
-
         """Stop the roller."""
 
         self.finished.set()
@@ -50,8 +59,8 @@ class roller (threading.Thread):
             # self.finished.wait(self.interval)
             self.function(*self.args, **self.kwargs)
 
-def endless_poll (child, prompt, screen, refresh_timeout=0.1):
 
+def endless_poll(child, prompt, screen, refresh_timeout=0.1):
     """This keeps the screen updated with the output of the child. This runs in
     a separate thread. See roller(). """
 
@@ -61,7 +70,7 @@ def endless_poll (child, prompt, screen,
         screen.write(s)
     except:
         pass
-    #while True:
+    # while True:
     #    #child.prompt (timeout=refresh_timeout)
     #    try:
     #        #child.read_nonblocking(1,timeout=refresh_timeout)
@@ -69,14 +78,14 @@ def endless_poll (child, prompt, screen,
     #    except:
     #        pass
 
-def daemonize (stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'):
 
+def daemonize(stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'):
     '''This forks the current process into a daemon. Almost none of this is
     necessary (or advisable) if your daemon is being started by inetd. In that
     case, stdin, stdout and stderr are all set up for you to refer to the
     network connection, and the fork()s and session manipulation should not be
     done (to avoid confusing inetd). Only the chdir() and umask() steps remain
-    as useful. 
+    as useful.
 
     References:
         UNIX Programming FAQ
@@ -94,30 +103,30 @@ def daemonize (stdin='/dev/null', stdout
     expect. '''
 
     # Do first fork.
-    try: 
-        pid = os.fork() 
+    try:
+        pid = os.fork()
         if pid > 0:
             sys.exit(0)   # Exit first parent.
-    except OSError, e: 
-        sys.stderr.write ("fork #1 failed: (%d) %s\n" % (e.errno, e.strerror) )
+    except OSError as e:
+        sys.stderr.write("fork #1 failed: (%d) %s\n" % (e.errno, e.strerror))
         sys.exit(1)
 
     # Decouple from parent environment.
-    os.chdir("/") 
-    os.umask(0) 
-    os.setsid() 
+    os.chdir("/")
+    os.umask(0)
+    os.setsid()
 
     # Do second fork.
-    try: 
-        pid = os.fork() 
+    try:
+        pid = os.fork()
         if pid > 0:
             sys.exit(0)   # Exit second parent.
-    except OSError, e: 
-        sys.stderr.write ("fork #2 failed: (%d) %s\n" % (e.errno, e.strerror) )
+    except OSError as e:
+        sys.stderr.write("fork #2 failed: (%d) %s\n" % (e.errno, e.strerror))
         sys.exit(1)
 
     # Now I am a daemon!
-    
+
     # Redirect standard file descriptors.
     si = open(stdin, 'r')
     so = open(stdout, 'a+')
@@ -129,25 +138,32 @@ def daemonize (stdin='/dev/null', stdout
     # I now return as the daemon
     return 0
 
-def add_cursor_blink (response, row, col):
 
-    i = (row-1) * 80 + col
-    return response[:i]+'<img src="http://www.noah.org/cursor.gif">'+response[i:]
+def add_cursor_blink(response, row, col):
+
+    i = (row - 1) * 80 + col
+    return response[:i] + \
+        '<img src="http://www.noah.org/cursor.gif">' + response[i:]
 
-def main ():
+
+def main():
 
     try:
-        optlist, args = getopt.getopt(sys.argv[1:], 'h?d', ['help','h','?', 'hostname=', 'username=', 'password=', 'port=', 'watch'])
-    except Exception, e:
+        optlist, args = getopt.getopt(
+            sys.argv[
+                1:], 'h?d', [
+                'help', 'h', '?', 'hostname=', 'username=', 'password=', 'port=', 'watch'])
+    except Exception as e:
         print str(e)
         exit_with_usage()
 
     command_line_options = dict(optlist)
     options = dict(optlist)
     # There are a million ways to cry for help. These are but a few of them.
-    if [elem for elem in command_line_options if elem in ['-h','--h','-?','--?','--help']]:
+    if [elem for elem in command_line_options if elem in [
+            '-h', '--h', '-?', '--?', '--help']]:
         exit_with_usage(0)
-  
+
     hostname = "127.0.0.1"
     port = 1664
     username = os.getenv('USER')
@@ -170,38 +186,39 @@ def main ():
         password = options['--password']
     else:
         password = getpass.getpass('password: ')
-   
-    if daemon_mode: 
+
+    if daemon_mode:
         print "daemonizing server"
         daemonize()
-        #daemonize('/dev/null','/tmp/daemon.log','/tmp/daemon.log')
-    
-    sys.stdout.write ('server started with pid %d\n' % os.getpid() )
+        # daemonize('/dev/null','/tmp/daemon.log','/tmp/daemon.log')
+
+    sys.stdout.write('server started with pid %d\n' % os.getpid())
 
-    virtual_screen = ANSI.ANSI (24,80) 
+    virtual_screen = ANSI.ANSI(24, 80)
     child = pxssh.pxssh()
-    child.login (hostname, username, password)
+    child.login(hostname, username, password)
     print 'created shell. command line prompt is', child.PROMPT
     #child.sendline ('stty -echo')
-    #child.setecho(False)
-    virtual_screen.write (child.before)
-    virtual_screen.write (child.after)
+    # child.setecho(False)
+    virtual_screen.write(child.before)
+    virtual_screen.write(child.after)
 
-    if os.path.exists("/tmp/mysock"): os.remove("/tmp/mysock")
+    if os.path.exists("/tmp/mysock"):
+        os.remove("/tmp/mysock")
     s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
     localhost = '127.0.0.1'
     s.bind('/tmp/mysock')
-    os.chmod('/tmp/mysock',0777)
+    os.chmod('/tmp/mysock', 0o777)
     print 'Listen'
     s.listen(1)
     print 'Accept'
     #s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     #localhost = '127.0.0.1'
     #s.bind((localhost, port))
-    #print 'Listen'
-    #s.listen(1)
+    # print 'Listen'
+    # s.listen(1)
 
-    r = roller (0.01, endless_poll, (child, child.PROMPT, virtual_screen))
+    r = roller(0.01, endless_poll, (child, child.PROMPT, virtual_screen))
     r.start()
     print "screen poll updater started in background thread"
     sys.stdout.flush()
@@ -211,12 +228,12 @@ def main ():
             conn, addr = s.accept()
             print 'Connected by', addr
             data = conn.recv(1024)
-            if data[0]!=':':
+            if data[0] != ':':
                 cmd = ':sendline'
                 arg = data.strip()
             else:
                 request = data.split(' ', 1)
-                if len(request)>1:
+                if len(request) > 1:
                     cmd = request[0].strip()
                     arg = request[1].strip()
                 else:
@@ -225,45 +242,50 @@ def main ():
                 r.cancel()
                 break
             elif cmd == ':sendline':
-                child.sendline (arg)
-                #child.prompt(timeout=2)
+                child.sendline(arg)
+                # child.prompt(timeout=2)
                 time.sleep(0.2)
                 shell_window = str(virtual_screen)
-            elif cmd == ':send' or cmd==':xsend':
-                if cmd==':xsend':
+            elif cmd == ':send' or cmd == ':xsend':
+                if cmd == ':xsend':
                     arg = arg.decode("hex")
-                child.send (arg)
+                child.send(arg)
                 time.sleep(0.2)
                 shell_window = str(virtual_screen)
             elif cmd == ':cursor':
-                shell_window = '%x%x' % (virtual_screen.cur_r, virtual_screen.cur_c)
+                shell_window = '%x%x' % (
+                    virtual_screen.cur_r, virtual_screen.cur_c)
             elif cmd == ':refresh':
                 shell_window = str(virtual_screen)
 
             response = []
-            response.append (shell_window)
+            response.append(shell_window)
             #response = add_cursor_blink (response, row, col)
             sent = conn.send('\n'.join(response))
-            if watch_mode: print '\n'.join(response)
-            if sent < len (response):
+            if watch_mode:
+                print '\n'.join(response)
+            if sent < len(response):
                 print "Sent is too short. Some data was cut off."
             conn.close()
     finally:
         r.cancel()
         print "cleaning up socket"
         s.close()
-        if os.path.exists("/tmp/mysock"): os.remove("/tmp/mysock")
+        if os.path.exists("/tmp/mysock"):
+            os.remove("/tmp/mysock")
         print "done!"
 
-def pretty_box (rows, cols, s):
 
+def pretty_box(rows, cols, s):
     """This puts an ASCII text box around the given string, s.
     """
 
-    top_bot = '+' + '-'*cols + '+\n'
-    return top_bot + '\n'.join(['|'+line+'|' for line in s.split('\n')]) + '\n' + top_bot
-    
-def error_response (msg):
+    top_bot = '+' + '-' * cols + '+\n'
+    return top_bot + \
+        '\n'.join(['|' + line + '|' for line in s.split('\n')]) + '\n' + top_bot
+
+
+def error_response(msg):
 
     response = []
     response.append ("""All commands start with :
@@ -280,11 +302,11 @@ Example:
 is equivalent to:
     :sendline ls -l
 """)
-    response.append (msg)
+    response.append(msg)
     return '\n'.join(response)
 
-def parse_host_connect_string (hcs):
 
+def parse_host_connect_string(hcs):
     """This parses a host connection string in the form
     username:password at hostname:port. All fields are options expcet hostname. A
     dictionary is returned with all four keys. Keys that were not included are
@@ -292,14 +314,16 @@ def parse_host_connect_string (hcs):
     then you must backslash escape it. """
 
     if '@' in hcs:
-        p = re.compile (r'(?P<username>[^@:]*)(:?)(?P<password>.*)(?!\\)@(?P<hostname>[^:]*):?(?P<port>[0-9]*)')
+        p = re.compile(
+            r'(?P<username>[^@:]*)(:?)(?P<password>.*)(?!\\)@(?P<hostname>[^:]*):?(?P<port>[0-9]*)')
     else:
-        p = re.compile (r'(?P<username>)(?P<password>)(?P<hostname>[^:]*):?(?P<port>[0-9]*)')
-    m = p.search (hcs)
+        p = re.compile(
+            r'(?P<username>)(?P<password>)(?P<hostname>[^:]*):?(?P<port>[0-9]*)')
+    m = p.search(hcs)
     d = m.groupdict()
-    d['password'] = d['password'].replace('\\@','@')
+    d['password'] = d['password'].replace('\\@', '@')
     return d
-     
+
 if __name__ == "__main__":
 
     try:
@@ -309,8 +333,7 @@ if __name__ == "__main__":
         print time.asctime()
         print "TOTAL TIME IN MINUTES:",
         print (time.time() - start_time) / 60.0
-    except Exception, e:
+    except Exception as e:
         print str(e)
         tb_dump = traceback.format_exc()
         print str(tb_dump)
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess.py Tue Sep  6 15:57:50 2016
@@ -11,121 +11,122 @@ import ANSI
 REGEX_MOVE = '(?:[a-z]|\x1b\[C)(?:[0-9]|\x1b\[C)(?:[a-z]|\x1b\[C)(?:[0-9]|\x1b\[C)'
 REGEX_MOVE_PART = '(?:[0-9]|\x1b\[C)(?:[a-z]|\x1b\[C)(?:[0-9]|\x1b\[C)'
 
+
 class Chess:
 
-	def __init__(self, engine = "/usr/local/bin/gnuchess -a -h 1"):
-		self.child = pexpect.spawn (engine)
-                self.term = ANSI.ANSI ()
-             
-		self.child.expect ('Chess')
-		if self.child.after != 'Chess':
-			raise IOError, 'incompatible chess program'
-                self.term.process_list (self.before)
-                self.term.process_list (self.after)
-		self.last_computer_move = ''
-        def read_until_cursor (self, r,c)
-            while 1:
-                self.child.read(1, 60)
-                self.term.process (c)
-                if self.term.cur_r == r and self.term.cur_c == c:
-                    return 1
-
-	def do_first_move (self, move):
-		self.child.expect ('Your move is')
-		self.child.sendline (move)
-                self.term.process_list (self.before)
-                self.term.process_list (self.after)
-		return move
-
-	def do_move (self, move):
-                read_until_cursor (19,60)
-		#self.child.expect ('\[19;60H')
-		self.child.sendline (move)
-		print 'do_move' move
-		return move
-
-	def get_first_computer_move (self):
-		self.child.expect ('My move is')
-		self.child.expect (REGEX_MOVE)
+    def __init__(self, engine="/usr/local/bin/gnuchess -a -h 1"):
+        self.child = pexpect.spawn(engine)
+        self.term = ANSI.ANSI()
+
+        self.child.expect('Chess')
+        if self.child.after != 'Chess':
+            raise IOError, 'incompatible chess program'
+        self.term.process_list(self.before)
+        self.term.process_list(self.after)
+        self.last_computer_move = ''
+
+    def read_until_cursor(self, r, c)
+        while 1:
+            self.child.read(1, 60)
+            self.term.process(c)
+            if self.term.cur_r == r and self.term.cur_c == c:
+                return 1
+
+    def do_first_move(self, move):
+        self.child.expect('Your move is')
+        self.child.sendline(move)
+        self.term.process_list(self.before)
+        self.term.process_list(self.after)
+        return move
+
+    def do_move(self, move):
+        read_until_cursor(19, 60)
+        #self.child.expect ('\[19;60H')
+        self.child.sendline(move)
+        print 'do_move' move
+        return move
+
+    def get_first_computer_move(self):
+        self.child.expect('My move is')
+        self.child.expect(REGEX_MOVE)
 #		print '', self.child.after
-		return self.child.after
-	
-	def get_computer_move (self):
-		print 'Here'
-		i = self.child.expect (['\[17;59H', '\[17;58H'])
-		print i
-		if i == 0:
-			self.child.expect (REGEX_MOVE)
-			if len(self.child.after) < 4:
-				self.child.after = self.child.after + self.last_computer_move[3]
-		if i == 1:
-			self.child.expect (REGEX_MOVE_PART)
-			self.child.after = self.last_computer_move[0] + self.child.after
-		print '', self.child.after
-		self.last_computer_move = self.child.after
-		return self.child.after
-
-	def switch (self):
-		self.child.sendline ('switch')
-
-	def set_depth (self, depth):
-		self.child.sendline ('depth')
-		self.child.expect ('depth=')
-		self.child.sendline ('%d' % depth)
-
-	def quit(self):
-		self.child.sendline ('quit')
-import sys, os
+        return self.child.after
+
+    def get_computer_move(self):
+        print 'Here'
+        i = self.child.expect(['\[17;59H', '\[17;58H'])
+        print i
+        if i == 0:
+            self.child.expect(REGEX_MOVE)
+            if len(self.child.after) < 4:
+                self.child.after = self.child.after + \
+                    self.last_computer_move[3]
+        if i == 1:
+            self.child.expect(REGEX_MOVE_PART)
+            self.child.after = self.last_computer_move[0] + self.child.after
+        print '', self.child.after
+        self.last_computer_move = self.child.after
+        return self.child.after
+
+    def switch(self):
+        self.child.sendline('switch')
+
+    def set_depth(self, depth):
+        self.child.sendline('depth')
+        self.child.expect('depth=')
+        self.child.sendline('%d' % depth)
+
+    def quit(self):
+        self.child.sendline('quit')
+import sys
+import os
 print 'Starting...'
 white = Chess()
 white.child.echo = 1
-white.child.expect ('Your move is')
+white.child.expect('Your move is')
 white.set_depth(2)
 white.switch()
 
 move_white = white.get_first_computer_move()
 print 'first move white:', move_white
 
-white.do_move ('e7e5')
+white.do_move('e7e5')
 move_white = white.get_computer_move()
 print 'move white:', move_white
-white.do_move ('f8c5')
+white.do_move('f8c5')
 move_white = white.get_computer_move()
 print 'move white:', move_white
-white.do_move ('b8a6')
+white.do_move('b8a6')
 move_white = white.get_computer_move()
 print 'move white:', move_white
 
 sys.exit(1)
 
 
-
 black = Chess()
 white = Chess()
-white.child.expect ('Your move is')
+white.child.expect('Your move is')
 white.switch()
 
 move_white = white.get_first_computer_move()
 print 'first move white:', move_white
 
-black.do_first_move (move_white)
+black.do_first_move(move_white)
 move_black = black.get_first_computer_move()
 print 'first move black:', move_black
 
-white.do_move (move_black)
+white.do_move(move_black)
 
 done = 0
 while not done:
     move_white = white.get_computer_move()
     print 'move white:', move_white
 
-    black.do_move (move_white)
+    black.do_move(move_white)
     move_black = black.get_computer_move()
     print 'move black:', move_black
-   
-    white.do_move (move_black)
+
+    white.do_move(move_black)
     print 'tail of loop'
 
 g.quit()
-
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess2.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess2.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess2.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess2.py Tue Sep  6 15:57:50 2016
@@ -7,125 +7,129 @@ It starts two instances of gnuchess and
 import pexpect
 import string
 import ANSI
-import sys, os, time
+import sys
+import os
+import time
+
 
 class Chess:
 
-        def __init__(self, engine = "/usr/local/bin/gnuchess -a -h 1"):
-                self.child = pexpect.spawn (engine)
-                self.term = ANSI.ANSI ()
-             
-                #self.child.expect ('Chess')
-                #if self.child.after != 'Chess':
-                #        raise IOError, 'incompatible chess program'
-                #self.term.process_list (self.child.before)
-                #self.term.process_list (self.child.after)
-
-                self.last_computer_move = ''
-
-        def read_until_cursor (self, r,c, e=0):
-            '''Eventually something like this should move into the screen class or
-            a subclass. Maybe a combination of pexpect and screen...
-            '''
-            fout = open ('log','a')
-            while self.term.cur_r != r or self.term.cur_c != c:
-                try:
-                    k = self.child.read(1, 10)
-                except Exception, e:
-                    print 'EXCEPTION, (r,c):(%d,%d)\n' %(self.term.cur_r, self.term.cur_c)
-                    sys.stdout.flush()
-                self.term.process (k)
-                fout.write ('(r,c):(%d,%d)\n' %(self.term.cur_r, self.term.cur_c))
-                fout.flush()
-                if e:
-                    sys.stdout.write (k)
-                    sys.stdout.flush()
-                if self.term.cur_r == r and self.term.cur_c == c:
-                    fout.close()
-                    return 1
-            print 'DIDNT EVEN HIT.'
-            fout.close()
-            return 1
-
-        def expect_region (self):
-            '''This is another method that would be moved into the
-            screen class.
-            '''
-            pass
-        def do_scan (self):
-            fout = open ('log','a')
-            while 1:
-                c = self.child.read(1,10)
-                self.term.process (c)
-                fout.write ('(r,c):(%d,%d)\n' %(self.term.cur_r, self.term.cur_c))
-                fout.flush()
-                sys.stdout.write (c)
+    def __init__(self, engine="/usr/local/bin/gnuchess -a -h 1"):
+        self.child = pexpect.spawn(engine)
+        self.term = ANSI.ANSI()
+
+        #self.child.expect ('Chess')
+        # if self.child.after != 'Chess':
+        #        raise IOError, 'incompatible chess program'
+        #self.term.process_list (self.child.before)
+        #self.term.process_list (self.child.after)
+
+        self.last_computer_move = ''
+
+    def read_until_cursor(self, r, c, e=0):
+        '''Eventually something like this should move into the screen class or
+        a subclass. Maybe a combination of pexpect and screen...
+        '''
+        fout = open('log', 'a')
+        while self.term.cur_r != r or self.term.cur_c != c:
+            try:
+                k = self.child.read(1, 10)
+            except Exception as e:
+                print 'EXCEPTION, (r,c):(%d,%d)\n' % (self.term.cur_r, self.term.cur_c)
+                sys.stdout.flush()
+            self.term.process(k)
+            fout.write('(r,c):(%d,%d)\n' % (self.term.cur_r, self.term.cur_c))
+            fout.flush()
+            if e:
+                sys.stdout.write(k)
                 sys.stdout.flush()
+            if self.term.cur_r == r and self.term.cur_c == c:
+                fout.close()
+                return 1
+        print 'DIDNT EVEN HIT.'
+        fout.close()
+        return 1
+
+    def expect_region(self):
+        '''This is another method that would be moved into the
+        screen class.
+        '''
+        pass
+
+    def do_scan(self):
+        fout = open('log', 'a')
+        while True:
+            c = self.child.read(1, 10)
+            self.term.process(c)
+            fout.write('(r,c):(%d,%d)\n' % (self.term.cur_r, self.term.cur_c))
+            fout.flush()
+            sys.stdout.write(c)
+            sys.stdout.flush()
+
+    def do_move(self, move, e=0):
+        time.sleep(1)
+        self.read_until_cursor(19, 60, e)
+        self.child.sendline(move)
+
+    def wait(self, color):
+        while True:
+            r = self.term.get_region(14, 50, 14, 60)[0]
+            r = r.strip()
+            if r == color:
+                return
+            time.sleep(1)
+
+    def parse_computer_move(self, s):
+        i = s.find('is: ')
+        cm = s[i + 3:i + 9]
+        return cm
+
+    def get_computer_move(self, e=0):
+        time.sleep(1)
+        self.read_until_cursor(19, 60, e)
+        time.sleep(1)
+        r = self.term.get_region(17, 50, 17, 62)[0]
+        cm = self.parse_computer_move(r)
+        return cm
+
+    def switch(self):
+        print 'switching'
+        self.child.sendline('switch')
+
+    def set_depth(self, depth):
+        self.child.sendline('depth')
+        self.child.expect('depth=')
+        self.child.sendline('%d' % depth)
 
-        def do_move (self, move, e = 0):
-                time.sleep(1)
-                self.read_until_cursor (19,60, e)
-                self.child.sendline (move)
-
-        def wait (self, color):
-            while 1:
-                r = self.term.get_region (14,50,14,60)[0]
-                r = r.strip()
-                if r == color:
-                    return
-                time.sleep (1)
-
-        def parse_computer_move (self, s):
-                i = s.find ('is: ')
-                cm = s[i+3:i+9]        
-                return cm
-        def get_computer_move (self, e = 0):
-                time.sleep(1)
-                self.read_until_cursor (19,60, e)
-                time.sleep(1)
-                r = self.term.get_region (17,50,17,62)[0]
-                cm = self.parse_computer_move (r)
-                return cm
-
-        def switch (self):
-                print 'switching'
-                self.child.sendline ('switch')
-
-        def set_depth (self, depth):
-                self.child.sendline ('depth')
-                self.child.expect ('depth=')
-                self.child.sendline ('%d' % depth)
+    def quit(self):
+        self.child.sendline('quit')
 
-        def quit(self):
-                self.child.sendline ('quit')
 
-def LOG (s):
+def LOG(s):
     print s
-    sys.stdout.flush ()
-    fout = open ('moves.log', 'a')
-    fout.write (s + '\n')
+    sys.stdout.flush()
+    fout = open('moves.log', 'a')
+    fout.write(s + '\n')
     fout.close()
 
 print 'Starting...'
 
 black = Chess()
 white = Chess()
-white.read_until_cursor (19,60,1)
+white.read_until_cursor(19, 60, 1)
 white.switch()
 
 done = 0
 while not done:
-    white.wait ('Black')
+    white.wait('Black')
     move_white = white.get_computer_move(1)
-    LOG ( 'move white:'+ move_white )
+    LOG('move white:' + move_white)
 
-    black.do_move (move_white)
-    black.wait ('White')
+    black.do_move(move_white)
+    black.wait('White')
     move_black = black.get_computer_move()
-    LOG ( 'move black:'+ move_black )
-   
-    white.do_move (move_black, 1)
-
-g.quit()
+    LOG('move black:' + move_black)
 
+    white.do_move(move_black, 1)
 
+g.quit()

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess3.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess3.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess3.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/chess3.py Tue Sep  6 15:57:50 2016
@@ -11,128 +11,129 @@ import ANSI
 REGEX_MOVE = '(?:[a-z]|\x1b\[C)(?:[0-9]|\x1b\[C)(?:[a-z]|\x1b\[C)(?:[0-9]|\x1b\[C)'
 REGEX_MOVE_PART = '(?:[0-9]|\x1b\[C)(?:[a-z]|\x1b\[C)(?:[0-9]|\x1b\[C)'
 
+
 class Chess:
 
-	def __init__(self, engine = "/usr/local/bin/gnuchess -a -h 1"):
-		self.child = pexpect.spawn (engine)
-                self.term = ANSI.ANSI ()
-             
+    def __init__(self, engine="/usr/local/bin/gnuchess -a -h 1"):
+        self.child = pexpect.spawn(engine)
+        self.term = ANSI.ANSI()
+
 #		self.child.expect ('Chess')
-	#	if self.child.after != 'Chess':
-	#		raise IOError, 'incompatible chess program'
-        #        self.term.process_list (self.before)
-        #        self.term.process_list (self.after)
-		self.last_computer_move = ''
-        def read_until_cursor (self, r,c):
-            fout = open ('log','a')
-            while 1:
-                k = self.child.read(1, 10)
-                self.term.process (k)
-                fout.write ('(r,c):(%d,%d)\n' %(self.term.cur_r, self.term.cur_c))
-                fout.flush()
-                if self.term.cur_r == r and self.term.cur_c == c:
-                    fout.close()
-                    return 1
-                sys.stdout.write (k)
-                sys.stdout.flush()
-
-	def do_scan (self):
-            fout = open ('log','a')
-            while 1:
-                c = self.child.read(1,10)
-                self.term.process (c)
-                fout.write ('(r,c):(%d,%d)\n' %(self.term.cur_r, self.term.cur_c))
-                fout.flush()
-                sys.stdout.write (c)
-                sys.stdout.flush()
-
-	def do_move (self, move):
-                self.read_until_cursor (19,60)
-		self.child.sendline (move)
-		return move
-	
-	def get_computer_move (self):
-		print 'Here'
-		i = self.child.expect (['\[17;59H', '\[17;58H'])
-		print i
-		if i == 0:
-			self.child.expect (REGEX_MOVE)
-			if len(self.child.after) < 4:
-				self.child.after = self.child.after + self.last_computer_move[3]
-		if i == 1:
-			self.child.expect (REGEX_MOVE_PART)
-			self.child.after = self.last_computer_move[0] + self.child.after
-		print '', self.child.after
-		self.last_computer_move = self.child.after
-		return self.child.after
-
-	def switch (self):
-		self.child.sendline ('switch')
-
-	def set_depth (self, depth):
-		self.child.sendline ('depth')
-		self.child.expect ('depth=')
-		self.child.sendline ('%d' % depth)
-
-	def quit(self):
-		self.child.sendline ('quit')
-import sys, os
+    #	if self.child.after != 'Chess':
+    #		raise IOError, 'incompatible chess program'
+    #        self.term.process_list (self.before)
+    #        self.term.process_list (self.after)
+        self.last_computer_move = ''
+
+    def read_until_cursor(self, r, c):
+        fout = open('log', 'a')
+        while True:
+            k = self.child.read(1, 10)
+            self.term.process(k)
+            fout.write('(r,c):(%d,%d)\n' % (self.term.cur_r, self.term.cur_c))
+            fout.flush()
+            if self.term.cur_r == r and self.term.cur_c == c:
+                fout.close()
+                return 1
+            sys.stdout.write(k)
+            sys.stdout.flush()
+
+    def do_scan(self):
+        fout = open('log', 'a')
+        while True:
+            c = self.child.read(1, 10)
+            self.term.process(c)
+            fout.write('(r,c):(%d,%d)\n' % (self.term.cur_r, self.term.cur_c))
+            fout.flush()
+            sys.stdout.write(c)
+            sys.stdout.flush()
+
+    def do_move(self, move):
+        self.read_until_cursor(19, 60)
+        self.child.sendline(move)
+        return move
+
+    def get_computer_move(self):
+        print 'Here'
+        i = self.child.expect(['\[17;59H', '\[17;58H'])
+        print i
+        if i == 0:
+            self.child.expect(REGEX_MOVE)
+            if len(self.child.after) < 4:
+                self.child.after = self.child.after + \
+                    self.last_computer_move[3]
+        if i == 1:
+            self.child.expect(REGEX_MOVE_PART)
+            self.child.after = self.last_computer_move[0] + self.child.after
+        print '', self.child.after
+        self.last_computer_move = self.child.after
+        return self.child.after
+
+    def switch(self):
+        self.child.sendline('switch')
+
+    def set_depth(self, depth):
+        self.child.sendline('depth')
+        self.child.expect('depth=')
+        self.child.sendline('%d' % depth)
+
+    def quit(self):
+        self.child.sendline('quit')
+import sys
+import os
 print 'Starting...'
 white = Chess()
 white.do_move('b2b4')
-white.read_until_cursor (19,60)
-c1 = white.term.get_abs(17,58)
-c2 = white.term.get_abs(17,59)
-c3 = white.term.get_abs(17,60)
-c4 = white.term.get_abs(17,61)
-fout = open ('log','a')
-fout.write ('Computer:%s%s%s%s\n' %(c1,c2,c3,c4))
+white.read_until_cursor(19, 60)
+c1 = white.term.get_abs(17, 58)
+c2 = white.term.get_abs(17, 59)
+c3 = white.term.get_abs(17, 60)
+c4 = white.term.get_abs(17, 61)
+fout = open('log', 'a')
+fout.write('Computer:%s%s%s%s\n' % (c1, c2, c3, c4))
 fout.close()
 white.do_move('c2c4')
-white.read_until_cursor (19,60)
-c1 = white.term.get_abs(17,58)
-c2 = white.term.get_abs(17,59)
-c3 = white.term.get_abs(17,60)
-c4 = white.term.get_abs(17,61)
-fout = open ('log','a')
-fout.write ('Computer:%s%s%s%s\n' %(c1,c2,c3,c4))
+white.read_until_cursor(19, 60)
+c1 = white.term.get_abs(17, 58)
+c2 = white.term.get_abs(17, 59)
+c3 = white.term.get_abs(17, 60)
+c4 = white.term.get_abs(17, 61)
+fout = open('log', 'a')
+fout.write('Computer:%s%s%s%s\n' % (c1, c2, c3, c4))
 fout.close()
-white.do_scan ()
+white.do_scan()
 
 #white.do_move ('b8a6')
 #move_white = white.get_computer_move()
-#print 'move white:', move_white
+# print 'move white:', move_white
 
 sys.exit(1)
 
 
-
 black = Chess()
 white = Chess()
-white.child.expect ('Your move is')
+white.child.expect('Your move is')
 white.switch()
 
 move_white = white.get_first_computer_move()
 print 'first move white:', move_white
 
-black.do_first_move (move_white)
+black.do_first_move(move_white)
 move_black = black.get_first_computer_move()
 print 'first move black:', move_black
 
-white.do_move (move_black)
+white.do_move(move_black)
 
 done = 0
 while not done:
     move_white = white.get_computer_move()
     print 'move white:', move_white
 
-    black.do_move (move_white)
+    black.do_move(move_white)
     move_black = black.get_computer_move()
     print 'move black:', move_black
-   
-    white.do_move (move_black)
+
+    white.do_move(move_black)
     print 'tail of loop'
 
 g.quit()
-
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/df.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/df.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/df.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/df.py Tue Sep  6 15:57:50 2016
@@ -9,15 +9,15 @@ Apple OSX. """
 
 import pexpect
 
-child = pexpect.spawn ('df')
+child = pexpect.spawn('df')
 
 # parse 'df' output into a list.
 pattern = "\n(\S+).*?([0-9]+)%"
 filesystem_list = []
-for dummy in range (0, 1000):
-    i = child.expect ([pattern, pexpect.EOF])
+for dummy in range(0, 1000):
+    i = child.expect([pattern, pexpect.EOF])
     if i == 0:
-        filesystem_list.append (child.match.groups())
+        filesystem_list.append(child.match.groups())
     else:
         break
 
@@ -31,4 +31,3 @@ for m in filesystem_list:
     else:
         s = '  ' + s
     print s
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/fix_cvs_files.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/fix_cvs_files.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/fix_cvs_files.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/fix_cvs_files.py Tue Sep  6 15:57:50 2016
@@ -17,79 +17,82 @@ Noah Spurrier
 20030426
 """
 
-import os, sys, time
+import os
+import sys
+import time
 import pexpect
 
 VERBOSE = 1
 
-def is_binary (filename):
 
+def is_binary(filename):
     """Assume that any file with a character where the 8th bit is set is
     binary. """
 
-	fin = open(filename, 'rb')
-	wholething = fin.read()
-	fin.close()
-	for c in wholething:
-		if ord(c) & 0x80:
-			return 1
-	return 0
+        fin = open(filename, 'rb')
+        wholething = fin.read()
+        fin.close()
+        for c in wholething:
+            if ord(c) & 0x80:
+                return 1
+        return 0
 
-def is_kb_sticky (filename):
 
+def is_kb_sticky(filename):
     """This checks if 'cvs status' reports '-kb' for Sticky options. If the
     Sticky Option status is '-ks' then this returns 1. If the status is
     'Unknown' then it returns 1. Otherwise 0 is returned. """
 
-	try:
-		s = pexpect.spawn ('cvs status %s' % filename)
-		i = s.expect (['Sticky Options:\s*(.*)\r\n',  'Status: Unknown'])
-		if i==1 and VERBOSE:
-			print 'File not part of CVS repository:', filename
-			return 1 # Pretend it's OK.
-		if s.match.group(1) == '-kb':
-			return 1
-		s = None
-	except:
-		print 'Something went wrong trying to run external cvs command.'
-		print '    cvs status %s' % filename
-		print 'The cvs command returned:'
-		print s.before
-	return 0
+        try:
+            s = pexpect.spawn('cvs status %s' % filename)
+            i = s.expect(['Sticky Options:\s*(.*)\r\n', 'Status: Unknown'])
+            if i == 1 and VERBOSE:
+                print 'File not part of CVS repository:', filename
+                return 1  # Pretend it's OK.
+            if s.match.group(1) == '-kb':
+                return 1
+            s = None
+        except:
+            print 'Something went wrong trying to run external cvs command.'
+            print '    cvs status %s' % filename
+            print 'The cvs command returned:'
+            print s.before
+        return 0
 
-def cvs_admin_kb (filename):
 
+def cvs_admin_kb(filename):
     """This uses 'cvs admin' to set the '-kb' sticky option. """
 
-	s = pexpect.run ('cvs admin -kb %s' % filename)
-	# There is a timing issue. If I run 'cvs admin' too quickly
-	# cvs sometimes has trouble obtaining the directory lock.
-	time.sleep(1)
-	
-def walk_and_clean_cvs_binaries (arg, dirname, names):
+        s = pexpect.run('cvs admin -kb %s' % filename)
+        # There is a timing issue. If I run 'cvs admin' too quickly
+        # cvs sometimes has trouble obtaining the directory lock.
+        time.sleep(1)
 
+
+def walk_and_clean_cvs_binaries(arg, dirname, names):
     """This contains the logic for processing files. This is the os.path.walk
     callback. This skips dirnames that end in CVS. """
 
-	if len(dirname)>3 and dirname[-3:]=='CVS':
-		return
-	for n in names:
-		fullpath = os.path.join (dirname, n)
-		if os.path.isdir(fullpath) or os.path.islink(fullpath):
-			continue
-		if is_binary(fullpath):
-			if not is_kb_sticky (fullpath):
-				if VERBOSE: print fullpath
-				cvs_admin_kb (fullpath)
-
-def main ():
-
-	if len(sys.argv) == 1:
-		root = '.'
-	else:
-		root = sys.argv[1]
-	os.path.walk (root, walk_and_clean_cvs_binaries, None)
+        if len(dirname) > 3 and dirname[-3:] == 'CVS':
+            return
+        for n in names:
+            fullpath = os.path.join(dirname, n)
+            if os.path.isdir(fullpath) or os.path.islink(fullpath):
+                continue
+            if is_binary(fullpath):
+                if not is_kb_sticky(fullpath):
+                    if VERBOSE:
+                        print fullpath
+                    cvs_admin_kb(fullpath)
+
+
+def main():
+
+    if len(sys.argv) == 1:
+        root = '.'
+    else:
+        root = sys.argv[1]
+    os.path.walk(root, walk_and_clean_cvs_binaries, None)
 
 if __name__ == '__main__':
-	main ()
-
+    main()

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ftp.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ftp.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ftp.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ftp.py Tue Sep  6 15:57:50 2016
@@ -24,9 +24,9 @@ child.expect('ftp> ')
 child.sendline('pwd')
 child.expect('ftp> ')
 print("Escape character is '^]'.\n")
-sys.stdout.write (child.after)
+sys.stdout.write(child.after)
 sys.stdout.flush()
-child.interact() # Escape character defaults to ^]
+child.interact()  # Escape character defaults to ^]
 # At this point this script blocks until the user presses the escape character
 # or until the child exits. The human user and the child should be talking
 # to each other now.
@@ -35,13 +35,13 @@ child.interact() # Escape character defa
 print 'Left interactve mode.'
 
 # The rest is not strictly necessary. This just demonstrates a few functions.
-# This makes sure the child is dead; although it would be killed when Python exits.
+# This makes sure the child is dead; although it would be killed when
+# Python exits.
 if child.isalive():
-    child.sendline('bye') # Try to ask ftp child to exit.
+    child.sendline('bye')  # Try to ask ftp child to exit.
     child.close()
 # Print the final state of the child. Normally isalive() should be FALSE.
 if child.isalive():
     print 'Child did not exit gracefully.'
 else:
     print 'Child exited gracefully.'
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/hive.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/hive.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/hive.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/hive.py Tue Sep  6 15:57:50 2016
@@ -12,7 +12,7 @@ Example:
 
     $ hive.py --sameuser --samepass host1.example.com host2.example.net
     username: myusername
-    password: 
+    password:
     connecting to host1.example.com - OK
     connecting to host2.example.net - OK
     targetting hosts: 192.168.1.104 192.168.1.107
@@ -66,18 +66,27 @@ $Id: hive.py 509 2008-01-05 21:27:47Z no
 # TODO add feature to support username:password at host combination
 # TODO add feature to log each host output in separate file
 
-import sys, os, re, optparse, traceback, types, time, getpass
-import pexpect, pxssh
-import readline, atexit
+import sys
+import os
+import re
+import optparse
+import traceback
+import types
+import time
+import getpass
+import pexpect
+import pxssh
+import readline
+import atexit
 
 #histfile = os.path.join(os.environ["HOME"], ".hive_history")
-#try:
+# try:
 #    readline.read_history_file(histfile)
-#except IOError:
+# except IOError:
 #    pass
 #atexit.register(readline.write_history_file, histfile)
 
-CMD_HELP="""Hive commands are preceded by a colon : (just think of vi).
+CMD_HELP = """Hive commands are preceded by a colon : (just think of vi).
 
 :target name1 name2 name3 ...
 
@@ -85,7 +94,7 @@ CMD_HELP="""Hive commands are preceded b
 
 :target all
 
-    reset list of hosts to target all hosts in the hive. 
+    reset list of hosts to target all hosts in the hive.
 
 :to name command
 
@@ -146,21 +155,23 @@ CMD_HELP="""Hive commands are preceded b
 
 """
 
-def login (args, cli_username=None, cli_password=None):
+
+def login(args, cli_username=None, cli_password=None):
 
     # I have to keep a separate list of host names because Python dicts are not ordered.
     # I want to keep the same order as in the args list.
     host_names = []
     hive_connect_info = {}
     hive = {}
-    # build up the list of connection information (hostname, username, password, port)
+    # build up the list of connection information (hostname, username,
+    # password, port)
     for host_connect_string in args:
-        hcd = parse_host_connect_string (host_connect_string)
+        hcd = parse_host_connect_string(host_connect_string)
         hostname = hcd['hostname']
-        port     = hcd['port']
+        port = hcd['port']
         if port == '':
             port = None
-        if len(hcd['username']) > 0: 
+        if len(hcd['username']) > 0:
             username = hcd['username']
         elif cli_username is not None:
             username = cli_username
@@ -178,20 +189,21 @@ def login (args, cli_username=None, cli_
     for hostname in host_names:
         print 'connecting to', hostname
         try:
-            fout = file("log_"+hostname, "w")
+            fout = file("log_" + hostname, "w")
             hive[hostname] = pxssh.pxssh()
             hive[hostname].login(*hive_connect_info[hostname])
             print hive[hostname].before
             hive[hostname].logfile = fout
             print '- OK'
-        except Exception, e:
+        except Exception as e:
             print '- ERROR',
             print str(e)
             print 'Skipping', hostname
             hive[hostname] = None
     return host_names, hive
 
-def main ():
+
+def main():
 
     global options, args, CMD_HELP
 
@@ -204,7 +216,7 @@ def main ():
         cli_password = getpass.getpass('password: ')
     else:
         cli_password = None
-   
+
     host_names, hive = login(args, cli_username, cli_password)
 
     synchronous_mode = True
@@ -213,11 +225,11 @@ def main ():
     while True:
         cmd = raw_input('CMD (? for help) > ')
         cmd = cmd.strip()
-        if cmd=='?' or cmd==':help' or cmd==':h':
+        if cmd == '?' or cmd == ':help' or cmd == ':h':
             print CMD_HELP
             continue
-        elif cmd==':refresh':
-            refresh (hive, target_hostnames, timeout=0.5)
+        elif cmd == ':refresh':
+            refresh(hive, target_hostnames, timeout=0.5)
             for hostname in target_hostnames:
                 if hive[hostname] is None:
                     print '/============================================================================='
@@ -230,8 +242,8 @@ def main ():
                     print hive[hostname].before
             print '=============================================================================='
             continue
-        elif cmd==':resync':
-            resync (hive, target_hostnames, timeout=0.5)
+        elif cmd == ':resync':
+            resync(hive, target_hostnames, timeout=0.5)
             for hostname in target_hostnames:
                 if hive[hostname] is None:
                     print '/============================================================================='
@@ -244,62 +256,62 @@ def main ():
                     print hive[hostname].before
             print '=============================================================================='
             continue
-        elif cmd==':sync':
+        elif cmd == ':sync':
             synchronous_mode = True
-            resync (hive, target_hostnames, timeout=0.5)
+            resync(hive, target_hostnames, timeout=0.5)
             continue
-        elif cmd==':async':
+        elif cmd == ':async':
             synchronous_mode = False
             continue
-        elif cmd==':prompt':
+        elif cmd == ':prompt':
             for hostname in target_hostnames:
                 try:
                     if hive[hostname] is not None:
                         hive[hostname].set_unique_prompt()
-                except Exception, e:
+                except Exception as e:
                     print "Had trouble communicating with %s, so removing it from the target list." % hostname
                     print str(e)
                     hive[hostname] = None
             continue
         elif cmd[:5] == ':send':
-            cmd, txt = cmd.split(None,1)
+            cmd, txt = cmd.split(None, 1)
             for hostname in target_hostnames:
                 try:
                     if hive[hostname] is not None:
                         hive[hostname].send(txt)
-                except Exception, e:
+                except Exception as e:
                     print "Had trouble communicating with %s, so removing it from the target list." % hostname
                     print str(e)
                     hive[hostname] = None
             continue
         elif cmd[:3] == ':to':
-            cmd, hostname, txt = cmd.split(None,2)
+            cmd, hostname, txt = cmd.split(None, 2)
             if hive[hostname] is None:
                 print '/============================================================================='
                 print '| ' + hostname + ' is DEAD'
                 print '\\-----------------------------------------------------------------------------'
                 continue
             try:
-                hive[hostname].sendline (txt)
+                hive[hostname].sendline(txt)
                 hive[hostname].prompt(timeout=2)
                 print '/============================================================================='
                 print '| ' + hostname
                 print '\\-----------------------------------------------------------------------------'
                 print hive[hostname].before
-            except Exception, e:
+            except Exception as e:
                 print "Had trouble communicating with %s, so removing it from the target list." % hostname
                 print str(e)
                 hive[hostname] = None
             continue
         elif cmd[:7] == ':expect':
-            cmd, pattern = cmd.split(None,1)
+            cmd, pattern = cmd.split(None, 1)
             print 'looking for', pattern
             try:
                 for hostname in target_hostnames:
                     if hive[hostname] is not None:
                         hive[hostname].expect(pattern)
                         print hive[hostname].before
-            except Exception, e:
+            except Exception as e:
                 print "Had trouble communicating with %s, so removing it from the target list." % hostname
                 print str(e)
                 hive[hostname] = None
@@ -312,9 +324,9 @@ def main ():
             continue
         elif cmd == ':exit' or cmd == ':q' or cmd == ':quit':
             break
-        elif cmd[:8] == ':control' or cmd[:5] == ':ctrl' :
-            cmd, c = cmd.split(None,1)
-            if ord(c)-96 < 0 or ord(c)-96 > 255:
+        elif cmd[:8] == ':control' or cmd[:5] == ':ctrl':
+            cmd, c = cmd.split(None, 1)
+            if ord(c) - 96 < 0 or ord(c) - 96 > 255:
                 print '/============================================================================='
                 print '| Invalid character. Must be [a-zA-Z], @, [, ], \\, ^, _, or ?'
                 print '\\-----------------------------------------------------------------------------'
@@ -323,7 +335,7 @@ def main ():
                 try:
                     if hive[hostname] is not None:
                         hive[hostname].sendcontrol(c)
-                except Exception, e:
+                except Exception as e:
                     print "Had trouble communicating with %s, so removing it from the target list." % hostname
                     print str(e)
                     hive[hostname] = None
@@ -339,8 +351,8 @@ def main ():
         for hostname in target_hostnames:
             try:
                 if hive[hostname] is not None:
-                    hive[hostname].sendline (cmd)
-            except Exception, e:
+                    hive[hostname].sendline(cmd)
+            except Exception as e:
                 print "Had trouble communicating with %s, so removing it from the target list." % hostname
                 print str(e)
                 hive[hostname] = None
@@ -361,23 +373,23 @@ def main ():
                         print '| ' + hostname
                         print '\\-----------------------------------------------------------------------------'
                         print hive[hostname].before
-                except Exception, e:
+                except Exception as e:
                     print "Had trouble communicating with %s, so removing it from the target list." % hostname
                     print str(e)
                     hive[hostname] = None
             print '=============================================================================='
-    
-def refresh (hive, hive_names, timeout=0.5):
 
+
+def refresh(hive, hive_names, timeout=0.5):
     """This waits for the TIMEOUT on each host.
     """
 
     # TODO This is ideal for threading.
     for hostname in hive_names:
-        hive[hostname].expect([pexpect.TIMEOUT,pexpect.EOF],timeout=timeout)
+        hive[hostname].expect([pexpect.TIMEOUT, pexpect.EOF], timeout=timeout)
 
-def resync (hive, hive_names, timeout=2, max_attempts=5):
 
+def resync(hive, hive_names, timeout=2, max_attempts=5):
     """This waits for the shell prompt for each host in an effort to try to get
     them all to the same state. The timeout is set low so that hosts that are
     already at the prompt will not slow things down too much. If a prompt match
@@ -393,8 +405,8 @@ def resync (hive, hive_names, timeout=2,
             if not hive[hostname].prompt(timeout=timeout):
                 break
 
-def parse_host_connect_string (hcs):
 
+def parse_host_connect_string(hcs):
     """This parses a host connection string in the form
     username:password at hostname:port. All fields are options expcet hostname. A
     dictionary is returned with all four keys. Keys that were not included are
@@ -402,35 +414,58 @@ def parse_host_connect_string (hcs):
     then you must backslash escape it. """
 
     if '@' in hcs:
-        p = re.compile (r'(?P<username>[^@:]*)(:?)(?P<password>.*)(?!\\)@(?P<hostname>[^:]*):?(?P<port>[0-9]*)')
+        p = re.compile(
+            r'(?P<username>[^@:]*)(:?)(?P<password>.*)(?!\\)@(?P<hostname>[^:]*):?(?P<port>[0-9]*)')
     else:
-        p = re.compile (r'(?P<username>)(?P<password>)(?P<hostname>[^:]*):?(?P<port>[0-9]*)')
-    m = p.search (hcs)
+        p = re.compile(
+            r'(?P<username>)(?P<password>)(?P<hostname>[^:]*):?(?P<port>[0-9]*)')
+    m = p.search(hcs)
     d = m.groupdict()
-    d['password'] = d['password'].replace('\\@','@')
+    d['password'] = d['password'].replace('\\@', '@')
     return d
 
 if __name__ == '__main__':
     try:
         start_time = time.time()
-        parser = optparse.OptionParser(formatter=optparse.TitledHelpFormatter(), usage=globals()['__doc__'], version='$Id: hive.py 509 2008-01-05 21:27:47Z noah $',conflict_handler="resolve")
-        parser.add_option ('-v', '--verbose', action='store_true', default=False, help='verbose output')
-        parser.add_option ('--samepass', action='store_true', default=False, help='Use same password for each login.')
-        parser.add_option ('--sameuser', action='store_true', default=False, help='Use same username for each login.')
+        parser = optparse.OptionParser(
+            formatter=optparse.TitledHelpFormatter(),
+            usage=globals()['__doc__'],
+            version='$Id: hive.py 509 2008-01-05 21:27:47Z noah $',
+            conflict_handler="resolve")
+        parser.add_option(
+            '-v',
+            '--verbose',
+            action='store_true',
+            default=False,
+            help='verbose output')
+        parser.add_option(
+            '--samepass',
+            action='store_true',
+            default=False,
+            help='Use same password for each login.')
+        parser.add_option(
+            '--sameuser',
+            action='store_true',
+            default=False,
+            help='Use same username for each login.')
         (options, args) = parser.parse_args()
         if len(args) < 1:
-            parser.error ('missing argument')
-        if options.verbose: print time.asctime()
+            parser.error('missing argument')
+        if options.verbose:
+            print time.asctime()
         main()
-        if options.verbose: print time.asctime()
-        if options.verbose: print 'TOTAL TIME IN MINUTES:',
-        if options.verbose: print (time.time() - start_time) / 60.0
+        if options.verbose:
+            print time.asctime()
+        if options.verbose:
+            print 'TOTAL TIME IN MINUTES:',
+        if options.verbose:
+            print (time.time() - start_time) / 60.0
         sys.exit(0)
-    except KeyboardInterrupt, e: # Ctrl-C
+    except KeyboardInterrupt as e:  # Ctrl-C
         raise e
-    except SystemExit, e: # sys.exit()
+    except SystemExit as e:  # sys.exit()
         raise e
-    except Exception, e:
+    except Exception as e:
         print 'ERROR, UNEXPECTED EXCEPTION'
         print str(e)
         traceback.print_exc()

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/monitor.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/monitor.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/monitor.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/monitor.py Tue Sep  6 15:57:50 2016
@@ -23,40 +23,53 @@ It works like this:
     Exit the remote host.
 """
 
-import os, sys, time, re, getopt, getpass
+import os
+import sys
+import time
+import re
+import getopt
+import getpass
 import traceback
 import pexpect
 
 #
 # Some constants.
 #
-COMMAND_PROMPT = '[#$] ' ### This is way too simple for industrial use -- we will change is ASAP.
+# This is way too simple for industrial use -- we will change is ASAP.
+COMMAND_PROMPT = '[#$] '
 TERMINAL_PROMPT = '(?i)terminal type\?'
 TERMINAL_TYPE = 'vt100'
-# This is the prompt we get if SSH does not have the remote host's public key stored in the cache.
+# This is the prompt we get if SSH does not have the remote host's public
+# key stored in the cache.
 SSH_NEWKEY = '(?i)are you sure you want to continue connecting'
 
+
 def exit_with_usage():
 
     print globals()['__doc__']
     os._exit(1)
 
+
 def main():
 
     global COMMAND_PROMPT, TERMINAL_PROMPT, TERMINAL_TYPE, SSH_NEWKEY
     ######################################################################
-    ## Parse the options, arguments, get ready, etc.
+    # Parse the options, arguments, get ready, etc.
     ######################################################################
     try:
-        optlist, args = getopt.getopt(sys.argv[1:], 'h?s:u:p:', ['help','h','?'])
-    except Exception, e:
+        optlist, args = getopt.getopt(
+            sys.argv[
+                1:], 'h?s:u:p:', [
+                'help', 'h', '?'])
+    except Exception as e:
         print str(e)
         exit_with_usage()
     options = dict(optlist)
     if len(args) > 1:
         exit_with_usage()
 
-    if [elem for elem in options if elem in ['-h','--h','-?','--?','--help']]:
+    if [elem for elem in options if elem in [
+            '-h', '--h', '-?', '--?', '--help']]:
         print "Help:"
         exit_with_usage()
 
@@ -76,16 +89,17 @@ def main():
     #
     # Login via SSH
     #
-    child = pexpect.spawn('ssh -l %s %s'%(user, host))
-    i = child.expect([pexpect.TIMEOUT, SSH_NEWKEY, COMMAND_PROMPT, '(?i)password'])
-    if i == 0: # Timeout
+    child = pexpect.spawn('ssh -l %s %s' % (user, host))
+    i = child.expect([pexpect.TIMEOUT, SSH_NEWKEY,
+                      COMMAND_PROMPT, '(?i)password'])
+    if i == 0:  # Timeout
         print 'ERROR! could not login with SSH. Here is what SSH said:'
         print child.before, child.after
         print str(child)
-        sys.exit (1)
-    if i == 1: # In this case SSH does not have the public key cached.
-        child.sendline ('yes')
-        child.expect ('(?i)password')
+        sys.exit(1)
+    if i == 1:  # In this case SSH does not have the public key cached.
+        child.sendline('yes')
+        child.expect('(?i)password')
     if i == 2:
         # This may happen if a public key was setup to automatically login.
         # But beware, the COMMAND_PROMPT at this point is very trivial and
@@ -95,25 +109,25 @@ def main():
         child.sendline(password)
         # Now we are either at the command prompt or
         # the login process is asking for our terminal type.
-        i = child.expect ([COMMAND_PROMPT, TERMINAL_PROMPT])
+        i = child.expect([COMMAND_PROMPT, TERMINAL_PROMPT])
         if i == 1:
-            child.sendline (TERMINAL_TYPE)
-            child.expect (COMMAND_PROMPT)
+            child.sendline(TERMINAL_TYPE)
+            child.expect(COMMAND_PROMPT)
     #
     # Set command prompt to something more unique.
     #
     COMMAND_PROMPT = "\[PEXPECT\]\$ "
-    child.sendline ("PS1='[PEXPECT]\$ '") # In case of sh-style
-    i = child.expect ([pexpect.TIMEOUT, COMMAND_PROMPT], timeout=10)
+    child.sendline("PS1='[PEXPECT]\$ '")  # In case of sh-style
+    i = child.expect([pexpect.TIMEOUT, COMMAND_PROMPT], timeout=10)
     if i == 0:
         print "# Couldn't set sh-style prompt -- trying csh-style."
-        child.sendline ("set prompt='[PEXPECT]\$ '")
-        i = child.expect ([pexpect.TIMEOUT, COMMAND_PROMPT], timeout=10)
+        child.sendline("set prompt='[PEXPECT]\$ '")
+        i = child.expect([pexpect.TIMEOUT, COMMAND_PROMPT], timeout=10)
         if i == 0:
             print "Failed to set command prompt using sh or csh style."
             print "Response was:"
             print child.before
-            sys.exit (1)
+            sys.exit(1)
 
     # Now we should be at the command prompt and ready to run some commands.
     print '---------------------------------------'
@@ -121,8 +135,8 @@ def main():
     print '---------------------------------------'
 
     # Run uname.
-    child.sendline ('uname -a')
-    child.expect (COMMAND_PROMPT)
+    child.sendline('uname -a')
+    child.expect(COMMAND_PROMPT)
     print child.before
     if 'linux' in child.before.lower():
         LINUX_MODE = 1
@@ -130,51 +144,52 @@ def main():
         LINUX_MODE = 0
 
     # Run and parse 'uptime'.
-    child.sendline ('uptime')
-    child.expect('up\s+(.*?),\s+([0-9]+) users?,\s+load averages?: ([0-9]+\.[0-9][0-9]),?\s+([0-9]+\.[0-9][0-9]),?\s+([0-9]+\.[0-9][0-9])')
+    child.sendline('uptime')
+    child.expect(
+        'up\s+(.*?),\s+([0-9]+) users?,\s+load averages?: ([0-9]+\.[0-9][0-9]),?\s+([0-9]+\.[0-9][0-9]),?\s+([0-9]+\.[0-9][0-9])')
     duration, users, av1, av5, av15 = child.match.groups()
     days = '0'
     hours = '0'
     mins = '0'
     if 'day' in duration:
-        child.match = re.search('([0-9]+)\s+day',duration)
+        child.match = re.search('([0-9]+)\s+day', duration)
         days = str(int(child.match.group(1)))
     if ':' in duration:
-        child.match = re.search('([0-9]+):([0-9]+)',duration)
+        child.match = re.search('([0-9]+):([0-9]+)', duration)
         hours = str(int(child.match.group(1)))
         mins = str(int(child.match.group(2)))
     if 'min' in duration:
-        child.match = re.search('([0-9]+)\s+min',duration)
+        child.match = re.search('([0-9]+)\s+min', duration)
         mins = str(int(child.match.group(1)))
     print
     print 'Uptime: %s days, %s users, %s (1 min), %s (5 min), %s (15 min)' % (
         duration, users, av1, av5, av15)
-    child.expect (COMMAND_PROMPT)
+    child.expect(COMMAND_PROMPT)
 
     # Run iostat.
-    child.sendline ('iostat')
-    child.expect (COMMAND_PROMPT)
+    child.sendline('iostat')
+    child.expect(COMMAND_PROMPT)
     print child.before
 
     # Run vmstat.
-    child.sendline ('vmstat')
-    child.expect (COMMAND_PROMPT)
+    child.sendline('vmstat')
+    child.expect(COMMAND_PROMPT)
     print child.before
 
     # Run free.
     if LINUX_MODE:
-        child.sendline ('free') # Linux systems only.
-        child.expect (COMMAND_PROMPT)
+        child.sendline('free')  # Linux systems only.
+        child.expect(COMMAND_PROMPT)
         print child.before
 
     # Run df.
-    child.sendline ('df')
-    child.expect (COMMAND_PROMPT)
+    child.sendline('df')
+    child.expect(COMMAND_PROMPT)
     print child.before
-    
+
     # Run lsof.
-    child.sendline ('lsof')
-    child.expect (COMMAND_PROMPT)
+    child.sendline('lsof')
+    child.expect(COMMAND_PROMPT)
     print child.before
 
 #    # Run netstat
@@ -191,9 +206,9 @@ def main():
 #    print child.before
 
     # Now exit the remote host.
-    child.sendline ('exit')
+    child.sendline('exit')
     index = child.expect([pexpect.EOF, "(?i)there are stopped jobs"])
-    if index==1:
+    if index == 1:
         child.sendline("exit")
         child.expect(EOF)
 
@@ -201,8 +216,7 @@ if __name__ == "__main__":
 
     try:
         main()
-    except Exception, e:
+    except Exception as e:
         print str(e)
         traceback.print_exc()
         os._exit(1)
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/passmass.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/passmass.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/passmass.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/passmass.py Tue Sep  6 15:57:50 2016
@@ -4,7 +4,8 @@
 Note that login shell prompt on remote machine must end in # or $. """
 
 import pexpect
-import sys, getpass
+import sys
+import getpass
 
 USAGE = '''passmass host1 host2 host3 . . .'''
 COMMAND_PROMPT = '[$#] '
@@ -12,38 +13,42 @@ TERMINAL_PROMPT = r'Terminal type\?'
 TERMINAL_TYPE = 'vt100'
 SSH_NEWKEY = r'Are you sure you want to continue connecting \(yes/no\)\?'
 
+
 def login(host, user, password):
 
-    child = pexpect.spawn('ssh -l %s %s'%(user, host))
-    fout = file ("LOG.TXT","wb")
-    child.setlog (fout)
+    child = pexpect.spawn('ssh -l %s %s' % (user, host))
+    fout = file("LOG.TXT", "wb")
+    child.setlog(fout)
 
     i = child.expect([pexpect.TIMEOUT, SSH_NEWKEY, '[Pp]assword: '])
-    if i == 0: # Timeout
+    if i == 0:  # Timeout
         print 'ERROR!'
         print 'SSH could not login. Here is what SSH said:'
         print child.before, child.after
-        sys.exit (1)
-    if i == 1: # SSH does not have the public key. Just accept it.
-        child.sendline ('yes')
-        child.expect ('[Pp]assword: ')
+        sys.exit(1)
+    if i == 1:  # SSH does not have the public key. Just accept it.
+        child.sendline('yes')
+        child.expect('[Pp]assword: ')
     child.sendline(password)
     # Now we are either at the command prompt or
     # the login process is asking for our terminal type.
-    i = child.expect (['Permission denied', TERMINAL_PROMPT, COMMAND_PROMPT])
+    i = child.expect(['Permission denied', TERMINAL_PROMPT, COMMAND_PROMPT])
     if i == 0:
         print 'Permission denied on host:', host
-        sys.exit (1)
+        sys.exit(1)
     if i == 1:
-        child.sendline (TERMINAL_TYPE)
-        child.expect (COMMAND_PROMPT)
+        child.sendline(TERMINAL_TYPE)
+        child.expect(COMMAND_PROMPT)
     return child
 
 # (current) UNIX password:
+
+
 def change_password(child, user, oldpassword, newpassword):
 
-    child.sendline('passwd') 
-    i = child.expect(['[Oo]ld [Pp]assword', '.current.*password', '[Nn]ew [Pp]assword'])
+    child.sendline('passwd')
+    i = child.expect(
+        ['[Oo]ld [Pp]assword', '.current.*password', '[Nn]ew [Pp]assword'])
     # Root does not require old password, so it gets to bypass the next step.
     if i == 0 or i == 1:
         child.sendline(oldpassword)
@@ -53,11 +58,12 @@ def change_password(child, user, oldpass
     if i == 0:
         print 'Host did not like new password. Here is what it said...'
         print child.before
-	child.send (chr(3)) # Ctrl-C
-        child.sendline('') # This should tell remote passwd command to quit.
+        child.send(chr(3))  # Ctrl-C
+        child.sendline('')  # This should tell remote passwd command to quit.
         return
     child.sendline(newpassword)
 
+
 def main():
 
     if len(sys.argv) <= 1:
@@ -74,7 +80,7 @@ def main():
 
     for host in sys.argv[1:]:
         child = login(host, user, password)
-        if child == None:
+        if child is None:
             print 'Could not login to host:', host
             continue
         print 'Changing password on host:', host
@@ -85,6 +91,5 @@ def main():
 if __name__ == '__main__':
     try:
         main()
-    except pexpect.ExceptionPexpect, e:
+    except pexpect.ExceptionPexpect as e:
         print str(e)
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/python.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/python.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/python.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/python.py Tue Sep  6 15:57:50 2016
@@ -7,10 +7,10 @@ the user interactive control over the se
 # c = pexpect.spawn ('/usr/bin/env python ./python.py')
 
 import pexpect
-c = pexpect.spawn ('/usr/bin/env python')
-c.expect ('>>>')
+c = pexpect.spawn('/usr/bin/env python')
+c.expect('>>>')
 print 'And now for something completely different...'
-f = lambda s:s and f(s[1:])+s[0] # Makes a function to reverse a string.
+f = lambda s: s and f(s[1:]) + s[0]  # Makes a function to reverse a string.
 print f(c.before)
 print 'Yes, it\'s python, but it\'s backwards.'
 print
@@ -19,4 +19,3 @@ print c.after,
 c.interact()
 c.kill(1)
 print 'is alive:', c.isalive()
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/rippy.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/rippy.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/rippy.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/rippy.py Tue Sep  6 15:57:50 2016
@@ -69,7 +69,15 @@ Noah Spurrier
 $Id: rippy.py 517 2008-08-18 22:23:56Z noah $
 """
 
-import sys, os, re, math, stat, getopt, traceback, types, time
+import sys
+import os
+import re
+import math
+import stat
+import getopt
+import traceback
+import types
+import time
 import pexpect
 
 __version__ = '1.2'
@@ -77,7 +85,7 @@ __revision__ = '$Revision: 11 $'
 __all__ = ['main', __version__, __revision__]
 
 GLOBAL_LOGFILE_NAME = "rippy_%d.log" % os.getpid()
-GLOBAL_LOGFILE = open (GLOBAL_LOGFILE_NAME, "wb")
+GLOBAL_LOGFILE = open(GLOBAL_LOGFILE_NAME, "wb")
 
 ###############################################################################
 # This giant section defines the prompts and defaults used in interactive mode.
@@ -85,32 +93,32 @@ GLOBAL_LOGFILE = open (GLOBAL_LOGFILE_NA
 # Python dictionaries are unordered, so
 # I have this list that maintains the order of the keys.
 prompts_key_order = (
-'verbose_flag',
-'dry_run_flag',
-'video_source_filename',
-'video_chapter',
-'video_final_filename',
-'video_length',
-'video_aspect_ratio',
-'video_scale',
-'video_encode_passes',
-'video_codec',
-'video_fourcc_override',
-'video_bitrate',
-'video_bitrate_overhead',
-'video_target_size',
-'video_deinterlace_flag',
-'video_crop_area',
-'video_gray_flag',
-'subtitle_id',
-'audio_id',
-'audio_codec',
-'audio_raw_filename',
-'audio_volume_boost',
-'audio_sample_rate',
-'audio_bitrate',
-#'audio_lowpass_filter',
-'delete_tmp_files_flag'
+    'verbose_flag',
+    'dry_run_flag',
+    'video_source_filename',
+    'video_chapter',
+    'video_final_filename',
+    'video_length',
+    'video_aspect_ratio',
+    'video_scale',
+    'video_encode_passes',
+    'video_codec',
+    'video_fourcc_override',
+    'video_bitrate',
+    'video_bitrate_overhead',
+    'video_target_size',
+    'video_deinterlace_flag',
+    'video_crop_area',
+    'video_gray_flag',
+    'subtitle_id',
+    'audio_id',
+    'audio_codec',
+    'audio_raw_filename',
+    'audio_volume_boost',
+    'audio_sample_rate',
+    'audio_bitrate',
+    #'audio_lowpass_filter',
+    'delete_tmp_files_flag'
 )
 #
 # The 'prompts' dictionary holds all the messages shown to the user in
@@ -118,58 +126,58 @@ prompts_key_order = (
 #    prompt_key : ( default value, prompt string, help string, level of difficulty (0,1,2) )
 #
 prompts = {
-'video_source_filename':("dvd://1", 'video source filename?', """This is the filename of the video that you want to convert from.
+    'video_source_filename': ("dvd://1", 'video source filename?', """This is the filename of the video that you want to convert from.
 It can be any file that mencoder supports.
 You can also choose a DVD device using the dvd://1 syntax.
-Title 1 is usually the main title on a DVD.""",0),
-'video_chapter':("none",'video chapter?',"""This is the chapter number. Usually disks such as TV series seasons will be divided into chapters. Maybe be set to none.""",0),
-'video_final_filename':("video_final.avi", "video final filename?", """This is the name of the final video.""",0),
-'audio_raw_filename':("audiodump.wav", "audio raw filename?", """This is the audio raw PCM filename. This is prior to compression.
-Note that mplayer automatically names this audiodump.wav, so don't change this.""",1000),
-#'audio_compressed_filename':("audiodump.mp3","Audio compressed filename?", """This is the name of the compressed audio that will be mixed
-#into the final video. Normally you don't need to change this.""",2),
-'video_length':("none","video length in seconds?","""This sets the length of the video in seconds. This is used to estimate the
+Title 1 is usually the main title on a DVD.""", 0),
+    'video_chapter': ("none", 'video chapter?', """This is the chapter number. Usually disks such as TV series seasons will be divided into chapters. Maybe be set to none.""", 0),
+    'video_final_filename': ("video_final.avi", "video final filename?", """This is the name of the final video.""", 0),
+    'audio_raw_filename': ("audiodump.wav", "audio raw filename?", """This is the audio raw PCM filename. This is prior to compression.
+Note that mplayer automatically names this audiodump.wav, so don't change this.""", 1000),
+    #'audio_compressed_filename':("audiodump.mp3","Audio compressed filename?", """This is the name of the compressed audio that will be mixed
+    # into the final video. Normally you don't need to change this.""",2),
+    'video_length': ("none", "video length in seconds?", """This sets the length of the video in seconds. This is used to estimate the
 bitrate for a target video file size. Set to 'calc' to have Rippy calculate
 the length. Set to 'none' if you don't want rippy to estimate the bitrate --
-you will have to manually specify bitrate.""",1),
-'video_aspect_ratio':("calc","aspect ratio?","""This sets the aspect ratio of the video. Most DVDs are 16/9 or 4/3.""",1),
-'video_scale':("none","video scale?","""This scales the video to the given output size. The default is to do no scaling.
+you will have to manually specify bitrate.""", 1),
+    'video_aspect_ratio': ("calc", "aspect ratio?", """This sets the aspect ratio of the video. Most DVDs are 16/9 or 4/3.""", 1),
+    'video_scale': ("none", "video scale?", """This scales the video to the given output size. The default is to do no scaling.
 You may type in a resolution such as 320x240 or you may use presets.
     qntsc: 352x240 (NTSC quarter screen)
     qpal:  352x288 (PAL quarter screen)
     ntsc:  720x480 (standard NTSC)
     pal:   720x576 (standard PAL)
     sntsc: 640x480 (square pixel NTSC)
-    spal:  768x576 (square pixel PAL)""",1),
-'video_codec':("mpeg4","video codec?","""This is the video compression to use. This is passed directly to mencoder, so
+    spal:  768x576 (square pixel PAL)""", 1),
+    'video_codec': ("mpeg4", "video codec?", """This is the video compression to use. This is passed directly to mencoder, so
 any format that it recognizes should work. For XviD or DivX use mpeg4.
 Almost all MS Windows systems support wmv2 out of the box.
 Some common codecs include:
 mjpeg, h263, h263p, h264, mpeg4, msmpeg4, wmv1, wmv2, mpeg1video, mpeg2video, huffyuv, ffv1.
-""",2),
-'audio_codec':("mp3","audio codec?","""This is the audio compression to use. This is passed directly to mencoder, so
+""", 2),
+    'audio_codec': ("mp3", "audio codec?", """This is the audio compression to use. This is passed directly to mencoder, so
 any format that it recognizes will work.
 Some common codecs include:
 mp3, mp2, aac, pcm
-See mencoder manual for details.""",2),
-'video_fourcc_override':("XVID","force fourcc code?","""This forces the fourcc codec to the given value. XVID is safest for Windows.
+See mencoder manual for details.""", 2),
+    'video_fourcc_override': ("XVID", "force fourcc code?", """This forces the fourcc codec to the given value. XVID is safest for Windows.
 The following are common fourcc values:
     FMP4 - This is the mencoder default. This is the "real" value.
     XVID - used by Xvid (safest)
     DX50 -
-    MP4S - Microsoft""",2),
-'video_encode_passes':("1","number of encode passes?","""This sets how many passes to use to encode the video. You can choose 1 or 2.
+    MP4S - Microsoft""", 2),
+    'video_encode_passes': ("1", "number of encode passes?", """This sets how many passes to use to encode the video. You can choose 1 or 2.
 Using two pases takes twice as long as one pass, but produces a better
-quality video. I found that the improvement is not that impressive.""",1),
-'verbose_flag':("Y","verbose output?","""This sets verbose output. If true then all commands and arguments are printed
-before they are run. This is useful to see exactly how commands are run.""",1),
-'dry_run_flag':("N","dry run?","""This sets 'dry run' mode. If true then commands are not run. This is useful
-if you want to see what would the script would do.""",1),
-'video_bitrate':("calc","video bitrate?","""This sets the video bitrate. This overrides video_target_size.
+quality video. I found that the improvement is not that impressive.""", 1),
+    'verbose_flag': ("Y", "verbose output?", """This sets verbose output. If true then all commands and arguments are printed
+before they are run. This is useful to see exactly how commands are run.""", 1),
+    'dry_run_flag': ("N", "dry run?", """This sets 'dry run' mode. If true then commands are not run. This is useful
+if you want to see what would the script would do.""", 1),
+    'video_bitrate': ("calc", "video bitrate?", """This sets the video bitrate. This overrides video_target_size.
 Set to 'calc' to automatically estimate the bitrate based on the
 video final target size. If you set video_length to 'none' then
-you will have to specify this video_bitrate.""",1),
-'video_target_size':("737280000","video final target size?","""This sets the target video size that you want to end up with.
+you will have to specify this video_bitrate.""", 1),
+    'video_target_size': ("737280000", "video final target size?", """This sets the target video size that you want to end up with.
 This is over-ridden by video_bitrate. In other words, if you specify
 video_bitrate then video_target_size is ignored.
 Due to the unpredictable nature of VBR compression the final video size
@@ -177,44 +185,46 @@ may not exactly match. The following are
     180MB CDR (21 minutes) holds 193536000 bytes
     550MB CDR (63 minutes) holds 580608000 bytes
     650MB CDR (74 minutes) holds 681984000 bytes
-    700MB CDR (80 minutes) holds 737280000 bytes""",0),
-'video_bitrate_overhead':("1.0","bitrate overhead factor?","""Adjust this value if you want to leave more room for
+    700MB CDR (80 minutes) holds 737280000 bytes""", 0),
+    'video_bitrate_overhead': ("1.0", "bitrate overhead factor?", """Adjust this value if you want to leave more room for
 other files such as subtitle files.
-If you specify video_bitrate then this value is ignored.""",2),
-'video_crop_area':("detect","crop area?","""This sets the crop area to remove black bars from the top or sides of the video.
+If you specify video_bitrate then this value is ignored.""", 2),
+    'video_crop_area': ("detect", "crop area?", """This sets the crop area to remove black bars from the top or sides of the video.
 This helps save space. Set to 'detect' to automatically detect the crop area.
-Set to 'none' to not crop the video. Normally you don't need to change this.""",1),
-'video_deinterlace_flag':("N","is the video interlaced?","""This sets the deinterlace flag. If set then mencoder will be instructed
-to filter out interlace artifacts (using '-vf pp=md').""",1),
-'video_gray_flag':("N","is the video black and white (gray)?","""This improves output for black and white video.""",1),
-'subtitle_id':("None","Subtitle ID stream?","""This selects the subtitle stream to extract from the source video.
+Set to 'none' to not crop the video. Normally you don't need to change this.""", 1),
+    'video_deinterlace_flag': ("N", "is the video interlaced?", """This sets the deinterlace flag. If set then mencoder will be instructed
+to filter out interlace artifacts (using '-vf pp=md').""", 1),
+    'video_gray_flag': ("N", "is the video black and white (gray)?", """This improves output for black and white video.""", 1),
+    'subtitle_id': ("None", "Subtitle ID stream?", """This selects the subtitle stream to extract from the source video.
 Normally, 0 is the English subtitle stream for a DVD.
-Subtitles IDs with higher numbers may be other languages.""",1),
-'audio_id':("128","audio ID stream?","""This selects the audio stream to extract from the source video.
+Subtitles IDs with higher numbers may be other languages.""", 1),
+    'audio_id': ("128", "audio ID stream?", """This selects the audio stream to extract from the source video.
 If your source is a VOB file (DVD) then stream IDs start at 128.
 Normally, 128 is the main audio track for a DVD.
-Tracks with higher numbers may be other language dubs or audio commentary.""",1),
-'audio_sample_rate':("32000","audio sample rate (Hz) 48000, 44100, 32000, 24000, 12000","""This sets the rate at which the compressed audio will be resampled.
+Tracks with higher numbers may be other language dubs or audio commentary.""", 1),
+    'audio_sample_rate': ("32000", "audio sample rate (Hz) 48000, 44100, 32000, 24000, 12000", """This sets the rate at which the compressed audio will be resampled.
 DVD audio is 48 kHz whereas music CDs use 44.1 kHz. The higher the sample rate
 the more space the audio track will take. That will leave less space for video.
-32 kHz is a good trade-off if you are trying to fit a video onto a CD.""",1),
-'audio_bitrate':("96","audio bitrate (kbit/s) 192, 128, 96, 64?","""This sets the bitrate for MP3 audio compression.
+32 kHz is a good trade-off if you are trying to fit a video onto a CD.""", 1),
+    'audio_bitrate': ("96", "audio bitrate (kbit/s) 192, 128, 96, 64?", """This sets the bitrate for MP3 audio compression.
 The higher the bitrate the more space the audio track will take.
 That will leave less space for video. Most people find music to be acceptable
-at 128 kBitS. 96 kBitS is a good trade-off if you are trying to fit a video onto a CD.""",1),
-'audio_volume_boost':("none","volume dB boost?","""Many DVDs have very low audio volume. This sets an audio volume boost in Decibels.
-Values of 6 to 10 usually adjust quiet DVDs to a comfortable level.""",1),
-#'audio_lowpass_filter':("16","audio lowpass filter (kHz)?","""This sets the low-pass filter for the audio.
-#Normally this should be half of the audio sample rate.
-#This improves audio compression and quality.
-#Normally you don't need to change this.""",1),
-'delete_tmp_files_flag':("N","delete temporary files when finished?","""If Y then %s, audio_raw_filename, and 'divx2pass.log' will be deleted at the end."""%GLOBAL_LOGFILE_NAME,1)
+at 128 kBitS. 96 kBitS is a good trade-off if you are trying to fit a video onto a CD.""", 1),
+    'audio_volume_boost': ("none", "volume dB boost?", """Many DVDs have very low audio volume. This sets an audio volume boost in Decibels.
+Values of 6 to 10 usually adjust quiet DVDs to a comfortable level.""", 1),
+    #'audio_lowpass_filter':("16","audio lowpass filter (kHz)?","""This sets the low-pass filter for the audio.
+    # Normally this should be half of the audio sample rate.
+    # This improves audio compression and quality.
+    # Normally you don't need to change this.""",1),
+    'delete_tmp_files_flag': ("N", "delete temporary files when finished?", """If Y then %s, audio_raw_filename, and 'divx2pass.log' will be deleted at the end.""" % GLOBAL_LOGFILE_NAME, 1)
 }
 
 ##############################################################################
 # This is the important convert control function
 ##############################################################################
-def convert (options):
+
+
+def convert(options):
     """This is the heart of it all -- this performs an end-to-end conversion of
     a video from one format to another. It requires a dictionary of options.
     The conversion process will also add some keys to the dictionary
@@ -224,7 +234,7 @@ def convert (options):
     """
     if options['subtitle_id'] is not None:
         print "# extract subtitles"
-        apply_smart (extract_subtitles, options)
+        apply_smart(extract_subtitles, options)
     else:
         print "# do not extract subtitles."
 
@@ -233,47 +243,52 @@ def convert (options):
     # selected 'calc' for video_bitrate
     # or
     # selected 'detect' for video_crop_area.
-    if options['video_bitrate']=='calc' or options['video_crop_area']=='detect':
+    if options['video_bitrate'] == 'calc' or options[
+            'video_crop_area'] == 'detect':
         # As strange as it seems, the only reliable way to calculate the length
         # of a video (in seconds) is to extract the raw, uncompressed PCM audio stream
         # and then calculate the length of that. This is because MP4 video is VBR, so
         # you cannot get exact time based on compressed size.
-        if options['video_length']=='calc':
+        if options['video_length'] == 'calc':
             print "# extract PCM raw audio to %s" % (options['audio_raw_filename'])
-            apply_smart (extract_audio, options)
-            options['video_length'] = apply_smart (get_length, options)
-            print "# Length of raw audio file : %d seconds (%0.2f minutes)" % (options['video_length'], float(options['video_length'])/60.0)
-        if options['video_bitrate']=='calc':
-            options['video_bitrate'] = options['video_bitrate_overhead'] * apply_smart (calc_video_bitrate, options) 
+            apply_smart(extract_audio, options)
+            options['video_length'] = apply_smart(get_length, options)
+            print "# Length of raw audio file : %d seconds (%0.2f minutes)" % (options['video_length'], float(options['video_length']) / 60.0)
+        if options['video_bitrate'] == 'calc':
+            options['video_bitrate'] = options[
+                'video_bitrate_overhead'] * apply_smart(calc_video_bitrate, options)
         print "# video bitrate : " + str(options['video_bitrate'])
-        if options['video_crop_area']=='detect':
-            options['video_crop_area'] = apply_smart (crop_detect, options)
+        if options['video_crop_area'] == 'detect':
+            options['video_crop_area'] = apply_smart(crop_detect, options)
         print "# crop area : " + str(options['video_crop_area'])
         print "# compression estimate"
-        print apply_smart (compression_estimate, options)
+        print apply_smart(compression_estimate, options)
 
     print "# compress video"
-    apply_smart (compress_video, options)
+    apply_smart(compress_video, options)
     'audio_volume_boost',
 
     print "# delete temporary files:",
     if options['delete_tmp_files_flag']:
         print "yes"
-        apply_smart (delete_tmp_files, options)
+        apply_smart(delete_tmp_files, options)
     else:
         print "no"
 
-    # Finish by saving options to rippy.conf and 
+    # Finish by saving options to rippy.conf and
     # calclating if final_size is less than target_size.
     o = ["# options used to create video\n"]
-    video_actual_size = get_filesize (options['video_final_filename'])
+    video_actual_size = get_filesize(options['video_final_filename'])
     if options['video_target_size'] != 'none':
-        revised_bitrate = calculate_revised_bitrate (options['video_bitrate'], options['video_target_size'], video_actual_size)
+        revised_bitrate = calculate_revised_bitrate(
+            options['video_bitrate'],
+            options['video_target_size'],
+            video_actual_size)
         o.append("# revised video_bitrate : %d\n" % revised_bitrate)
-    for k,v in options.iteritems():
-        o.append (" %30s : %s\n" % (k, v))
+    for k, v in options.iteritems():
+        o.append(" %30s : %s\n" % (k, v))
     print '# '.join(o)
-    fout = open("rippy.conf","wb").write(''.join(o))
+    fout = open("rippy.conf", "wb").write(''.join(o))
     print "# final actual video size = %d" % video_actual_size
     if options['video_target_size'] != 'none':
         if video_actual_size > options['video_target_size']:
@@ -289,13 +304,15 @@ def convert (options):
 
 ##############################################################################
 
+
 def exit_with_usage(exit_code=1):
     print globals()['__doc__']
     print 'version:', globals()['__version__']
     sys.stdout.flush()
     os._exit(exit_code)
 
-def check_missing_requirements ():
+
+def check_missing_requirements():
     """This list of missing requirements (mencoder, mplayer, lame, and mkvmerge).
     Returns None if all requirements are in the execution path.
     """
@@ -307,21 +324,22 @@ def check_missing_requirements ():
     cmd = "mencoder -oac help"
     (command_output, exitstatus) = run(cmd)
     ar = re.findall("(mp3lame)", command_output)
-    if len(ar)==0:
+    if len(ar) == 0:
         missing.append("Mencoder was not compiled with mp3lame support.")
-    
-    #if pexpect.which("lame") is None:
+
+    # if pexpect.which("lame") is None:
     #    missing.append("lame")
-    #if pexpect.which("mkvmerge") is None:
+    # if pexpect.which("mkvmerge") is None:
     #    missing.append("mkvmerge")
-    if len(missing)==0:
+    if len(missing) == 0:
         return None
     return missing
 
-def input_option (message, default_value="", help=None, level=0, max_level=0):
+
+def input_option(message, default_value="", help=None, level=0, max_level=0):
     """This is a fancy raw_input function.
     If the user enters '?' then the contents of help is printed.
-    
+
     The 'level' and 'max_level' are used to adjust which advanced options
     are printed. 'max_level' is the level of options that the user wants
     to see. 'level' is the level of difficulty for this particular option.
@@ -333,53 +351,63 @@ def input_option (message, default_value
         message = "%s [%s] " % (message, default_value)
     if level > max_level:
         return default_value
-    while 1:
-        user_input = raw_input (message)
-        if user_input=='?':
+    while True:
+        user_input = raw_input(message)
+        if user_input == '?':
             print help
-        elif user_input=='':
+        elif user_input == '':
             return default_value
         else:
             break
     return user_input
 
-def progress_callback (d=None):
+
+def progress_callback(d=None):
     """This callback simply prints a dot to show activity.
     This is used when running external commands with pexpect.run.
     """
-    sys.stdout.write (".")
+    sys.stdout.write(".")
     sys.stdout.flush()
 
+
 def run(cmd):
     global GLOBAL_LOGFILE
     print >>GLOBAL_LOGFILE, cmd
-    (command_output, exitstatus) = pexpect.run(cmd, events={pexpect.TIMEOUT:progress_callback}, timeout=5, withexitstatus=True, logfile=GLOBAL_LOGFILE)
+    (command_output,
+     exitstatus) = pexpect.run(cmd,
+                               events={pexpect.TIMEOUT: progress_callback},
+                               timeout=5,
+                               withexitstatus=True,
+                               logfile=GLOBAL_LOGFILE)
     if exitstatus != 0:
         print "RUN FAILED. RETURNED EXIT STATUS:", exitstatus
         print >>GLOBAL_LOGFILE, "RUN FAILED. RETURNED EXIT STATUS:", exitstatus
     return (command_output, exitstatus)
 
-def apply_smart (func, args):
-    """This is similar to func(**args), but this won't complain about 
-    extra keys in 'args'. This ignores keys in 'args' that are 
+
+def apply_smart(func, args):
+    """This is similar to func(**args), but this won't complain about
+    extra keys in 'args'. This ignores keys in 'args' that are
     not required by 'func'. This passes None to arguments that are
     not defined in 'args'. That's fine for arguments with a default valeue, but
     that's a bug for required arguments. I should probably raise a TypeError.
     The func parameter can be a function reference or a string.
     If it is a string then it is converted to a function reference.
     """
-    if type(func) is type(''):
+    if isinstance(func, type('')):
         if func in globals():
             func = globals()[func]
         else:
             raise NameError("name '%s' is not defined" % func)
-    if hasattr(func,'im_func'): # Handle case when func is a class method.
+    if hasattr(func, 'im_func'):  # Handle case when func is a class method.
         func = func.im_func
     argcount = func.func_code.co_argcount
-    required_args = dict([(k,args.get(k)) for k in func.func_code.co_varnames[:argcount]])
+    required_args = dict([(k, args.get(k))
+                          for k in func.func_code.co_varnames[:argcount]])
     return func(**required_args)
 
-def count_unique (items):
+
+def count_unique(items):
     """This takes a list and returns a sorted list of tuples with a count of each unique item in the list.
     Example 1:
         count_unique(['a','b','c','a','c','c','a','c','c'])
@@ -396,20 +424,25 @@ def count_unique (items):
             stats[i] = stats[i] + 1
         else:
             stats[i] = 1
-    stats = [(v, k) for k, v in stats.items()]
-    stats.sort()
+    stats = sorted([(v, k) for k, v in stats.items()])
     stats.reverse()
     return stats
 
-def calculate_revised_bitrate (video_bitrate, video_target_size, video_actual_size):
+
+def calculate_revised_bitrate(
+        video_bitrate,
+        video_target_size,
+        video_actual_size):
     """This calculates a revised video bitrate given the video_bitrate used,
     the actual size that resulted, and the video_target_size.
     This can be used if you want to compress the video all over again in an
     attempt to get closer to the video_target_size.
     """
-    return int(math.floor(video_bitrate * (float(video_target_size) / float(video_actual_size))))
+    return int(math.floor(video_bitrate * \
+               (float(video_target_size) / float(video_actual_size))))
+
 
-def get_aspect_ratio (video_source_filename):
+def get_aspect_ratio(video_source_filename):
     """This returns the aspect ratio of the original video.
     This is usualy 1.78:1(16/9) or 1.33:1(4/3).
     This function is very lenient. It basically guesses 16/9 whenever
@@ -417,8 +450,10 @@ def get_aspect_ratio (video_source_filen
     """
     cmd = "mplayer '%s' -vo png -ao null -frames 1" % video_source_filename
     (command_output, exitstatus) = run(cmd)
-    ar = re.findall("Movie-Aspect is ([0-9]+\.?[0-9]*:[0-9]+\.?[0-9]*)", command_output)
-    if len(ar)==0:
+    ar = re.findall(
+        "Movie-Aspect is ([0-9]+\.?[0-9]*:[0-9]+\.?[0-9]*)",
+        command_output)
+    if len(ar) == 0:
         return '16/9'
     if ar[0] == '1.78:1':
         return '16/9'
@@ -426,58 +461,70 @@ def get_aspect_ratio (video_source_filen
         return '4/3'
     return '16/9'
     #idh = re.findall("ID_VIDEO_HEIGHT=([0-9]+)", command_output)
-    #if len(idw)==0 or len(idh)==0:
+    # if len(idw)==0 or len(idh)==0:
     #    print 'WARNING!'
     #    print 'Could not get aspect ration. Assuming 1.78:1 (16/9).'
     #    return 1.78
-    #return float(idw[0])/float(idh[0])
-#ID_VIDEO_WIDTH=720
-#ID_VIDEO_HEIGHT=480
-#Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
+    # return float(idw[0])/float(idh[0])
+# ID_VIDEO_WIDTH=720
+# ID_VIDEO_HEIGHT=480
+# Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
 
 
-def get_aid_list (video_source_filename):
+def get_aid_list(video_source_filename):
     """This returns a list of audio ids in the source video file.
     TODO: Also extract ID_AID_nnn_LANG to associate language. Not all DVDs include this.
     """
     cmd = "mplayer '%s' -vo null -ao null -frames 0 -identify" % video_source_filename
     (command_output, exitstatus) = run(cmd)
-    idl = re.findall("ID_AUDIO_ID=([0-9]+)", command_output)
-    idl.sort()
+    idl = sorted(re.findall("ID_AUDIO_ID=([0-9]+)", command_output))
     return idl
 
-def get_sid_list (video_source_filename):
+
+def get_sid_list(video_source_filename):
     """This returns a list of subtitle ids in the source video file.
     TODO: Also extract ID_SID_nnn_LANG to associate language. Not all DVDs include this.
     """
     cmd = "mplayer '%s' -vo null -ao null -frames 0 -identify" % video_source_filename
     (command_output, exitstatus) = run(cmd)
-    idl = re.findall("ID_SUBTITLE_ID=([0-9]+)", command_output)
-    idl.sort()
+    idl = sorted(re.findall("ID_SUBTITLE_ID=([0-9]+)", command_output))
     return idl
-    
-def extract_audio (video_source_filename, audio_id=128, verbose_flag=0, dry_run_flag=0):
+
+
+def extract_audio(
+        video_source_filename,
+        audio_id=128,
+        verbose_flag=0,
+        dry_run_flag=0):
     """This extracts the given audio_id track as raw uncompressed PCM from the given source video.
         Note that mplayer always saves this to audiodump.wav.
         At this time there is no way to set the output audio name.
     """
     #cmd = "mplayer %(video_source_filename)s -vc null -vo null -aid %(audio_id)s -ao pcm:fast -noframedrop" % locals()
     cmd = "mplayer -quiet '%(video_source_filename)s' -vc dummy -vo null -aid %(audio_id)s -ao pcm:fast -noframedrop" % locals()
-    if verbose_flag: print cmd
+    if verbose_flag:
+        print cmd
     if not dry_run_flag:
         run(cmd)
         print
 
-def extract_subtitles (video_source_filename, subtitle_id=0, verbose_flag=0, dry_run_flag=0):
+
+def extract_subtitles(
+        video_source_filename,
+        subtitle_id=0,
+        verbose_flag=0,
+        dry_run_flag=0):
     """This extracts the given subtitle_id track as VOBSUB format from the given source video.
     """
     cmd = "mencoder -quiet '%(video_source_filename)s' -o /dev/null -nosound -ovc copy -vobsubout subtitles -vobsuboutindex 0 -sid %(subtitle_id)s" % locals()
-    if verbose_flag: print cmd
+    if verbose_flag:
+        print cmd
     if not dry_run_flag:
         run(cmd)
         print
 
-def get_length (audio_raw_filename):
+
+def get_length(audio_raw_filename):
     """This attempts to get the length of the media file (length is time in seconds).
     This should not be confused with size (in bytes) of the file data.
     This is best used on a raw PCM AUDIO file because mplayer cannot get an accurate
@@ -487,8 +534,7 @@ def get_length (audio_raw_filename):
     """
     cmd = "mplayer %s -vo null -ao null -frames 0 -identify" % audio_raw_filename
     (command_output, exitstatus) = run(cmd)
-    idl = re.findall("ID_LENGTH=([0-9.]*)", command_output)
-    idl.sort()
+    idl = sorted(re.findall("ID_LENGTH=([0-9.]*)", command_output))
     if len(idl) != 1:
         print "ERROR: cannot get length of raw audio file."
         print "command_output of mplayer identify:"
@@ -498,11 +544,18 @@ def get_length (audio_raw_filename):
         return -1
     return float(idl[0])
 
-def get_filesize (filename):
+
+def get_filesize(filename):
     """This returns the number of bytes a file takes on storage."""
     return os.stat(filename)[stat.ST_SIZE]
 
-def calc_video_bitrate (video_target_size, audio_bitrate, video_length, extra_space=0, dry_run_flag=0):
+
+def calc_video_bitrate(
+        video_target_size,
+        audio_bitrate,
+        video_length,
+        extra_space=0,
+        dry_run_flag=0):
     """This gives an estimate of the video bitrate necessary to
     fit the final target size.  This will take into account room to
     fit the audio and extra space if given (for container overhead or whatnot).
@@ -517,13 +570,15 @@ def calc_video_bitrate (video_target_siz
     """
     if dry_run_flag:
         return -1
-    if extra_space is None: extra_space = 0
+    if extra_space is None:
+        extra_space = 0
     #audio_size = os.stat(audio_compressed_filename)[stat.ST_SIZE]
     audio_size = (audio_bitrate * video_length * 1000) / 8.0
     video_target_size = video_target_size - audio_size - extra_space
-    return (int)(calc_video_kbitrate (video_target_size, video_length))
+    return (int)(calc_video_kbitrate(video_target_size, video_length))
+
 
-def calc_video_kbitrate (target_size, length_secs):
+def calc_video_kbitrate(target_size, length_secs):
     """Given a target byte size free for video data, this returns the bitrate in kBit/S.
     For mencoder vbitrate 1 kBit = 1000 Bits -- not 1024 bits.
         target_size = bitrate * 1000 * length_secs / 8
@@ -532,18 +587,24 @@ def calc_video_kbitrate (target_size, le
     """
     return int(target_size / (125.0 * length_secs))
 
-def crop_detect (video_source_filename, video_length, dry_run_flag=0):
+
+def crop_detect(video_source_filename, video_length, dry_run_flag=0):
     """This attempts to figure out the best crop for the given video file.
     Basically it runs crop detect for 10 seconds on five different places in the video.
     It picks the crop area that was most often detected.
     """
-    skip = int(video_length/9) # offset to skip (-ss option in mencoder)
+    skip = int(video_length / 9)  # offset to skip (-ss option in mencoder)
     sample_length = 10
-    cmd1 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (video_source_filename,   skip, sample_length)
-    cmd2 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (video_source_filename, 2*skip, sample_length)
-    cmd3 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (video_source_filename, 4*skip, sample_length)
-    cmd4 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (video_source_filename, 6*skip, sample_length)
-    cmd5 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (video_source_filename, 8*skip, sample_length)
+    cmd1 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (
+        video_source_filename, skip, sample_length)
+    cmd2 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (
+        video_source_filename, 2 * skip, sample_length)
+    cmd3 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (
+        video_source_filename, 4 * skip, sample_length)
+    cmd4 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (
+        video_source_filename, 6 * skip, sample_length)
+    cmd5 = "mencoder '%s' -quiet -ss %d -endpos %d -o /dev/null -nosound -ovc lavc -vf cropdetect" % (
+        video_source_filename, 8 * skip, sample_length)
     if dry_run_flag:
         return "0:0:0:0"
     (command_output1, exitstatus1) = run(cmd1)
@@ -552,36 +613,61 @@ def crop_detect (video_source_filename,
     (command_output4, exitstatus4) = run(cmd4)
     (command_output5, exitstatus5) = run(cmd5)
     idl = re.findall("-vf crop=([0-9]+:[0-9]+:[0-9]+:[0-9]+)", command_output1)
-    idl = idl + re.findall("-vf crop=([0-9]+:[0-9]+:[0-9]+:[0-9]+)", command_output2)
-    idl = idl + re.findall("-vf crop=([0-9]+:[0-9]+:[0-9]+:[0-9]+)", command_output3)
-    idl = idl + re.findall("-vf crop=([0-9]+:[0-9]+:[0-9]+:[0-9]+)", command_output4)
-    idl = idl + re.findall("-vf crop=([0-9]+:[0-9]+:[0-9]+:[0-9]+)", command_output5)
+    idl = idl + \
+        re.findall("-vf crop=([0-9]+:[0-9]+:[0-9]+:[0-9]+)", command_output2)
+    idl = idl + \
+        re.findall("-vf crop=([0-9]+:[0-9]+:[0-9]+:[0-9]+)", command_output3)
+    idl = idl + \
+        re.findall("-vf crop=([0-9]+:[0-9]+:[0-9]+:[0-9]+)", command_output4)
+    idl = idl + \
+        re.findall("-vf crop=([0-9]+:[0-9]+:[0-9]+:[0-9]+)", command_output5)
     items_count = count_unique(idl)
     return items_count[0][1]
 
 
-def build_compression_command (video_source_filename, video_final_filename, video_target_size, audio_id=128, video_bitrate=1000, video_codec='mpeg4', audio_codec='mp3', video_fourcc_override='FMP4', video_gray_flag=0, video_crop_area=None, video_aspect_ratio='16/9', video_scale=None, video_encode_passes=2, video_deinterlace_flag=0, audio_volume_boost=None, audio_sample_rate=None, audio_bitrate=None, seek_skip=None, seek_length=None, video_chapter=None):
-#Notes:For DVD, VCD, and SVCD use acodec=mp2 and vcodec=mpeg2video:
-#mencoder movie.avi -o movie.VOB -ovc lavc -oac lavc -lavcopts acodec=mp2:abitrate=224:vcodec=mpeg2video:vbitrate=2000
+def build_compression_command(
+        video_source_filename,
+        video_final_filename,
+        video_target_size,
+        audio_id=128,
+        video_bitrate=1000,
+        video_codec='mpeg4',
+        audio_codec='mp3',
+        video_fourcc_override='FMP4',
+        video_gray_flag=0,
+        video_crop_area=None,
+        video_aspect_ratio='16/9',
+        video_scale=None,
+        video_encode_passes=2,
+        video_deinterlace_flag=0,
+        audio_volume_boost=None,
+        audio_sample_rate=None,
+        audio_bitrate=None,
+        seek_skip=None,
+        seek_length=None,
+        video_chapter=None):
+    # Notes:For DVD, VCD, and SVCD use acodec=mp2 and vcodec=mpeg2video:
+    # mencoder movie.avi -o movie.VOB -ovc lavc -oac lavc -lavcopts
+    # acodec=mp2:abitrate=224:vcodec=mpeg2video:vbitrate=2000
 
     #
-    # build video filter (-vf) argument 
+    # build video filter (-vf) argument
     #
     video_filter = ''
-    if video_crop_area and video_crop_area.lower()!='none':
+    if video_crop_area and video_crop_area.lower() != 'none':
         video_filter = video_filter + 'crop=%s' % video_crop_area
     if video_deinterlace_flag:
         if video_filter != '':
             video_filter = video_filter + ','
         video_filter = video_filter + 'pp=md'
-    if video_scale and video_scale.lower()!='none':
+    if video_scale and video_scale.lower() != 'none':
         if video_filter != '':
             video_filter = video_filter + ','
         video_filter = video_filter + 'scale=%s' % video_scale
     # optional video rotation -- were you holding your camera sideways?
-    #if video_filter != '':
+    # if video_filter != '':
     #    video_filter = video_filter + ','
-    #video_filter = video_filter + 'rotate=2' 
+    #video_filter = video_filter + 'rotate=2'
     if video_filter != '':
         video_filter = '-vf ' + video_filter
 
@@ -589,7 +675,7 @@ def build_compression_command (video_sou
     # build chapter argument
     #
     if video_chapter is not None:
-        chapter = '-chapter %d-%d' %(video_chapter,video_chapter)
+        chapter = '-chapter %d-%d' % (video_chapter, video_chapter)
     else:
         chapter = ''
 #    chapter = '-chapter 2-2'
@@ -601,15 +687,15 @@ def build_compression_command (video_sou
     if audio_sample_rate:
         if audio_filter != '':
             audio_filter = audio_filter + ','
-        audio_filter = audio_filter + 'lavcresample=%s' % audio_sample_rate 
+        audio_filter = audio_filter + 'lavcresample=%s' % audio_sample_rate
     if audio_volume_boost is not None:
         if audio_filter != '':
             audio_filter = audio_filter + ','
-        audio_filter = audio_filter + 'volume=%0.1f:1'%audio_volume_boost
+        audio_filter = audio_filter + 'volume=%0.1f:1' % audio_volume_boost
     if audio_filter != '':
         audio_filter = '-af ' + audio_filter
     #
-    #if audio_sample_rate:
+    # if audio_sample_rate:
     #    audio_filter = ('-srate %d ' % audio_sample_rate) + audio_filter
 
     #
@@ -630,26 +716,164 @@ def build_compression_command (video_sou
     cmd = "mencoder -quiet -info comment='Arkivist' '%(video_source_filename)s' %(seek_filter)s %(chapter)s -aid %(audio_id)s -o '%(video_final_filename)s' -ffourcc %(video_fourcc_override)s -ovc lavc -oac mp3lame %(lavcopts)s %(video_filter)s %(audio_filter)s" % locals()
     return cmd
 
-def compression_estimate (video_length, video_source_filename, video_final_filename, video_target_size, audio_id=128, video_bitrate=1000, video_codec='mpeg4', audio_codec='mp3', video_fourcc_override='FMP4', video_gray_flag=0, video_crop_area=None, video_aspect_ratio='16/9', video_scale=None, video_encode_passes=2, video_deinterlace_flag=0, audio_volume_boost=None, audio_sample_rate=None, audio_bitrate=None):
+
+def compression_estimate(
+        video_length,
+        video_source_filename,
+        video_final_filename,
+        video_target_size,
+        audio_id=128,
+        video_bitrate=1000,
+        video_codec='mpeg4',
+        audio_codec='mp3',
+        video_fourcc_override='FMP4',
+        video_gray_flag=0,
+        video_crop_area=None,
+        video_aspect_ratio='16/9',
+        video_scale=None,
+        video_encode_passes=2,
+        video_deinterlace_flag=0,
+        audio_volume_boost=None,
+        audio_sample_rate=None,
+        audio_bitrate=None):
     """This attempts to figure out the best compression ratio for a given set of compression options.
     """
     # TODO Need to account for AVI overhead.
-    skip = int(video_length/9) # offset to skip (-ss option in mencoder)
+    skip = int(video_length / 9)  # offset to skip (-ss option in mencoder)
     sample_length = 10
-    cmd1 = build_compression_command (video_source_filename, "compression_test_1.avi", video_target_size, audio_id, video_bitrate, video_codec, audio_codec, video_fourcc_override, video_gray_flag, video_crop_area, video_aspect_ratio, video_scale, video_encode_passes, video_deinterlace_flag, audio_volume_boost, audio_sample_rate, audio_bitrate, skip, sample_length)
-    cmd2 = build_compression_command (video_source_filename, "compression_test_2.avi", video_target_size, audio_id, video_bitrate, video_codec, audio_codec, video_fourcc_override, video_gray_flag, video_crop_area, video_aspect_ratio, video_scale, video_encode_passes, video_deinterlace_flag, audio_volume_boost, audio_sample_rate, audio_bitrate, skip*2, sample_length)
-    cmd3 = build_compression_command (video_source_filename, "compression_test_3.avi", video_target_size, audio_id, video_bitrate, video_codec, audio_codec, video_fourcc_override, video_gray_flag, video_crop_area, video_aspect_ratio, video_scale, video_encode_passes, video_deinterlace_flag, audio_volume_boost, audio_sample_rate, audio_bitrate, skip*4, sample_length)
-    cmd4 = build_compression_command (video_source_filename, "compression_test_4.avi", video_target_size, audio_id, video_bitrate, video_codec, audio_codec, video_fourcc_override, video_gray_flag, video_crop_area, video_aspect_ratio, video_scale, video_encode_passes, video_deinterlace_flag, audio_volume_boost, audio_sample_rate, audio_bitrate, skip*6, sample_length)
-    cmd5 = build_compression_command (video_source_filename, "compression_test_5.avi", video_target_size, audio_id, video_bitrate, video_codec, audio_codec, video_fourcc_override, video_gray_flag, video_crop_area, video_aspect_ratio, video_scale, video_encode_passes, video_deinterlace_flag, audio_volume_boost, audio_sample_rate, audio_bitrate, skip*8, sample_length)
+    cmd1 = build_compression_command(
+        video_source_filename,
+        "compression_test_1.avi",
+        video_target_size,
+        audio_id,
+        video_bitrate,
+        video_codec,
+        audio_codec,
+        video_fourcc_override,
+        video_gray_flag,
+        video_crop_area,
+        video_aspect_ratio,
+        video_scale,
+        video_encode_passes,
+        video_deinterlace_flag,
+        audio_volume_boost,
+        audio_sample_rate,
+        audio_bitrate,
+        skip,
+        sample_length)
+    cmd2 = build_compression_command(
+        video_source_filename,
+        "compression_test_2.avi",
+        video_target_size,
+        audio_id,
+        video_bitrate,
+        video_codec,
+        audio_codec,
+        video_fourcc_override,
+        video_gray_flag,
+        video_crop_area,
+        video_aspect_ratio,
+        video_scale,
+        video_encode_passes,
+        video_deinterlace_flag,
+        audio_volume_boost,
+        audio_sample_rate,
+        audio_bitrate,
+        skip * 2,
+        sample_length)
+    cmd3 = build_compression_command(
+        video_source_filename,
+        "compression_test_3.avi",
+        video_target_size,
+        audio_id,
+        video_bitrate,
+        video_codec,
+        audio_codec,
+        video_fourcc_override,
+        video_gray_flag,
+        video_crop_area,
+        video_aspect_ratio,
+        video_scale,
+        video_encode_passes,
+        video_deinterlace_flag,
+        audio_volume_boost,
+        audio_sample_rate,
+        audio_bitrate,
+        skip * 4,
+        sample_length)
+    cmd4 = build_compression_command(
+        video_source_filename,
+        "compression_test_4.avi",
+        video_target_size,
+        audio_id,
+        video_bitrate,
+        video_codec,
+        audio_codec,
+        video_fourcc_override,
+        video_gray_flag,
+        video_crop_area,
+        video_aspect_ratio,
+        video_scale,
+        video_encode_passes,
+        video_deinterlace_flag,
+        audio_volume_boost,
+        audio_sample_rate,
+        audio_bitrate,
+        skip * 6,
+        sample_length)
+    cmd5 = build_compression_command(
+        video_source_filename,
+        "compression_test_5.avi",
+        video_target_size,
+        audio_id,
+        video_bitrate,
+        video_codec,
+        audio_codec,
+        video_fourcc_override,
+        video_gray_flag,
+        video_crop_area,
+        video_aspect_ratio,
+        video_scale,
+        video_encode_passes,
+        video_deinterlace_flag,
+        audio_volume_boost,
+        audio_sample_rate,
+        audio_bitrate,
+        skip * 8,
+        sample_length)
     run(cmd1)
     run(cmd2)
     run(cmd3)
     run(cmd4)
     run(cmd5)
-    size = get_filesize ("compression_test_1.avi")+get_filesize ("compression_test_2.avi")+get_filesize ("compression_test_3.avi")+get_filesize ("compression_test_4.avi")+get_filesize ("compression_test_5.avi")
+    size = get_filesize("compression_test_1.avi") + get_filesize("compression_test_2.avi") + get_filesize(
+        "compression_test_3.avi") + get_filesize("compression_test_4.avi") + get_filesize("compression_test_5.avi")
     return (size / 5.0)
 
-def compress_video (video_source_filename, video_final_filename, video_target_size, audio_id=128, video_bitrate=1000, video_codec='mpeg4', audio_codec='mp3', video_fourcc_override='FMP4', video_gray_flag=0, video_crop_area=None, video_aspect_ratio='16/9', video_scale=None, video_encode_passes=2, video_deinterlace_flag=0, audio_volume_boost=None, audio_sample_rate=None, audio_bitrate=None, seek_skip=None, seek_length=None, video_chapter=None, verbose_flag=0, dry_run_flag=0):
+
+def compress_video(
+        video_source_filename,
+        video_final_filename,
+        video_target_size,
+        audio_id=128,
+        video_bitrate=1000,
+        video_codec='mpeg4',
+        audio_codec='mp3',
+        video_fourcc_override='FMP4',
+        video_gray_flag=0,
+        video_crop_area=None,
+        video_aspect_ratio='16/9',
+        video_scale=None,
+        video_encode_passes=2,
+        video_deinterlace_flag=0,
+        audio_volume_boost=None,
+        audio_sample_rate=None,
+        audio_bitrate=None,
+        seek_skip=None,
+        seek_length=None,
+        video_chapter=None,
+        verbose_flag=0,
+        dry_run_flag=0):
     """This compresses the video and audio of the given source video filename to the transcoded filename.
         This does a two-pass compression (I'm assuming mpeg4, I should probably make this smarter for other formats).
     """
@@ -658,18 +882,39 @@ def compress_video (video_source_filenam
     #
     #cmd = "mencoder -quiet '%(video_source_filename)s' -ss 65 -endpos 20 -aid %(audio_id)s -o '%(video_final_filename)s' -ffourcc %(video_fourcc_override)s -ovc lavc -oac lavc %(lavcopts)s %(video_filter)s %(audio_filter)s" % locals()
 
-    cmd = build_compression_command (video_source_filename, video_final_filename, video_target_size, audio_id, video_bitrate, video_codec, audio_codec, video_fourcc_override, video_gray_flag, video_crop_area, video_aspect_ratio, video_scale, video_encode_passes, video_deinterlace_flag, audio_volume_boost, audio_sample_rate, audio_bitrate, seek_skip, seek_length, video_chapter)
-    if verbose_flag: print cmd
+    cmd = build_compression_command(
+        video_source_filename,
+        video_final_filename,
+        video_target_size,
+        audio_id,
+        video_bitrate,
+        video_codec,
+        audio_codec,
+        video_fourcc_override,
+        video_gray_flag,
+        video_crop_area,
+        video_aspect_ratio,
+        video_scale,
+        video_encode_passes,
+        video_deinterlace_flag,
+        audio_volume_boost,
+        audio_sample_rate,
+        audio_bitrate,
+        seek_skip,
+        seek_length,
+        video_chapter)
+    if verbose_flag:
+        print cmd
     if not dry_run_flag:
         run(cmd)
         print
 
     # If not doing two passes then return early.
-    if video_encode_passes!='2':
+    if video_encode_passes != '2':
         return
 
     if verbose_flag:
-        video_actual_size = get_filesize (video_final_filename)
+        video_actual_size = get_filesize(video_final_filename)
         if video_actual_size > video_target_size:
             print "======================================================="
             print "WARNING!"
@@ -681,18 +926,27 @@ def compress_video (video_source_filenam
     #
     # do the second pass video compression
     #
-    cmd = cmd.replace ('vpass=1', 'vpass=2')
-    if verbose_flag: print cmd
+    cmd = cmd.replace('vpass=1', 'vpass=2')
+    if verbose_flag:
+        print cmd
     if not dry_run_flag:
         run(cmd)
         print
     return
 
-def compress_audio (audio_raw_filename, audio_compressed_filename, audio_lowpass_filter=None, audio_sample_rate=None, audio_bitrate=None, verbose_flag=0, dry_run_flag=0):
+
+def compress_audio(
+        audio_raw_filename,
+        audio_compressed_filename,
+        audio_lowpass_filter=None,
+        audio_sample_rate=None,
+        audio_bitrate=None,
+        verbose_flag=0,
+        dry_run_flag=0):
     """This is depricated.
     This compresses the raw audio file to the compressed audio filename.
     """
-    cmd = 'lame -h --athaa-sensitivity 1' # --cwlimit 11"
+    cmd = 'lame -h --athaa-sensitivity 1'  # --cwlimit 11"
     if audio_lowpass_filter:
         cmd = cmd + ' --lowpass ' + audio_lowpass_filter
     if audio_bitrate:
@@ -701,30 +955,62 @@ def compress_audio (audio_raw_filename,
     if audio_sample_rate:
         cmd = cmd + ' --resample ' + audio_sample_rate
     cmd = cmd + ' ' + audio_raw_filename + ' ' + audio_compressed_filename
-    if verbose_flag: print cmd
+    if verbose_flag:
+        print cmd
     if not dry_run_flag:
         (command_output, exitstatus) = run(cmd)
         print
         if exitstatus != 0:
             raise Exception('ERROR: lame failed to compress raw audio file.')
 
-def mux (video_final_filename, video_transcoded_filename, audio_compressed_filename, video_container_format, verbose_flag=0, dry_run_flag=0):
+
+def mux(
+        video_final_filename,
+        video_transcoded_filename,
+        audio_compressed_filename,
+        video_container_format,
+        verbose_flag=0,
+        dry_run_flag=0):
     """This is depricated. I used to use a three-pass encoding where I would mix the audio track separately, but
     this never worked very well (loss of audio sync)."""
-    if video_container_format.lower() == 'mkv': # Matroska
-        mux_mkv (video_final_filename, video_transcoded_filename, audio_compressed_filename, verbose_flag, dry_run_flag)
+    if video_container_format.lower() == 'mkv':  # Matroska
+        mux_mkv(
+            video_final_filename,
+            video_transcoded_filename,
+            audio_compressed_filename,
+            verbose_flag,
+            dry_run_flag)
     if video_container_format.lower() == 'avi':
-        mux_avi (video_final_filename, video_transcoded_filename, audio_compressed_filename, verbose_flag, dry_run_flag)
+        mux_avi(
+            video_final_filename,
+            video_transcoded_filename,
+            audio_compressed_filename,
+            verbose_flag,
+            dry_run_flag)
+
 
-def mux_mkv (video_final_filename, video_transcoded_filename, audio_compressed_filename, verbose_flag=0, dry_run_flag=0):
+def mux_mkv(
+        video_final_filename,
+        video_transcoded_filename,
+        audio_compressed_filename,
+        verbose_flag=0,
+        dry_run_flag=0):
     """This is depricated."""
-    cmd = 'mkvmerge -o %s --noaudio %s %s' % (video_final_filename, video_transcoded_filename, audio_compressed_filename)
-    if verbose_flag: print cmd
+    cmd = 'mkvmerge -o %s --noaudio %s %s' % (
+        video_final_filename, video_transcoded_filename, audio_compressed_filename)
+    if verbose_flag:
+        print cmd
     if not dry_run_flag:
         run(cmd)
         print
 
-def mux_avi (video_final_filename, video_transcoded_filename, audio_compressed_filename, verbose_flag=0, dry_run_flag=0):
+
+def mux_avi(
+        video_final_filename,
+        video_transcoded_filename,
+        audio_compressed_filename,
+        verbose_flag=0,
+        dry_run_flag=0):
     """This is depricated."""
     pass
 #    cmd = "mencoder -quiet -oac copy -ovc copy -o '%s' -audiofile %s '%s'" % (video_final_filename, audio_compressed_filename, video_transcoded_filename)
@@ -733,19 +1019,24 @@ def mux_avi (video_final_filename, video
 #        run(cmd)
 #        print
 
-def delete_tmp_files (audio_raw_filename, verbose_flag=0, dry_run_flag=0):
+
+def delete_tmp_files(audio_raw_filename, verbose_flag=0, dry_run_flag=0):
     global GLOBAL_LOGFILE_NAME
-    file_list = ' '.join([GLOBAL_LOGFILE_NAME, 'divx2pass.log', audio_raw_filename ])
+    file_list = ' '.join(
+        [GLOBAL_LOGFILE_NAME, 'divx2pass.log', audio_raw_filename])
     cmd = 'rm -f ' + file_list
-    if verbose_flag: print cmd
+    if verbose_flag:
+        print cmd
     if not dry_run_flag:
         run(cmd)
         print
-    
+
 ##############################################################################
 # This is the interactive Q&A that is used if a conf file was not given.
 ##############################################################################
-def interactive_convert ():
+
+
+def interactive_convert():
 
     global prompts, prompts_key_order
 
@@ -755,10 +1046,10 @@ def interactive_convert ():
     print " Enter '?' at any question to get extra help."
     print "=============================================="
     print
-  
-    # Ask for the level of options the user wants. 
+
+    # Ask for the level of options the user wants.
     # A lot of code just to print a string!
-    level_sort = {0:'', 1:'', 2:''} 
+    level_sort = {0: '', 1: '', 2: ''}
     for k in prompts:
         level = prompts[k][3]
         if level < 0 or level > 2:
@@ -775,11 +1066,16 @@ def interactive_convert ():
     for k in prompts_key_order:
         if k == 'video_aspect_ratio':
             guess_aspect = get_aspect_ratio(options['video_source_filename'])
-            options[k] = input_option (prompts[k][1], guess_aspect, prompts[k][2], prompts[k][3], max_prompt_level)
+            options[k] = input_option(
+                prompts[k][1],
+                guess_aspect,
+                prompts[k][2],
+                prompts[k][3],
+                max_prompt_level)
         elif k == 'audio_id':
-            aid_list = get_aid_list (options['video_source_filename'])
+            aid_list = get_aid_list(options['video_source_filename'])
             default_id = '128'
-            if max_prompt_level>=prompts[k][3]: 
+            if max_prompt_level >= prompts[k][3]:
                 if len(aid_list) > 1:
                     print "This video has more than one audio stream. The following stream audio IDs were found:"
                     for aid in aid_list:
@@ -791,11 +1087,16 @@ def interactive_convert ():
                     print "If reading directly from a DVD then the DVD device might be busy."
                     print "Using a default setting of stream id 128 (main audio on most DVDs)."
                     default_id = '128'
-            options[k] = input_option (prompts[k][1], default_id, prompts[k][2], prompts[k][3], max_prompt_level)
+            options[k] = input_option(
+                prompts[k][1],
+                default_id,
+                prompts[k][2],
+                prompts[k][3],
+                max_prompt_level)
         elif k == 'subtitle_id':
-            sid_list = get_sid_list (options['video_source_filename'])
+            sid_list = get_sid_list(options['video_source_filename'])
             default_id = 'None'
-            if max_prompt_level>=prompts[k][3]:
+            if max_prompt_level >= prompts[k][3]:
                 if len(sid_list) > 0:
                     print "This video has one or more subtitle streams. The following stream subtitle IDs were found:"
                     for sid in sid_list:
@@ -807,24 +1108,45 @@ def interactive_convert ():
                     print "Unable to get the list of subtitle streams from this video. It may have none."
                     print "Setting default to None."
                     default_id = 'None'
-            options[k] = input_option (prompts[k][1], default_id, prompts[k][2], prompts[k][3], max_prompt_level)
+            options[k] = input_option(
+                prompts[k][1],
+                default_id,
+                prompts[k][2],
+                prompts[k][3],
+                max_prompt_level)
         elif k == 'audio_lowpass_filter':
-            lowpass_default =  "%.1f" % (math.floor(float(options['audio_sample_rate']) / 2.0))
-            options[k] = input_option (prompts[k][1], lowpass_default, prompts[k][2], prompts[k][3], max_prompt_level)
+            lowpass_default = "%.1f" % (math.floor(
+                float(options['audio_sample_rate']) / 2.0))
+            options[k] = input_option(
+                prompts[k][1],
+                lowpass_default,
+                prompts[k][2],
+                prompts[k][3],
+                max_prompt_level)
         elif k == 'video_bitrate':
             if options['video_length'].lower() == 'none':
-                options[k] = input_option (prompts[k][1], '1000', prompts[k][2], prompts[k][3], max_prompt_level)
+                options[k] = input_option(prompts[k][1], '1000', prompts[k][
+                                          2], prompts[k][3], max_prompt_level)
             else:
-                options[k] = input_option (prompts[k][1], prompts[k][0], prompts[k][2], prompts[k][3], max_prompt_level)
+                options[k] = input_option(prompts[k][1], prompts[k][0], prompts[
+                                          k][2], prompts[k][3], max_prompt_level)
         else:
-            # don't bother asking for video_target_size or video_bitrate_overhead if video_bitrate was set
-            if (k=='video_target_size' or k=='video_bitrate_overhead') and options['video_bitrate']!='calc':
+            # don't bother asking for video_target_size or
+            # video_bitrate_overhead if video_bitrate was set
+            if (k == 'video_target_size' or k == 'video_bitrate_overhead') and options[
+                    'video_bitrate'] != 'calc':
                 continue
             # don't bother with crop area if video length is none
-            if k == 'video_crop_area' and options['video_length'].lower() == 'none':
+            if k == 'video_crop_area' and options[
+                    'video_length'].lower() == 'none':
                 options['video_crop_area'] = 'none'
                 continue
-            options[k] = input_option (prompts[k][1], prompts[k][0], prompts[k][2], prompts[k][3], max_prompt_level)
+            options[k] = input_option(
+                prompts[k][1],
+                prompts[k][0],
+                prompts[k][2],
+                prompts[k][3],
+                max_prompt_level)
 
     #options['video_final_filename'] = options['video_final_filename'] + "." + options['video_container_format']
 
@@ -832,7 +1154,7 @@ def interactive_convert ():
     print "Ready to Rippy!"
     print
     print "The following options will be used:"
-    for k,v in options.iteritems():
+    for k, v in options.iteritems():
         print "%27s : %s" % (k, v)
 
     print
@@ -843,7 +1165,8 @@ def interactive_convert ():
         os._exit(1)
     return options
 
-def clean_options (d):
+
+def clean_options(d):
     """This validates and cleans up the options dictionary.
     After reading options interactively or from a conf file
     we need to make sure that the values make sense and are
@@ -859,14 +1182,14 @@ def clean_options (d):
         d[k] = d[k].strip()
         # convert all flag options to 0 or 1
         if '_flag' in k:
-            if type(d[k]) is types.StringType:
-                if d[k].strip().lower()[0] in 'yt1': #Yes, True, 1
+            if isinstance(d[k], types.StringType):
+                if d[k].strip().lower()[0] in 'yt1':  # Yes, True, 1
                     d[k] = 1
                 else:
                     d[k] = 0
     d['video_bitrate'] = d['video_bitrate'].lower()
-    if d['video_bitrate'][0]=='c':
-        d['video_bitrate']='calc'
+    if d['video_bitrate'][0] == 'c':
+        d['video_bitrate'] = 'calc'
     else:
         d['video_bitrate'] = int(float(d['video_bitrate']))
     try:
@@ -892,7 +1215,7 @@ def clean_options (d):
         d['subtitle_id'] = int(d['subtitle_id'])
     except:
         d['subtitle_id'] = None
-        
+
     try:
         d['video_bitrate_overhead'] = float(d['video_bitrate_overhead'])
     except:
@@ -901,45 +1224,47 @@ def clean_options (d):
     d['audio_bitrate'] = int(d['audio_bitrate'])
     d['audio_sample_rate'] = int(d['audio_sample_rate'])
     d['audio_volume_boost'] = d['audio_volume_boost'].lower()
-    if d['audio_volume_boost'][0]=='n':
+    if d['audio_volume_boost'][0] == 'n':
         d['audio_volume_boost'] = None
     else:
-        d['audio_volume_boost'] = d['audio_volume_boost'].replace('db','')
+        d['audio_volume_boost'] = d['audio_volume_boost'].replace('db', '')
         d['audio_volume_boost'] = float(d['audio_volume_boost'])
 
 #    assert (d['video_bitrate']=='calc' and d['video_target_size']!='none')
 # or (d['video_bitrate']!='calc' and d['video_target_size']=='none')
 
     d['video_scale'] = d['video_scale'].lower()
-    if d['video_scale'][0]=='n':
-        d['video_scale']='none'
+    if d['video_scale'][0] == 'n':
+        d['video_scale'] = 'none'
     else:
         al = re.findall("([0-9]+).*?([0-9]+)", d['video_scale'])
-        d['video_scale']=al[0][0]+':'+al[0][1]
+        d['video_scale'] = al[0][0] + ':' + al[0][1]
     d['video_crop_area'] = d['video_crop_area'].lower()
-    if d['video_crop_area'][0]=='n':
-        d['video_crop_area']='none'
+    if d['video_crop_area'][0] == 'n':
+        d['video_crop_area'] = 'none'
     d['video_length'] = d['video_length'].lower()
-    if d['video_length'][0]=='c':
-        d['video_length']='calc'
-    elif d['video_length'][0]=='n':
-        d['video_length']='none'
+    if d['video_length'][0] == 'c':
+        d['video_length'] = 'calc'
+    elif d['video_length'][0] == 'n':
+        d['video_length'] = 'none'
     else:
         d['video_length'] = int(float(d['video_length']))
-    if d['video_length']==0:
+    if d['video_length'] == 0:
         d['video_length'] = 'none'
-    assert (not (d['video_length']=='none' and d['video_bitrate']=='calc'))
+    assert (not (d['video_length'] == 'none' and d['video_bitrate'] == 'calc'))
     return d
 
-def main ():
+
+def main():
     try:
-        optlist, args = getopt.getopt(sys.argv[1:], 'h?', ['help','h','?'])
-    except Exception, e:
+        optlist, args = getopt.getopt(sys.argv[1:], 'h?', ['help', 'h', '?'])
+    except Exception as e:
         print str(e)
         exit_with_usage()
     command_line_options = dict(optlist)
     # There are a million ways to cry for help. These are but a few of them.
-    if [elem for elem in command_line_options if elem in ['-h','--h','-?','--?','--help']]:
+    if [elem for elem in command_line_options if elem in [
+            '-h', '--h', '-?', '--?', '--help']]:
         exit_with_usage(0)
 
     missing = check_missing_requirements()
@@ -959,16 +1284,21 @@ def main ():
             os._exit(1)
 
     if len(args) > 0:
-        # cute one-line string-to-dictionary parser (two-lines if you count this comment):
-        options = dict(re.findall('([^: \t\n]*)\s*:\s*(".*"|[^ \t\n]*)', file(args[0]).read()))
+        # cute one-line string-to-dictionary parser (two-lines if you count
+        # this comment):
+        options = dict(
+            re.findall(
+                '([^: \t\n]*)\s*:\s*(".*"|[^ \t\n]*)',
+                file(
+                    args[0]).read()))
         options = clean_options(options)
-        convert (options)
+        convert(options)
     else:
-        options = interactive_convert ()
+        options = interactive_convert()
         options = clean_options(options)
-        convert (options)
+        convert(options)
     print "# Done!"
-    
+
 if __name__ == "__main__":
     try:
         start_time = time.time()
@@ -977,7 +1307,7 @@ if __name__ == "__main__":
         print time.asctime()
         print "TOTAL TIME IN MINUTES:",
         print (time.time() - start_time) / 60.0
-    except Exception, e:
+    except Exception as e:
         tb_dump = traceback.format_exc()
         print "=========================================================================="
         print "ERROR -- Unexpected exception in script."
@@ -990,4 +1320,3 @@ if __name__ == "__main__":
         print >>GLOBAL_LOGFILE, str(tb_dump)
         print >>GLOBAL_LOGFILE, "=========================================================================="
         exit_with_usage(3)
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/script.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/script.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/script.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/script.py Tue Sep  6 15:57:50 2016
@@ -18,33 +18,45 @@ Example:
 
 """
 
-import os, sys, time, getopt
-import signal, fcntl, termios, struct
+import os
+import sys
+import time
+import getopt
+import signal
+import fcntl
+import termios
+import struct
 import traceback
 import pexpect
 
-global_pexpect_instance = None # Used by signal handler
+global_pexpect_instance = None  # Used by signal handler
+
 
 def exit_with_usage():
 
     print globals()['__doc__']
     os._exit(1)
 
+
 def main():
 
     ######################################################################
     # Parse the options, arguments, get ready, etc.
     ######################################################################
     try:
-        optlist, args = getopt.getopt(sys.argv[1:], 'h?ac:', ['help','h','?'])
-    except Exception, e:
+        optlist, args = getopt.getopt(
+            sys.argv[
+                1:], 'h?ac:', [
+                'help', 'h', '?'])
+    except Exception as e:
         print str(e)
         exit_with_usage()
     options = dict(optlist)
     if len(args) > 1:
         exit_with_usage()
-        
-    if [elem for elem in options if elem in ['-h','--h','-?','--?','--help']]:
+
+    if [elem for elem in options if elem in [
+            '-h', '--h', '-?', '--?', '--help']]:
         print "Help:"
         exit_with_usage()
 
@@ -53,17 +65,17 @@ def main():
     else:
         script_filename = "script.log"
     if '-a' in options:
-        fout = file (script_filename, "ab")
+        fout = file(script_filename, "ab")
     else:
-        fout = file (script_filename, "wb")
+        fout = file(script_filename, "wb")
     if '-c' in options:
         command = options['-c']
     else:
         command = "sh"
 
     # Begin log with date/time in the form CCCCyymm.hhmmss
-    fout.write ('# %4d%02d%02d.%02d%02d%02d \n' % time.localtime()[:-3])
-    
+    fout.write('# %4d%02d%02d.%02d%02d%02d \n' % time.localtime()[:-3])
+
     ######################################################################
     # Start the interactive session
     ######################################################################
@@ -78,26 +90,26 @@ def main():
     fout.close()
     return 0
 
-def sigwinch_passthrough (sig, data):
+
+def sigwinch_passthrough(sig, data):
 
     # Check for buggy platforms (see pexpect.setwinsize()).
     if 'TIOCGWINSZ' in dir(termios):
         TIOCGWINSZ = termios.TIOCGWINSZ
     else:
-        TIOCGWINSZ = 1074295912 # assume
-    s = struct.pack ("HHHH", 0, 0, 0, 0)
-    a = struct.unpack ('HHHH', fcntl.ioctl(sys.stdout.fileno(), TIOCGWINSZ , s))
+        TIOCGWINSZ = 1074295912  # assume
+    s = struct.pack("HHHH", 0, 0, 0, 0)
+    a = struct.unpack('HHHH', fcntl.ioctl(sys.stdout.fileno(), TIOCGWINSZ, s))
     global global_pexpect_instance
-    global_pexpect_instance.setwinsize(a[0],a[1])
+    global_pexpect_instance.setwinsize(a[0], a[1])
 
 if __name__ == "__main__":
     try:
         main()
-    except SystemExit, e:
+    except SystemExit as e:
         raise e
-    except Exception, e:
+    except Exception as e:
         print "ERROR"
         print str(e)
         traceback.print_exc()
         os._exit(1)
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ssh_session.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ssh_session.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ssh_session.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ssh_session.py Tue Sep  6 15:57:50 2016
@@ -5,10 +5,12 @@
 # April 2003
 #
 from pexpect import *
-import os, sys
+import os
+import sys
 import getpass
 import time
-    
+
+
 class ssh_session:
 
     "Session with extra state including the password to be used."
@@ -25,30 +27,29 @@ class ssh_session:
             '@@@@@@@@@@@@',
             'Command not found.',
             EOF,
-            ]
-        
-        self.f = open('ssh.out','w')
-            
+        ]
+
+        self.f = open('ssh.out', 'w')
+
     def __repr__(self):
 
-        outl = 'class :'+self.__class__.__name__
+        outl = 'class :' + self.__class__.__name__
         for attr in self.__dict__:
             if attr == 'password':
-                outl += '\n\t'+attr+' : '+'*'*len(self.password)
+                outl += '\n\t' + attr + ' : ' + '*' * len(self.password)
             else:
-                outl += '\n\t'+attr+' : '+str(getattr(self, attr))
+                outl += '\n\t' + attr + ' : ' + str(getattr(self, attr))
         return outl
 
     def __exec(self, command):
-
         "Execute a command on the remote host.    Return the output."
         child = spawn(command,
-                                    #timeout=10,
-                                    )
+                      # timeout=10,
+                      )
         if self.verbose:
             sys.stderr.write("-> " + command + "\n")
         seen = child.expect(self.keys)
-        self.f.write(str(child.before) + str(child.after)+'\n')
+        self.f.write(str(child.before) + str(child.after) + '\n')
         if seen == 0:
             child.sendline('yes')
             seen = child.expect(self.keys)
@@ -61,13 +62,13 @@ class ssh_session:
             # Added to allow the background running of remote process
             if not child.isalive():
                 seen = child.expect(self.keys)
-        if seen == 2: 
+        if seen == 2:
             lines = child.readlines()
             self.f.write(lines)
         if self.verbose:
             sys.stderr.write("<- " + child.before + "|\n")
         try:
-            self.f.write(str(child.before) + str(child.after)+'\n')
+            self.f.write(str(child.before) + str(child.after) + '\n')
         except:
             pass
         self.f.close()
@@ -75,20 +76,18 @@ class ssh_session:
 
     def ssh(self, command):
 
-        return self.__exec("ssh -l %s %s \"%s\"" \
-                                             % (self.user,self.host,command))
+        return self.__exec("ssh -l %s %s \"%s\""
+                           % (self.user, self.host, command))
 
     def scp(self, src, dst):
 
-        return self.__exec("scp %s %s@%s:%s" \
-                                             % (src, session.user, session.host, dst))
+        return self.__exec("scp %s %s@%s:%s"
+                           % (src, session.user, session.host, dst))
 
     def exists(self, file):
-
         "Retrieve file permissions of specified remote file."
         seen = self.ssh("/bin/ls -ld %s" % file)
         if string.find(seen, "No such file") > -1:
-            return None # File doesn't exist
+            return None  # File doesn't exist
         else:
-            return seen.split()[0] # Return permission field of listing.
-
+            return seen.split()[0]  # Return permission field of listing.

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ssh_tunnel.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ssh_tunnel.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ssh_tunnel.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/ssh_tunnel.py Tue Sep  6 15:57:50 2016
@@ -23,50 +23,54 @@ host = raw_input('Hostname: ')
 user = raw_input('Username: ')
 X = getpass.getpass('Password: ')
 
-def get_process_info ():
 
-    # This seems to work on both Linux and BSD, but should otherwise be considered highly UNportable.
+def get_process_info():
 
-    ps = pexpect.run ('ps ax -O ppid')
+    # This seems to work on both Linux and BSD, but should otherwise be
+    # considered highly UNportable.
+
+    ps = pexpect.run('ps ax -O ppid')
     pass
-def start_tunnel ():
+
+
+def start_tunnel():
     try:
-        ssh_tunnel = pexpect.spawn (tunnel_command % globals())
-        ssh_tunnel.expect ('password:')
-        time.sleep (0.1)
-        ssh_tunnel.sendline (X)
-        time.sleep (60) # Cygwin is slow to update process status.
-        ssh_tunnel.expect (pexpect.EOF)
+        ssh_tunnel = pexpect.spawn(tunnel_command % globals())
+        ssh_tunnel.expect('password:')
+        time.sleep(0.1)
+        ssh_tunnel.sendline(X)
+        time.sleep(60)  # Cygwin is slow to update process status.
+        ssh_tunnel.expect(pexpect.EOF)
 
     except Exception, e:
         print str(e)
 
-def main ():
+
+def main():
 
     while True:
-        ps = pexpect.spawn ('ps')
-        time.sleep (1)
-        index = ps.expect (['/usr/bin/ssh', pexpect.EOF, pexpect.TIMEOUT])
+        ps = pexpect.spawn('ps')
+        time.sleep(1)
+        index = ps.expect(['/usr/bin/ssh', pexpect.EOF, pexpect.TIMEOUT])
         if index == 2:
             print 'TIMEOUT in ps command...'
             print str(ps)
-            time.sleep (13)
+            time.sleep(13)
         if index == 1:
             print time.asctime(),
             print 'restarting tunnel'
-            start_tunnel ()
-            time.sleep (11)
-	        print 'tunnel OK'
+            start_tunnel()
+            time.sleep(11)
+                print 'tunnel OK'
         else:
             # print 'tunnel OK'
-            time.sleep (7)
+            time.sleep(7)
 
 if __name__ == '__main__':
-    main ()
+    main()
 
 # This was for older SSH versions that didn't have -f option
 #tunnel_command = 'ssh -C -n -L 25:%(host)s:25 -L 110:%(host)s:110 %(user)s@%(host)s -f nothing.sh'
-#nothing_script = """#!/bin/sh
-#while true; do sleep 53; done
+# nothing_script = """#!/bin/sh
+# while true; do sleep 53; done
 #"""
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/sshls.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/sshls.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/sshls.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/sshls.py Tue Sep  6 15:57:50 2016
@@ -7,10 +7,11 @@ $Id: sshls.py 489 2007-11-28 23:40:34Z n
 """
 
 import pexpect
-import getpass, os
+import getpass
+import os
 
-def ssh_command (user, host, password, command):
 
+def ssh_command(user, host, password, command):
     """This runs a command on the remote host. This could also be done with the
 pxssh class, but this demonstrates what that class does at a simpler level.
 This returns a pexpect.spawn object. This handles the case when you try to
@@ -18,39 +19,39 @@ connect to a new host and ssh asks you i
 fingerprint and continue connecting. """
 
     ssh_newkey = 'Are you sure you want to continue connecting'
-    child = pexpect.spawn('ssh -l %s %s %s'%(user, host, command))
+    child = pexpect.spawn('ssh -l %s %s %s' % (user, host, command))
     i = child.expect([pexpect.TIMEOUT, ssh_newkey, 'password: '])
-    if i == 0: # Timeout
+    if i == 0:  # Timeout
         print 'ERROR!'
         print 'SSH could not login. Here is what SSH said:'
         print child.before, child.after
         return None
-    if i == 1: # SSH does not have the public key. Just accept it.
-        child.sendline ('yes')
-        child.expect ('password: ')
+    if i == 1:  # SSH does not have the public key. Just accept it.
+        child.sendline('yes')
+        child.expect('password: ')
         i = child.expect([pexpect.TIMEOUT, 'password: '])
-        if i == 0: # Timeout
+        if i == 0:  # Timeout
             print 'ERROR!'
             print 'SSH could not login. Here is what SSH said:'
             print child.before, child.after
-            return None       
+            return None
     child.sendline(password)
     return child
 
-def main ():
+
+def main():
 
     host = raw_input('Hostname: ')
     user = raw_input('User: ')
     password = getpass.getpass('Password: ')
-    child = ssh_command (user, host, password, '/bin/ls -l')
+    child = ssh_command(user, host, password, '/bin/ls -l')
     child.expect(pexpect.EOF)
     print child.before
 
 if __name__ == '__main__':
     try:
         main()
-    except Exception, e:
+    except Exception as e:
         print str(e)
         traceback.print_exc()
         os._exit(1)
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/topip.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/topip.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/topip.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/topip.py Tue Sep  6 15:57:50 2016
@@ -46,21 +46,30 @@ Noah Spurrier
 $Id: topip.py 489 2007-11-28 23:40:34Z noah $
 """
 
-import pexpect, pxssh # See http://pexpect.sourceforge.net/
-import os, sys, time, re, getopt, pickle, getpass, smtplib
+import pexpect
+import pxssh  # See http://pexpect.sourceforge.net/
+import os
+import sys
+import time
+import re
+import getopt
+import pickle
+import getpass
+import smtplib
 import traceback
 from pprint import pprint
 
 TOPIP_LOG_FILE = '/var/log/topip.log'
 TOPIP_LAST_RUN_STATS = '/var/run/topip.last'
 
+
 def exit_with_usage():
 
     print globals()['__doc__']
     os._exit(1)
 
-def stats(r):
 
+def stats(r):
     """This returns a dict of the median, average, standard deviation, min and max of the given sequence.
 
     >>> from topip import stats
@@ -75,30 +84,35 @@ def stats(r):
     """
 
     total = sum(r)
-    avg = float(total)/float(len(r))
-    sdsq = sum([(i-avg)**2 for i in r])
-    s = list(r)
-    s.sort()
-    return dict(zip(['med', 'avg', 'stddev', 'min', 'max'] , (s[len(s)//2], avg, (sdsq/len(r))**.5, min(r), max(r))))
+    avg = float(total) / float(len(r))
+    sdsq = sum([(i - avg)**2 for i in r])
+    s = sorted(r)
+    return dict(zip(['med', 'avg', 'stddev', 'min', 'max'],
+                    (s[len(s) // 2], avg, (sdsq / len(r))**.5, min(r), max(r))))
 
-def send_alert (message, subject, addr_from, addr_to, smtp_server='localhost'):
 
+def send_alert(message, subject, addr_from, addr_to, smtp_server='localhost'):
     """This sends an email alert.
     """
 
-    message = 'From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n' % (addr_from, addr_to, subject) + message
+    message = 'From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n' % (
+        addr_from, addr_to, subject) + message
     server = smtplib.SMTP(smtp_server)
     server.sendmail(addr_from, addr_to, message)
     server.quit()
 
+
 def main():
 
     ######################################################################
-    ## Parse the options, arguments, etc.
+    # Parse the options, arguments, etc.
     ######################################################################
     try:
-        optlist, args = getopt.getopt(sys.argv[1:], 'h?valqs:u:p:n:', ['help','h','?','ipv6','stddev='])
-    except Exception, e:
+        optlist, args = getopt.getopt(
+            sys.argv[
+                1:], 'h?valqs:u:p:n:', [
+                'help', 'h', '?', 'ipv6', 'stddev='])
+    except Exception as e:
         print str(e)
         exit_with_usage()
     options = dict(optlist)
@@ -119,7 +133,8 @@ def main():
             print args, len(args)
             return 0
             exit_with_usage()
-    if [elem for elem in options if elem in ['-h','--h','-?','--?','--help']]:
+    if [elem for elem in options if elem in [
+            '-h', '--h', '-?', '--?', '--help']]:
         print 'Help:'
         exit_with_usage()
     if '-s' in options:
@@ -183,10 +198,11 @@ def main():
         p.sendline('netstat -n -t')
         PROMPT = p.PROMPT
 
-    # loop through each matching netstat_pattern and put the ip address in the list.
+    # loop through each matching netstat_pattern and put the ip address in the
+    # list.
     ip_list = {}
     try:
-        while 1:
+        while True:
             i = p.expect([PROMPT, netstat_pattern])
             if i == 0:
                 break
@@ -199,21 +215,25 @@ def main():
         pass
 
     # remove a few common, uninteresting addresses from the dictionary.
-    ip_list = dict([ (key,value) for key,value in ip_list.items() if '192.168.' not in key])
-    ip_list = dict([ (key,value) for key,value in ip_list.items() if '127.0.0.1' not in key])
+    ip_list = dict([(key, value)
+                    for key, value in ip_list.items() if '192.168.' not in key])
+    ip_list = dict([(key, value)
+                    for key, value in ip_list.items() if '127.0.0.1' not in key])
 
     # sort dict by value (count)
     #ip_list = sorted(ip_list.iteritems(),lambda x,y:cmp(x[1], y[1]),reverse=True)
     ip_list = ip_list.items()
     if len(ip_list) < 1:
-        if verbose: print 'Warning: no networks connections worth looking at.'
+        if verbose:
+            print 'Warning: no networks connections worth looking at.'
         return 0
-    ip_list.sort(lambda x,y:cmp(y[1],x[1]))
+    ip_list.sort(lambda x, y: cmp(y[1], x[1]))
 
     # generate some stats for the ip addresses found.
     if average_n <= 1:
         average_n = None
-    s = stats(zip(*ip_list[0:average_n])[1]) # The * unary operator treats the list elements as arguments 
+    # The * unary operator treats the list elements as arguments
+    s = stats(zip(*ip_list[0:average_n])[1])
     s['maxip'] = ip_list[0]
 
     # print munin-style or verbose results for the stats.
@@ -223,33 +243,44 @@ def main():
         print 'connections_stddev.value', s['stddev']
         return 0
     if verbose:
-        pprint (s)
+        pprint(s)
         print
-        pprint (ip_list[0:average_n])
+        pprint(ip_list[0:average_n])
 
     # load the stats from the last run.
     try:
         last_stats = pickle.load(file(TOPIP_LAST_RUN_STATS))
     except:
-        last_stats = {'maxip':None}
+        last_stats = {'maxip': None}
 
-    if s['maxip'][1] > (s['stddev'] * stddev_trigger) and s['maxip']==last_stats['maxip']:
-        if verbose: print 'The maxip has been above trigger for two consecutive samples.'
+    if s['maxip'][1] > (
+        s['stddev'] *
+            stddev_trigger) and s['maxip'] == last_stats['maxip']:
+        if verbose:
+            print 'The maxip has been above trigger for two consecutive samples.'
         if alert_flag:
-            if verbose: print 'SENDING ALERT EMAIL'
-            send_alert(str(s), 'ALERT on %s' % hostname, alert_addr_from, alert_addr_to)
+            if verbose:
+                print 'SENDING ALERT EMAIL'
+            send_alert(
+                str(s),
+                'ALERT on %s' %
+                hostname,
+                alert_addr_from,
+                alert_addr_to)
         if log_flag:
-            if verbose: print 'LOGGING THIS EVENT'
-            fout = file(TOPIP_LOG_FILE,'a')
+            if verbose:
+                print 'LOGGING THIS EVENT'
+            fout = file(TOPIP_LOG_FILE, 'a')
             #dts = time.strftime('%Y:%m:%d:%H:%M:%S', time.localtime())
             dts = time.asctime()
-            fout.write ('%s - %d connections from %s\n' % (dts,s['maxip'][1],str(s['maxip'][0])))
+            fout.write('%s - %d connections from %s\n' %
+                       (dts, s['maxip'][1], str(s['maxip'][0])))
             fout.close()
 
     # save state to TOPIP_LAST_RUN_STATS
     try:
-        pickle.dump(s, file(TOPIP_LAST_RUN_STATS,'w'))
-        os.chmod (TOPIP_LAST_RUN_STATS, 0664)
+        pickle.dump(s, file(TOPIP_LAST_RUN_STATS, 'w'))
+        os.chmod(TOPIP_LAST_RUN_STATS, 0o664)
     except:
         pass
     # p.logout()
@@ -258,10 +289,9 @@ if __name__ == '__main__':
     try:
         main()
         sys.exit(0)
-    except SystemExit, e:
+    except SystemExit as e:
         raise e
-    except Exception, e:
+    except Exception as e:
         print str(e)
         traceback.print_exc()
         os._exit(1)
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/examples/uptime.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/examples/uptime.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/examples/uptime.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/examples/uptime.py Tue Sep  6 15:57:50 2016
@@ -29,29 +29,30 @@ import re
 #  6:08PM  up 4 days, 22:26, 1 user, load averages: 0.13, 0.09, 0.08
 
 # This parses uptime output into the major groups using regex group matching.
-p = pexpect.spawn ('uptime')
-p.expect('up\s+(.*?),\s+([0-9]+) users?,\s+load averages?: ([0-9]+\.[0-9][0-9]),?\s+([0-9]+\.[0-9][0-9]),?\s+([0-9]+\.[0-9][0-9])')
+p = pexpect.spawn('uptime')
+p.expect(
+    'up\s+(.*?),\s+([0-9]+) users?,\s+load averages?: ([0-9]+\.[0-9][0-9]),?\s+([0-9]+\.[0-9][0-9]),?\s+([0-9]+\.[0-9][0-9])')
 duration, users, av1, av5, av15 = p.match.groups()
 
 # The duration is a little harder to parse because of all the different
 # styles of uptime. I'm sure there is a way to do this all at once with
 # one single regex, but I bet it would be hard to read and maintain.
-# If anyone wants to send me a version using a single regex I'd be happy to see it.
+# If anyone wants to send me a version using a single regex I'd be happy
+# to see it.
 days = '0'
 hours = '0'
 mins = '0'
 if 'day' in duration:
-    p.match = re.search('([0-9]+)\s+day',duration)
+    p.match = re.search('([0-9]+)\s+day', duration)
     days = str(int(p.match.group(1)))
 if ':' in duration:
-    p.match = re.search('([0-9]+):([0-9]+)',duration)
+    p.match = re.search('([0-9]+):([0-9]+)', duration)
     hours = str(int(p.match.group(1)))
     mins = str(int(p.match.group(2)))
 if 'min' in duration:
-    p.match = re.search('([0-9]+)\s+min',duration)
+    p.match = re.search('([0-9]+)\s+min', duration)
     mins = str(int(p.match.group(1)))
 
 # Print the parsed fields in CSV format.
 print 'days, hours, minutes, users, cpu avg 1 min, cpu avg 5 min, cpu avg 15 min'
 print '%s, %s, %s, %s, %s, %s, %s' % (days, hours, mins, users, av1, av5, av15)
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/fdpexpect.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/fdpexpect.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/fdpexpect.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/fdpexpect.py Tue Sep  6 15:57:50 2016
@@ -9,58 +9,74 @@ import os
 
 __all__ = ['fdspawn']
 
+
 class fdspawn (spawn):
 
     """This is like pexpect.spawn but allows you to supply your own open file
     descriptor. For example, you could use it to read through a file looking
     for patterns, or to control a modem or serial device. """
 
-    def __init__ (self, fd, args=[], timeout=30, maxread=2000, searchwindowsize=None, logfile=None):
-
+    def __init__(
+            self,
+            fd,
+            args=[],
+            timeout=30,
+            maxread=2000,
+            searchwindowsize=None,
+            logfile=None):
         """This takes a file descriptor (an int) or an object that support the
         fileno() method (returning an int). All Python file-like objects
         support fileno(). """
 
-        ### TODO: Add better handling of trying to use fdspawn in place of spawn
-        ### TODO: (overload to allow fdspawn to also handle commands as spawn does.
+        # TODO: Add better handling of trying to use fdspawn in place of spawn
+        # TODO: (overload to allow fdspawn to also handle commands as spawn
+        # does.
 
-        if type(fd) != type(0) and hasattr(fd, 'fileno'):
+        if not isinstance(fd, type(0)) and hasattr(fd, 'fileno'):
             fd = fd.fileno()
 
-        if type(fd) != type(0):
-            raise ExceptionPexpect ('The fd argument is not an int. If this is a command string then maybe you want to use pexpect.spawn.')
+        if not isinstance(fd, type(0)):
+            raise ExceptionPexpect(
+                'The fd argument is not an int. If this is a command string then maybe you want to use pexpect.spawn.')
 
-        try: # make sure fd is a valid file descriptor
+        try:  # make sure fd is a valid file descriptor
             os.fstat(fd)
         except OSError:
-            raise ExceptionPexpect, 'The fd argument is not a valid file descriptor.'
+            raise ExceptionPexpect(
+                'The fd argument is not a valid file descriptor.')
 
         self.args = None
         self.command = None
-        spawn.__init__(self, None, args, timeout, maxread, searchwindowsize, logfile)
+        spawn.__init__(
+            self,
+            None,
+            args,
+            timeout,
+            maxread,
+            searchwindowsize,
+            logfile)
         self.child_fd = fd
         self.own_fd = False
         self.closed = False
         self.name = '<file descriptor %d>' % fd
 
-    def __del__ (self):
+    def __del__(self):
 
         return
 
-    def close (self):
+    def close(self):
 
         if self.child_fd == -1:
             return
         if self.own_fd:
-            self.close (self)
+            self.close(self)
         else:
             self.flush()
             os.close(self.child_fd)
             self.child_fd = -1
             self.closed = True
 
-    def isalive (self):
-
+    def isalive(self):
         """This checks if the file descriptor is still valid. If os.fstat()
         does not raise an exception then we assume it is alive. """
 
@@ -72,11 +88,11 @@ class fdspawn (spawn):
         except:
             return False
 
-    def terminate (self, force=False):
+    def terminate(self, force=False):
 
-        raise ExceptionPexpect ('This method is not valid for file descriptors.')
+        raise ExceptionPexpect(
+            'This method is not valid for file descriptors.')
 
-    def kill (self, sig):
+    def kill(self, sig):
 
         return
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/pexpect.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/pexpect.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/pexpect.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/pexpect.py Tue Sep  6 15:57:50 2016
@@ -65,7 +65,9 @@ $Id: pexpect.py 516 2008-05-23 20:46:01Z
 """
 
 try:
-    import os, sys, time
+    import os
+    import sys
+    import time
     import select
     import string
     import re
@@ -79,7 +81,7 @@ try:
     import errno
     import traceback
     import signal
-except ImportError, e:
+except ImportError as e:
     raise ImportError (str(e) + """
 
 A critical module was not found. Probably this operating system does not
@@ -88,9 +90,11 @@ support it. Pexpect is intended for UNIX
 __version__ = '2.4'
 __revision__ = '$Revision: 516 $'
 __all__ = ['ExceptionPexpect', 'EOF', 'TIMEOUT', 'spawn', 'run', 'which',
-    'split_command_line', '__version__', '__revision__']
+           'split_command_line', '__version__', '__revision__']
 
 # Exception classes used by this module.
+
+
 class ExceptionPexpect(Exception):
 
     """Base class for all exceptions raised by this module.
@@ -105,7 +109,6 @@ class ExceptionPexpect(Exception):
         return str(self.value)
 
     def get_trace(self):
-
         """This returns an abbreviated stack trace with lines that only concern
         the caller. In other words, the stack trace inside the Pexpect module
         is not included. """
@@ -117,7 +120,6 @@ class ExceptionPexpect(Exception):
         return ''.join(tblist)
 
     def __filter_not_pexpect(self, trace_list_item):
-
         """This returns True if list item 0 the string 'pexpect.py' in it. """
 
         if trace_list_item[0].find('pexpect.py') == -1:
@@ -125,25 +127,35 @@ class ExceptionPexpect(Exception):
         else:
             return False
 
+
 class EOF(ExceptionPexpect):
 
     """Raised when EOF is read from a child. This usually means the child has exited."""
 
+
 class TIMEOUT(ExceptionPexpect):
 
     """Raised when a read time exceeds the timeout. """
 
-##class TIMEOUT_PATTERN(TIMEOUT):
-##    """Raised when the pattern match time exceeds the timeout.
-##    This is different than a read TIMEOUT because the child process may
-##    give output, thus never give a TIMEOUT, but the output
-##    may never match a pattern.
-##    """
-##class MAXBUFFER(ExceptionPexpect):
+# class TIMEOUT_PATTERN(TIMEOUT):
+# """Raised when the pattern match time exceeds the timeout.
+# This is different than a read TIMEOUT because the child process may
+# give output, thus never give a TIMEOUT, but the output
+# may never match a pattern.
+# """
+# class MAXBUFFER(ExceptionPexpect):
 ##    """Raised when a scan buffer fills before matching an expected pattern."""
 
-def run (command, timeout=-1, withexitstatus=False, events=None, extra_args=None, logfile=None, cwd=None, env=None):
 
+def run(
+        command,
+        timeout=-1,
+        withexitstatus=False,
+        events=None,
+        extra_args=None,
+        logfile=None,
+        cwd=None,
+        env=None):
     """
     This function runs the given command; waits for it to finish; then
     returns all output as a string. STDERR is included in output. If the full
@@ -219,25 +231,31 @@ def run (command, timeout=-1, withexitst
     if timeout == -1:
         child = spawn(command, maxread=2000, logfile=logfile, cwd=cwd, env=env)
     else:
-        child = spawn(command, timeout=timeout, maxread=2000, logfile=logfile, cwd=cwd, env=env)
+        child = spawn(
+            command,
+            timeout=timeout,
+            maxread=2000,
+            logfile=logfile,
+            cwd=cwd,
+            env=env)
     if events is not None:
         patterns = events.keys()
         responses = events.values()
     else:
-        patterns=None # We assume that EOF or TIMEOUT will save us.
-        responses=None
+        patterns = None  # We assume that EOF or TIMEOUT will save us.
+        responses = None
     child_result_list = []
     event_count = 0
-    while 1:
+    while True:
         try:
-            index = child.expect (patterns)
+            index = child.expect(patterns)
             if type(child.after) in types.StringTypes:
                 child_result_list.append(child.before + child.after)
-            else: # child.after may have been a TIMEOUT or EOF, so don't cat those.
+            else:  # child.after may have been a TIMEOUT or EOF, so don't cat those.
                 child_result_list.append(child.before)
             if type(responses[index]) in types.StringTypes:
                 child.send(responses[index])
-            elif type(responses[index]) is types.FunctionType:
+            elif isinstance(responses[index], types.FunctionType):
                 callback_result = responses[index](locals())
                 sys.stdout.flush()
                 if type(callback_result) in types.StringTypes:
@@ -245,12 +263,13 @@ def run (command, timeout=-1, withexitst
                 elif callback_result:
                     break
             else:
-                raise TypeError ('The callback must be a string or function type.')
+                raise TypeError(
+                    'The callback must be a string or function type.')
             event_count = event_count + 1
-        except TIMEOUT, e:
+        except TIMEOUT as e:
             child_result_list.append(child.before)
             break
-        except EOF, e:
+        except EOF as e:
             child_result_list.append(child.before)
             break
     child_result = ''.join(child_result_list)
@@ -260,13 +279,22 @@ def run (command, timeout=-1, withexitst
     else:
         return child_result
 
+
 class spawn (object):
 
     """This is the main class interface for Pexpect. Use this class to start
     and control child applications. """
 
-    def __init__(self, command, args=[], timeout=30, maxread=2000, searchwindowsize=None, logfile=None, cwd=None, env=None):
-
+    def __init__(
+            self,
+            command,
+            args=[],
+            timeout=30,
+            maxread=2000,
+            searchwindowsize=None,
+            logfile=None,
+            cwd=None,
+            env=None):
         """This is the constructor. The command parameter may be a string that
         includes a command and any arguments to the command. For example::
 
@@ -337,12 +365,12 @@ class spawn (object):
         the input from the child and output sent to the child. Sometimes you
         don't want to see everything you write to the child. You only want to
         log what the child sends back. For example::
-        
+
             child = pexpect.spawn('some_command')
             child.logfile_read = sys.stdout
 
         To separately log output sent to the child use logfile_send::
-        
+
             self.logfile_send = fout
 
         The delaybeforesend helps overcome a weird behavior that many users
@@ -391,46 +419,56 @@ class spawn (object):
         self.terminated = True
         self.exitstatus = None
         self.signalstatus = None
-        self.status = None # status returned by os.waitpid
+        self.status = None  # status returned by os.waitpid
         self.flag_eof = False
         self.pid = None
-        self.child_fd = -1 # initially closed
+        self.child_fd = -1  # initially closed
         self.timeout = timeout
         self.delimiter = EOF
         self.logfile = logfile
-        self.logfile_read = None # input from child (read_nonblocking)
-        self.logfile_send = None # output to send (send, sendline)
-        self.maxread = maxread # max bytes to read at one time into buffer
-        self.buffer = '' # This is the read buffer. See maxread.
-        self.searchwindowsize = searchwindowsize # Anything before searchwindowsize point is preserved, but not searched.
-        # Most Linux machines don't like delaybeforesend to be below 0.03 (30 ms).
-        self.delaybeforesend = 0.05 # Sets sleep time used just before sending data to child. Time in seconds.
-        self.delayafterclose = 0.1 # Sets delay in close() method to allow kernel time to update process status. Time in seconds.
-        self.delayafterterminate = 0.1 # Sets delay in terminate() method to allow kernel time to update process status. Time in seconds.
-        self.softspace = False # File-like object.
-        self.name = '<' + repr(self) + '>' # File-like object.
-        self.encoding = None # File-like object.
-        self.closed = True # File-like object.
+        self.logfile_read = None  # input from child (read_nonblocking)
+        self.logfile_send = None  # output to send (send, sendline)
+        self.maxread = maxread  # max bytes to read at one time into buffer
+        self.buffer = ''  # This is the read buffer. See maxread.
+        # Anything before searchwindowsize point is preserved, but not
+        # searched.
+        self.searchwindowsize = searchwindowsize
+        # Most Linux machines don't like delaybeforesend to be below 0.03 (30
+        # ms).
+        # Sets sleep time used just before sending data to child. Time in
+        # seconds.
+        self.delaybeforesend = 0.05
+        # Sets delay in close() method to allow kernel time to update process
+        # status. Time in seconds.
+        self.delayafterclose = 0.1
+        # Sets delay in terminate() method to allow kernel time to update
+        # process status. Time in seconds.
+        self.delayafterterminate = 0.1
+        self.softspace = False  # File-like object.
+        self.name = '<' + repr(self) + '>'  # File-like object.
+        self.encoding = None  # File-like object.
+        self.closed = True  # File-like object.
         self.cwd = cwd
         self.env = env
-        self.__irix_hack = (sys.platform.lower().find('irix')>=0) # This flags if we are running on irix
+        # This flags if we are running on irix
+        self.__irix_hack = (sys.platform.lower().find('irix') >= 0)
         # Solaris uses internal __fork_pty(). All others use pty.fork().
-        if (sys.platform.lower().find('solaris')>=0) or (sys.platform.lower().find('sunos5')>=0):
+        if (sys.platform.lower().find('solaris') >= 0) or (
+                sys.platform.lower().find('sunos5') >= 0):
             self.use_native_pty_fork = False
         else:
             self.use_native_pty_fork = True
 
-
-        # allow dummy instances for subclasses that may not use command or args.
+        # allow dummy instances for subclasses that may not use command or
+        # args.
         if command is None:
             self.command = None
             self.args = None
             self.name = '<pexpect factory incomplete>'
         else:
-            self._spawn (command, args)
+            self._spawn(command, args)
 
     def __del__(self):
-
         """This makes sure that no system resources are left open. Python only
         garbage collects Python objects. OS file descriptors are not Python
         objects, so they must be handled explicitly. If the child file
@@ -448,7 +486,6 @@ class spawn (object):
                 pass
 
     def __str__(self):
-
         """This returns a human-readable string that represents the state of
         the object. """
 
@@ -481,8 +518,7 @@ class spawn (object):
         s.append('delayafterterminate: ' + str(self.delayafterterminate))
         return '\n'.join(s)
 
-    def _spawn(self,command,args=[]):
-
+    def _spawn(self, command, args=[]):
         """This starts the given command in a child process. This does all the
         fork/exec type of stuff for a pty. This is called by __init__. If args
         is empty then command will be parsed (split on spaces) and args will be
@@ -498,27 +534,30 @@ class spawn (object):
         # that performs some task; creates no stdout output; and then dies.
 
         # If command is an int type then it may represent a file descriptor.
-        if type(command) == type(0):
-            raise ExceptionPexpect ('Command is an int type. If this is a file descriptor then maybe you want to use fdpexpect.fdspawn which takes an existing file descriptor instead of a command string.')
+        if isinstance(command, type(0)):
+            raise ExceptionPexpect(
+                'Command is an int type. If this is a file descriptor then maybe you want to use fdpexpect.fdspawn which takes an existing file descriptor instead of a command string.')
 
-        if type (args) != type([]):
-            raise TypeError ('The argument, args, must be a list.')
+        if not isinstance(args, type([])):
+            raise TypeError('The argument, args, must be a list.')
 
         if args == []:
             self.args = split_command_line(command)
             self.command = self.args[0]
         else:
-            self.args = args[:] # work with a copy
-            self.args.insert (0, command)
+            self.args = args[:]  # work with a copy
+            self.args.insert(0, command)
             self.command = command
 
         command_with_path = which(self.command)
         if command_with_path is None:
-            raise ExceptionPexpect ('The command was not found or was not executable: %s.' % self.command)
+            raise ExceptionPexpect(
+                'The command was not found or was not executable: %s.' %
+                self.command)
         self.command = command_with_path
         self.args[0] = self.command
 
-        self.name = '<' + ' '.join (self.args) + '>'
+        self.name = '<' + ' '.join(self.args) + '>'
 
         assert self.pid is None, 'The pid member should be None.'
         assert self.command is not None, 'The command member should not be None.'
@@ -526,14 +565,14 @@ class spawn (object):
         if self.use_native_pty_fork:
             try:
                 self.pid, self.child_fd = pty.fork()
-            except OSError, e:
+            except OSError as e:
                 raise ExceptionPexpect('Error! pty.fork() failed: ' + str(e))
-        else: # Use internal __fork_pty
+        else:  # Use internal __fork_pty
             self.pid, self.child_fd = self.__fork_pty()
 
-        if self.pid == 0: # Child
+        if self.pid == 0:  # Child
             try:
-                self.child_fd = sys.stdout.fileno() # used by setwinsize()
+                self.child_fd = sys.stdout.fileno()  # used by setwinsize()
                 self.setwinsize(24, 80)
             except:
                 # Some platforms do not like setwinsize (Cygwin).
@@ -543,9 +582,9 @@ class spawn (object):
                 pass
             # Do not allow child to inherit open file descriptors from parent.
             max_fd = resource.getrlimit(resource.RLIMIT_NOFILE)[0]
-            for i in range (3, max_fd):
+            for i in range(3, max_fd):
                 try:
-                    os.close (i)
+                    os.close(i)
                 except OSError:
                     pass
 
@@ -566,7 +605,6 @@ class spawn (object):
         self.closed = False
 
     def __fork_pty(self):
-
         """This implements a substitute for the forkpty system call. This
         should be more portable than the pty.fork() function. Specifically,
         this should work on Solaris.
@@ -582,11 +620,12 @@ class spawn (object):
 
         parent_fd, child_fd = os.openpty()
         if parent_fd < 0 or child_fd < 0:
-            raise ExceptionPexpect, "Error! Could not open pty with os.openpty()."
+            raise ExceptionPexpect(
+                "Error! Could not open pty with os.openpty().")
 
         pid = os.fork()
         if pid < 0:
-            raise ExceptionPexpect, "Error! Failed os.fork()."
+            raise ExceptionPexpect("Error! Failed os.fork().")
         elif pid == 0:
             # Child.
             os.close(parent_fd)
@@ -605,7 +644,6 @@ class spawn (object):
         return pid, parent_fd
 
     def __pty_make_controlling_tty(self, tty_fd):
-
         """This makes the pseudo-terminal the controlling tty. This should be
         more portable than the pty.fork() function. Specifically, this should
         work on Solaris. """
@@ -614,7 +652,7 @@ class spawn (object):
 
         # Disconnect from controlling tty if still connected.
         try:
-            fd = os.open("/dev/tty", os.O_RDWR | os.O_NOCTTY);
+            fd = os.open("/dev/tty", os.O_RDWR | os.O_NOCTTY)
             if fd >= 0:
                 os.close(fd)
         except:
@@ -625,37 +663,38 @@ class spawn (object):
 
         # Verify we are disconnected from controlling tty
         try:
-            fd = os.open("/dev/tty", os.O_RDWR | os.O_NOCTTY);
+            fd = os.open("/dev/tty", os.O_RDWR | os.O_NOCTTY)
             if fd >= 0:
                 os.close(fd)
-                raise ExceptionPexpect, "Error! We are not disconnected from a controlling tty."
+                raise ExceptionPexpect(
+                    "Error! We are not disconnected from a controlling tty.")
         except:
             # Good! We are disconnected from a controlling tty.
             pass
 
         # Verify we can open child pty.
-        fd = os.open(child_name, os.O_RDWR);
+        fd = os.open(child_name, os.O_RDWR)
         if fd < 0:
-            raise ExceptionPexpect, "Error! Could not open child pty, " + child_name
+            raise ExceptionPexpect(
+                "Error! Could not open child pty, " + child_name)
         else:
             os.close(fd)
 
         # Verify we now have a controlling tty.
         fd = os.open("/dev/tty", os.O_WRONLY)
         if fd < 0:
-            raise ExceptionPexpect, "Error! Could not open controlling tty, /dev/tty"
+            raise ExceptionPexpect(
+                "Error! Could not open controlling tty, /dev/tty")
         else:
             os.close(fd)
 
-    def fileno (self):   # File-like object.
-
+    def fileno(self):   # File-like object.
         """This returns the file descriptor of the pty for the child.
         """
 
         return self.child_fd
 
-    def close (self, force=True):   # File-like object.
-
+    def close(self, force=True):   # File-like object.
         """This closes the connection with the child application. Note that
         calling close() more than once is valid. This emulates standard Python
         behavior with files. Set force to True if you want to make sure that
@@ -664,31 +703,30 @@ class spawn (object):
 
         if not self.closed:
             self.flush()
-            os.close (self.child_fd)
-            time.sleep(self.delayafterclose) # Give kernel time to update process status.
+            os.close(self.child_fd)
+            # Give kernel time to update process status.
+            time.sleep(self.delayafterclose)
             if self.isalive():
                 if not self.terminate(force):
-                    raise ExceptionPexpect ('close() could not terminate the child using terminate()')
+                    raise ExceptionPexpect(
+                        'close() could not terminate the child using terminate()')
             self.child_fd = -1
             self.closed = True
             #self.pid = None
 
-    def flush (self):   # File-like object.
-
+    def flush(self):   # File-like object.
         """This does nothing. It is here to support the interface for a
         File-like object. """
 
         pass
 
-    def isatty (self):   # File-like object.
-
+    def isatty(self):   # File-like object.
         """This returns True if the file descriptor is open and connected to a
         tty(-like) device, else False. """
 
         return os.isatty(self.child_fd)
 
-    def waitnoecho (self, timeout=-1):
-
+    def waitnoecho(self, timeout=-1):
         """This waits until the terminal ECHO flag is set False. This returns
         True if the echo mode is off. This returns False if the ECHO flag was
         not set False before the timeout. This can be used to detect when the
@@ -709,7 +747,7 @@ class spawn (object):
         if timeout == -1:
             timeout = self.timeout
         if timeout is not None:
-            end_time = time.time() + timeout 
+            end_time = time.time() + timeout
         while True:
             if not self.getecho():
                 return True
@@ -719,8 +757,7 @@ class spawn (object):
                 timeout = end_time - time.time()
             time.sleep(0.1)
 
-    def getecho (self):
-
+    def getecho(self):
         """This returns the terminal echo mode. This returns True if echo is
         on or False if echo is off. Child applications that are expecting you
         to enter a password often set ECHO False. See waitnoecho(). """
@@ -730,8 +767,7 @@ class spawn (object):
             return True
         return False
 
-    def setecho (self, state):
-
+    def setecho(self, state):
         """This sets the terminal echo mode on or off. Note that anything the
         child sent before the echo will be lost, so you should be sure that
         your input buffer is empty before you call setecho(). For example, the
@@ -768,11 +804,11 @@ class spawn (object):
         else:
             attr[3] = attr[3] & ~termios.ECHO
         # I tried TCSADRAIN and TCSAFLUSH, but these were inconsistent
-        # and blocked on some platforms. TCSADRAIN is probably ideal if it worked.
+        # and blocked on some platforms. TCSADRAIN is probably ideal if it
+        # worked.
         termios.tcsetattr(self.child_fd, termios.TCSANOW, attr)
 
-    def read_nonblocking (self, size = 1, timeout = -1):
-
+    def read_nonblocking(self, size=1, timeout=-1):
         """This reads at most size characters from the child application. It
         includes a timeout. If the read does not complete within the timeout
         period then a TIMEOUT exception is raised. If the end of file is read
@@ -794,7 +830,8 @@ class spawn (object):
         implement the timeout. """
 
         if self.closed:
-            raise ValueError ('I/O operation on closed file in read_nonblocking().')
+            raise ValueError(
+                'I/O operation on closed file in read_nonblocking().')
 
         if timeout == -1:
             timeout = self.timeout
@@ -805,52 +842,60 @@ class spawn (object):
         # For this case, I test isalive() before doing any reading.
         # If isalive() is false, then I pretend that this is the same as EOF.
         if not self.isalive():
-            r,w,e = self.__select([self.child_fd], [], [], 0) # timeout of 0 means "poll"
+            # timeout of 0 means "poll"
+            r, w, e = self.__select([self.child_fd], [], [], 0)
             if not r:
                 self.flag_eof = True
-                raise EOF ('End Of File (EOF) in read_nonblocking(). Braindead platform.')
+                raise EOF(
+                    'End Of File (EOF) in read_nonblocking(). Braindead platform.')
         elif self.__irix_hack:
             # This is a hack for Irix. It seems that Irix requires a long delay before checking isalive.
-            # This adds a 2 second delay, but only when the child is terminated.
+            # This adds a 2 second delay, but only when the child is
+            # terminated.
             r, w, e = self.__select([self.child_fd], [], [], 2)
             if not r and not self.isalive():
                 self.flag_eof = True
-                raise EOF ('End Of File (EOF) in read_nonblocking(). Pokey platform.')
+                raise EOF(
+                    'End Of File (EOF) in read_nonblocking(). Pokey platform.')
 
-        r,w,e = self.__select([self.child_fd], [], [], timeout)
+        r, w, e = self.__select([self.child_fd], [], [], timeout)
 
         if not r:
             if not self.isalive():
                 # Some platforms, such as Irix, will claim that their processes are alive;
-                # then timeout on the select; and then finally admit that they are not alive.
+                # then timeout on the select; and then finally admit that they
+                # are not alive.
                 self.flag_eof = True
-                raise EOF ('End of File (EOF) in read_nonblocking(). Very pokey platform.')
+                raise EOF(
+                    'End of File (EOF) in read_nonblocking(). Very pokey platform.')
             else:
-                raise TIMEOUT ('Timeout exceeded in read_nonblocking().')
+                raise TIMEOUT('Timeout exceeded in read_nonblocking().')
 
         if self.child_fd in r:
             try:
                 s = os.read(self.child_fd, size)
-            except OSError, e: # Linux does this
+            except OSError as e:  # Linux does this
                 self.flag_eof = True
-                raise EOF ('End Of File (EOF) in read_nonblocking(). Exception style platform.')
-            if s == '': # BSD style
+                raise EOF(
+                    'End Of File (EOF) in read_nonblocking(). Exception style platform.')
+            if s == '':  # BSD style
                 self.flag_eof = True
-                raise EOF ('End Of File (EOF) in read_nonblocking(). Empty string style platform.')
+                raise EOF(
+                    'End Of File (EOF) in read_nonblocking(). Empty string style platform.')
 
             if self.logfile is not None:
-                self.logfile.write (s)
+                self.logfile.write(s)
                 self.logfile.flush()
             if self.logfile_read is not None:
-                self.logfile_read.write (s)
+                self.logfile_read.write(s)
                 self.logfile_read.flush()
 
             return s
 
-        raise ExceptionPexpect ('Reached an unexpected state in read_nonblocking().')
-
-    def read (self, size = -1):   # File-like object.
+        raise ExceptionPexpect(
+            'Reached an unexpected state in read_nonblocking().')
 
+    def read(self, size=-1):   # File-like object.
         """This reads at most "size" bytes from the file (less if the read hits
         EOF before obtaining size bytes). If the size argument is negative or
         omitted, read all data until EOF is reached. The bytes are returned as
@@ -860,7 +905,7 @@ class spawn (object):
         if size == 0:
             return ''
         if size < 0:
-            self.expect (self.delimiter) # delimiter default is EOF
+            self.expect(self.delimiter)  # delimiter default is EOF
             return self.before
 
         # I could have done this more directly by not using expect(), but
@@ -871,13 +916,12 @@ class spawn (object):
         # Note, it's OK if size==-1 in the regex. That just means it
         # will never match anything in which case we stop only on EOF.
         cre = re.compile('.{%d}' % size, re.DOTALL)
-        index = self.expect ([cre, self.delimiter]) # delimiter default is EOF
+        index = self.expect([cre, self.delimiter])  # delimiter default is EOF
         if index == 0:
-            return self.after ### self.before should be ''. Should I assert this?
+            return self.after  # self.before should be ''. Should I assert this?
         return self.before
 
-    def readline (self, size = -1):    # File-like object.
-
+    def readline(self, size=-1):    # File-like object.
         """This reads and returns one entire line. A trailing newline is kept
         in the string, but may be absent when a file ends with an incomplete
         line. Note: This readline() looks for a \\r\\n pair even on UNIX
@@ -889,21 +933,20 @@ class spawn (object):
 
         if size == 0:
             return ''
-        index = self.expect (['\r\n', self.delimiter]) # delimiter default is EOF
+        # delimiter default is EOF
+        index = self.expect(['\r\n', self.delimiter])
         if index == 0:
             return self.before + '\r\n'
         else:
             return self.before
 
-    def __iter__ (self):    # File-like object.
-
+    def __iter__(self):    # File-like object.
         """This is to support iterators over a file-like object.
         """
 
         return self
 
-    def next (self):    # File-like object.
-
+    def next(self):    # File-like object.
         """This is to support iterators over a file-like object.
         """
 
@@ -912,8 +955,7 @@ class spawn (object):
             raise StopIteration
         return result
 
-    def readlines (self, sizehint = -1):    # File-like object.
-
+    def readlines(self, sizehint=-1):    # File-like object.
         """This reads until EOF using readline() and returns a list containing
         the lines thus read. The optional "sizehint" argument is ignored. """
 
@@ -926,49 +968,44 @@ class spawn (object):
         return lines
 
     def write(self, s):   # File-like object.
-
         """This is similar to send() except that there is no return value.
         """
 
-        self.send (s)
-
-    def writelines (self, sequence):   # File-like object.
+        self.send(s)
 
+    def writelines(self, sequence):   # File-like object.
         """This calls write() for each element in the sequence. The sequence
         can be any iterable object producing strings, typically a list of
         strings. This does not add line separators There is no return value.
         """
 
         for s in sequence:
-            self.write (s)
+            self.write(s)
 
     def send(self, s):
-
         """This sends a string to the child process. This returns the number of
         bytes written. If a log file was set then the data is also written to
         the log. """
 
         time.sleep(self.delaybeforesend)
         if self.logfile is not None:
-            self.logfile.write (s)
+            self.logfile.write(s)
             self.logfile.flush()
         if self.logfile_send is not None:
-            self.logfile_send.write (s)
+            self.logfile_send.write(s)
             self.logfile_send.flush()
         c = os.write(self.child_fd, s)
         return c
 
     def sendline(self, s=''):
-
         """This is like send(), but it adds a line feed (os.linesep). This
         returns the number of bytes written. """
 
         n = self.send(s)
-        n = n + self.send (os.linesep)
+        n = n + self.send(os.linesep)
         return n
 
     def sendcontrol(self, char):
-
         """This sends a control character to the child such as Ctrl-C or
         Ctrl-D. For example, to send a Ctrl-G (ASCII 7)::
 
@@ -979,22 +1016,21 @@ class spawn (object):
 
         char = char.lower()
         a = ord(char)
-        if a>=97 and a<=122:
+        if a >= 97 and a <= 122:
             a = a - ord('a') + 1
-            return self.send (chr(a))
-        d = {'@':0, '`':0,
-            '[':27, '{':27,
-            '\\':28, '|':28,
-            ']':29, '}': 29,
-            '^':30, '~':30,
-            '_':31,
-            '?':127}
+            return self.send(chr(a))
+        d = {'@': 0, '`': 0,
+             '[': 27, '{': 27,
+             '\\': 28, '|': 28,
+             ']': 29, '}': 29,
+             '^': 30, '~': 30,
+             '_': 31,
+             '?': 127}
         if char not in d:
             return 0
-        return self.send (chr(d[char]))
+        return self.send(chr(d[char]))
 
     def sendeof(self):
-
         """This sends an EOF to the child. This sends a character which causes
         the pending parent output buffer to be sent to the waiting child
         program without waiting for end-of-line. If it is the first character
@@ -1004,21 +1040,21 @@ class spawn (object):
         It is the responsibility of the caller to ensure the eof is sent at the
         beginning of a line. """
 
-        ### Hmmm... how do I send an EOF?
-        ###C  if ((m = write(pty, *buf, p - *buf)) < 0)
-        ###C      return (errno == EWOULDBLOCK) ? n : -1;
+        # Hmmm... how do I send an EOF?
+        # C  if ((m = write(pty, *buf, p - *buf)) < 0)
+        # C      return (errno == EWOULDBLOCK) ? n : -1;
         #fd = sys.stdin.fileno()
-        #old = termios.tcgetattr(fd) # remember current state
+        # old = termios.tcgetattr(fd) # remember current state
         #attr = termios.tcgetattr(fd)
-        #attr[3] = attr[3] | termios.ICANON # ICANON must be set to recognize EOF
-        #try: # use try/finally to ensure state gets restored
+        # attr[3] = attr[3] | termios.ICANON # ICANON must be set to recognize EOF
+        # try: # use try/finally to ensure state gets restored
         #    termios.tcsetattr(fd, termios.TCSADRAIN, attr)
         #    if hasattr(termios, 'CEOF'):
         #        os.write (self.child_fd, '%c' % termios.CEOF)
         #    else:
         #        # Silly platform does not define CEOF so assume CTRL-D
         #        os.write (self.child_fd, '%c' % 4)
-        #finally: # restore state
+        # finally: # restore state
         #    termios.tcsetattr(fd, termios.TCSADRAIN, old)
         if hasattr(termios, 'VEOF'):
             char = termios.tcgetattr(self.child_fd)[6][termios.VEOF]
@@ -1028,7 +1064,6 @@ class spawn (object):
         self.send(char)
 
     def sendintr(self):
-
         """This sends a SIGINT to the child. It does not require
         the SIGINT to be the first character on a line. """
 
@@ -1037,17 +1072,15 @@ class spawn (object):
         else:
             # platform does not define VINTR so assume CTRL-C
             char = chr(3)
-        self.send (char)
-
-    def eof (self):
+        self.send(char)
 
+    def eof(self):
         """This returns True if the EOF exception was ever raised.
         """
 
         return self.flag_eof
 
     def terminate(self, force=False):
-
         """This forces a child process to terminate. It starts nicely with
         SIGHUP and SIGINT. If "force" is True then moves onto SIGKILL. This
         returns True if the child was terminated. This returns False if the
@@ -1076,7 +1109,7 @@ class spawn (object):
                 else:
                     return False
             return False
-        except OSError, e:
+        except OSError as e:
             # I think there are kernel timing issues that sometimes cause
             # this to happen. I think isalive() reports True, but the
             # process is dead to the kernel.
@@ -1088,7 +1121,6 @@ class spawn (object):
                 return False
 
     def wait(self):
-
         """This waits until the child exits. This is a blocking call. This will
         not read any data from the child, so this will block forever if the
         child has unread output and has terminated. In other words, the child
@@ -1098,24 +1130,24 @@ class spawn (object):
         if self.isalive():
             pid, status = os.waitpid(self.pid, 0)
         else:
-            raise ExceptionPexpect ('Cannot wait for dead child process.')
+            raise ExceptionPexpect('Cannot wait for dead child process.')
         self.exitstatus = os.WEXITSTATUS(status)
-        if os.WIFEXITED (status):
+        if os.WIFEXITED(status):
             self.status = status
             self.exitstatus = os.WEXITSTATUS(status)
             self.signalstatus = None
             self.terminated = True
-        elif os.WIFSIGNALED (status):
+        elif os.WIFSIGNALED(status):
             self.status = status
             self.exitstatus = None
             self.signalstatus = os.WTERMSIG(status)
             self.terminated = True
-        elif os.WIFSTOPPED (status):
-            raise ExceptionPexpect ('Wait was called for a child process that is stopped. This is not supported. Is some other process attempting job control with our child pid?')
+        elif os.WIFSTOPPED(status):
+            raise ExceptionPexpect(
+                'Wait was called for a child process that is stopped. This is not supported. Is some other process attempting job control with our child pid?')
         return self.exitstatus
 
     def isalive(self):
-
         """This tests if the child process is running or not. This is
         non-blocking. If the child was terminated then this will read the
         exitstatus or signalstatus of the child. This returns True if the child
@@ -1135,9 +1167,10 @@ class spawn (object):
 
         try:
             pid, status = os.waitpid(self.pid, waitpid_options)
-        except OSError, e: # No child processes
+        except OSError as e:  # No child processes
             if e[0] == errno.ECHILD:
-                raise ExceptionPexpect ('isalive() encountered condition where "terminated" is 0, but there was no child process. Did someone else call waitpid() on our process?')
+                raise ExceptionPexpect(
+                    'isalive() encountered condition where "terminated" is 0, but there was no child process. Did someone else call waitpid() on our process?')
             else:
                 raise e
 
@@ -1146,39 +1179,42 @@ class spawn (object):
         # report, and the value of status is undefined.
         if pid == 0:
             try:
-                pid, status = os.waitpid(self.pid, waitpid_options) ### os.WNOHANG) # Solaris!
-            except OSError, e: # This should never happen...
+                pid, status = os.waitpid(
+                    self.pid, waitpid_options)  # os.WNOHANG) # Solaris!
+            except OSError as e:  # This should never happen...
                 if e[0] == errno.ECHILD:
-                    raise ExceptionPexpect ('isalive() encountered condition that should never happen. There was no child process. Did someone else call waitpid() on our process?')
+                    raise ExceptionPexpect(
+                        'isalive() encountered condition that should never happen. There was no child process. Did someone else call waitpid() on our process?')
                 else:
                     raise e
 
             # If pid is still 0 after two calls to waitpid() then
             # the process really is alive. This seems to work on all platforms, except
             # for Irix which seems to require a blocking call on waitpid or select, so I let read_nonblocking
-            # take care of this situation (unfortunately, this requires waiting through the timeout).
+            # take care of this situation (unfortunately, this requires waiting
+            # through the timeout).
             if pid == 0:
                 return True
 
         if pid == 0:
             return True
 
-        if os.WIFEXITED (status):
+        if os.WIFEXITED(status):
             self.status = status
             self.exitstatus = os.WEXITSTATUS(status)
             self.signalstatus = None
             self.terminated = True
-        elif os.WIFSIGNALED (status):
+        elif os.WIFSIGNALED(status):
             self.status = status
             self.exitstatus = None
             self.signalstatus = os.WTERMSIG(status)
             self.terminated = True
-        elif os.WIFSTOPPED (status):
-            raise ExceptionPexpect ('isalive() encountered condition where child process is stopped. This is not supported. Is some other process attempting job control with our child pid?')
+        elif os.WIFSTOPPED(status):
+            raise ExceptionPexpect(
+                'isalive() encountered condition where child process is stopped. This is not supported. Is some other process attempting job control with our child pid?')
         return False
 
     def kill(self, sig):
-
         """This sends the given signal to the child application. In keeping
         with UNIX tradition it has a misleading name. It does not necessarily
         kill the child unless you send the right signal. """
@@ -1188,7 +1224,6 @@ class spawn (object):
             os.kill(self.pid, sig)
 
     def compile_pattern_list(self, patterns):
-
         """This compiles a pattern-string or a list of pattern-strings.
         Patterns must be a StringType, EOF, TIMEOUT, SRE_Pattern, or a list of
         those. Patterns may also be None which results in an empty list (you
@@ -1214,10 +1249,10 @@ class spawn (object):
 
         if patterns is None:
             return []
-        if type(patterns) is not types.ListType:
+        if not isinstance(patterns, types.ListType):
             patterns = [patterns]
 
-        compile_flags = re.DOTALL # Allow dot to match \n
+        compile_flags = re.DOTALL  # Allow dot to match \n
         if self.ignorecase:
             compile_flags = compile_flags | re.IGNORECASE
         compiled_pattern_list = []
@@ -1228,15 +1263,16 @@ class spawn (object):
                 compiled_pattern_list.append(EOF)
             elif p is TIMEOUT:
                 compiled_pattern_list.append(TIMEOUT)
-            elif type(p) is type(re.compile('')):
+            elif isinstance(p, type(re.compile(''))):
                 compiled_pattern_list.append(p)
             else:
-                raise TypeError ('Argument must be one of StringTypes, EOF, TIMEOUT, SRE_Pattern, or a list of those type. %s' % str(type(p)))
+                raise TypeError(
+                    'Argument must be one of StringTypes, EOF, TIMEOUT, SRE_Pattern, or a list of those type. %s' % str(
+                        type(p)))
 
         return compiled_pattern_list
 
-    def expect(self, pattern, timeout = -1, searchwindowsize=-1):
-
+    def expect(self, pattern, timeout=-1, searchwindowsize=-1):
         """This seeks through the stream until a pattern is matched. The
         pattern is overloaded and may take several types. The pattern can be a
         StringType, EOF, a compiled re, or a list of any of those types.
@@ -1313,10 +1349,12 @@ class spawn (object):
         """
 
         compiled_pattern_list = self.compile_pattern_list(pattern)
-        return self.expect_list(compiled_pattern_list, timeout, searchwindowsize)
-
-    def expect_list(self, pattern_list, timeout = -1, searchwindowsize = -1):
+        return self.expect_list(
+            compiled_pattern_list,
+            timeout,
+            searchwindowsize)
 
+    def expect_list(self, pattern_list, timeout=-1, searchwindowsize=-1):
         """This takes a list of compiled regular expressions and returns the
         index into the pattern_list that matched the child output. The list may
         also contain EOF or TIMEOUT (which are not compiled regular
@@ -1327,10 +1365,12 @@ class spawn (object):
         the self.timeout value is used. If searchwindowsize==-1 then the
         self.searchwindowsize value is used. """
 
-        return self.expect_loop(searcher_re(pattern_list), timeout, searchwindowsize)
-
-    def expect_exact(self, pattern_list, timeout = -1, searchwindowsize = -1):
+        return self.expect_loop(
+            searcher_re(pattern_list),
+            timeout,
+            searchwindowsize)
 
+    def expect_exact(self, pattern_list, timeout=-1, searchwindowsize=-1):
         """This is similar to expect(), but uses plain string matching instead
         of compiled regular expressions in 'pattern_list'. The 'pattern_list'
         may be a string; a list or other sequence of strings; or TIMEOUT and
@@ -1343,12 +1383,15 @@ class spawn (object):
         This method is also useful when you don't want to have to worry about
         escaping regular expression characters that you want to match."""
 
-        if type(pattern_list) in types.StringTypes or pattern_list in (TIMEOUT, EOF):
+        if type(pattern_list) in types.StringTypes or pattern_list in (
+                TIMEOUT, EOF):
             pattern_list = [pattern_list]
-        return self.expect_loop(searcher_string(pattern_list), timeout, searchwindowsize)
-
-    def expect_loop(self, searcher, timeout = -1, searchwindowsize = -1):
+        return self.expect_loop(
+            searcher_string(pattern_list),
+            timeout,
+            searchwindowsize)
 
+    def expect_loop(self, searcher, timeout=-1, searchwindowsize=-1):
         """This is the common loop used inside expect. The 'searcher' should be
         an instance of searcher_re or searcher_string, which describes how and what
         to search for in the input.
@@ -1360,33 +1403,33 @@ class spawn (object):
         if timeout == -1:
             timeout = self.timeout
         if timeout is not None:
-            end_time = time.time() + timeout 
+            end_time = time.time() + timeout
         if searchwindowsize == -1:
             searchwindowsize = self.searchwindowsize
 
         try:
             incoming = self.buffer
             freshlen = len(incoming)
-            while True: # Keep reading until exception or return.
+            while True:  # Keep reading until exception or return.
                 index = searcher.search(incoming, freshlen, searchwindowsize)
                 if index >= 0:
-                    self.buffer = incoming[searcher.end : ]
-                    self.before = incoming[ : searcher.start]
-                    self.after = incoming[searcher.start : searcher.end]
+                    self.buffer = incoming[searcher.end:]
+                    self.before = incoming[: searcher.start]
+                    self.after = incoming[searcher.start: searcher.end]
                     self.match = searcher.match
                     self.match_index = index
                     return self.match_index
                 # No match at this point
                 if timeout < 0 and timeout is not None:
-                    raise TIMEOUT ('Timeout exceeded in expect_any().')
+                    raise TIMEOUT('Timeout exceeded in expect_any().')
                 # Still have time left, so read more data
-                c = self.read_nonblocking (self.maxread, timeout)
+                c = self.read_nonblocking(self.maxread, timeout)
                 freshlen = len(c)
-                time.sleep (0.0001)
+                time.sleep(0.0001)
                 incoming = incoming + c
                 if timeout is not None:
                     timeout = end_time - time.time()
-        except EOF, e:
+        except EOF as e:
             self.buffer = ''
             self.before = incoming
             self.after = EOF
@@ -1398,8 +1441,8 @@ class spawn (object):
             else:
                 self.match = None
                 self.match_index = None
-                raise EOF (str(e) + '\n' + str(self))
-        except TIMEOUT, e:
+                raise EOF(str(e) + '\n' + str(self))
+        except TIMEOUT as e:
             self.buffer = incoming
             self.before = incoming
             self.after = TIMEOUT
@@ -1411,7 +1454,7 @@ class spawn (object):
             else:
                 self.match = None
                 self.match_index = None
-                raise TIMEOUT (str(e) + '\n' + str(self))
+                raise TIMEOUT(str(e) + '\n' + str(self))
         except:
             self.before = incoming
             self.after = None
@@ -1420,17 +1463,15 @@ class spawn (object):
             raise
 
     def getwinsize(self):
-
         """This returns the terminal window size of the child tty. The return
         value is a tuple of (rows, cols). """
 
-        TIOCGWINSZ = getattr(termios, 'TIOCGWINSZ', 1074295912L)
+        TIOCGWINSZ = getattr(termios, 'TIOCGWINSZ', 1074295912)
         s = struct.pack('HHHH', 0, 0, 0, 0)
         x = fcntl.ioctl(self.fileno(), TIOCGWINSZ, s)
         return struct.unpack('HHHH', x)[0:2]
 
     def setwinsize(self, r, c):
-
         """This sets the terminal window size of the child tty. This will cause
         a SIGWINCH signal to be sent to the child. This does not change the
         physical window size. It changes the size reported to TTY-aware
@@ -1446,8 +1487,11 @@ class spawn (object):
         s = struct.pack('HHHH', r, c, 0, 0)
         fcntl.ioctl(self.fileno(), TIOCSWINSZ, s)
 
-    def interact(self, escape_character = chr(29), input_filter = None, output_filter = None):
-
+    def interact(
+            self,
+            escape_character=chr(29),
+            input_filter=None,
+            output_filter=None):
         """This gives control of the child process to the interactive user (the
         human at the keyboard). Keystrokes are sent to the child process, and
         the stdout and stderr output of the child process is printed. This
@@ -1482,7 +1526,7 @@ class spawn (object):
         """
 
         # Flush the buffer.
-        self.stdout.write (self.buffer)
+        self.stdout.write(self.buffer)
         self.stdout.flush()
         self.buffer = ''
         mode = tty.tcgetattr(self.STDIN_FILENO)
@@ -1493,7 +1537,6 @@ class spawn (object):
             tty.tcsetattr(self.STDIN_FILENO, tty.TCSAFLUSH, mode)
 
     def __interact_writen(self, fd, data):
-
         """This is used by the interact() method.
         """
 
@@ -1502,29 +1545,33 @@ class spawn (object):
             data = data[n:]
 
     def __interact_read(self, fd):
-
         """This is used by the interact() method.
         """
 
         return os.read(fd, 1000)
 
-    def __interact_copy(self, escape_character = None, input_filter = None, output_filter = None):
-
+    def __interact_copy(
+            self,
+            escape_character=None,
+            input_filter=None,
+            output_filter=None):
         """This is used by the interact() method.
         """
 
         while self.isalive():
-            r,w,e = self.__select([self.child_fd, self.STDIN_FILENO], [], [])
+            r, w, e = self.__select([self.child_fd, self.STDIN_FILENO], [], [])
             if self.child_fd in r:
                 data = self.__interact_read(self.child_fd)
-                if output_filter: data = output_filter(data)
+                if output_filter:
+                    data = output_filter(data)
                 if self.logfile is not None:
-                    self.logfile.write (data)
+                    self.logfile.write(data)
                     self.logfile.flush()
                 os.write(self.STDOUT_FILENO, data)
             if self.STDIN_FILENO in r:
                 data = self.__interact_read(self.STDIN_FILENO)
-                if input_filter: data = input_filter(data)
+                if input_filter:
+                    data = input_filter(data)
                 i = data.rfind(escape_character)
                 if i != -1:
                     data = data[:i]
@@ -1532,8 +1579,7 @@ class spawn (object):
                     break
                 self.__interact_writen(self.child_fd, data)
 
-    def __select (self, iwtd, owtd, ewtd, timeout=None):
-
+    def __select(self, iwtd, owtd, ewtd, timeout=None):
         """This is a wrapper around select.select() that ignores signals. If
         select.select raises a select.error exception and errno is an EINTR
         error then it is ignored. Mainly this is used to ignore sigwinch
@@ -1545,38 +1591,40 @@ class spawn (object):
             end_time = time.time() + timeout
         while True:
             try:
-                return select.select (iwtd, owtd, ewtd, timeout)
-            except select.error, e:
+                return select.select(iwtd, owtd, ewtd, timeout)
+            except select.error as e:
                 if e[0] == errno.EINTR:
-                    # if we loop back we have to subtract the amount of time we already waited.
+                    # if we loop back we have to subtract the amount of time we
+                    # already waited.
                     if timeout is not None:
                         timeout = end_time - time.time()
                         if timeout < 0:
-                            return ([],[],[])
-                else: # something else caused the select.error, so this really is an exception
+                            return ([], [], [])
+                else:  # something else caused the select.error, so this really is an exception
                     raise
 
 ##############################################################################
 # The following methods are no longer supported or allowed.
 
-    def setmaxread (self, maxread):
-
+    def setmaxread(self, maxread):
         """This method is no longer supported or allowed. I don't like getters
         and setters without a good reason. """
 
-        raise ExceptionPexpect ('This method is no longer supported or allowed. Just assign a value to the maxread member variable.')
-
-    def setlog (self, fileobject):
+        raise ExceptionPexpect(
+            'This method is no longer supported or allowed. Just assign a value to the maxread member variable.')
 
+    def setlog(self, fileobject):
         """This method is no longer supported or allowed.
         """
 
-        raise ExceptionPexpect ('This method is no longer supported or allowed. Just assign a value to the logfile member variable.')
+        raise ExceptionPexpect(
+            'This method is no longer supported or allowed. Just assign a value to the logfile member variable.')
 
 ##############################################################################
 # End of spawn class
 ##############################################################################
 
+
 class searcher_string (object):
 
     """This is a plain string search helper for the spawn.expect_any() method.
@@ -1595,7 +1643,6 @@ class searcher_string (object):
     """
 
     def __init__(self, strings):
-
         """This creates an instance of searcher_string. This argument 'strings'
         may be a list; a sequence of strings; or the EOF or TIMEOUT types. """
 
@@ -1612,22 +1659,23 @@ class searcher_string (object):
             self._strings.append((n, s))
 
     def __str__(self):
-
         """This returns a human-readable string that represents the state of
         the object."""
 
-        ss =  [ (ns[0],'    %d: "%s"' % ns) for ns in self._strings ]
-        ss.append((-1,'searcher_string:'))
+        ss = [(ns[0], '    %d: "%s"' % ns) for ns in self._strings]
+        ss.append((-1, 'searcher_string:'))
         if self.eof_index >= 0:
-            ss.append ((self.eof_index,'    %d: EOF' % self.eof_index))
+            ss.append((self.eof_index, '    %d: EOF' % self.eof_index))
         if self.timeout_index >= 0:
-            ss.append ((self.timeout_index,'    %d: TIMEOUT' % self.timeout_index))
+            ss.append(
+                (self.timeout_index,
+                 '    %d: TIMEOUT' %
+                 self.timeout_index))
         ss.sort()
         ss = zip(*ss)[1]
         return '\n'.join(ss)
 
     def search(self, buffer, freshlen, searchwindowsize=None):
-
         """This searches 'buffer' for the first occurence of one of the search
         strings.  'freshlen' must indicate the number of bytes at the end of
         'buffer' which have not been searched before. It helps to avoid
@@ -1652,12 +1700,12 @@ class searcher_string (object):
         # rescanning until we've read three more bytes.
         #
         # Sadly, I don't know enough about this interesting topic. /grahn
-        
+
         for index, s in self._strings:
             if searchwindowsize is None:
                 # the match, if any, can only be in the fresh data,
                 # or at the very end of the old data
-                offset = -(freshlen+len(s))
+                offset = -(freshlen + len(s))
             else:
                 # better obey searchwindowsize
                 offset = -searchwindowsize
@@ -1672,6 +1720,7 @@ class searcher_string (object):
         self.end = self.start + len(self.match)
         return best_index
 
+
 class searcher_re (object):
 
     """This is regular expression string search helper for the
@@ -1692,7 +1741,6 @@ class searcher_re (object):
     """
 
     def __init__(self, patterns):
-
         """This creates an instance that searches for 'patterns' Where
         'patterns' may be a list or other sequence of compiled regular
         expressions, or the EOF or TIMEOUT types."""
@@ -1710,28 +1758,30 @@ class searcher_re (object):
             self._searches.append((n, s))
 
     def __str__(self):
-
         """This returns a human-readable string that represents the state of
         the object."""
 
-        ss =  [ (n,'    %d: re.compile("%s")' % (n,str(s.pattern))) for n,s in self._searches]
-        ss.append((-1,'searcher_re:'))
+        ss = [(n, '    %d: re.compile("%s")' % (n, str(s.pattern)))
+              for n, s in self._searches]
+        ss.append((-1, 'searcher_re:'))
         if self.eof_index >= 0:
-            ss.append ((self.eof_index,'    %d: EOF' % self.eof_index))
+            ss.append((self.eof_index, '    %d: EOF' % self.eof_index))
         if self.timeout_index >= 0:
-            ss.append ((self.timeout_index,'    %d: TIMEOUT' % self.timeout_index))
+            ss.append(
+                (self.timeout_index,
+                 '    %d: TIMEOUT' %
+                 self.timeout_index))
         ss.sort()
         ss = zip(*ss)[1]
         return '\n'.join(ss)
 
     def search(self, buffer, freshlen, searchwindowsize=None):
-
         """This searches 'buffer' for the first occurence of one of the regular
         expressions. 'freshlen' must indicate the number of bytes at the end of
         'buffer' which have not been searched before.
 
         See class spawn for the 'searchwindowsize' argument.
-        
+
         If there is a match this returns the index of that string, and sets
         'start', 'end' and 'match'. Otherwise, returns -1."""
 
@@ -1742,7 +1792,7 @@ class searcher_re (object):
         if searchwindowsize is None:
             searchstart = 0
         else:
-            searchstart = max(0, len(buffer)-searchwindowsize)
+            searchstart = max(0, len(buffer) - searchwindowsize)
         for index, s in self._searches:
             match = s.search(buffer, searchstart)
             if match is None:
@@ -1759,18 +1809,18 @@ class searcher_re (object):
         self.end = self.match.end()
         return best_index
 
-def which (filename):
 
+def which(filename):
     """This takes a given filename; tries to find it in the environment path;
     then checks if it is executable. This returns the full path to the filename
     if found and executable. Otherwise this returns None."""
 
     # Special case where filename already contains a path.
     if os.path.dirname(filename) != '':
-        if os.access (filename, os.X_OK):
+        if os.access(filename, os.X_OK):
             return filename
 
-    if not os.environ.has_key('PATH') or os.environ['PATH'] == '':
+    if 'PATH' not in os.environ or os.environ['PATH'] == '':
         p = os.defpath
     else:
         p = os.environ['PATH']
@@ -1778,7 +1828,7 @@ def which (filename):
     # Oddly enough this was the one line that made Pexpect
     # incompatible with Python 1.5.2.
     #pathlist = p.split (os.pathsep)
-    pathlist = string.split (p, os.pathsep)
+    pathlist = string.split(p, os.pathsep)
 
     for path in pathlist:
         f = os.path.join(path, filename)
@@ -1786,8 +1836,8 @@ def which (filename):
             return f
     return None
 
-def split_command_line(command_line):
 
+def split_command_line(command_line):
     """This splits a command line into a list of arguments. It splits arguments
     on spaces, but handles embedded quotes, doublequotes, and escaped
     characters. It's impossible to do this with a regular expression, so I
@@ -1801,21 +1851,21 @@ def split_command_line(command_line):
     state_esc = 1
     state_singlequote = 2
     state_doublequote = 3
-    state_whitespace = 4 # The state of consuming whitespace between commands.
+    state_whitespace = 4  # The state of consuming whitespace between commands.
     state = state_basic
 
     for c in command_line:
         if state == state_basic or state == state_whitespace:
-            if c == '\\': # Escape the next character
+            if c == '\\':  # Escape the next character
                 state = state_esc
-            elif c == r"'": # Handle single quote
+            elif c == r"'":  # Handle single quote
                 state = state_singlequote
-            elif c == r'"': # Handle double quote
+            elif c == r'"':  # Handle double quote
                 state = state_doublequote
             elif c.isspace():
                 # Add arg to arg_list if we aren't in the middle of whitespace.
                 if state == state_whitespace:
-                    None # Do nothing.
+                    None  # Do nothing.
                 else:
                     arg_list.append(arg)
                     arg = ''

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/pxssh.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/pxssh.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/pxssh.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/pxssh.py Tue Sep  6 15:57:50 2016
@@ -11,10 +11,13 @@ import time
 __all__ = ['ExceptionPxssh', 'pxssh']
 
 # Exception classes used by this module.
+
+
 class ExceptionPxssh(ExceptionPexpect):
     """Raised for pxssh exceptions.
     """
 
+
 class pxssh (spawn):
 
     """This class extends pexpect.spawn to specialize setting up SSH
@@ -30,10 +33,10 @@ class pxssh (spawn):
     shells.
 
     Example that runs a few commands on a remote server and prints the result::
-        
+
         import pxssh
         import getpass
-        try:                                                            
+        try:
             s = pxssh.pxssh()
             hostname = raw_input('hostname: ')
             username = raw_input('username: ')
@@ -70,19 +73,34 @@ class pxssh (spawn):
             s.login (hostname, username, password)
     """
 
-    def __init__ (self, timeout=30, maxread=2000, searchwindowsize=None, logfile=None, cwd=None, env=None):
-        spawn.__init__(self, None, timeout=timeout, maxread=maxread, searchwindowsize=searchwindowsize, logfile=logfile, cwd=cwd, env=env)
+    def __init__(
+            self,
+            timeout=30,
+            maxread=2000,
+            searchwindowsize=None,
+            logfile=None,
+            cwd=None,
+            env=None):
+        spawn.__init__(
+            self,
+            None,
+            timeout=timeout,
+            maxread=maxread,
+            searchwindowsize=searchwindowsize,
+            logfile=logfile,
+            cwd=cwd,
+            env=env)
 
         self.name = '<pxssh>'
-        
-        #SUBTLE HACK ALERT! Note that the command to set the prompt uses a
-        #slightly different string than the regular expression to match it. This
-        #is because when you set the prompt the command will echo back, but we
-        #don't want to match the echoed command. So if we make the set command
-        #slightly different than the regex we eliminate the problem. To make the
-        #set command different we add a backslash in front of $. The $ doesn't
-        #need to be escaped, but it doesn't hurt and serves to make the set
-        #prompt command different than the regex.
+
+        # SUBTLE HACK ALERT! Note that the command to set the prompt uses a
+        # slightly different string than the regular expression to match it. This
+        # is because when you set the prompt the command will echo back, but we
+        # don't want to match the echoed command. So if we make the set command
+        # slightly different than the regex we eliminate the problem. To make the
+        # set command different we add a backslash in front of $. The $ doesn't
+        # need to be escaped, but it doesn't hurt and serves to make the set
+        # prompt command different than the regex.
 
         # used to match the command-line prompt
         self.UNIQUE_PROMPT = "\[PEXPECT\][\$\#] "
@@ -98,30 +116,28 @@ class pxssh (spawn):
         # Unsetting SSH_ASKPASS on the remote side doesn't disable it! Annoying!
         #self.SSH_OPTS = "-x -o'RSAAuthentication=no' -o 'PubkeyAuthentication=no'"
         self.force_password = False
-        self.auto_prompt_reset = True 
-
-    def levenshtein_distance(self, a,b):
+        self.auto_prompt_reset = True
 
+    def levenshtein_distance(self, a, b):
         """This calculates the Levenshtein distance between a and b.
         """
 
         n, m = len(a), len(b)
         if n > m:
-            a,b = b,a
-            n,m = m,n
-        current = range(n+1)
-        for i in range(1,m+1):
-            previous, current = current, [i]+[0]*n
-            for j in range(1,n+1):
-                add, delete = previous[j]+1, current[j-1]+1
-                change = previous[j-1]
-                if a[j-1] != b[i-1]:
+            a, b = b, a
+            n, m = m, n
+        current = range(n + 1)
+        for i in range(1, m + 1):
+            previous, current = current, [i] + [0] * n
+            for j in range(1, n + 1):
+                add, delete = previous[j] + 1, current[j - 1] + 1
+                change = previous[j - 1]
+                if a[j - 1] != b[i - 1]:
                     change = change + 1
                 current[j] = min(add, delete, change)
         return current[n]
 
-    def sync_original_prompt (self):
-
+    def sync_original_prompt(self):
         """This attempts to find the prompt. Basically, press enter and record
         the response; press enter again and record the response; if the two
         responses are similar then assume we are at the original prompt. This
@@ -133,33 +149,42 @@ class pxssh (spawn):
         # If latency is worse than these values then this will fail.
 
         try:
-            self.read_nonblocking(size=10000,timeout=1) # GAS: Clear out the cache before getting the prompt
+            # GAS: Clear out the cache before getting the prompt
+            self.read_nonblocking(size=10000, timeout=1)
         except TIMEOUT:
             pass
         time.sleep(0.1)
         self.sendline()
         time.sleep(0.5)
-        x = self.read_nonblocking(size=1000,timeout=1)
+        x = self.read_nonblocking(size=1000, timeout=1)
         time.sleep(0.1)
         self.sendline()
         time.sleep(0.5)
-        a = self.read_nonblocking(size=1000,timeout=1)
+        a = self.read_nonblocking(size=1000, timeout=1)
         time.sleep(0.1)
         self.sendline()
         time.sleep(0.5)
-        b = self.read_nonblocking(size=1000,timeout=1)
-        ld = self.levenshtein_distance(a,b)
+        b = self.read_nonblocking(size=1000, timeout=1)
+        ld = self.levenshtein_distance(a, b)
         len_a = len(a)
         if len_a == 0:
             return False
-        if float(ld)/len_a < 0.4:
+        if float(ld) / len_a < 0.4:
             return True
         return False
 
-    ### TODO: This is getting messy and I'm pretty sure this isn't perfect.
-    ### TODO: I need to draw a flow chart for this.
-    def login (self,server,username,password='',terminal_type='ansi',original_prompt=r"[#$]",login_timeout=10,port=None,auto_prompt_reset=True):
-
+    # TODO: This is getting messy and I'm pretty sure this isn't perfect.
+    # TODO: I need to draw a flow chart for this.
+    def login(
+            self,
+            server,
+            username,
+            password='',
+            terminal_type='ansi',
+            original_prompt=r"[#$]",
+            login_timeout=10,
+            port=None,
+            auto_prompt_reset=True):
         """This logs the user into the given server. It uses the
         'original_prompt' to try to find the prompt right after login. When it
         finds the prompt it immediately tries to reset the prompt to something
@@ -175,7 +200,7 @@ class pxssh (spawn):
         to guess when we have reached the prompt. Then we hope for the best and
         blindly try to reset the prompt to something more unique. If that fails
         then login() raises an ExceptionPxssh exception.
-        
+
         In some situations it is not possible or desirable to reset the
         original prompt. In this case, set 'auto_prompt_reset' to False to
         inhibit setting the prompt to the UNIQUE_PROMPT. Remember that pxssh
@@ -187,88 +212,120 @@ class pxssh (spawn):
         if self.force_password:
             ssh_options = ssh_options + ' ' + self.SSH_OPTS
         if port is not None:
-            ssh_options = ssh_options + ' -p %s'%(str(port))
+            ssh_options = ssh_options + ' -p %s' % (str(port))
         cmd = "ssh %s -l %s %s" % (ssh_options, username, server)
 
         # This does not distinguish between a remote server 'password' prompt
         # and a local ssh 'passphrase' prompt (for unlocking a private key).
         spawn._spawn(self, cmd)
-        i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT, "(?i)connection closed by remote host"], timeout=login_timeout)
+        i = self.expect(
+            [
+                "(?i)are you sure you want to continue connecting",
+                original_prompt,
+                "(?i)(?:password)|(?:passphrase for key)",
+                "(?i)permission denied",
+                "(?i)terminal type",
+                TIMEOUT,
+                "(?i)connection closed by remote host"],
+            timeout=login_timeout)
 
         # First phase
-        if i==0: 
+        if i == 0:
             # New certificate -- always accept it.
             # This is what you get if SSH does not have the remote host's
             # public key stored in the 'known_hosts' cache.
             self.sendline("yes")
-            i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT])
-        if i==2: # password or passphrase
+            i = self.expect(
+                [
+                    "(?i)are you sure you want to continue connecting",
+                    original_prompt,
+                    "(?i)(?:password)|(?:passphrase for key)",
+                    "(?i)permission denied",
+                    "(?i)terminal type",
+                    TIMEOUT])
+        if i == 2:  # password or passphrase
             self.sendline(password)
-            i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT])
-        if i==4:
+            i = self.expect(
+                [
+                    "(?i)are you sure you want to continue connecting",
+                    original_prompt,
+                    "(?i)(?:password)|(?:passphrase for key)",
+                    "(?i)permission denied",
+                    "(?i)terminal type",
+                    TIMEOUT])
+        if i == 4:
             self.sendline(terminal_type)
-            i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT])
+            i = self.expect(
+                [
+                    "(?i)are you sure you want to continue connecting",
+                    original_prompt,
+                    "(?i)(?:password)|(?:passphrase for key)",
+                    "(?i)permission denied",
+                    "(?i)terminal type",
+                    TIMEOUT])
 
         # Second phase
-        if i==0:
+        if i == 0:
             # This is weird. This should not happen twice in a row.
             self.close()
-            raise ExceptionPxssh ('Weird error. Got "are you sure" prompt twice.')
-        elif i==1: # can occur if you have a public key pair set to authenticate. 
-            ### TODO: May NOT be OK if expect() got tricked and matched a false prompt.
+            raise ExceptionPxssh(
+                'Weird error. Got "are you sure" prompt twice.')
+        elif i == 1:  # can occur if you have a public key pair set to authenticate.
+            # TODO: May NOT be OK if expect() got tricked and matched a false
+            # prompt.
             pass
-        elif i==2: # password prompt again
+        elif i == 2:  # password prompt again
             # For incorrect passwords, some ssh servers will
             # ask for the password again, others return 'denied' right away.
             # If we get the password prompt again then this means
-            # we didn't get the password right the first time. 
+            # we didn't get the password right the first time.
             self.close()
-            raise ExceptionPxssh ('password refused')
-        elif i==3: # permission denied -- password was bad.
+            raise ExceptionPxssh('password refused')
+        elif i == 3:  # permission denied -- password was bad.
             self.close()
-            raise ExceptionPxssh ('permission denied')
-        elif i==4: # terminal type again? WTF?
+            raise ExceptionPxssh('permission denied')
+        elif i == 4:  # terminal type again? WTF?
             self.close()
-            raise ExceptionPxssh ('Weird error. Got "terminal type" prompt twice.')
-        elif i==5: # Timeout
-            #This is tricky... I presume that we are at the command-line prompt.
-            #It may be that the shell prompt was so weird that we couldn't match
-            #it. Or it may be that we couldn't log in for some other reason. I
-            #can't be sure, but it's safe to guess that we did login because if
-            #I presume wrong and we are not logged in then this should be caught
-            #later when I try to set the shell prompt.
+            raise ExceptionPxssh(
+                'Weird error. Got "terminal type" prompt twice.')
+        elif i == 5:  # Timeout
+            # This is tricky... I presume that we are at the command-line prompt.
+            # It may be that the shell prompt was so weird that we couldn't match
+            # it. Or it may be that we couldn't log in for some other reason. I
+            # can't be sure, but it's safe to guess that we did login because if
+            # I presume wrong and we are not logged in then this should be caught
+            # later when I try to set the shell prompt.
             pass
-        elif i==6: # Connection closed by remote host
+        elif i == 6:  # Connection closed by remote host
             self.close()
-            raise ExceptionPxssh ('connection closed')
-        else: # Unexpected 
+            raise ExceptionPxssh('connection closed')
+        else:  # Unexpected
             self.close()
-            raise ExceptionPxssh ('unexpected login response')
+            raise ExceptionPxssh('unexpected login response')
         if not self.sync_original_prompt():
             self.close()
-            raise ExceptionPxssh ('could not synchronize with original prompt')
+            raise ExceptionPxssh('could not synchronize with original prompt')
         # We appear to be in.
         # set shell prompt to something unique.
         if auto_prompt_reset:
             if not self.set_unique_prompt():
                 self.close()
-                raise ExceptionPxssh ('could not set shell prompt\n'+self.before)
+                raise ExceptionPxssh(
+                    'could not set shell prompt\n' + self.before)
         return True
 
-    def logout (self):
-
+    def logout(self):
         """This sends exit to the remote shell. If there are stopped jobs then
         this automatically sends exit twice. """
 
         self.sendline("exit")
         index = self.expect([EOF, "(?i)there are stopped jobs"])
-        if index==1:
+        if index == 1:
             self.sendline("exit")
             self.expect(EOF)
         self.close()
 
-    def prompt (self, timeout=20):
-
+    def prompt(self, timeout=20):
         """This matches the shell prompt. This is little more than a short-cut
         to the expect() method. This returns True if the shell prompt was
         matched. This returns False if there was a timeout. Note that if you
@@ -277,12 +334,11 @@ class pxssh (spawn):
         prompt. """
 
         i = self.expect([self.PROMPT, TIMEOUT], timeout=timeout)
-        if i==1:
+        if i == 1:
             return False
         return True
-        
-    def set_unique_prompt (self):
 
+    def set_unique_prompt(self):
         """This sets the remote prompt to something more unique than # or $.
         This makes it easier for the prompt() method to match the shell prompt
         unambiguously. This method is called automatically by the login()
@@ -298,12 +354,12 @@ class pxssh (spawn):
         attribute. After that the prompt() method will try to match your prompt
         pattern."""
 
-        self.sendline ("unset PROMPT_COMMAND")
-        self.sendline (self.PROMPT_SET_SH) # sh-style
-        i = self.expect ([TIMEOUT, self.PROMPT], timeout=10)
-        if i == 0: # csh-style
-            self.sendline (self.PROMPT_SET_CSH)
-            i = self.expect ([TIMEOUT, self.PROMPT], timeout=10)
+        self.sendline("unset PROMPT_COMMAND")
+        self.sendline(self.PROMPT_SET_SH)  # sh-style
+        i = self.expect([TIMEOUT, self.PROMPT], timeout=10)
+        if i == 0:  # csh-style
+            self.sendline(self.PROMPT_SET_CSH)
+            i = self.expect([TIMEOUT, self.PROMPT], timeout=10)
             if i == 0:
                 return False
         return True

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/screen.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/screen.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/screen.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/screen.py Tue Sep  6 15:57:50 2016
@@ -11,8 +11,8 @@ import copy
 NUL = 0    # Fill character; ignored on input.
 ENQ = 5    # Transmit answerback message.
 BEL = 7    # Ring the bell.
-BS  = 8    # Move cursor left.
-HT  = 9    # Move cursor to next tab stop.
+BS = 8    # Move cursor left.
+HT = 9    # Move cursor to next tab stop.
 LF = 10    # Line feed.
 VT = 11    # Same as LF.
 FF = 12    # Same as LF.
@@ -25,10 +25,10 @@ CAN = 24   # Cancel escape sequence.
 SUB = 26   # Same as CAN.
 ESC = 27   # Introduce a control sequence.
 DEL = 127  # Fill character; ignored on input.
-SPACE = chr(32) # Space or blank character.
+SPACE = chr(32)  # Space or blank character.
 
-def constrain (n, min, max):
 
+def constrain(n, min, max):
     """This returns a number, n constrained to the min and max bounds. """
 
     if n < min:
@@ -37,6 +37,7 @@ def constrain (n, min, max):
         return max
     return n
 
+
 class screen:
 
     """This object maintains the state of a virtual text screen as a
@@ -45,8 +46,7 @@ class screen:
     by an ANSI text screen. Row and column indexes are 1-based (not zero-based,
     like arrays). """
 
-    def __init__ (self, r=24,c=80):
-
+    def __init__(self, r=24, c=80):
         """This initializes a blank scree of the given dimentions."""
 
         self.rows = r
@@ -57,222 +57,205 @@ class screen:
         self.cur_saved_c = 1
         self.scroll_row_start = 1
         self.scroll_row_end = self.rows
-        self.w = [ [SPACE] * self.cols for c in range(self.rows)]
-
-    def __str__ (self):
+        self.w = [[SPACE] * self.cols for c in range(self.rows)]
 
+    def __str__(self):
         """This returns a printable representation of the screen. The end of
         each screen line is terminated by a newline. """
 
-        return '\n'.join ([ ''.join(c) for c in self.w ])
-
-    def dump (self):
+        return '\n'.join([''.join(c) for c in self.w])
 
+    def dump(self):
         """This returns a copy of the screen as a string. This is similar to
         __str__ except that lines are not terminated with line feeds. """
 
-        return ''.join ([ ''.join(c) for c in self.w ])
-
-    def pretty (self):
+        return ''.join([''.join(c) for c in self.w])
 
+    def pretty(self):
         """This returns a copy of the screen as a string with an ASCII text box
         around the screen border. This is similar to __str__ except that it
         adds a box. """
 
-        top_bot = '+' + '-'*self.cols + '+\n'
-        return top_bot + '\n'.join(['|'+line+'|' for line in str(self).split('\n')]) + '\n' + top_bot
+        top_bot = '+' + '-' * self.cols + '+\n'
+        return top_bot + \
+            '\n'.join(['|' + line + '|' for line in str(self).split('\n')]) + '\n' + top_bot
 
-    def fill (self, ch=SPACE):
+    def fill(self, ch=SPACE):
 
-        self.fill_region (1,1,self.rows,self.cols, ch)
+        self.fill_region(1, 1, self.rows, self.cols, ch)
 
-    def fill_region (self, rs,cs, re,ce, ch=SPACE):
+    def fill_region(self, rs, cs, re, ce, ch=SPACE):
 
-        rs = constrain (rs, 1, self.rows)
-        re = constrain (re, 1, self.rows)
-        cs = constrain (cs, 1, self.cols)
-        ce = constrain (ce, 1, self.cols)
+        rs = constrain(rs, 1, self.rows)
+        re = constrain(re, 1, self.rows)
+        cs = constrain(cs, 1, self.cols)
+        ce = constrain(ce, 1, self.cols)
         if rs > re:
             rs, re = re, rs
         if cs > ce:
             cs, ce = ce, cs
-        for r in range (rs, re+1):
-            for c in range (cs, ce + 1):
-                self.put_abs (r,c,ch)
-
-    def cr (self):
+        for r in range(rs, re + 1):
+            for c in range(cs, ce + 1):
+                self.put_abs(r, c, ch)
 
+    def cr(self):
         """This moves the cursor to the beginning (col 1) of the current row.
         """
 
-        self.cursor_home (self.cur_r, 1)
-
-    def lf (self):
+        self.cursor_home(self.cur_r, 1)
 
+    def lf(self):
         """This moves the cursor down with scrolling.
         """
 
         old_r = self.cur_r
         self.cursor_down()
         if old_r == self.cur_r:
-            self.scroll_up ()
+            self.scroll_up()
             self.erase_line()
 
-    def crlf (self):
-
+    def crlf(self):
         """This advances the cursor with CRLF properties.
         The cursor will line wrap and the screen may scroll.
         """
 
-        self.cr ()
-        self.lf ()
-
-    def newline (self):
+        self.cr()
+        self.lf()
 
+    def newline(self):
         """This is an alias for crlf().
         """
 
         self.crlf()
 
-    def put_abs (self, r, c, ch):
-
+    def put_abs(self, r, c, ch):
         """Screen array starts at 1 index."""
 
-        r = constrain (r, 1, self.rows)
-        c = constrain (c, 1, self.cols)
+        r = constrain(r, 1, self.rows)
+        c = constrain(c, 1, self.cols)
         ch = str(ch)[0]
-        self.w[r-1][c-1] = ch
-
-    def put (self, ch):
+        self.w[r - 1][c - 1] = ch
 
+    def put(self, ch):
         """This puts a characters at the current cursor position.
         """
 
-        self.put_abs (self.cur_r, self.cur_c, ch)
-
-    def insert_abs (self, r, c, ch):
+        self.put_abs(self.cur_r, self.cur_c, ch)
 
+    def insert_abs(self, r, c, ch):
         """This inserts a character at (r,c). Everything under
         and to the right is shifted right one character.
         The last character of the line is lost.
         """
 
-        r = constrain (r, 1, self.rows)
-        c = constrain (c, 1, self.cols)
-        for ci in range (self.cols, c, -1): 
-            self.put_abs (r,ci, self.get_abs(r,ci-1))
-        self.put_abs (r,c,ch)
+        r = constrain(r, 1, self.rows)
+        c = constrain(c, 1, self.cols)
+        for ci in range(self.cols, c, -1):
+            self.put_abs(r, ci, self.get_abs(r, ci - 1))
+        self.put_abs(r, c, ch)
 
-    def insert (self, ch):
+    def insert(self, ch):
 
-        self.insert_abs (self.cur_r, self.cur_c, ch)
+        self.insert_abs(self.cur_r, self.cur_c, ch)
 
-    def get_abs (self, r, c):
-    
-        r = constrain (r, 1, self.rows)
-        c = constrain (c, 1, self.cols)
-        return self.w[r-1][c-1]
+    def get_abs(self, r, c):
 
-    def get (self):
+        r = constrain(r, 1, self.rows)
+        c = constrain(c, 1, self.cols)
+        return self.w[r - 1][c - 1]
 
-        self.get_abs (self.cur_r, self.cur_c)
+    def get(self):
 
-    def get_region (self, rs,cs, re,ce):
+        self.get_abs(self.cur_r, self.cur_c)
 
+    def get_region(self, rs, cs, re, ce):
         """This returns a list of lines representing the region.
         """
 
-        rs = constrain (rs, 1, self.rows)
-        re = constrain (re, 1, self.rows)
-        cs = constrain (cs, 1, self.cols)
-        ce = constrain (ce, 1, self.cols)
+        rs = constrain(rs, 1, self.rows)
+        re = constrain(re, 1, self.rows)
+        cs = constrain(cs, 1, self.cols)
+        ce = constrain(ce, 1, self.cols)
         if rs > re:
             rs, re = re, rs
         if cs > ce:
             cs, ce = ce, cs
         sc = []
-        for r in range (rs, re+1):
+        for r in range(rs, re + 1):
             line = ''
-            for c in range (cs, ce + 1):
-                ch = self.get_abs (r,c)
+            for c in range(cs, ce + 1):
+                ch = self.get_abs(r, c)
                 line = line + ch
-            sc.append (line)
+            sc.append(line)
         return sc
 
-    def cursor_constrain (self):
-
+    def cursor_constrain(self):
         """This keeps the cursor within the screen area.
         """
 
-        self.cur_r = constrain (self.cur_r, 1, self.rows)
-        self.cur_c = constrain (self.cur_c, 1, self.cols)
+        self.cur_r = constrain(self.cur_r, 1, self.rows)
+        self.cur_c = constrain(self.cur_c, 1, self.cols)
 
-    def cursor_home (self, r=1, c=1): # <ESC>[{ROW};{COLUMN}H
+    def cursor_home(self, r=1, c=1):  # <ESC>[{ROW};{COLUMN}H
 
         self.cur_r = r
         self.cur_c = c
-        self.cursor_constrain ()
+        self.cursor_constrain()
 
-    def cursor_back (self,count=1): # <ESC>[{COUNT}D (not confused with down)
+    def cursor_back(self, count=1):  # <ESC>[{COUNT}D (not confused with down)
 
         self.cur_c = self.cur_c - count
-        self.cursor_constrain ()
+        self.cursor_constrain()
 
-    def cursor_down (self,count=1): # <ESC>[{COUNT}B (not confused with back)
+    def cursor_down(self, count=1):  # <ESC>[{COUNT}B (not confused with back)
 
         self.cur_r = self.cur_r + count
-        self.cursor_constrain ()
+        self.cursor_constrain()
 
-    def cursor_forward (self,count=1): # <ESC>[{COUNT}C
+    def cursor_forward(self, count=1):  # <ESC>[{COUNT}C
 
         self.cur_c = self.cur_c + count
-        self.cursor_constrain ()
+        self.cursor_constrain()
 
-    def cursor_up (self,count=1): # <ESC>[{COUNT}A
+    def cursor_up(self, count=1):  # <ESC>[{COUNT}A
 
         self.cur_r = self.cur_r - count
-        self.cursor_constrain ()
+        self.cursor_constrain()
 
-    def cursor_up_reverse (self): # <ESC> M   (called RI -- Reverse Index)
+    def cursor_up_reverse(self):  # <ESC> M   (called RI -- Reverse Index)
 
         old_r = self.cur_r
         self.cursor_up()
         if old_r == self.cur_r:
             self.scroll_up()
 
-    def cursor_force_position (self, r, c): # <ESC>[{ROW};{COLUMN}f
-
+    def cursor_force_position(self, r, c):  # <ESC>[{ROW};{COLUMN}f
         """Identical to Cursor Home."""
 
-        self.cursor_home (r, c)
-
-    def cursor_save (self): # <ESC>[s
+        self.cursor_home(r, c)
 
+    def cursor_save(self):  # <ESC>[s
         """Save current cursor position."""
 
         self.cursor_save_attrs()
 
-    def cursor_unsave (self): # <ESC>[u
-
+    def cursor_unsave(self):  # <ESC>[u
         """Restores cursor position after a Save Cursor."""
 
         self.cursor_restore_attrs()
 
-    def cursor_save_attrs (self): # <ESC>7
-
+    def cursor_save_attrs(self):  # <ESC>7
         """Save current cursor position."""
 
         self.cur_saved_r = self.cur_r
         self.cur_saved_c = self.cur_c
 
-    def cursor_restore_attrs (self): # <ESC>8
-
+    def cursor_restore_attrs(self):  # <ESC>8
         """Restores cursor position after a Save Cursor."""
 
-        self.cursor_home (self.cur_saved_r, self.cur_saved_c)
-
-    def scroll_constrain (self):
+        self.cursor_home(self.cur_saved_r, self.cur_saved_c)
 
+    def scroll_constrain(self):
         """This keeps the scroll region within the screen region."""
 
         if self.scroll_row_start <= 0:
@@ -280,95 +263,82 @@ class screen:
         if self.scroll_row_end > self.rows:
             self.scroll_row_end = self.rows
 
-    def scroll_screen (self): # <ESC>[r
-
+    def scroll_screen(self):  # <ESC>[r
         """Enable scrolling for entire display."""
 
         self.scroll_row_start = 1
         self.scroll_row_end = self.rows
 
-    def scroll_screen_rows (self, rs, re): # <ESC>[{start};{end}r
-
+    def scroll_screen_rows(self, rs, re):  # <ESC>[{start};{end}r
         """Enable scrolling from row {start} to row {end}."""
 
         self.scroll_row_start = rs
         self.scroll_row_end = re
         self.scroll_constrain()
 
-    def scroll_down (self): # <ESC>D
-
+    def scroll_down(self):  # <ESC>D
         """Scroll display down one line."""
 
         # Screen is indexed from 1, but arrays are indexed from 0.
         s = self.scroll_row_start - 1
         e = self.scroll_row_end - 1
-        self.w[s+1:e+1] = copy.deepcopy(self.w[s:e])
-
-    def scroll_up (self): # <ESC>M
+        self.w[s + 1:e + 1] = copy.deepcopy(self.w[s:e])
 
+    def scroll_up(self):  # <ESC>M
         """Scroll display up one line."""
 
         # Screen is indexed from 1, but arrays are indexed from 0.
         s = self.scroll_row_start - 1
         e = self.scroll_row_end - 1
-        self.w[s:e] = copy.deepcopy(self.w[s+1:e+1])
-
-    def erase_end_of_line (self): # <ESC>[0K -or- <ESC>[K
+        self.w[s:e] = copy.deepcopy(self.w[s + 1:e + 1])
 
+    def erase_end_of_line(self):  # <ESC>[0K -or- <ESC>[K
         """Erases from the current cursor position to the end of the current
         line."""
 
-        self.fill_region (self.cur_r, self.cur_c, self.cur_r, self.cols)
-
-    def erase_start_of_line (self): # <ESC>[1K
+        self.fill_region(self.cur_r, self.cur_c, self.cur_r, self.cols)
 
+    def erase_start_of_line(self):  # <ESC>[1K
         """Erases from the current cursor position to the start of the current
         line."""
 
-        self.fill_region (self.cur_r, 1, self.cur_r, self.cur_c)
-
-    def erase_line (self): # <ESC>[2K
+        self.fill_region(self.cur_r, 1, self.cur_r, self.cur_c)
 
+    def erase_line(self):  # <ESC>[2K
         """Erases the entire current line."""
 
-        self.fill_region (self.cur_r, 1, self.cur_r, self.cols)
-
-    def erase_down (self): # <ESC>[0J -or- <ESC>[J
+        self.fill_region(self.cur_r, 1, self.cur_r, self.cols)
 
+    def erase_down(self):  # <ESC>[0J -or- <ESC>[J
         """Erases the screen from the current line down to the bottom of the
         screen."""
 
-        self.erase_end_of_line ()
-        self.fill_region (self.cur_r + 1, 1, self.rows, self.cols)
-
-    def erase_up (self): # <ESC>[1J
+        self.erase_end_of_line()
+        self.fill_region(self.cur_r + 1, 1, self.rows, self.cols)
 
+    def erase_up(self):  # <ESC>[1J
         """Erases the screen from the current line up to the top of the
         screen."""
 
-        self.erase_start_of_line ()
-        self.fill_region (self.cur_r-1, 1, 1, self.cols)
-
-    def erase_screen (self): # <ESC>[2J
+        self.erase_start_of_line()
+        self.fill_region(self.cur_r - 1, 1, 1, self.cols)
 
+    def erase_screen(self):  # <ESC>[2J
         """Erases the screen with the background color."""
 
-        self.fill ()
-
-    def set_tab (self): # <ESC>H
+        self.fill()
 
+    def set_tab(self):  # <ESC>H
         """Sets a tab at the current position."""
 
         pass
 
-    def clear_tab (self): # <ESC>[g
-
+    def clear_tab(self):  # <ESC>[g
         """Clears tab at the current position."""
 
         pass
 
-    def clear_all_tabs (self): # <ESC>[3g
-
+    def clear_all_tabs(self):  # <ESC>[3g
         """Clears all tabs."""
 
         pass
@@ -377,4 +347,3 @@ class screen:
 #        Delete line             Esc [ Pn M
 #        Delete character        Esc [ Pn P
 #        Scrolling region        Esc [ Pn(top);Pn(bot) r
-

Modified: lldb/trunk/third_party/Python/module/pexpect-2.4/setup.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/pexpect-2.4/setup.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/pexpect-2.4/setup.py (original)
+++ lldb/trunk/third_party/Python/module/pexpect-2.4/setup.py Tue Sep  6 15:57:50 2016
@@ -3,16 +3,16 @@ $Revision: 485 $
 $Date: 2007-07-12 15:23:15 -0700 (Thu, 12 Jul 2007) $
 '''
 from distutils.core import setup
-setup (name='pexpect',
-    version='2.4',
-    py_modules=['pexpect', 'pxssh', 'fdpexpect', 'FSM', 'screen', 'ANSI'],
-    description='Pexpect is a pure Python Expect. It allows easy control of other applications.',
-    author='Noah Spurrier',
-    author_email='noah at noah.org',
-    url='http://pexpect.sourceforge.net/',
-    license='MIT license',
-    platforms='UNIX',
-)
+setup(name='pexpect',
+      version='2.4',
+      py_modules=['pexpect', 'pxssh', 'fdpexpect', 'FSM', 'screen', 'ANSI'],
+      description='Pexpect is a pure Python Expect. It allows easy control of other applications.',
+      author='Noah Spurrier',
+      author_email='noah at noah.org',
+      url='http://pexpect.sourceforge.net/',
+      license='MIT license',
+      platforms='UNIX',
+      )
 
 #    classifiers = [
 #        'Development Status :: 4 - Beta',
@@ -34,6 +34,3 @@ setup (name='pexpect',
 #        'Topic :: System :: Software Distribution',
 #        'Topic :: Terminals, Utilities',
 #    ],
-
-
-

Modified: lldb/trunk/third_party/Python/module/progress/progress.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/progress/progress.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/progress/progress.py (original)
+++ lldb/trunk/third_party/Python/module/progress/progress.py Tue Sep  6 15:57:50 2016
@@ -8,10 +8,11 @@ import six
 import sys
 import time
 
+
 class ProgressBar(object):
     """ProgressBar class holds the options of the progress bar.
     The options are:
-        start   State from which start the progress. For example, if start is 
+        start   State from which start the progress. For example, if start is
                 5 and the end is 10, the progress of this state is 50%
         end     State in which the progress has terminated.
         width   --
@@ -23,15 +24,15 @@ class ProgressBar(object):
     light_block = six.unichr(0x2591).encode("utf-8")
     solid_block = six.unichr(0x2588).encode("utf-8")
     solid_right_arrow = six.unichr(0x25BA).encode("utf-8")
-    
-    def __init__(self, 
-                 start=0, 
-                 end=10, 
-                 width=12, 
-                 fill=six.unichr(0x25C9).encode("utf-8"), 
-                 blank=six.unichr(0x25CC).encode("utf-8"), 
-                 marker=six.unichr(0x25CE).encode("utf-8"), 
-                 format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%', 
+
+    def __init__(self,
+                 start=0,
+                 end=10,
+                 width=12,
+                 fill=six.unichr(0x25C9).encode("utf-8"),
+                 blank=six.unichr(0x25CC).encode("utf-8"),
+                 marker=six.unichr(0x25CE).encode("utf-8"),
+                 format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%',
                  incremental=True):
         super(ProgressBar, self).__init__()
 
@@ -43,7 +44,7 @@ class ProgressBar(object):
         self.marker = marker
         self.format = format
         self.incremental = incremental
-        self.step = 100 / float(width) #fix
+        self.step = 100 / float(width)  # fix
         self.reset()
 
     def __add__(self, increment):
@@ -59,10 +60,15 @@ class ProgressBar(object):
         return self
 
     def __str__(self):
-        progressed = int(self.progress / self.step) #fix
+        progressed = int(self.progress / self.step)  # fix
         fill = progressed * self.fill
         blank = (self.width - progressed) * self.blank
-        return self.format % {'fill': fill, 'blank': blank, 'marker': self.marker, 'progress': int(self.progress)}
+        return self.format % {
+            'fill': fill,
+            'blank': blank,
+            'marker': self.marker,
+            'progress': int(
+                self.progress)}
 
     __repr__ = __str__
 
@@ -80,17 +86,28 @@ class AnimatedProgressBar(ProgressBar):
     Accepts an extra keyword argument named `stdout` (by default use sys.stdout)
     and may be any file-object to which send the progress status.
     """
-    def __init__(self, 
-                 start=0, 
-                 end=10, 
-                 width=12, 
-                 fill=six.unichr(0x25C9).encode("utf-8"), 
-                 blank=six.unichr(0x25CC).encode("utf-8"), 
-                 marker=six.unichr(0x25CE).encode("utf-8"), 
-                 format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%', 
+
+    def __init__(self,
+                 start=0,
+                 end=10,
+                 width=12,
+                 fill=six.unichr(0x25C9).encode("utf-8"),
+                 blank=six.unichr(0x25CC).encode("utf-8"),
+                 marker=six.unichr(0x25CE).encode("utf-8"),
+                 format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%',
                  incremental=True,
                  stdout=sys.stdout):
-        super(AnimatedProgressBar, self).__init__(start,end,width,fill,blank,marker,format,incremental)
+        super(
+            AnimatedProgressBar,
+            self).__init__(
+            start,
+            end,
+            width,
+            fill,
+            blank,
+            marker,
+            format,
+            incremental)
         self.stdout = stdout
 
     def show_progress(self):
@@ -101,25 +118,38 @@ class AnimatedProgressBar(ProgressBar):
         self.stdout.write(str(self))
         self.stdout.flush()
 
+
 class ProgressWithEvents(AnimatedProgressBar):
     """Extends AnimatedProgressBar to allow you to track a set of events that
        cause the progress to move. For instance, in a deletion progress bar, you
        can track files that were nuked and files that the user doesn't have access to
     """
-    def __init__(self, 
-                 start=0, 
-                 end=10, 
-                 width=12, 
-                 fill=six.unichr(0x25C9).encode("utf-8"), 
-                 blank=six.unichr(0x25CC).encode("utf-8"), 
-                 marker=six.unichr(0x25CE).encode("utf-8"), 
-                 format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%', 
+
+    def __init__(self,
+                 start=0,
+                 end=10,
+                 width=12,
+                 fill=six.unichr(0x25C9).encode("utf-8"),
+                 blank=six.unichr(0x25CC).encode("utf-8"),
+                 marker=six.unichr(0x25CE).encode("utf-8"),
+                 format='[%(fill)s%(marker)s%(blank)s] %(progress)s%%',
                  incremental=True,
                  stdout=sys.stdout):
-        super(ProgressWithEvents, self).__init__(start,end,width,fill,blank,marker,format,incremental,stdout)
+        super(
+            ProgressWithEvents,
+            self).__init__(
+            start,
+            end,
+            width,
+            fill,
+            blank,
+            marker,
+            format,
+            incremental,
+            stdout)
         self.events = {}
 
-    def add_event(self,event):
+    def add_event(self, event):
         if event in self.events:
             self.events[event] += 1
         else:
@@ -151,4 +181,4 @@ if __name__ == '__main__':
         time.sleep(0.3)
         if p.progress == 100:
             break
-    print() #new line
\ No newline at end of file
+    print()  # new line

Modified: lldb/trunk/third_party/Python/module/six/six.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/six/six.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/six/six.py (original)
+++ lldb/trunk/third_party/Python/module/six/six.py Tue Sep  6 15:57:50 2016
@@ -353,8 +353,12 @@ del attr
 
 Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes
 
-_importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse"),
-                      "moves.urllib_parse", "moves.urllib.parse")
+_importer._add_module(
+    Module_six_moves_urllib_parse(
+        __name__ +
+        ".moves.urllib_parse"),
+    "moves.urllib_parse",
+    "moves.urllib.parse")
 
 
 class Module_six_moves_urllib_error(_LazyModule):
@@ -373,8 +377,12 @@ del attr
 
 Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes
 
-_importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.error"),
-                      "moves.urllib_error", "moves.urllib.error")
+_importer._add_module(
+    Module_six_moves_urllib_error(
+        __name__ +
+        ".moves.urllib.error"),
+    "moves.urllib_error",
+    "moves.urllib.error")
 
 
 class Module_six_moves_urllib_request(_LazyModule):
@@ -423,8 +431,12 @@ del attr
 
 Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes
 
-_importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib.request"),
-                      "moves.urllib_request", "moves.urllib.request")
+_importer._add_module(
+    Module_six_moves_urllib_request(
+        __name__ +
+        ".moves.urllib.request"),
+    "moves.urllib_request",
+    "moves.urllib.request")
 
 
 class Module_six_moves_urllib_response(_LazyModule):
@@ -444,8 +456,12 @@ del attr
 
 Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes
 
-_importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib.response"),
-                      "moves.urllib_response", "moves.urllib.response")
+_importer._add_module(
+    Module_six_moves_urllib_response(
+        __name__ +
+        ".moves.urllib.response"),
+    "moves.urllib_response",
+    "moves.urllib.response")
 
 
 class Module_six_moves_urllib_robotparser(_LazyModule):
@@ -462,8 +478,11 @@ del attr
 
 Module_six_moves_urllib_robotparser._moved_attributes = _urllib_robotparser_moved_attributes
 
-_importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser"),
-                      "moves.urllib_robotparser", "moves.urllib.robotparser")
+_importer._add_module(
+    Module_six_moves_urllib_robotparser(
+        __name__ + ".moves.urllib.robotparser"),
+    "moves.urllib_robotparser",
+    "moves.urllib.robotparser")
 
 
 class Module_six_moves_urllib(types.ModuleType):

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/__init__.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/__init__.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/__init__.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/__init__.py Tue Sep  6 15:57:50 2016
@@ -34,7 +34,7 @@ if sys.version_info[0] >= 3:
 else:
     cmp_ = cmp
 
-reversed_cmp_ = lambda x, y: -cmp_(x,y)
+reversed_cmp_ = lambda x, y: -cmp_(x, y)
 
 __all__ = ['TestResult', 'TestCase', 'TestSuite',
            'TextTestRunner', 'TestLoader', 'FunctionTestCase', 'main',
@@ -69,7 +69,7 @@ except ImportError:
     # Compatibility with platforms that don't have the signal module
     pass
 else:
-    __all__.extend(['installHandler', 'registerResult', 'removeResult', 
+    __all__.extend(['installHandler', 'registerResult', 'removeResult',
                     'removeHandler'])
 
 # deprecated

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/case.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/case.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/case.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/case.py Tue Sep  6 15:57:50 2016
@@ -21,7 +21,8 @@ __unittest = True
 
 
 DIFF_OMITTED = ('\nDiff is %s characters long. '
-                 'Set self.maxDiff to None to see it.')
+                'Set self.maxDiff to None to see it.')
+
 
 class SkipTest(Exception):
     """
@@ -31,6 +32,7 @@ class SkipTest(Exception):
     instead of raising this directly.
     """
 
+
 class _ExpectedFailure(Exception):
     """
     Raise this when a test is expected to fail.
@@ -44,6 +46,7 @@ class _ExpectedFailure(Exception):
         self.exc_info = exc_info
         self.bugnumber = bugnumber
 
+
 class _UnexpectedSuccess(Exception):
     """
     The test was supposed to fail, but it didn't!
@@ -55,25 +58,33 @@ class _UnexpectedSuccess(Exception):
         self.exc_info = exc_info
         self.bugnumber = bugnumber
 
+
 def _id(obj):
     return obj
 
+
 def skip(reason):
     """
     Unconditionally skip a test.
     """
     def decorator(test_item):
-        if not (isinstance(test_item, type) and issubclass(test_item, TestCase)):
+        if not (
+            isinstance(
+                test_item,
+                type) and issubclass(
+                test_item,
+                TestCase)):
             @wraps(test_item)
             def skip_wrapper(*args, **kwargs):
                 raise SkipTest(reason)
             test_item = skip_wrapper
-        
+
         test_item.__unittest_skip__ = True
         test_item.__unittest_skip_why__ = reason
         return test_item
     return decorator
 
+
 def skipIf(condition, reason):
     """
     Skip a test if the condition is true.
@@ -82,6 +93,7 @@ def skipIf(condition, reason):
         return skip(reason)
     return _id
 
+
 def skipUnless(condition, reason):
     """
     Skip a test unless the condition is true.
@@ -90,28 +102,30 @@ def skipUnless(condition, reason):
         return skip(reason)
     return _id
 
+
 def expectedFailure(bugnumber=None):
-     if callable(bugnumber):
+    if callable(bugnumber):
         @wraps(bugnumber)
         def expectedFailure_easy_wrapper(*args, **kwargs):
-             try:
+            try:
                 bugnumber(*args, **kwargs)
-             except Exception:
-                raise _ExpectedFailure(sys.exc_info(),None)
-             raise _UnexpectedSuccess(sys.exc_info(),None)
+            except Exception:
+                raise _ExpectedFailure(sys.exc_info(), None)
+            raise _UnexpectedSuccess(sys.exc_info(), None)
         return expectedFailure_easy_wrapper
-     else:
+    else:
         def expectedFailure_impl(func):
-              @wraps(func)
-              def wrapper(*args, **kwargs):
-                   try:
-                      func(*args, **kwargs)
-                   except Exception:
-                      raise _ExpectedFailure(sys.exc_info(),bugnumber)
-                   raise _UnexpectedSuccess(sys.exc_info(),bugnumber)
-              return wrapper
+            @wraps(func)
+            def wrapper(*args, **kwargs):
+                try:
+                    func(*args, **kwargs)
+                except Exception:
+                    raise _ExpectedFailure(sys.exc_info(), bugnumber)
+                raise _UnexpectedSuccess(sys.exc_info(), bugnumber)
+            return wrapper
         return expectedFailure_impl
 
+
 class _AssertRaisesContext(object):
     """A context manager used to implement TestCase.assertRaises* methods."""
 
@@ -134,7 +148,7 @@ class _AssertRaisesContext(object):
         if not issubclass(exc_type, self.expected):
             # let unexpected exceptions pass through
             return False
-        self.exception = exc_value # store for later retrieval
+        self.exception = exc_value  # store for later retrieval
         if self.expected_regexp is None:
             return True
 
@@ -142,26 +156,27 @@ class _AssertRaisesContext(object):
         if isinstance(expected_regexp, six.string_types):
             expected_regexp = re.compile(expected_regexp)
         if not expected_regexp.search(str(exc_value)):
-            raise self.failureException('"%s" does not match "%s"' %
-                     (expected_regexp.pattern, str(exc_value)))
+            raise self.failureException(
+                '"%s" does not match "%s"' %
+                (expected_regexp.pattern, str(exc_value)))
         return True
 
 
 class _TypeEqualityDict(object):
-    
+
     def __init__(self, testcase):
         self.testcase = testcase
         self._store = {}
-    
+
     def __setitem__(self, key, value):
         self._store[key] = value
-    
+
     def __getitem__(self, key):
         value = self._store[key]
         if isinstance(value, six.string_types):
             return getattr(self.testcase, value)
         return value
-    
+
     def get(self, key, default=None):
         if key in self._store:
             return self[key]
@@ -200,16 +215,16 @@ class TestCase(unittest.TestCase):
     # by assert methods using difflib. It is looked up as an instance attribute
     # so can be configured by individual tests if required.
 
-    maxDiff = 80*8
+    maxDiff = 80 * 8
 
     # This attribute determines whether long messages (including repr of
     # objects used in assert methods) will be printed on failure in *addition*
     # to any explicit message passed.
 
     longMessage = True
-    
+
     # Attribute used by TestSuite for classSetUp
-    
+
     _classSetupFailed = False
 
     def __init__(self, methodName='runTest'):
@@ -222,8 +237,8 @@ class TestCase(unittest.TestCase):
         try:
             testMethod = getattr(self, methodName)
         except AttributeError:
-            raise ValueError("no such test method in %s: %s" % \
-                  (self.__class__, methodName))
+            raise ValueError("no such test method in %s: %s" %
+                             (self.__class__, methodName))
         self._testMethodDoc = testMethod.__doc__
         self._cleanups = []
 
@@ -266,7 +281,7 @@ class TestCase(unittest.TestCase):
 
     def setUp(self):
         "Hook method for setting up the test fixture before exercising it."
-    
+
     @classmethod
     def setUpClass(cls):
         "Hook method for setting up class fixture before running tests in the class."
@@ -294,12 +309,11 @@ class TestCase(unittest.TestCase):
         doc = self._testMethodDoc
         return doc and doc.split("\n")[0].strip() or None
 
-
     def id(self):
         return "%s.%s" % (strclass(self.__class__), self._testMethodName)
 
     def __eq__(self, other):
-        if type(self) is not type(other):
+        if not isinstance(self, type(other)):
             return NotImplemented
 
         return self._testMethodName == other._testMethodName
@@ -316,14 +330,16 @@ class TestCase(unittest.TestCase):
     def __repr__(self):
         return "<%s testMethod=%s>" % \
                (strclass(self.__class__), self._testMethodName)
-    
+
     def _addSkip(self, result, reason):
         addSkip = getattr(result, 'addSkip', None)
         if addSkip is not None:
             addSkip(self, reason)
         else:
-            warnings.warn("Use of a TestResult without an addSkip method is deprecated", 
-                          DeprecationWarning, 2)
+            warnings.warn(
+                "Use of a TestResult without an addSkip method is deprecated",
+                DeprecationWarning,
+                2)
             result.addSuccess(self)
 
     def run(self, result=None):
@@ -336,15 +352,21 @@ class TestCase(unittest.TestCase):
 
         self._resultForDoCleanups = result
         result.startTest(self)
-        
+
         testMethod = getattr(self, self._testMethodName)
-        
-        if (getattr(self.__class__, "__unittest_skip__", False) or 
-            getattr(testMethod, "__unittest_skip__", False)):
+
+        if (getattr(self.__class__, "__unittest_skip__", False) or
+                getattr(testMethod, "__unittest_skip__", False)):
             # If the class or method was skipped.
             try:
-                skip_why = (getattr(self.__class__, '__unittest_skip_why__', '')
-                            or getattr(testMethod, '__unittest_skip_why__', ''))
+                skip_why = (
+                    getattr(
+                        self.__class__,
+                        '__unittest_skip_why__',
+                        '') or getattr(
+                        testMethod,
+                        '__unittest_skip_why__',
+                        ''))
                 self._addSkip(result, skip_why)
             finally:
                 result.stopTest(self)
@@ -396,16 +418,19 @@ class TestCase(unittest.TestCase):
             if addExpectedFailure is not None:
                 addExpectedFailure(self, e.exc_info, e.bugnumber)
             else:
-                warnings.warn("Use of a TestResult without an addExpectedFailure method is deprecated",
-                              DeprecationWarning)
+                warnings.warn(
+                    "Use of a TestResult without an addExpectedFailure method is deprecated",
+                    DeprecationWarning)
                 result.addSuccess(self)
         except _UnexpectedSuccess as x:
-            addUnexpectedSuccess = getattr(result, 'addUnexpectedSuccess', None)
+            addUnexpectedSuccess = getattr(
+                result, 'addUnexpectedSuccess', None)
             if addUnexpectedSuccess is not None:
                 addUnexpectedSuccess(self, x.bugnumber)
             else:
-                warnings.warn("Use of a TestResult without an addUnexpectedSuccess method is deprecated",
-                              DeprecationWarning)
+                warnings.warn(
+                    "Use of a TestResult without an addUnexpectedSuccess method is deprecated",
+                    DeprecationWarning)
                 result.addFailure(self, sys.exc_info())
         except SkipTest as e:
             self._addSkip(result, str(e))
@@ -480,7 +505,6 @@ class TestCase(unittest.TestCase):
         except UnicodeDecodeError:
             return '%s : %s' % (safe_str(standardMsg), safe_str(msg))
 
-
     def assertRaises(self, excClass, callableObj=None, *args, **kwargs):
         """Fail unless an exception of class excClass is thrown
            by callableObj when invoked with arguments args and keyword
@@ -510,8 +534,8 @@ class TestCase(unittest.TestCase):
             callableObj(*args, **kwargs)
         except excClass:
             return
-        
-        if hasattr(excClass,'__name__'):
+
+        if hasattr(excClass, '__name__'):
             excName = excClass.__name__
         else:
             excName = str(excClass)
@@ -534,7 +558,7 @@ class TestCase(unittest.TestCase):
         # subclasses if the detailed comparison is desired and appropriate.
         # See the discussion in http://bugs.python.org/issue2578.
         #
-        if type(first) is type(second):
+        if isinstance(first, type(second)):
             asserter = self._type_equality_funcs.get(type(first))
             if asserter is not None:
                 return asserter
@@ -560,11 +584,17 @@ class TestCase(unittest.TestCase):
            operator.
         """
         if not first != second:
-            msg = self._formatMessage(msg, '%s == %s' % (safe_repr(first), 
-                                                           safe_repr(second)))
+            msg = self._formatMessage(msg, '%s == %s' % (safe_repr(first),
+                                                         safe_repr(second)))
             raise self.failureException(msg)
 
-    def assertAlmostEqual(self, first, second, places=None, msg=None, delta=None):
+    def assertAlmostEqual(
+            self,
+            first,
+            second,
+            places=None,
+            msg=None,
+            delta=None):
         """Fail if the two objects are unequal as determined by their
            difference rounded to the given number of decimal places
            (default 7) and comparing to zero, or by comparing that the
@@ -581,28 +611,34 @@ class TestCase(unittest.TestCase):
             return
         if delta is not None and places is not None:
             raise TypeError("specify delta or places not both")
-        
+
         if delta is not None:
             if abs(first - second) <= delta:
                 return
-        
-            standardMsg = '%s != %s within %s delta' % (safe_repr(first), 
-                                                        safe_repr(second), 
+
+            standardMsg = '%s != %s within %s delta' % (safe_repr(first),
+                                                        safe_repr(second),
                                                         safe_repr(delta))
         else:
             if places is None:
                 places = 7
-                
-            if round(abs(second-first), places) == 0:
+
+            if round(abs(second - first), places) == 0:
                 return
-        
-            standardMsg = '%s != %s within %r places' % (safe_repr(first), 
-                                                          safe_repr(second), 
-                                                          places)
+
+            standardMsg = '%s != %s within %r places' % (safe_repr(first),
+                                                         safe_repr(second),
+                                                         places)
         msg = self._formatMessage(msg, standardMsg)
         raise self.failureException(msg)
 
-    def assertNotAlmostEqual(self, first, second, places=None, msg=None, delta=None):
+    def assertNotAlmostEqual(
+            self,
+            first,
+            second,
+            places=None,
+            msg=None,
+            delta=None):
         """Fail if the two objects are equal as determined by their
            difference rounded to the given number of decimal places
            (default 7) and comparing to zero, or by comparing that the
@@ -618,15 +654,16 @@ class TestCase(unittest.TestCase):
         if delta is not None:
             if not (first == second) and abs(first - second) > delta:
                 return
-            standardMsg = '%s == %s within %s delta' % (safe_repr(first), 
+            standardMsg = '%s == %s within %s delta' % (safe_repr(first),
                                                         safe_repr(second),
                                                         safe_repr(delta))
         else:
             if places is None:
                 places = 7
-            if not (first == second) and round(abs(second-first), places) != 0:
+            if not (first == second) and round(
+                    abs(second - first), places) != 0:
                 return
-            standardMsg = '%s == %s within %r places' % (safe_repr(first), 
+            standardMsg = '%s == %s within %r places' % (safe_repr(first),
                                                          safe_repr(second),
                                                          places)
 
@@ -663,7 +700,7 @@ class TestCase(unittest.TestCase):
     failIf = _deprecate(assertFalse)
 
     def assertSequenceEqual(self, seq1, seq2,
-                            msg=None, seq_type=None, max_diff=80*8):
+                            msg=None, seq_type=None, max_diff=80 * 8):
         """An equality assertion for ordered sequences (like lists and tuples).
 
         For the purposes of this function, a valid ordered sequence type is one
@@ -694,14 +731,14 @@ class TestCase(unittest.TestCase):
             len1 = len(seq1)
         except (TypeError, NotImplementedError):
             differing = 'First %s has no length.    Non-sequence?' % (
-                    seq_type_name)
+                seq_type_name)
 
         if differing is None:
             try:
                 len2 = len(seq2)
             except (TypeError, NotImplementedError):
                 differing = 'Second %s has no length.    Non-sequence?' % (
-                        seq_type_name)
+                    seq_type_name)
 
         if differing is None:
             if seq1 == seq2:
@@ -721,29 +758,29 @@ class TestCase(unittest.TestCase):
                     item1 = seq1[i]
                 except (TypeError, IndexError, NotImplementedError):
                     differing += ('\nUnable to index element %d of first %s\n' %
-                                 (i, seq_type_name))
+                                  (i, seq_type_name))
                     break
 
                 try:
                     item2 = seq2[i]
                 except (TypeError, IndexError, NotImplementedError):
                     differing += ('\nUnable to index element %d of second %s\n' %
-                                 (i, seq_type_name))
+                                  (i, seq_type_name))
                     break
 
                 if item1 != item2:
                     differing += ('\nFirst differing element %d:\n%s\n%s\n' %
-                                 (i, item1, item2))
+                                  (i, item1, item2))
                     break
             else:
                 if (len1 == len2 and seq_type is None and
-                    type(seq1) != type(seq2)):
+                        not isinstance(seq1, type(seq2))):
                     # The sequences are the same, but have differing types.
                     return
 
             if len1 > len2:
                 differing += ('\nFirst %s contains %d additional '
-                             'elements.\n' % (seq_type_name, len1 - len2))
+                              'elements.\n' % (seq_type_name, len1 - len2))
                 try:
                     differing += ('First extra element %d:\n%s\n' %
                                   (len2, seq1[len2]))
@@ -752,7 +789,7 @@ class TestCase(unittest.TestCase):
                                   'of first %s\n' % (len2, seq_type_name))
             elif len1 < len2:
                 differing += ('\nSecond %s contains %d additional '
-                             'elements.\n' % (seq_type_name, len2 - len1))
+                              'elements.\n' % (seq_type_name, len2 - len1))
                 try:
                     differing += ('First extra element %d:\n%s\n' %
                                   (len1, seq2[len1]))
@@ -822,7 +859,9 @@ class TestCase(unittest.TestCase):
         except TypeError as e:
             self.fail('invalid type when attempting set difference: %s' % e)
         except AttributeError as e:
-            self.fail('second argument does not support set difference: %s' % e)
+            self.fail(
+                'second argument does not support set difference: %s' %
+                e)
 
         if not (difference1 or difference2):
             return
@@ -843,15 +882,15 @@ class TestCase(unittest.TestCase):
     def assertIn(self, member, container, msg=None):
         """Just like self.assertTrue(a in b), but with a nicer default message."""
         if member not in container:
-            standardMsg = '%s not found in %s' % (safe_repr(member), 
-                                                   safe_repr(container))
+            standardMsg = '%s not found in %s' % (safe_repr(member),
+                                                  safe_repr(container))
             self.fail(self._formatMessage(msg, standardMsg))
 
     def assertNotIn(self, member, container, msg=None):
         """Just like self.assertTrue(a not in b), but with a nicer default message."""
         if member in container:
-            standardMsg = '%s unexpectedly found in %s' % (safe_repr(member), 
-                                                            safe_repr(container))
+            standardMsg = '%s unexpectedly found in %s' % (
+                safe_repr(member), safe_repr(container))
             self.fail(self._formatMessage(msg, standardMsg))
 
     def assertIs(self, expr1, expr2, msg=None):
@@ -867,11 +906,20 @@ class TestCase(unittest.TestCase):
             self.fail(self._formatMessage(msg, standardMsg))
 
     def assertDictEqual(self, d1, d2, msg=None):
-        self.assert_(isinstance(d1, dict), 'First argument is not a dictionary')
-        self.assert_(isinstance(d2, dict), 'Second argument is not a dictionary')
+        self.assert_(
+            isinstance(
+                d1,
+                dict),
+            'First argument is not a dictionary')
+        self.assert_(
+            isinstance(
+                d2,
+                dict),
+            'Second argument is not a dictionary')
 
         if d1 != d2:
-            standardMsg = '%s != %s' % (safe_repr(d1, True), safe_repr(d2, True))
+            standardMsg = '%s != %s' % (
+                safe_repr(d1, True), safe_repr(d2, True))
             diff = ('\n' + '\n'.join(difflib.ndiff(
                            pprint.pformat(d1).splitlines(),
                            pprint.pformat(d2).splitlines())))
@@ -887,7 +935,7 @@ class TestCase(unittest.TestCase):
                 missing.append(key)
             elif value != actual[key]:
                 mismatched.append('%s, expected: %s, actual: %s' %
-                                  (safe_repr(key), safe_repr(value), 
+                                  (safe_repr(key), safe_repr(value),
                                    safe_repr(actual[key])))
 
         if not (missing or mismatched):
@@ -895,8 +943,8 @@ class TestCase(unittest.TestCase):
 
         standardMsg = ''
         if missing:
-            standardMsg = 'Missing: %s' % ','.join(safe_repr(m) for m in 
-                                                    missing)
+            standardMsg = 'Missing: %s' % ','.join(safe_repr(m) for m in
+                                                   missing)
         if mismatched:
             if standardMsg:
                 standardMsg += '; '
@@ -908,12 +956,12 @@ class TestCase(unittest.TestCase):
         """An unordered sequence specific comparison. It asserts that
         expected_seq and actual_seq contain the same elements. It is
         the equivalent of::
-        
+
             self.assertEqual(sorted(expected_seq), sorted(actual_seq))
 
         Raises with an error message listing which elements of expected_seq
         are missing from actual_seq and vice versa if any.
-        
+
         Asserts that each element has the same count in both sequences.
         Example:
             - [0, 1, 1] and [1, 0, 1] compare equal.
@@ -934,11 +982,11 @@ class TestCase(unittest.TestCase):
 
         errors = []
         if missing:
-            errors.append('Expected, but missing:\n    %s' % 
-                           safe_repr(missing))
+            errors.append('Expected, but missing:\n    %s' %
+                          safe_repr(missing))
         if unexpected:
-            errors.append('Unexpected, but present:\n    %s' % 
-                           safe_repr(unexpected))
+            errors.append('Unexpected, but present:\n    %s' %
+                          safe_repr(unexpected))
         if errors:
             standardMsg = '\n'.join(errors)
             self.fail(self._formatMessage(msg, standardMsg))
@@ -946,14 +994,15 @@ class TestCase(unittest.TestCase):
     def assertMultiLineEqual(self, first, second, msg=None):
         """Assert that two multi-line strings are equal."""
         self.assert_(isinstance(first, six.string_types), (
-                'First argument is not a string'))
+            'First argument is not a string'))
         self.assert_(isinstance(second, six.string_types), (
-                'Second argument is not a string'))
+            'Second argument is not a string'))
 
         if first != second:
-            standardMsg = '%s != %s' % (safe_repr(first, True), safe_repr(second, True))
+            standardMsg = '%s != %s' % (
+                safe_repr(first, True), safe_repr(second, True))
             diff = '\n' + ''.join(difflib.ndiff(first.splitlines(True),
-                                                       second.splitlines(True)))
+                                                second.splitlines(True)))
             standardMsg = self._truncateMessage(standardMsg, diff)
             self.fail(self._formatMessage(msg, standardMsg))
 
@@ -966,19 +1015,22 @@ class TestCase(unittest.TestCase):
     def assertLessEqual(self, a, b, msg=None):
         """Just like self.assertTrue(a <= b), but with a nicer default message."""
         if not a <= b:
-            standardMsg = '%s not less than or equal to %s' % (safe_repr(a), safe_repr(b))
+            standardMsg = '%s not less than or equal to %s' % (
+                safe_repr(a), safe_repr(b))
             self.fail(self._formatMessage(msg, standardMsg))
 
     def assertGreater(self, a, b, msg=None):
         """Just like self.assertTrue(a > b), but with a nicer default message."""
         if not a > b:
-            standardMsg = '%s not greater than %s' % (safe_repr(a), safe_repr(b))
+            standardMsg = '%s not greater than %s' % (
+                safe_repr(a), safe_repr(b))
             self.fail(self._formatMessage(msg, standardMsg))
 
     def assertGreaterEqual(self, a, b, msg=None):
         """Just like self.assertTrue(a >= b), but with a nicer default message."""
         if not a >= b:
-            standardMsg = '%s not greater than or equal to %s' % (safe_repr(a), safe_repr(b))
+            standardMsg = '%s not greater than or equal to %s' % (
+                safe_repr(a), safe_repr(b))
             self.fail(self._formatMessage(msg, standardMsg))
 
     def assertIsNone(self, obj, msg=None):
@@ -1019,30 +1071,32 @@ class TestCase(unittest.TestCase):
             kwargs: Extra kwargs.
         """
         if callable_obj is None:
-            return _AssertRaisesContext(expected_exception, self, expected_regexp)
+            return _AssertRaisesContext(
+                expected_exception, self, expected_regexp)
         try:
             callable_obj(*args, **kwargs)
         except expected_exception as exc_value:
             if isinstance(expected_regexp, six.string_types):
                 expected_regexp = re.compile(expected_regexp)
             if not expected_regexp.search(str(exc_value)):
-                raise self.failureException('"%s" does not match "%s"' %
-                         (expected_regexp.pattern, str(exc_value)))
+                raise self.failureException(
+                    '"%s" does not match "%s"' %
+                    (expected_regexp.pattern, str(exc_value)))
         else:
-            if hasattr(expected_exception, '__name__'): 
+            if hasattr(expected_exception, '__name__'):
                 excName = expected_exception.__name__
-            else: 
+            else:
                 excName = str(expected_exception)
             raise self.failureException("%s not raised" % excName)
 
-
     def assertRegexpMatches(self, text, expected_regexp, msg=None):
         """Fail the test unless the text matches the regular expression."""
         if isinstance(expected_regexp, six.string_types):
             expected_regexp = re.compile(expected_regexp)
         if not expected_regexp.search(text):
             msg = msg or "Regexp didn't match"
-            msg = '%s: %r not found in %r' % (msg, expected_regexp.pattern, text)
+            msg = '%s: %r not found in %r' % (
+                msg, expected_regexp.pattern, text)
             raise self.failureException(msg)
 
     def assertNotRegexpMatches(self, text, unexpected_regexp, msg=None):
@@ -1058,6 +1112,7 @@ class TestCase(unittest.TestCase):
                                                text)
             raise self.failureException(msg)
 
+
 class FunctionTestCase(TestCase):
     """A test case that wraps a test function.
 
@@ -1093,9 +1148,9 @@ class FunctionTestCase(TestCase):
             return NotImplemented
 
         return self._setUpFunc == other._setUpFunc and \
-               self._tearDownFunc == other._tearDownFunc and \
-               self._testFunc == other._testFunc and \
-               self._description == other._description
+            self._tearDownFunc == other._tearDownFunc and \
+            self._testFunc == other._testFunc and \
+            self._description == other._description
 
     def __ne__(self, other):
         return not self == other

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/collector.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/collector.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/collector.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/collector.py Tue Sep  6 15:57:50 2016
@@ -2,6 +2,7 @@ import os
 import sys
 from unittest2.loader import defaultTestLoader
 
+
 def collector():
     # import __main__ triggers code re-execution
     __main__ = sys.modules['__main__']

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/compatibility.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/compatibility.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/compatibility.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/compatibility.py Tue Sep  6 15:57:50 2016
@@ -12,6 +12,7 @@ except ImportError:
 
 __unittest = True
 
+
 def _relpath_nt(path, start=os.path.curdir):
     """Return a relative version of a path"""
 
@@ -24,10 +25,10 @@ def _relpath_nt(path, start=os.path.curd
         unc_start, rest = os.path.splitunc(start)
         if bool(unc_path) ^ bool(unc_start):
             raise ValueError("Cannot mix UNC and non-UNC paths (%s and %s)"
-                                                                % (path, start))
+                             % (path, start))
         else:
             raise ValueError("path is on drive %s, start on drive %s"
-                                                % (path_list[0], start_list[0]))
+                             % (path_list[0], start_list[0]))
     # Work out how much of the filepath is shared by start and path.
     for i in range(min(len(start_list), len(path_list))):
         if start_list[i].lower() != path_list[i].lower():
@@ -35,25 +36,27 @@ def _relpath_nt(path, start=os.path.curd
     else:
         i += 1
 
-    rel_list = [os.path.pardir] * (len(start_list)-i) + path_list[i:]
+    rel_list = [os.path.pardir] * (len(start_list) - i) + path_list[i:]
     if not rel_list:
         return os.path.curdir
     return os.path.join(*rel_list)
 
 # default to posixpath definition
+
+
 def _relpath_posix(path, start=os.path.curdir):
     """Return a relative version of a path"""
 
     if not path:
         raise ValueError("no path specified")
-    
+
     start_list = os.path.abspath(start).split(os.path.sep)
     path_list = os.path.abspath(path).split(os.path.sep)
 
     # Work out how much of the filepath is shared by start and path.
     i = len(os.path.commonprefix([start_list, path_list]))
 
-    rel_list = [os.path.pardir] * (len(start_list)-i) + path_list[i:]
+    rel_list = [os.path.pardir] * (len(start_list) - i) + path_list[i:]
     if not rel_list:
         return os.path.curdir
     return os.path.join(*rel_list)

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/loader.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/loader.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/loader.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/loader.py Tue Sep  6 15:57:50 2016
@@ -34,16 +34,18 @@ def _make_failed_import_test(name, suite
     return _make_failed_test('ModuleImportFailure', name, ImportError(message),
                              suiteClass)
 
+
 def _make_failed_load_tests(name, exception, suiteClass):
     return _make_failed_test('LoadTestsFailure', name, exception, suiteClass)
 
+
 def _make_failed_test(classname, methodname, exception, suiteClass):
     def testFailure(self):
         raise exception
     attrs = {methodname: testFailure}
     TestClass = type(classname, (case.TestCase,), attrs)
     return suiteClass((TestClass(methodname),))
-    
+
 
 class TestLoader(unittest.TestLoader):
     """
@@ -149,7 +151,9 @@ class TestLoader(unittest.TestLoader):
                 hasattr(getattr(testCaseClass, attrname), '__call__')
         testFnNames = list(filter(isTestMethod, dir(testCaseClass)))
         if self.sortTestMethodsUsing:
-            testFnNames.sort(key=functools.cmp_to_key(self.sortTestMethodsUsing))
+            testFnNames.sort(
+                key=functools.cmp_to_key(
+                    self.sortTestMethodsUsing))
         return testFnNames
 
     def discover(self, start_dir, pattern='test*.py', top_level_dir=None):
@@ -175,7 +179,8 @@ class TestLoader(unittest.TestLoader):
         """
         set_implicit_top = False
         if top_level_dir is None and self._top_level_dir is not None:
-            # make top_level_dir optional if called from load_tests in a package
+            # make top_level_dir optional if called from load_tests in a
+            # package
             top_level_dir = self._top_level_dir
         elif top_level_dir is None:
             set_implicit_top = True
@@ -183,7 +188,7 @@ class TestLoader(unittest.TestLoader):
 
         top_level_dir = os.path.abspath(top_level_dir)
 
-        if not top_level_dir in sys.path:
+        if top_level_dir not in sys.path:
             # all test modules must be importable from the top level directory
             # should we *unconditionally* put the start directory in first
             # in sys.path to minimise likelihood of conflicts between installed
@@ -195,7 +200,8 @@ class TestLoader(unittest.TestLoader):
         if os.path.isdir(os.path.abspath(start_dir)):
             start_dir = os.path.abspath(start_dir)
             if start_dir != top_level_dir:
-                is_not_importable = not os.path.isfile(os.path.join(start_dir, '__init__.py'))
+                is_not_importable = not os.path.isfile(
+                    os.path.join(start_dir, '__init__.py'))
         else:
             # support for discovery from dotted module names
             try:
@@ -205,13 +211,17 @@ class TestLoader(unittest.TestLoader):
             else:
                 the_module = sys.modules[start_dir]
                 top_part = start_dir.split('.')[0]
-                start_dir = os.path.abspath(os.path.dirname((the_module.__file__)))
+                start_dir = os.path.abspath(
+                    os.path.dirname((the_module.__file__)))
                 if set_implicit_top:
-                    self._top_level_dir = os.path.abspath(os.path.dirname(os.path.dirname(sys.modules[top_part].__file__)))
+                    self._top_level_dir = os.path.abspath(os.path.dirname(
+                        os.path.dirname(sys.modules[top_part].__file__)))
                     sys.path.remove(top_level_dir)
 
         if is_not_importable:
-            raise ImportError('Start directory is not importable: %r' % start_dir)
+            raise ImportError(
+                'Start directory is not importable: %r' %
+                start_dir)
 
         tests = list(self._find_tests(start_dir, pattern))
         return self.suiteClass(tests)
@@ -233,7 +243,7 @@ class TestLoader(unittest.TestLoader):
     def _match_path(self, path, full_path, pattern):
         # override this method to use alternative matching strategy
         return fnmatch(path, pattern)
-    
+
     def _find_tests(self, start_dir, pattern):
         """Used by discovery. Yields test suites it loads."""
         paths = os.listdir(start_dir)
@@ -253,16 +263,20 @@ class TestLoader(unittest.TestLoader):
                 except:
                     yield _make_failed_import_test(name, self.suiteClass)
                 else:
-                    mod_file = os.path.abspath(getattr(module, '__file__', full_path))
+                    mod_file = os.path.abspath(
+                        getattr(module, '__file__', full_path))
                     realpath = os.path.splitext(mod_file)[0]
                     fullpath_noext = os.path.splitext(full_path)[0]
                     if realpath.lower() != fullpath_noext.lower():
                         module_dir = os.path.dirname(realpath)
-                        mod_name = os.path.splitext(os.path.basename(full_path))[0]
+                        mod_name = os.path.splitext(
+                            os.path.basename(full_path))[0]
                         expected_dir = os.path.dirname(full_path)
-                        msg = ("%r module incorrectly imported from %r. Expected %r. "
-                               "Is this module globally installed?")
-                        raise ImportError(msg % (mod_name, module_dir, expected_dir))
+                        msg = (
+                            "%r module incorrectly imported from %r. Expected %r. "
+                            "Is this module globally installed?")
+                        raise ImportError(msg %
+                                          (mod_name, module_dir, expected_dir))
                     yield self.loadTestsFromModule(module)
             elif os.path.isdir(full_path):
                 if not os.path.isfile(os.path.join(full_path, '__init__.py')):
@@ -271,11 +285,13 @@ class TestLoader(unittest.TestLoader):
                 load_tests = None
                 tests = None
                 if fnmatch(path, pattern):
-                    # only check load_tests if the package directory itself matches the filter
+                    # only check load_tests if the package directory itself
+                    # matches the filter
                     name = self._get_name_from_path(full_path)
                     package = self._get_module_from_name(name)
                     load_tests = getattr(package, 'load_tests', None)
-                    tests = self.loadTestsFromModule(package, use_load_tests=False)
+                    tests = self.loadTestsFromModule(
+                        package, use_load_tests=False)
 
                 if load_tests is None:
                     if tests is not None:
@@ -302,13 +318,22 @@ def _makeLoader(prefix, sortUsing, suite
         loader.suiteClass = suiteClass
     return loader
 
+
 def getTestCaseNames(testCaseClass, prefix, sortUsing=cmp_):
     return _makeLoader(prefix, sortUsing).getTestCaseNames(testCaseClass)
 
+
 def makeSuite(testCaseClass, prefix='test', sortUsing=cmp_,
               suiteClass=suite.TestSuite):
-    return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromTestCase(testCaseClass)
+    return _makeLoader(
+        prefix,
+        sortUsing,
+        suiteClass).loadTestsFromTestCase(testCaseClass)
+
 
 def findTestCases(module, prefix='test', sortUsing=cmp_,
                   suiteClass=suite.TestSuite):
-    return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module)
+    return _makeLoader(
+        prefix,
+        sortUsing,
+        suiteClass).loadTestsFromModule(module)

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/main.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/main.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/main.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/main.py Tue Sep  6 15:57:50 2016
@@ -13,8 +13,8 @@ except ImportError:
 
 __unittest = True
 
-FAILFAST     = "  -f, --failfast   Stop on first failure\n"
-CATCHBREAK   = "  -c, --catch      Catch control-C and display results\n"
+FAILFAST = "  -f, --failfast   Stop on first failure\n"
+CATCHBREAK = "  -c, --catch      Catch control-C and display results\n"
 BUFFEROUTPUT = "  -b, --buffer     Buffer stdout and stderr during test runs\n"
 
 USAGE_AS_MAIN = """\
@@ -69,7 +69,7 @@ class TestProgram(object):
        for making test modules conveniently executable.
     """
     USAGE = USAGE_FROM_MODULE
-    
+
     # defaults for testing
     failfast = catchbreak = buffer = progName = None
 
@@ -103,11 +103,11 @@ class TestProgram(object):
             print(msg)
         usage = {'progName': self.progName, 'catchbreak': '', 'failfast': '',
                  'buffer': ''}
-        if self.failfast != False:
+        if self.failfast:
             usage['failfast'] = FAILFAST
-        if self.catchbreak != False and installHandler is not None:
+        if self.catchbreak and installHandler is not None:
             usage['catchbreak'] = CATCHBREAK
-        if self.buffer != False:
+        if self.buffer:
             usage['buffer'] = BUFFEROUTPUT
         print(self.USAGE % usage)
         sys.exit(2)
@@ -122,21 +122,21 @@ class TestProgram(object):
         try:
             options, args = getopt.getopt(argv[1:], 'hHvqfcb', long_opts)
             for opt, value in options:
-                if opt in ('-h','-H','--help'):
+                if opt in ('-h', '-H', '--help'):
                     self.usageExit()
-                if opt in ('-q','--quiet'):
+                if opt in ('-q', '--quiet'):
                     self.verbosity = 0
-                if opt in ('-v','--verbose'):
+                if opt in ('-v', '--verbose'):
                     self.verbosity = 2
-                if opt in ('-f','--failfast'):
+                if opt in ('-f', '--failfast'):
                     if self.failfast is None:
                         self.failfast = True
                     # Should this raise an exception if -f is not valid?
-                if opt in ('-c','--catch'):
+                if opt in ('-c', '--catch'):
                     if self.catchbreak is None and installHandler is not None:
                         self.catchbreak = True
                     # Should this raise an exception if -c is not valid?
-                if opt in ('-b','--buffer'):
+                if opt in ('-b', '--buffer'):
                     if self.buffer is None:
                         self.buffer = True
                     # Should this raise an exception if -b is not valid?
@@ -169,24 +169,40 @@ class TestProgram(object):
         parser.prog = self.progName
         parser.add_option('-v', '--verbose', dest='verbose', default=False,
                           help='Verbose output', action='store_true')
-        if self.failfast != False:
-            parser.add_option('-f', '--failfast', dest='failfast', default=False,
-                              help='Stop on first fail or error', 
-                              action='store_true')
-        if self.catchbreak != False and installHandler is not None:
-            parser.add_option('-c', '--catch', dest='catchbreak', default=False,
-                              help='Catch ctrl-C and display results so far', 
-                              action='store_true')
-        if self.buffer != False:
+        if self.failfast:
+            parser.add_option(
+                '-f',
+                '--failfast',
+                dest='failfast',
+                default=False,
+                help='Stop on first fail or error',
+                action='store_true')
+        if self.catchbreak and installHandler is not None:
+            parser.add_option(
+                '-c',
+                '--catch',
+                dest='catchbreak',
+                default=False,
+                help='Catch ctrl-C and display results so far',
+                action='store_true')
+        if self.buffer:
             parser.add_option('-b', '--buffer', dest='buffer', default=False,
-                              help='Buffer stdout and stderr during tests', 
+                              help='Buffer stdout and stderr during tests',
                               action='store_true')
         parser.add_option('-s', '--start-directory', dest='start', default='.',
                           help="Directory to start discovery ('.' default)")
-        parser.add_option('-p', '--pattern', dest='pattern', default='test*.py',
-                          help="Pattern to match tests ('test*.py' default)")
-        parser.add_option('-t', '--top-level-directory', dest='top', default=None,
-                          help='Top level directory of project (defaults to start directory)')
+        parser.add_option(
+            '-p',
+            '--pattern',
+            dest='pattern',
+            default='test*.py',
+            help="Pattern to match tests ('test*.py' default)")
+        parser.add_option(
+            '-t',
+            '--top-level-directory',
+            dest='top',
+            default=None,
+            help='Top level directory of project (defaults to start directory)')
 
         options, args = parser.parse_args(argv)
         if len(args) > 3:
@@ -194,7 +210,7 @@ class TestProgram(object):
 
         for name, value in zip(('start', 'pattern', 'top'), args):
             setattr(options, name, value)
-        
+
         # only set options from the parsing here
         # if they weren't set explicitly in the constructor
         if self.failfast is None:
@@ -203,7 +219,7 @@ class TestProgram(object):
             self.catchbreak = options.catchbreak
         if self.buffer is None:
             self.buffer = options.buffer
-        
+
         if options.verbose:
             self.verbosity = 2
 
@@ -236,7 +252,7 @@ class TestProgram(object):
 
 main = TestProgram
 
+
 def main_():
     TestProgram.USAGE = USAGE_AS_MAIN
     main(module=None)
-

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/result.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/result.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/result.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/result.py Tue Sep  6 15:57:50 2016
@@ -13,6 +13,7 @@ from unittest2.compatibility import wrap
 
 __unittest = True
 
+
 def failfast(method):
     @wraps(method)
     def inner(self, *args, **kw):
@@ -25,6 +26,7 @@ def failfast(method):
 STDOUT_LINE = '\nStdout:\n%s'
 STDERR_LINE = '\nStderr:\n%s'
 
+
 class TestResult(unittest.TestResult):
     """Holder for test result information.
 
@@ -38,7 +40,7 @@ class TestResult(unittest.TestResult):
     """
     _previousTestClass = None
     _moduleSetUpFailed = False
-    
+
     def __init__(self):
         self.failfast = False
         self.failures = []
@@ -56,7 +58,7 @@ class TestResult(unittest.TestResult):
         self._original_stdout = sys.stdout
         self._original_stderr = sys.stderr
         self._mirrorOutput = False
-    
+
     def startTest(self, test):
         "Called when the given test is about to be run"
         self.testsRun += 1
@@ -88,7 +90,7 @@ class TestResult(unittest.TestResult):
                     if not error.endswith('\n'):
                         error += '\n'
                     self._original_stderr.write(STDERR_LINE % error)
-                
+
             sys.stdout = self._original_stdout
             sys.stderr = self._original_stderr
             self._stdout_buffer.seek(0)
@@ -96,7 +98,6 @@ class TestResult(unittest.TestResult):
             self._stderr_buffer.seek(0)
             self._stderr_buffer.truncate()
         self._mirrorOutput = False
-        
 
     def stopTestRun(self):
         """Called once after all tests are executed.
@@ -165,10 +166,10 @@ class TestResult(unittest.TestResult):
             msgLines = traceback.format_exception(exctype, value, tb, length)
         else:
             msgLines = traceback.format_exception(exctype, value, tb)
-        
+
         if self.buffer:
             output = sys.stdout.getvalue()
-            error = sys.stderr.getvalue()            
+            error = sys.stderr.getvalue()
             if output:
                 if not output.endswith('\n'):
                     output += '\n'

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/runner.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/runner.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/runner.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/runner.py Tue Sep  6 15:57:50 2016
@@ -12,24 +12,25 @@ try:
 except ImportError:
     def registerResult(_):
         pass
-    
+
 __unittest = True
 
 
 class _WritelnDecorator(object):
     """Used to decorate file-like objects with a handy 'writeln' method"""
-    def __init__(self,stream):
+
+    def __init__(self, stream):
         self.stream = stream
 
     def __getattr__(self, attr):
         if attr in ('stream', '__getstate__'):
             raise AttributeError(attr)
-        return getattr(self.stream,attr)
+        return getattr(self.stream, attr)
 
     def writeln(self, arg=None):
         if arg:
             self.write(arg)
-        self.write('\n') # text-mode streams translate to \r\n if needed
+        self.write('\n')  # text-mode streams translate to \r\n if needed
 
 
 class TextTestResult(result.TestResult):
@@ -49,8 +50,9 @@ class TextTestResult(result.TestResult):
         self.progressbar = None
 
         if self.dots:
-            self.stream.writeln(".=success F=fail E=error s=skipped x=expected-fail u=unexpected-success");
-            self.stream.writeln("");
+            self.stream.writeln(
+                ".=success F=fail E=error s=skipped x=expected-fail u=unexpected-success")
+            self.stream.writeln("")
             self.stream.flush()
 
     def getDescription(self, test):
@@ -67,7 +69,7 @@ class TextTestResult(result.TestResult):
             self.stream.write(" ... ")
             self.stream.flush()
 
-    def newTestResult(self,test,result_short,result_long):
+    def newTestResult(self, test, result_short, result_long):
         if self.showAll:
             self.stream.writeln(result_long)
         elif self.progressbar:
@@ -81,29 +83,29 @@ class TextTestResult(result.TestResult):
     def addSuccess(self, test):
         super(TextTestResult, self).addSuccess(test)
         if self.progressbar:
-            self.newTestResult(test,"ok","ok")
+            self.newTestResult(test, "ok", "ok")
         else:
-            self.newTestResult(test,".","ok")
+            self.newTestResult(test, ".", "ok")
 
     def addError(self, test, err):
         super(TextTestResult, self).addError(test, err)
-        self.newTestResult(test,"E","ERROR")
+        self.newTestResult(test, "E", "ERROR")
 
     def addFailure(self, test, err):
         super(TextTestResult, self).addFailure(test, err)
-        self.newTestResult(test,"F","FAILURE")
+        self.newTestResult(test, "F", "FAILURE")
 
     def addSkip(self, test, reason):
         super(TextTestResult, self).addSkip(test, reason)
-        self.newTestResult(test,"s","skipped %r" % (reason,))
+        self.newTestResult(test, "s", "skipped %r" % (reason,))
 
     def addExpectedFailure(self, test, err, bugnumber):
         super(TextTestResult, self).addExpectedFailure(test, err, bugnumber)
-        self.newTestResult(test,"x","expected failure")
+        self.newTestResult(test, "x", "expected failure")
 
     def addUnexpectedSuccess(self, test, bugnumber):
         super(TextTestResult, self).addUnexpectedSuccess(test, bugnumber)
-        self.newTestResult(test,"u","unexpected success")
+        self.newTestResult(test, "u", "unexpected success")
 
     def printErrors(self):
         if self.progressbar:
@@ -117,7 +119,8 @@ class TextTestResult(result.TestResult):
     def printErrorList(self, flavour, errors):
         for test, err in errors:
             self.stream.writeln(self.separator1)
-            self.stream.writeln("%s: %s" % (flavour, self.getDescription(test)))
+            self.stream.writeln("%s: %s" %
+                                (flavour, self.getDescription(test)))
             self.stream.writeln(self.separator2)
             self.stream.writeln("%s" % err)
 
@@ -135,7 +138,7 @@ class TextTestRunner(unittest.TextTestRu
     resultclass = TextTestResult
 
     def __init__(self, stream=sys.stderr, descriptions=True, verbosity=1,
-                    failfast=False, buffer=False, resultclass=None):
+                 failfast=False, buffer=False, resultclass=None):
         self.stream = _WritelnDecorator(stream)
         self.descriptions = descriptions
         self.verbosity = verbosity
@@ -153,7 +156,7 @@ class TextTestRunner(unittest.TextTestRu
         result.failfast = self.failfast
         result.buffer = self.buffer
         registerResult(result)
-        
+
         startTime = time.time()
         startTestRun = getattr(result, 'startTestRun', None)
         if startTestRun is not None:
@@ -174,7 +177,7 @@ class TextTestRunner(unittest.TextTestRu
         self.stream.writeln("Ran %d test%s in %.3fs" %
                             (run, run != 1 and "s" or "", timeTaken))
         self.stream.writeln()
-        
+
         expectedFails = unexpectedSuccesses = skipped = passed = failed = errored = 0
         try:
             results = map(len, (result.expectedFailures,

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/signals.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/signals.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/signals.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/signals.py Tue Sep  6 15:57:50 2016
@@ -7,6 +7,7 @@ __unittest = True
 
 
 class _InterruptHandler(object):
+
     def __init__(self, default_handler):
         self.called = False
         self.default_handler = default_handler
@@ -17,7 +18,7 @@ class _InterruptHandler(object):
             # if we aren't the installed handler, then delegate immediately
             # to the default handler
             self.default_handler(signum, frame)
-            
+
         if self.called:
             self.default_handler(signum, frame)
         self.called = True
@@ -25,13 +26,18 @@ class _InterruptHandler(object):
             result.stop()
 
 _results = weakref.WeakKeyDictionary()
+
+
 def registerResult(result):
     _results[result] = 1
 
+
 def removeResult(result):
     return bool(_results.pop(result, None))
 
 _interrupt_handler = None
+
+
 def installHandler():
     global _interrupt_handler
     if _interrupt_handler is None:

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/suite.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/suite.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/suite.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/suite.py Tue Sep  6 15:57:50 2016
@@ -11,6 +11,7 @@ __unittest = True
 class BaseTestSuite(unittest.TestSuite):
     """A simple test suite that doesn't provide class or module shared fixtures.
     """
+
     def __init__(self, tests=()):
         self._tests = []
         self.addTests(tests)
@@ -79,7 +80,6 @@ class TestSuite(BaseTestSuite):
     in the order in which they were added, aggregating the results. When
     subclassing, do not forget to call the base class constructor.
     """
-    
 
     def run(self, result):
         self._wrapped_run(result)
@@ -100,24 +100,24 @@ class TestSuite(BaseTestSuite):
         for test in self:
             if result.shouldStop:
                 break
-            
+
             if _isnotsuite(test):
                 self._tearDownPreviousClass(test, result)
                 self._handleModuleFixture(test, result)
                 self._handleClassSetUp(test, result)
                 result._previousTestClass = test.__class__
-                
-                if (getattr(test.__class__, '_classSetupFailed', False) or 
-                    getattr(result, '_moduleSetUpFailed', False)):
+
+                if (getattr(test.__class__, '_classSetupFailed', False) or
+                        getattr(result, '_moduleSetUpFailed', False)):
                     continue
-            
+
             if hasattr(test, '_wrapped_run'):
                 test._wrapped_run(result, debug)
             elif not debug:
                 test(result)
             else:
                 test.debug()
-    
+
     def _handleClassSetUp(self, test, result):
         previousClass = getattr(result, '_previousTestClass', None)
         currentClass = test.__class__
@@ -127,14 +127,14 @@ class TestSuite(BaseTestSuite):
             return
         if getattr(currentClass, "__unittest_skip__", False):
             return
-        
+
         try:
             currentClass._classSetupFailed = False
         except TypeError:
             # test may actually be a function
             # so its class will be a builtin-type
             pass
-            
+
         setUpClass = getattr(currentClass, 'setUpClass', None)
         if setUpClass is not None:
             try:
@@ -146,24 +146,22 @@ class TestSuite(BaseTestSuite):
                 className = util.strclass(currentClass)
                 errorName = 'setUpClass (%s)' % className
                 self._addClassOrModuleLevelException(result, e, errorName)
-    
+
     def _get_previous_module(self, result):
         previousModule = None
         previousClass = getattr(result, '_previousTestClass', None)
         if previousClass is not None:
             previousModule = previousClass.__module__
         return previousModule
-        
-        
+
     def _handleModuleFixture(self, test, result):
         previousModule = self._get_previous_module(result)
         currentModule = test.__class__.__module__
         if currentModule == previousModule:
             return
-        
+
         self._handleModuleTearDown(result)
 
-        
         result._moduleSetUpFailed = False
         try:
             module = sys.modules[currentModule]
@@ -187,14 +185,14 @@ class TestSuite(BaseTestSuite):
             addSkip(error, str(exception))
         else:
             result.addError(error, sys.exc_info())
-    
+
     def _handleModuleTearDown(self, result):
         previousModule = self._get_previous_module(result)
         if previousModule is None:
             return
         if result._moduleSetUpFailed:
             return
-            
+
         try:
             module = sys.modules[previousModule]
         except KeyError:
@@ -209,7 +207,7 @@ class TestSuite(BaseTestSuite):
                     raise
                 errorName = 'tearDownModule (%s)' % previousModule
                 self._addClassOrModuleLevelException(result, e, errorName)
-    
+
     def _tearDownPreviousClass(self, test, result):
         previousClass = getattr(result, '_previousTestClass', None)
         currentClass = test.__class__
@@ -221,7 +219,7 @@ class TestSuite(BaseTestSuite):
             return
         if getattr(previousClass, "__unittest_skip__", False):
             return
-        
+
         tearDownClass = getattr(previousClass, 'tearDownClass', None)
         if tearDownClass is not None:
             try:
@@ -272,6 +270,7 @@ class _ErrorHolder(object):
     def countTestCases(self):
         return 0
 
+
 def _isnotsuite(test):
     "A crude way to tell apart testcases and suites with duck-typing"
     try:

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/__init__.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/__init__.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/__init__.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/__init__.py Tue Sep  6 15:57:50 2016
@@ -1 +1 @@
-#
\ No newline at end of file
+#

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/support.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/support.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/support.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/support.py Tue Sep  6 15:57:50 2016
@@ -7,6 +7,7 @@ import unittest2
 def resultFactory(*_):
     return unittest2.TestResult()
 
+
 class OldTestResult(object):
     """An object honouring TestResult before startTestRun/stopTestRun."""
 
@@ -37,7 +38,9 @@ class OldTestResult(object):
     def printErrors(self):
         pass
 
+
 class LoggingResult(unittest2.TestResult):
+
     def __init__(self, log):
         self._events = log
         super(LoggingResult, self).__init__()
@@ -98,6 +101,7 @@ class EqualityMixin(object):
             self.assertNotEqual(obj_1, obj_2)
             self.assertNotEqual(obj_2, obj_1)
 
+
 class HashingMixin(object):
     """Used as a mixin for TestCase"""
 
@@ -123,24 +127,24 @@ class HashingMixin(object):
                 self.fail("Problem hashing %s and %s: %s" % (obj_1, obj_2, e))
 
 
-
 # copied from Python 2.6
 try:
     from warnings import catch_warnings
 except ImportError:
     class catch_warnings(object):
+
         def __init__(self, record=False, module=None):
             self._record = record
             self._module = sys.modules['warnings']
             self._entered = False
-    
+
         def __repr__(self):
             args = []
             if self._record:
                 args.append("record=True")
             name = type(self).__name__
             return "%s(%s)" % (name, ", ".join(args))
-    
+
         def __enter__(self):
             if self._entered:
                 raise RuntimeError("Cannot enter %r twice" % self)
@@ -150,28 +154,36 @@ except ImportError:
             self._showwarning = self._module.showwarning
             if self._record:
                 log = []
+
                 def showwarning(*args, **kwargs):
                     log.append(WarningMessage(*args, **kwargs))
                 self._module.showwarning = showwarning
                 return log
             else:
                 return None
-    
+
         def __exit__(self, *exc_info):
             if not self._entered:
-                raise RuntimeError("Cannot exit %r without entering first" % self)
+                raise RuntimeError(
+                    "Cannot exit %r without entering first" %
+                    self)
             self._module.filters = self._filters
             self._module.showwarning = self._showwarning
 
     class WarningMessage(object):
-        _WARNING_DETAILS = ("message", "category", "filename", "lineno", "file",
-                            "line")
+        _WARNING_DETAILS = (
+            "message",
+            "category",
+            "filename",
+            "lineno",
+            "file",
+            "line")
+
         def __init__(self, message, category, filename, lineno, file=None,
-                        line=None):
+                     line=None):
             local_values = locals()
             for attr in self._WARNING_DETAILS:
                 setattr(self, attr, local_values[attr])
             self._category_name = None
             if category.__name__:
                 self._category_name = category.__name__
-

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_assertions.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_assertions.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_assertions.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_assertions.py Tue Sep  6 15:57:50 2016
@@ -4,6 +4,7 @@ import unittest2
 
 
 class Test_Assertions(unittest2.TestCase):
+
     def test_AlmostEqual(self):
         self.assertAlmostEqual(1.00000001, 1.0)
         self.assertNotAlmostEqual(1.0000001, 1.0)
@@ -16,12 +17,12 @@ class Test_Assertions(unittest2.TestCase
         self.assertRaises(self.failureException,
                           self.assertAlmostEqual, 1.1, 1.0, places=1)
 
-        self.assertAlmostEqual(0, .1+.1j, places=0)
-        self.assertNotAlmostEqual(0, .1+.1j, places=1)
+        self.assertAlmostEqual(0, .1 + .1j, places=0)
+        self.assertNotAlmostEqual(0, .1 + .1j, places=1)
         self.assertRaises(self.failureException,
-                          self.assertAlmostEqual, 0, .1+.1j, places=1)
+                          self.assertAlmostEqual, 0, .1 + .1j, places=1)
         self.assertRaises(self.failureException,
-                          self.assertNotAlmostEqual, 0, .1+.1j, places=0)
+                          self.assertNotAlmostEqual, 0, .1 + .1j, places=0)
 
         try:
             self.assertAlmostEqual(float('inf'), float('inf'))
@@ -33,24 +34,23 @@ class Test_Assertions(unittest2.TestCase
             self.assertAlmostEqual(x, x)
             self.assertRaises(self.failureException, self.assertNotAlmostEqual,
                               x, x)
-            
-            
+
     def test_AmostEqualWithDelta(self):
         self.assertAlmostEqual(1.1, 1.0, delta=0.5)
         self.assertAlmostEqual(1.0, 1.1, delta=0.5)
         self.assertNotAlmostEqual(1.1, 1.0, delta=0.05)
         self.assertNotAlmostEqual(1.0, 1.1, delta=0.05)
-        
+
         self.assertRaises(self.failureException, self.assertAlmostEqual,
                           1.1, 1.0, delta=0.05)
         self.assertRaises(self.failureException, self.assertNotAlmostEqual,
                           1.1, 1.0, delta=0.5)
-        
+
         self.assertRaises(TypeError, self.assertAlmostEqual,
                           1.1, 1.0, places=2, delta=2)
         self.assertRaises(TypeError, self.assertNotAlmostEqual,
                           1.1, 1.0, places=2, delta=2)
-        
+
         first = datetime.datetime.now()
         second = first + datetime.timedelta(seconds=10)
         self.assertAlmostEqual(first, second,
@@ -96,18 +96,24 @@ class TestLongMessage(unittest2.TestCase
         self.assertTrue(unittest2.TestCase.longMessage)
 
     def test_formatMsg(self):
-        self.assertEquals(self.testableFalse._formatMessage(None, "foo"), "foo")
-        self.assertEquals(self.testableFalse._formatMessage("foo", "bar"), "foo")
+        self.assertEquals(
+            self.testableFalse._formatMessage(
+                None, "foo"), "foo")
+        self.assertEquals(
+            self.testableFalse._formatMessage(
+                "foo", "bar"), "foo")
 
         self.assertEquals(self.testableTrue._formatMessage(None, "foo"), "foo")
-        self.assertEquals(self.testableTrue._formatMessage("foo", "bar"), "bar : foo")
-        
+        self.assertEquals(
+            self.testableTrue._formatMessage(
+                "foo", "bar"), "bar : foo")
+
         # This blows up if _formatMessage uses string concatenation
         self.testableTrue._formatMessage(object(), 'foo')
 
     def assertMessages(self, methodName, args, errors):
         def getMethod(i):
-            useTestableFalse  = i < 2
+            useTestableFalse = i < 2
             if useTestableFalse:
                 test = self.testableFalse
             else:
@@ -124,7 +130,7 @@ class TestLongMessage(unittest2.TestCase
             self.assertRaisesRegexp(self.failureException,
                                     expected_regexp,
                                     lambda: testMethod(*args, **kwargs))
-            
+
     def testAssertTrue(self):
         self.assertMessages('assertTrue', (False,),
                             ["^False is not True$", "^oops$", "^False is not True$",
@@ -141,18 +147,27 @@ class TestLongMessage(unittest2.TestCase
                              "^1 == 1 : oops$"])
 
     def testAlmostEqual(self):
-        self.assertMessages('assertAlmostEqual', (1, 2),
-                            ["^1 != 2 within 7 places$", "^oops$",
-                             "^1 != 2 within 7 places$", "^1 != 2 within 7 places : oops$"])
+        self.assertMessages('assertAlmostEqual',
+                            (1,
+                             2),
+                            ["^1 != 2 within 7 places$",
+                             "^oops$",
+                             "^1 != 2 within 7 places$",
+                             "^1 != 2 within 7 places : oops$"])
 
     def testNotAlmostEqual(self):
-        self.assertMessages('assertNotAlmostEqual', (1, 1),
-                            ["^1 == 1 within 7 places$", "^oops$",
-                             "^1 == 1 within 7 places$", "^1 == 1 within 7 places : oops$"])
+        self.assertMessages('assertNotAlmostEqual',
+                            (1,
+                             1),
+                            ["^1 == 1 within 7 places$",
+                             "^oops$",
+                             "^1 == 1 within 7 places$",
+                             "^1 == 1 within 7 places : oops$"])
 
     def test_baseAssertEqual(self):
-        self.assertMessages('_baseAssertEqual', (1, 2),
-                            ["^1 != 2$", "^oops$", "^1 != 2$", "^1 != 2 : oops$"])
+        self.assertMessages(
+            '_baseAssertEqual', (1, 2), [
+                "^1 != 2$", "^oops$", "^1 != 2$", "^1 != 2 : oops$"])
 
     def testAssertSequenceEqual(self):
         # Error messages are multiline so not testing on full message

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_break.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_break.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_break.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_break.py Tue Sep  6 15:57:50 2016
@@ -13,33 +13,32 @@ import unittest2
 
 
 class TestBreak(unittest2.TestCase):
-    
+
     def setUp(self):
         self._default_handler = signal.getsignal(signal.SIGINT)
-        
+
     def tearDown(self):
         signal.signal(signal.SIGINT, self._default_handler)
         unittest2.signals._results = weakref.WeakKeyDictionary()
         unittest2.signals._interrupt_handler = None
 
-        
     def testInstallHandler(self):
         default_handler = signal.getsignal(signal.SIGINT)
         unittest2.installHandler()
         self.assertNotEqual(signal.getsignal(signal.SIGINT), default_handler)
-        
+
         try:
             pid = os.getpid()
             os.kill(pid, signal.SIGINT)
         except KeyboardInterrupt:
             self.fail("KeyboardInterrupt not handled")
-            
+
         self.assertTrue(unittest2.signals._interrupt_handler.called)
-    
+
     def testRegisterResult(self):
         result = unittest2.TestResult()
         unittest2.registerResult(result)
-        
+
         for ref in unittest2.signals._results:
             if ref is result:
                 break
@@ -47,35 +46,33 @@ class TestBreak(unittest2.TestCase):
                 self.fail("odd object in result set")
         else:
             self.fail("result not found")
-        
-        
+
     def testInterruptCaught(self):
         default_handler = signal.getsignal(signal.SIGINT)
-        
+
         result = unittest2.TestResult()
         unittest2.installHandler()
         unittest2.registerResult(result)
-        
+
         self.assertNotEqual(signal.getsignal(signal.SIGINT), default_handler)
-        
+
         def test(result):
             pid = os.getpid()
             os.kill(pid, signal.SIGINT)
             result.breakCaught = True
             self.assertTrue(result.shouldStop)
-        
+
         try:
             test(result)
         except KeyboardInterrupt:
             self.fail("KeyboardInterrupt not handled")
         self.assertTrue(result.breakCaught)
-    
-    
+
     def testSecondInterrupt(self):
         result = unittest2.TestResult()
         unittest2.installHandler()
         unittest2.registerResult(result)
-        
+
         def test(result):
             pid = os.getpid()
             os.kill(pid, signal.SIGINT)
@@ -83,7 +80,7 @@ class TestBreak(unittest2.TestCase):
             self.assertTrue(result.shouldStop)
             os.kill(pid, signal.SIGINT)
             self.fail("Second KeyboardInterrupt not raised")
-        
+
         try:
             test(result)
         except KeyboardInterrupt:
@@ -92,45 +89,44 @@ class TestBreak(unittest2.TestCase):
             self.fail("Second KeyboardInterrupt not raised")
         self.assertTrue(result.breakCaught)
 
-    
     def testTwoResults(self):
         unittest2.installHandler()
-        
+
         result = unittest2.TestResult()
         unittest2.registerResult(result)
         new_handler = signal.getsignal(signal.SIGINT)
-        
+
         result2 = unittest2.TestResult()
         unittest2.registerResult(result2)
         self.assertEqual(signal.getsignal(signal.SIGINT), new_handler)
-        
+
         result3 = unittest2.TestResult()
-        
+
         def test(result):
             pid = os.getpid()
             os.kill(pid, signal.SIGINT)
-        
+
         try:
             test(result)
         except KeyboardInterrupt:
             self.fail("KeyboardInterrupt not handled")
-        
+
         self.assertTrue(result.shouldStop)
         self.assertTrue(result2.shouldStop)
         self.assertFalse(result3.shouldStop)
-    
-    
+
     def testHandlerReplacedButCalled(self):
         # If our handler has been replaced (is no longer installed) but is
         # called by the *new* handler, then it isn't safe to delay the
         # SIGINT and we should immediately delegate to the default handler
         unittest2.installHandler()
-        
+
         handler = signal.getsignal(signal.SIGINT)
+
         def new_handler(frame, signum):
             handler(frame, signum)
         signal.signal(signal.SIGINT, new_handler)
-        
+
         try:
             pid = os.getpid()
             os.kill(pid, signal.SIGINT)
@@ -138,35 +134,35 @@ class TestBreak(unittest2.TestCase):
             pass
         else:
             self.fail("replaced but delegated handler doesn't raise interrupt")
-    
+
     def testRunner(self):
         # Creating a TextTestRunner with the appropriate argument should
         # register the TextTestResult it creates
         runner = unittest2.TextTestRunner(stream=StringIO())
-        
+
         result = runner.run(unittest2.TestSuite())
         self.assertIn(result, unittest2.signals._results)
-    
+
     def testWeakReferences(self):
         # Calling registerResult on a result should not keep it alive
         result = unittest2.TestResult()
         unittest2.registerResult(result)
-        
+
         ref = weakref.ref(result)
         del result
-        
+
         # For non-reference counting implementations
-        gc.collect();gc.collect()
+        gc.collect()
+        gc.collect()
         self.assertIsNone(ref())
-        
-    
+
     def testRemoveResult(self):
         result = unittest2.TestResult()
         unittest2.registerResult(result)
-        
+
         unittest2.installHandler()
         self.assertTrue(unittest2.removeResult(result))
-        
+
         # Should this raise an error instead?
         self.assertFalse(unittest2.removeResult(unittest2.TestResult()))
 
@@ -175,9 +171,9 @@ class TestBreak(unittest2.TestCase):
             os.kill(pid, signal.SIGINT)
         except KeyboardInterrupt:
             pass
-        
+
         self.assertFalse(result.shouldStop)
-    
+
     def testMainInstallsHandler(self):
         failfast = object()
         test = object()
@@ -188,14 +184,17 @@ class TestBreak(unittest2.TestCase):
         class FakeRunner(object):
             initArgs = []
             runArgs = []
+
             def __init__(self, *args, **kwargs):
                 self.initArgs.append((args, kwargs))
+
             def run(self, test):
                 self.runArgs.append(test)
                 return result
-        
+
         class Program(unittest2.TestProgram):
-            def __init__(self, catchbreak): 
+
+            def __init__(self, catchbreak):
                 self.exit = False
                 self.verbosity = verbosity
                 self.failfast = failfast
@@ -203,31 +202,30 @@ class TestBreak(unittest2.TestCase):
                 self.testRunner = FakeRunner
                 self.test = test
                 self.result = None
-        
+
         p = Program(False)
         p.runTests()
-        
-        self.assertEqual(FakeRunner.initArgs, [((), {'verbosity': verbosity, 
-                                                'failfast': failfast,
-                                                'buffer': None})])
+
+        self.assertEqual(FakeRunner.initArgs, [((), {'verbosity': verbosity,
+                                                     'failfast': failfast,
+                                                     'buffer': None})])
         self.assertEqual(FakeRunner.runArgs, [test])
         self.assertEqual(p.result, result)
-        
+
         self.assertEqual(signal.getsignal(signal.SIGINT), default_handler)
-        
+
         FakeRunner.initArgs = []
         FakeRunner.runArgs = []
         p = Program(True)
         p.runTests()
-        
-        self.assertEqual(FakeRunner.initArgs, [((), {'verbosity': verbosity, 
-                                                'failfast': failfast,
-                                                'buffer': None})])
+
+        self.assertEqual(FakeRunner.initArgs, [((), {'verbosity': verbosity,
+                                                     'failfast': failfast,
+                                                     'buffer': None})])
         self.assertEqual(FakeRunner.runArgs, [test])
         self.assertEqual(p.result, result)
-        
-        self.assertNotEqual(signal.getsignal(signal.SIGINT), default_handler)
 
+        self.assertNotEqual(signal.getsignal(signal.SIGINT), default_handler)
 
     def testRemoveHandler(self):
         default_handler = signal.getsignal(signal.SIGINT)
@@ -238,21 +236,21 @@ class TestBreak(unittest2.TestCase):
         # check that calling removeHandler multiple times has no ill-effect
         unittest2.removeHandler()
         self.assertEqual(signal.getsignal(signal.SIGINT), default_handler)
-    
+
     def testRemoveHandlerAsDecorator(self):
         default_handler = signal.getsignal(signal.SIGINT)
         unittest2.installHandler()
-        
+
         @unittest2.removeHandler
         def test():
             self.assertEqual(signal.getsignal(signal.SIGINT), default_handler)
-        
+
         test()
         self.assertNotEqual(signal.getsignal(signal.SIGINT), default_handler)
-        
+
 
 # Should also skip some tests on Jython
-skipper = unittest2.skipUnless(hasattr(os, 'kill') and signal is not None, 
+skipper = unittest2.skipUnless(hasattr(os, 'kill') and signal is not None,
                                "test uses os.kill(...) and the signal module")
 TestBreak = skipper(TestBreak)
 

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_case.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_case.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_case.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_case.py Tue Sep  6 15:57:50 2016
@@ -20,10 +20,13 @@ class Test(object):
     "Keep these TestCase classes out of the main namespace"
 
     class Foo(unittest2.TestCase):
+
         def runTest(self): pass
+
         def test1(self): pass
 
     class Bar(Foo):
+
         def test2(self): pass
 
     class LoggingTestCase(unittest2.TestCase):
@@ -43,11 +46,11 @@ class Test(object):
             self.events.append('tearDown')
 
 
-
 class TestCleanUp(unittest2.TestCase):
 
     def testCleanUp(self):
         class TestableTest(unittest2.TestCase):
+
             def testNothing(self):
                 pass
 
@@ -65,22 +68,28 @@ class TestCleanUp(unittest2.TestCase):
         test.addCleanup(cleanup1, 1, 2, 3, four='hello', five='goodbye')
         test.addCleanup(cleanup2)
 
-        self.assertEqual(test._cleanups,
-                         [(cleanup1, (1, 2, 3), dict(four='hello', five='goodbye')),
-                          (cleanup2, (), {})])
+        self.assertEqual(
+            test._cleanups, [
+                (cleanup1, (1, 2, 3), dict(
+                    four='hello', five='goodbye')), (cleanup2, (), {})])
 
         result = test.doCleanups()
         self.assertTrue(result)
 
-        self.assertEqual(cleanups, [(2, (), {}), (1, (1, 2, 3), dict(four='hello', five='goodbye'))])
+        self.assertEqual(
+            cleanups, [
+                (2, (), {}), (1, (1, 2, 3), dict(
+                    four='hello', five='goodbye'))])
 
     def testCleanUpWithErrors(self):
         class TestableTest(unittest2.TestCase):
+
             def testNothing(self):
                 pass
 
         class MockResult(object):
             errors = []
+
             def addError(self, test, exc_info):
                 self.errors.append((test, exc_info))
 
@@ -90,6 +99,7 @@ class TestCleanUp(unittest2.TestCase):
 
         exc1 = Exception('foo')
         exc2 = Exception('bar')
+
         def cleanup1():
             raise exc1
 
@@ -101,7 +111,8 @@ class TestCleanUp(unittest2.TestCase):
 
         self.assertFalse(test.doCleanups())
 
-        (test1, (Type1, instance1, _)), (test2, (Type2, instance2, _)) = reversed(MockResult.errors)
+        (test1, (Type1, instance1, _)), (test2,
+                                         (Type2, instance2, _)) = reversed(MockResult.errors)
         self.assertEqual((test1, Type1, instance1), (test, Exception, exc1))
         self.assertEqual((test2, Type2, instance2), (test, Exception, exc2))
 
@@ -110,6 +121,7 @@ class TestCleanUp(unittest2.TestCase):
         ordering = []
 
         class TestableTest(unittest2.TestCase):
+
             def setUp(self):
                 ordering.append('setUp')
                 if blowUp:
@@ -125,6 +137,7 @@ class TestCleanUp(unittest2.TestCase):
 
         def cleanup1():
             ordering.append('cleanup1')
+
         def cleanup2():
             ordering.append('cleanup2')
         test.addCleanup(cleanup1)
@@ -152,6 +165,7 @@ class TestCleanUp(unittest2.TestCase):
         ordering = []
 
         class TestableTest(unittest2.TestCase):
+
             def setUp(self):
                 ordering.append('setUp')
                 self.addCleanup(cleanup1)
@@ -167,16 +181,19 @@ class TestCleanUp(unittest2.TestCase):
         def cleanup1():
             ordering.append('cleanup1')
             test.addCleanup(cleanup2)
+
         def cleanup2():
             ordering.append('cleanup2')
 
         test.debug()
-        self.assertEqual(ordering, ['setUp', 'test', 'tearDown', 'cleanup1', 'cleanup2'])
+        self.assertEqual(
+            ordering, [
+                'setUp', 'test', 'tearDown', 'cleanup1', 'cleanup2'])
 
 
 class Test_TestCase(unittest2.TestCase, EqualityMixin, HashingMixin):
 
-    ### Set up attributes used by inherited tests
+    # Set up attributes used by inherited tests
     ################################################################
 
     # Used by HashingMixin.test_hash and EqualityMixin.test_eq
@@ -188,8 +205,7 @@ class Test_TestCase(unittest2.TestCase,
                 (Test.Foo('test1'), Test.Bar('test2'))]
 
     ################################################################
-    ### /Set up attributes used by inherited tests
-
+    # /Set up attributes used by inherited tests
 
     # "class TestCase([methodName])"
     # ...
@@ -202,7 +218,9 @@ class Test_TestCase(unittest2.TestCase,
     # thing.
     def test_init__no_test_name(self):
         class Test(unittest2.TestCase):
+
             def runTest(self): raise MyException()
+
             def test(self): pass
 
         self.assertEqual(Test().id()[-13:], '.Test.runTest')
@@ -213,7 +231,9 @@ class Test_TestCase(unittest2.TestCase,
     # method named methodName."
     def test_init__test_name__valid(self):
         class Test(unittest2.TestCase):
+
             def runTest(self): raise MyException()
+
             def test(self): pass
 
         self.assertEqual(Test('test').id()[-10:], '.Test.test')
@@ -224,7 +244,9 @@ class Test_TestCase(unittest2.TestCase,
     # method named methodName."
     def test_init__test_name__invalid(self):
         class Test(unittest2.TestCase):
+
             def runTest(self): raise MyException()
+
             def test(self): pass
 
         try:
@@ -238,6 +260,7 @@ class Test_TestCase(unittest2.TestCase,
     # TestCase instances, this will always be 1"
     def test_countTestCases(self):
         class Foo(unittest2.TestCase):
+
             def test(self): pass
 
         self.assertEqual(Foo('test').countTestCases(), 1)
@@ -248,6 +271,7 @@ class Test_TestCase(unittest2.TestCase,
     # override this as necessary."
     def test_defaultTestResult(self):
         class Foo(unittest2.TestCase):
+
             def runTest(self):
                 pass
 
@@ -266,6 +290,7 @@ class Test_TestCase(unittest2.TestCase,
         result = LoggingResult(events)
 
         class Foo(Test.LoggingTestCase):
+
             def setUp(self):
                 super(Foo, self).setUp()
                 raise RuntimeError('raised by Foo.setUp')
@@ -279,6 +304,7 @@ class Test_TestCase(unittest2.TestCase,
         events = []
 
         class Foo(Test.LoggingTestCase):
+
             def defaultTestResult(self):
                 return LoggingResult(self.events)
 
@@ -303,6 +329,7 @@ class Test_TestCase(unittest2.TestCase,
         result = LoggingResult(events)
 
         class Foo(Test.LoggingTestCase):
+
             def test(self):
                 super(Foo, self).test()
                 raise RuntimeError('raised by Foo.test')
@@ -318,6 +345,7 @@ class Test_TestCase(unittest2.TestCase,
         events = []
 
         class Foo(Test.LoggingTestCase):
+
             def defaultTestResult(self):
                 return LoggingResult(self.events)
 
@@ -342,6 +370,7 @@ class Test_TestCase(unittest2.TestCase,
         result = LoggingResult(events)
 
         class Foo(Test.LoggingTestCase):
+
             def test(self):
                 super(Foo, self).test()
                 self.fail('raised by Foo.test')
@@ -355,8 +384,10 @@ class Test_TestCase(unittest2.TestCase,
     def test_run_call_order__failure_in_test_default_result(self):
 
         class Foo(Test.LoggingTestCase):
+
             def defaultTestResult(self):
                 return LoggingResult(self.events)
+
             def test(self):
                 super(Foo, self).test()
                 self.fail('raised by Foo.test')
@@ -379,6 +410,7 @@ class Test_TestCase(unittest2.TestCase,
         result = LoggingResult(events)
 
         class Foo(Test.LoggingTestCase):
+
             def tearDown(self):
                 super(Foo, self).tearDown()
                 raise RuntimeError('raised by Foo.tearDown')
@@ -392,8 +424,10 @@ class Test_TestCase(unittest2.TestCase,
     def test_run_call_order__error_in_tearDown_default_result(self):
 
         class Foo(Test.LoggingTestCase):
+
             def defaultTestResult(self):
                 return LoggingResult(self.events)
+
             def tearDown(self):
                 super(Foo, self).tearDown()
                 raise RuntimeError('raised by Foo.tearDown')
@@ -409,8 +443,10 @@ class Test_TestCase(unittest2.TestCase,
     def test_run_call_order_default_result(self):
 
         class Foo(unittest2.TestCase):
+
             def defaultTestResult(self):
                 return OldTestResult()
+
             def test(self):
                 pass
 
@@ -423,6 +459,7 @@ class Test_TestCase(unittest2.TestCase,
     # attribute is AssertionError"
     def test_failureException__default(self):
         class Foo(unittest2.TestCase):
+
             def test(self):
                 pass
 
@@ -439,6 +476,7 @@ class Test_TestCase(unittest2.TestCase,
         result = LoggingResult(events)
 
         class Foo(unittest2.TestCase):
+
             def test(self):
                 raise RuntimeError()
 
@@ -446,7 +484,6 @@ class Test_TestCase(unittest2.TestCase,
 
         self.assertTrue(Foo('test').failureException is RuntimeError)
 
-
         Foo('test').run(result)
         expected = ['startTest', 'addFailure', 'stopTest']
         self.assertEqual(events, expected)
@@ -462,6 +499,7 @@ class Test_TestCase(unittest2.TestCase,
         result = LoggingResult(events)
 
         class Foo(unittest2.TestCase):
+
             def test(self):
                 self.fail("foo")
 
@@ -469,7 +507,6 @@ class Test_TestCase(unittest2.TestCase,
 
         self.assertTrue(Foo('test').failureException is RuntimeError)
 
-
         Foo('test').run(result)
         expected = ['startTest', 'addFailure', 'stopTest']
         self.assertEqual(events, expected)
@@ -477,6 +514,7 @@ class Test_TestCase(unittest2.TestCase,
     # "The default implementation does nothing."
     def test_setUp(self):
         class Foo(unittest2.TestCase):
+
             def runTest(self):
                 pass
 
@@ -486,6 +524,7 @@ class Test_TestCase(unittest2.TestCase,
     # "The default implementation does nothing."
     def test_tearDown(self):
         class Foo(unittest2.TestCase):
+
             def runTest(self):
                 pass
 
@@ -500,6 +539,7 @@ class Test_TestCase(unittest2.TestCase,
     # just say "string")
     def test_id(self):
         class Foo(unittest2.TestCase):
+
             def runTest(self):
                 pass
 
@@ -513,6 +553,7 @@ class Test_TestCase(unittest2.TestCase,
         events = []
 
         class Foo(unittest2.TestCase):
+
             def test(self):
                 events.append('test')
 
@@ -523,7 +564,7 @@ class Test_TestCase(unittest2.TestCase,
         Foo('test').run()
 
         expected = ['startTestRun', 'startTest', 'test', 'addSuccess',
-            'stopTest', 'stopTestRun']
+                    'stopTest', 'stopTestRun']
         self.assertEqual(events, expected)
 
     def testShortDescriptionWithoutDocstring(self):
@@ -532,8 +573,8 @@ class Test_TestCase(unittest2.TestCase,
     def testShortDescriptionWithOneLineDocstring(self):
         """Tests shortDescription() for a method with a docstring."""
         self.assertEqual(
-                self.shortDescription(),
-                'Tests shortDescription() for a method with a docstring.')
+            self.shortDescription(),
+            'Tests shortDescription() for a method with a docstring.')
 
     def testShortDescriptionWithMultiLineDocstring(self):
         """Tests shortDescription() for a method with a longer docstring.
@@ -543,15 +584,16 @@ class Test_TestCase(unittest2.TestCase,
         whole thing is.
         """
         self.assertEqual(
-                self.shortDescription(),
-                 'Tests shortDescription() for a method with a longer '
-                 'docstring.')
+            self.shortDescription(),
+            'Tests shortDescription() for a method with a longer '
+            'docstring.')
 
     def testAddTypeEqualityFunc(self):
         class SadSnake(object):
             """Dummy class for test_addTypeEqualityFunc."""
         s1, s2 = SadSnake(), SadSnake()
         self.assertNotEqual(s1, s2)
+
         def AllSnakesCreatedEqual(a, b, msg=None):
             return type(a) is type(b) is SadSnake
         self.addTypeEqualityFunc(SadSnake, AllSnakesCreatedEqual)
@@ -563,12 +605,20 @@ class Test_TestCase(unittest2.TestCase,
     def testAssertIs(self):
         thing = object()
         self.assertIs(thing, thing)
-        self.assertRaises(self.failureException, self.assertIs, thing, object())
+        self.assertRaises(
+            self.failureException,
+            self.assertIs,
+            thing,
+            object())
 
     def testAssertIsNot(self):
         thing = object()
         self.assertIsNot(thing, object())
-        self.assertRaises(self.failureException, self.assertIsNot, thing, thing)
+        self.assertRaises(
+            self.failureException,
+            self.assertIsNot,
+            thing,
+            thing)
 
     def testAssertIsInstance(self):
         thing = []
@@ -599,7 +649,9 @@ class Test_TestCase(unittest2.TestCase,
                           animals)
 
         self.assertRaises(self.failureException, self.assertNotIn, 'c', 'abc')
-        self.assertRaises(self.failureException, self.assertNotIn, 1, [1, 2, 3])
+        self.assertRaises(
+            self.failureException, self.assertNotIn, 1, [
+                1, 2, 3])
         self.assertRaises(self.failureException, self.assertNotIn, 'cow',
                           animals)
 
@@ -625,17 +677,17 @@ class Test_TestCase(unittest2.TestCase,
         self.assertRaises(unittest2.TestCase.failureException,
                           self.assertDictContainsSubset, {'a': 1, 'c': 1},
                           {'a': 1}, '.*Missing:.*Mismatched values:.*')
-        
+
         self.assertRaises(self.failureException,
                           self.assertDictContainsSubset, {1: "one"}, {})
 
     def testAssertEqual(self):
         equal_pairs = [
-                ((), ()),
-                ({}, {}),
-                ([], []),
-                (set(), set()),
-                (frozenset(), frozenset())]
+            ((), ()),
+            ({}, {}),
+            ([], []),
+            (set(), set()),
+            (frozenset(), frozenset())]
         for a, b in equal_pairs:
             # This mess of try excepts is to test the assertEqual behavior
             # itself.
@@ -654,11 +706,11 @@ class Test_TestCase(unittest2.TestCase,
                           (a, b))
 
         unequal_pairs = [
-               ((), []),
-               ({}, set()),
-               (set([4,1]), frozenset([4,2])),
-               (frozenset([4,5]), set([2,3])),
-               (set([3,4]), set([5,4]))]
+            ((), []),
+            ({}, set()),
+            (set([4, 1]), frozenset([4, 2])),
+            (frozenset([4, 5]), set([2, 3])),
+            (set([3, 4]), set([5, 4]))]
         for a, b in unequal_pairs:
             self.assertRaises(self.failureException, self.assertEqual, a, b)
             self.assertRaises(self.failureException, self.assertEqual, a, b,
@@ -702,7 +754,7 @@ class Test_TestCase(unittest2.TestCase,
 
         self.assertDictEqual({}, {})
 
-        c = { 'x': 1 }
+        c = {'x': 1}
         d = {}
         self.assertRaises(unittest2.TestCase.failureException,
                           self.assertDictEqual, c, d)
@@ -734,7 +786,7 @@ class Test_TestCase(unittest2.TestCase,
         self.assertItemsEqual([{'a': 1}, {'b': 2}], [{'b': 2}, {'a': 1}])
         self.assertRaises(self.failureException, self.assertItemsEqual,
                           [[1]], [[2]])
-        
+
         # Test unsortable objects
         self.assertItemsEqual([2j, None], [None, 2j])
         self.assertRaises(self.failureException, self.assertItemsEqual,
@@ -745,14 +797,26 @@ class Test_TestCase(unittest2.TestCase,
         set2 = set()
         self.assertSetEqual(set1, set2)
 
-        self.assertRaises(self.failureException, self.assertSetEqual, None, set2)
+        self.assertRaises(
+            self.failureException,
+            self.assertSetEqual,
+            None,
+            set2)
         self.assertRaises(self.failureException, self.assertSetEqual, [], set2)
-        self.assertRaises(self.failureException, self.assertSetEqual, set1, None)
+        self.assertRaises(
+            self.failureException,
+            self.assertSetEqual,
+            set1,
+            None)
         self.assertRaises(self.failureException, self.assertSetEqual, set1, [])
 
         set1 = set(['a'])
         set2 = set()
-        self.assertRaises(self.failureException, self.assertSetEqual, set1, set2)
+        self.assertRaises(
+            self.failureException,
+            self.assertSetEqual,
+            set1,
+            set2)
 
         set1 = set(['a'])
         set2 = set(['a'])
@@ -760,11 +824,19 @@ class Test_TestCase(unittest2.TestCase,
 
         set1 = set(['a'])
         set2 = set(['a', 'b'])
-        self.assertRaises(self.failureException, self.assertSetEqual, set1, set2)
+        self.assertRaises(
+            self.failureException,
+            self.assertSetEqual,
+            set1,
+            set2)
 
         set1 = set(['a'])
         set2 = frozenset(['a', 'b'])
-        self.assertRaises(self.failureException, self.assertSetEqual, set1, set2)
+        self.assertRaises(
+            self.failureException,
+            self.assertSetEqual,
+            set1,
+            set2)
 
         set1 = set(['a', 'b'])
         set2 = frozenset(['a', 'b'])
@@ -772,13 +844,25 @@ class Test_TestCase(unittest2.TestCase,
 
         set1 = set()
         set2 = "foo"
-        self.assertRaises(self.failureException, self.assertSetEqual, set1, set2)
-        self.assertRaises(self.failureException, self.assertSetEqual, set2, set1)
+        self.assertRaises(
+            self.failureException,
+            self.assertSetEqual,
+            set1,
+            set2)
+        self.assertRaises(
+            self.failureException,
+            self.assertSetEqual,
+            set2,
+            set1)
 
         # make sure any string formatting is tuple-safe
         set1 = set([(0, 1), (2, 3)])
         set2 = set([(4, 5)])
-        self.assertRaises(self.failureException, self.assertSetEqual, set1, set2)
+        self.assertRaises(
+            self.failureException,
+            self.assertSetEqual,
+            set1,
+            set2)
 
     def testInequality(self):
         # Try ints
@@ -804,10 +888,18 @@ class Test_TestCase(unittest2.TestCase,
         self.assertLessEqual(1.0, 1.0)
         self.assertRaises(self.failureException, self.assertGreater, 1.0, 1.1)
         self.assertRaises(self.failureException, self.assertGreater, 1.0, 1.0)
-        self.assertRaises(self.failureException, self.assertGreaterEqual, 1.0, 1.1)
+        self.assertRaises(
+            self.failureException,
+            self.assertGreaterEqual,
+            1.0,
+            1.1)
         self.assertRaises(self.failureException, self.assertLess, 1.1, 1.0)
         self.assertRaises(self.failureException, self.assertLess, 1.0, 1.0)
-        self.assertRaises(self.failureException, self.assertLessEqual, 1.1, 1.0)
+        self.assertRaises(
+            self.failureException,
+            self.assertLessEqual,
+            1.1,
+            1.0)
 
         # Try Strings
         self.assertGreater('bug', 'ant')
@@ -816,12 +908,28 @@ class Test_TestCase(unittest2.TestCase,
         self.assertLess('ant', 'bug')
         self.assertLessEqual('ant', 'bug')
         self.assertLessEqual('ant', 'ant')
-        self.assertRaises(self.failureException, self.assertGreater, 'ant', 'bug')
-        self.assertRaises(self.failureException, self.assertGreater, 'ant', 'ant')
-        self.assertRaises(self.failureException, self.assertGreaterEqual, 'ant', 'bug')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreater,
+            'ant',
+            'bug')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreater,
+            'ant',
+            'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreaterEqual,
+            'ant',
+            'bug')
         self.assertRaises(self.failureException, self.assertLess, 'bug', 'ant')
         self.assertRaises(self.failureException, self.assertLess, 'ant', 'ant')
-        self.assertRaises(self.failureException, self.assertLessEqual, 'bug', 'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertLessEqual,
+            'bug',
+            'ant')
 
         # Try Unicode
         self.assertGreater(u'bug', u'ant')
@@ -830,13 +938,36 @@ class Test_TestCase(unittest2.TestCase,
         self.assertLess(u'ant', u'bug')
         self.assertLessEqual(u'ant', u'bug')
         self.assertLessEqual(u'ant', u'ant')
-        self.assertRaises(self.failureException, self.assertGreater, u'ant', u'bug')
-        self.assertRaises(self.failureException, self.assertGreater, u'ant', u'ant')
-        self.assertRaises(self.failureException, self.assertGreaterEqual, u'ant',
-                          u'bug')
-        self.assertRaises(self.failureException, self.assertLess, u'bug', u'ant')
-        self.assertRaises(self.failureException, self.assertLess, u'ant', u'ant')
-        self.assertRaises(self.failureException, self.assertLessEqual, u'bug', u'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreater,
+            u'ant',
+            u'bug')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreater,
+            u'ant',
+            u'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreaterEqual,
+            u'ant',
+            u'bug')
+        self.assertRaises(
+            self.failureException,
+            self.assertLess,
+            u'bug',
+            u'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertLess,
+            u'ant',
+            u'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertLessEqual,
+            u'bug',
+            u'ant')
 
         # Try Mixed String/Unicode
         self.assertGreater('bug', u'ant')
@@ -851,20 +982,66 @@ class Test_TestCase(unittest2.TestCase,
         self.assertLessEqual(u'ant', 'bug')
         self.assertLessEqual('ant', u'ant')
         self.assertLessEqual(u'ant', 'ant')
-        self.assertRaises(self.failureException, self.assertGreater, 'ant', u'bug')
-        self.assertRaises(self.failureException, self.assertGreater, u'ant', 'bug')
-        self.assertRaises(self.failureException, self.assertGreater, 'ant', u'ant')
-        self.assertRaises(self.failureException, self.assertGreater, u'ant', 'ant')
-        self.assertRaises(self.failureException, self.assertGreaterEqual, 'ant',
-                          u'bug')
-        self.assertRaises(self.failureException, self.assertGreaterEqual, u'ant',
-                          'bug')
-        self.assertRaises(self.failureException, self.assertLess, 'bug', u'ant')
-        self.assertRaises(self.failureException, self.assertLess, u'bug', 'ant')
-        self.assertRaises(self.failureException, self.assertLess, 'ant', u'ant')
-        self.assertRaises(self.failureException, self.assertLess, u'ant', 'ant')
-        self.assertRaises(self.failureException, self.assertLessEqual, 'bug', u'ant')
-        self.assertRaises(self.failureException, self.assertLessEqual, u'bug', 'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreater,
+            'ant',
+            u'bug')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreater,
+            u'ant',
+            'bug')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreater,
+            'ant',
+            u'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreater,
+            u'ant',
+            'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreaterEqual,
+            'ant',
+            u'bug')
+        self.assertRaises(
+            self.failureException,
+            self.assertGreaterEqual,
+            u'ant',
+            'bug')
+        self.assertRaises(
+            self.failureException,
+            self.assertLess,
+            'bug',
+            u'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertLess,
+            u'bug',
+            'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertLess,
+            'ant',
+            u'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertLess,
+            u'ant',
+            'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertLessEqual,
+            'bug',
+            u'ant')
+        self.assertRaises(
+            self.failureException,
+            self.assertLessEqual,
+            u'bug',
+            'ant')
 
     def testAssertMultiLineEqual(self):
         sample_text = """\
@@ -903,7 +1080,7 @@ test case
                 self.assertTrue(sample_text_error == error)
 
     def testAssertSequenceEqualMaxDiff(self):
-        self.assertEqual(self.maxDiff, 80*8)
+        self.assertEqual(self.maxDiff, 80 * 8)
         seq1 = 'a' + 'x' * 80**2
         seq2 = 'b' + 'x' * 80**2
         diff = '\n'.join(difflib.ndiff(pprint.pformat(seq1).splitlines(),
@@ -911,7 +1088,7 @@ test case
         # the +1 is the leading \n added by assertSequenceEqual
         omitted = unittest2.case.DIFF_OMITTED % (len(diff) + 1,)
 
-        self.maxDiff = len(diff)//2
+        self.maxDiff = len(diff) // 2
         try:
             self.assertSequenceEqual(seq1, seq2)
         except self.failureException as e:
@@ -957,6 +1134,7 @@ test case
 
     def testAssertDictEqualTruncates(self):
         test = unittest2.TestCase('assertEqual')
+
         def truncate(msg, diff):
             return 'foo'
         test._truncateMessage = truncate
@@ -969,6 +1147,7 @@ test case
 
     def testAssertMultiLineEqualTruncates(self):
         test = unittest2.TestCase('assertEqual')
+
         def truncate(msg, diff):
             return 'foo'
         test._truncateMessage = truncate
@@ -1003,38 +1182,37 @@ test case
 
     def testAssertNotRaisesRegexp(self):
         self.assertRaisesRegexp(
-                self.failureException, '^Exception not raised$',
-                self.assertRaisesRegexp, Exception, re.compile('x'),
-                lambda: None)
+            self.failureException, '^Exception not raised$',
+            self.assertRaisesRegexp, Exception, re.compile('x'),
+            lambda: None)
         self.assertRaisesRegexp(
-                self.failureException, '^Exception not raised$',
-                self.assertRaisesRegexp, Exception, 'x',
-                lambda: None)
+            self.failureException, '^Exception not raised$',
+            self.assertRaisesRegexp, Exception, 'x',
+            lambda: None)
         self.assertRaisesRegexp(
-                self.failureException, '^Exception not raised$',
-                self.assertRaisesRegexp, Exception, u'x',
-                lambda: None)
+            self.failureException, '^Exception not raised$',
+            self.assertRaisesRegexp, Exception, u'x',
+            lambda: None)
 
     def testAssertRaisesRegexpMismatch(self):
         def Stub():
             raise Exception('Unexpected')
 
         self.assertRaisesRegexp(
-                self.failureException,
-                r'"\^Expected\$" does not match "Unexpected"',
-                self.assertRaisesRegexp, Exception, '^Expected$',
-                Stub)
+            self.failureException,
+            r'"\^Expected\$" does not match "Unexpected"',
+            self.assertRaisesRegexp, Exception, '^Expected$',
+            Stub)
         self.assertRaisesRegexp(
-                self.failureException,
-                r'"\^Expected\$" does not match "Unexpected"',
-                self.assertRaisesRegexp, Exception, u'^Expected$',
-                Stub)
+            self.failureException,
+            r'"\^Expected\$" does not match "Unexpected"',
+            self.assertRaisesRegexp, Exception, u'^Expected$',
+            Stub)
         self.assertRaisesRegexp(
-                self.failureException,
-                r'"\^Expected\$" does not match "Unexpected"',
-                self.assertRaisesRegexp, Exception,
-                re.compile('^Expected$'), Stub)
-
+            self.failureException,
+            r'"\^Expected\$" does not match "Unexpected"',
+            self.assertRaisesRegexp, Exception,
+            re.compile('^Expected$'), Stub)
 
     def testSynonymAssertMethodNames(self):
         """Test undocumented method name synonyms.
@@ -1053,6 +1231,7 @@ test case
     def testDeepcopy(self):
         # Issue: 5660
         class TestableTest(unittest2.TestCase):
+
             def testNothing(self):
                 pass
 

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_discovery.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_discovery.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_discovery.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_discovery.py Tue Sep  6 15:57:50 2016
@@ -27,12 +27,15 @@ class TestDiscovery(unittest2.TestCase):
         loader = unittest2.TestLoader()
 
         original_listdir = os.listdir
+
         def restore_listdir():
             os.listdir = original_listdir
         original_isfile = os.path.isfile
+
         def restore_isfile():
             os.path.isfile = original_isfile
         original_isdir = os.path.isdir
+
         def restore_isdir():
             os.path.isdir = original_isdir
 
@@ -63,19 +66,22 @@ class TestDiscovery(unittest2.TestCase):
         expected = [name + ' module tests' for name in
                     ('test1', 'test2')]
         expected.extend([('test_dir.%s' % name) + ' module tests' for name in
-                    ('test3', 'test4')])
+                         ('test3', 'test4')])
         self.assertEqual(suite, expected)
 
     def test_find_tests_with_package(self):
         loader = unittest2.TestLoader()
 
         original_listdir = os.listdir
+
         def restore_listdir():
             os.listdir = original_listdir
         original_isfile = os.path.isfile
+
         def restore_isfile():
             os.path.isfile = original_isfile
         original_isdir = os.path.isdir
+
         def restore_isdir():
             os.path.isdir = original_isdir
 
@@ -110,9 +116,11 @@ class TestDiscovery(unittest2.TestCase):
             __hash__ = None
 
         loader._get_module_from_name = lambda name: Module(name)
+
         def loadTestsFromModule(module, use_load_tests):
             if use_load_tests:
-                raise self.failureException('use_load_tests should be False for packages')
+                raise self.failureException(
+                    'use_load_tests should be False for packages')
             return module.path + ' module tests'
         loader.loadTestsFromModule = loadTestsFromModule
 
@@ -127,15 +135,18 @@ class TestDiscovery(unittest2.TestCase):
                          ['load_tests', 'test_directory2' + ' module tests'])
         self.assertEqual(Module.paths, ['test_directory', 'test_directory2'])
 
-        # load_tests should have been called once with loader, tests and pattern
-        self.assertEqual(Module.load_tests_args,
-                         [(loader, 'test_directory' + ' module tests', 'test*')])
+        # load_tests should have been called once with loader, tests and
+        # pattern
+        self.assertEqual(
+            Module.load_tests_args, [
+                (loader, 'test_directory' + ' module tests', 'test*')])
 
     def test_discover(self):
         loader = unittest2.TestLoader()
 
         original_isfile = os.path.isfile
         original_isdir = os.path.isdir
+
         def restore_isfile():
             os.path.isfile = original_isfile
 
@@ -143,6 +154,7 @@ class TestDiscovery(unittest2.TestCase):
         self.addCleanup(restore_isfile)
 
         orig_sys_path = sys.path[:]
+
         def restore_path():
             sys.path[:] = orig_sys_path
         self.addCleanup(restore_path)
@@ -163,6 +175,7 @@ class TestDiscovery(unittest2.TestCase):
         self.addCleanup(restore_isdir)
 
         _find_tests_args = []
+
         def _find_tests(start_dir, pattern):
             _find_tests_args.append((start_dir, pattern))
             return ['tests']
@@ -186,6 +199,7 @@ class TestDiscovery(unittest2.TestCase):
         isfile = os.path.isfile
         os.path.isfile = lambda _: True
         orig_sys_path = sys.path[:]
+
         def restore():
             os.path.isfile = isfile
             os.listdir = listdir
@@ -195,16 +209,17 @@ class TestDiscovery(unittest2.TestCase):
         suite = loader.discover('.')
         self.assertIn(os.getcwd(), sys.path)
         self.assertEqual(suite.countTestCases(), 1)
-        test = list(list(suite)[0])[0] # extract test from suite
+        test = list(list(suite)[0])[0]  # extract test from suite
 
         self.assertRaises(ImportError,
-            lambda: test.test_this_does_not_exist())
+                          lambda: test.test_this_does_not_exist())
 
     def test_command_line_handling_parseArgs(self):
         # Haha - take that uninstantiable class
         program = object.__new__(unittest2.TestProgram)
 
         args = []
+
         def do_discovery(argv):
             args.extend(argv)
         program._do_discovery = do_discovery
@@ -217,6 +232,7 @@ class TestDiscovery(unittest2.TestCase):
     def test_command_line_handling_do_discovery_too_many_arguments(self):
         class Stop(Exception):
             pass
+
         def usageExit():
             raise Stop
 
@@ -224,15 +240,15 @@ class TestDiscovery(unittest2.TestCase):
         program.usageExit = usageExit
 
         self.assertRaises(Stop,
-            # too many args
-            lambda: program._do_discovery(['one', 'two', 'three', 'four']))
-
+                          # too many args
+                          lambda: program._do_discovery(['one', 'two', 'three', 'four']))
 
     def test_command_line_handling_do_discovery_calls_loader(self):
         program = object.__new__(unittest2.TestProgram)
 
         class Loader(object):
             args = []
+
             def discover(self, start_dir, pattern, top_level_dir):
                 self.args.append((start_dir, pattern, top_level_dir))
                 return 'tests'
@@ -317,7 +333,7 @@ class TestDiscovery(unittest2.TestCase):
         original_listdir = os.listdir
         original_isfile = os.path.isfile
         original_isdir = os.path.isdir
-        
+
         def cleanup():
             os.listdir = original_listdir
             os.path.isfile = original_isfile
@@ -326,37 +342,42 @@ class TestDiscovery(unittest2.TestCase):
             if full_path in sys.path:
                 sys.path.remove(full_path)
         self.addCleanup(cleanup)
-        
+
         def listdir(_):
             return ['foo.py']
+
         def isfile(_):
             return True
+
         def isdir(_):
             return True
         os.listdir = listdir
         os.path.isfile = isfile
         os.path.isdir = isdir
-        
+
         loader = unittest2.TestLoader()
-        
+
         mod_dir = os.path.abspath('bar')
         expected_dir = os.path.abspath('foo')
-        msg = re.escape(r"'foo' module incorrectly imported from %r. Expected %r. "
-                "Is this module globally installed?" % (mod_dir, expected_dir))
+        msg = re.escape(
+            r"'foo' module incorrectly imported from %r. Expected %r. "
+            "Is this module globally installed?" %
+            (mod_dir, expected_dir))
         self.assertRaisesRegexp(
             ImportError, '^%s$' % msg, loader.discover,
             start_dir='foo', pattern='foo.py'
         )
         self.assertEqual(sys.path[0], full_path)
 
-        
     def test_discovery_from_dotted_path(self):
         loader = unittest2.TestLoader()
-        
+
         tests = [self]
-        expectedPath = os.path.abspath(os.path.dirname(unittest2.test.__file__))
+        expectedPath = os.path.abspath(
+            os.path.dirname(unittest2.test.__file__))
 
         self.wasRun = False
+
         def _find_tests(start_dir, pattern):
             self.wasRun = True
             self.assertEqual(start_dir, expectedPath)

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_functiontestcase.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_functiontestcase.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_functiontestcase.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_functiontestcase.py Tue Sep  6 15:57:50 2016
@@ -145,6 +145,5 @@ class Test_FunctionTestCase(unittest2.Te
         self.assertEqual(test.shortDescription(), "this tests foo")
 
 
-
 if __name__ == '__main__':
     unittest2.main()

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_loader.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_loader.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_loader.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_loader.py Tue Sep  6 15:57:50 2016
@@ -6,15 +6,18 @@ import unittest2
 
 class Test_TestLoader(unittest2.TestCase):
 
-    ### Tests for TestLoader.loadTestsFromTestCase
+    # Tests for TestLoader.loadTestsFromTestCase
     ################################################################
 
     # "Return a suite of all tests cases contained in the TestCase-derived
     # class testCaseClass"
     def test_loadTestsFromTestCase(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foo_bar(self): pass
 
         tests = unittest2.TestSuite([Foo('test_1'), Foo('test_2')])
@@ -28,6 +31,7 @@ class Test_TestLoader(unittest2.TestCase
     # Make sure it does the right thing even if no tests were found
     def test_loadTestsFromTestCase__no_matches(self):
         class Foo(unittest2.TestCase):
+
             def foo_bar(self): pass
 
         empty_suite = unittest2.TestSuite()
@@ -64,6 +68,7 @@ class Test_TestLoader(unittest2.TestCase
     # not match the default TestLoader.testMethodPrefix string
     def test_loadTestsFromTestCase__default_method_name(self):
         class Foo(unittest2.TestCase):
+
             def runTest(self):
                 pass
 
@@ -76,15 +81,17 @@ class Test_TestLoader(unittest2.TestCase
         self.assertEqual(list(suite), [Foo('runTest')])
 
     ################################################################
-    ### /Tests for TestLoader.loadTestsFromTestCase
+    # /Tests for TestLoader.loadTestsFromTestCase
 
-    ### Tests for TestLoader.loadTestsFromModule
+    # Tests for TestLoader.loadTestsFromModule
     ################################################################
 
     # "This method searches `module` for classes derived from TestCase"
     def test_loadTestsFromModule__TestCase_subclass(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testcase_1 = MyTestCase
@@ -112,6 +119,7 @@ class Test_TestLoader(unittest2.TestCase
     # What happens if no tests are found (TestCases instances, but no tests)?
     def test_loadTestsFromModule__no_TestCase_tests(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
             pass
         m.testcase_1 = MyTestCase
@@ -134,6 +142,7 @@ class Test_TestLoader(unittest2.TestCase
     # XXX Certain people are using this behaviour. We'll add a test for it
     def test_loadTestsFromModule__not_a_module(self):
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
 
@@ -146,17 +155,19 @@ class Test_TestLoader(unittest2.TestCase
         reference = [unittest2.TestSuite([MyTestCase('test')])]
         self.assertEqual(list(suite), reference)
 
-
     # Check that loadTestsFromModule honors (or not) a module
     # with a load_tests function.
     def test_loadTestsFromModule__load_tests(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testcase_1 = MyTestCase
 
         load_tests_args = []
+
         def load_tests(loader, tests, pattern):
             self.assertIsInstance(tests, unittest2.TestSuite)
             load_tests_args.extend((loader, tests, pattern))
@@ -184,14 +195,13 @@ class Test_TestLoader(unittest2.TestCase
         self.assertIsInstance(suite, unittest2.TestSuite)
         self.assertEqual(suite.countTestCases(), 1)
         test = list(suite)[0]
-        
+
         self.assertRaisesRegexp(TypeError, "some failure", test.m)
-        
 
     ################################################################
-    ### /Tests for TestLoader.loadTestsFromModule()
+    # /Tests for TestLoader.loadTestsFromModule()
 
-    ### Tests for TestLoader.loadTestsFromName()
+    # Tests for TestLoader.loadTestsFromName()
     ################################################################
 
     # "The specifier name is a ``dotted name'' that may resolve either to
@@ -255,9 +265,11 @@ class Test_TestLoader(unittest2.TestCase
         try:
             loader.loadTestsFromName('unittest2.sdasfasfasdf')
         except AttributeError as e:
-            self.assertEqual(str(e), "'module' object has no attribute 'sdasfasfasdf'")
+            self.assertEqual(
+                str(e), "'module' object has no attribute 'sdasfasfasdf'")
         else:
-            self.fail("TestLoader.loadTestsFromName failed to raise AttributeError")
+            self.fail(
+                "TestLoader.loadTestsFromName failed to raise AttributeError")
 
     # "The specifier name is a ``dotted name'' that may resolve either to
     # a module, a test case class, a TestSuite instance, a test method
@@ -272,9 +284,11 @@ class Test_TestLoader(unittest2.TestCase
         try:
             loader.loadTestsFromName('sdasfasfasdf', unittest2)
         except AttributeError as e:
-            self.assertEqual(str(e), "'module' object has no attribute 'sdasfasfasdf'")
+            self.assertEqual(
+                str(e), "'module' object has no attribute 'sdasfasfasdf'")
         else:
-            self.fail("TestLoader.loadTestsFromName failed to raise AttributeError")
+            self.fail(
+                "TestLoader.loadTestsFromName failed to raise AttributeError")
 
     # "The specifier name is a ``dotted name'' that may resolve either to
     # a module, a test case class, a TestSuite instance, a test method
@@ -330,6 +344,7 @@ class Test_TestLoader(unittest2.TestCase
     # XXX Some people are relying on this, so keep it for now
     def test_loadTestsFromName__relative_not_a_module(self):
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
 
@@ -365,7 +380,9 @@ class Test_TestLoader(unittest2.TestCase
     # resolve either to ... a test case class"
     def test_loadTestsFromName__relative_TestCase_subclass(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testcase_1 = MyTestCase
@@ -381,7 +398,9 @@ class Test_TestLoader(unittest2.TestCase
     # TestCase or TestSuite instance."
     def test_loadTestsFromName__relative_TestSuite(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testsuite = unittest2.TestSuite([MyTestCase('test')])
@@ -396,7 +415,9 @@ class Test_TestLoader(unittest2.TestCase
     # ... a test method within a test case class"
     def test_loadTestsFromName__relative_testmethod(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testcase_1 = MyTestCase
@@ -417,7 +438,9 @@ class Test_TestLoader(unittest2.TestCase
     # for the given name (relative to a provided module)?
     def test_loadTestsFromName__relative_invalid_testmethod(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testcase_1 = MyTestCase
@@ -426,7 +449,8 @@ class Test_TestLoader(unittest2.TestCase
         try:
             loader.loadTestsFromName('testcase_1.testfoo', m)
         except AttributeError as e:
-            self.assertEqual(str(e), "type object 'MyTestCase' has no attribute 'testfoo'")
+            self.assertEqual(
+                str(e), "type object 'MyTestCase' has no attribute 'testfoo'")
         else:
             self.fail("Failed to raise AttributeError")
 
@@ -436,6 +460,7 @@ class Test_TestLoader(unittest2.TestCase
         m = types.ModuleType('m')
         testcase_1 = unittest2.FunctionTestCase(lambda: None)
         testcase_2 = unittest2.FunctionTestCase(lambda: None)
+
         def return_TestSuite():
             return unittest2.TestSuite([testcase_1, testcase_2])
         m.return_TestSuite = return_TestSuite
@@ -450,6 +475,7 @@ class Test_TestLoader(unittest2.TestCase
     def test_loadTestsFromName__callable__TestCase_instance(self):
         m = types.ModuleType('m')
         testcase_1 = unittest2.FunctionTestCase(lambda: None)
+
         def return_TestCase():
             return testcase_1
         m.return_TestCase = return_TestCase
@@ -462,13 +488,15 @@ class Test_TestLoader(unittest2.TestCase
     # "The specifier name is a ``dotted name'' that may resolve ... to
     # ... a callable object which returns a TestCase ... instance"
     #*****************************************************************
-    #Override the suiteClass attribute to ensure that the suiteClass
+    # Override the suiteClass attribute to ensure that the suiteClass
     #attribute is used
-    def test_loadTestsFromName__callable__TestCase_instance_ProperSuiteClass(self):
+    def test_loadTestsFromName__callable__TestCase_instance_ProperSuiteClass(
+            self):
         class SubTestSuite(unittest2.TestSuite):
             pass
         m = types.ModuleType('m')
         testcase_1 = unittest2.FunctionTestCase(lambda: None)
+
         def return_TestCase():
             return testcase_1
         m.return_TestCase = return_TestCase
@@ -482,19 +510,21 @@ class Test_TestLoader(unittest2.TestCase
     # "The specifier name is a ``dotted name'' that may resolve ... to
     # ... a test method within a test case class"
     #*****************************************************************
-    #Override the suiteClass attribute to ensure that the suiteClass
+    # Override the suiteClass attribute to ensure that the suiteClass
     #attribute is used
     def test_loadTestsFromName__relative_testmethod_ProperSuiteClass(self):
         class SubTestSuite(unittest2.TestSuite):
             pass
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testcase_1 = MyTestCase
 
         loader = unittest2.TestLoader()
-        loader.suiteClass=SubTestSuite
+        loader.suiteClass = SubTestSuite
         suite = loader.loadTestsFromName('testcase_1.test', m)
         self.assertIsInstance(suite, loader.suiteClass)
 
@@ -506,6 +536,7 @@ class Test_TestLoader(unittest2.TestCase
     # What happens if the callable returns something else?
     def test_loadTestsFromName__callable__wrong_type(self):
         m = types.ModuleType('m')
+
         def return_wrong():
             return 6
         m.return_wrong = return_wrong
@@ -541,9 +572,9 @@ class Test_TestLoader(unittest2.TestCase
                 del sys.modules[module_name]
 
     ################################################################
-    ### Tests for TestLoader.loadTestsFromName()
+    # Tests for TestLoader.loadTestsFromName()
 
-    ### Tests for TestLoader.loadTestsFromNames()
+    # Tests for TestLoader.loadTestsFromNames()
     ################################################################
 
     # "Similar to loadTestsFromName(), but takes a sequence of names rather
@@ -635,9 +666,11 @@ class Test_TestLoader(unittest2.TestCase
         try:
             loader.loadTestsFromNames(['unittest2.sdasfasfasdf', 'unittest2'])
         except AttributeError as e:
-            self.assertEqual(str(e), "'module' object has no attribute 'sdasfasfasdf'")
+            self.assertEqual(
+                str(e), "'module' object has no attribute 'sdasfasfasdf'")
         else:
-            self.fail("TestLoader.loadTestsFromNames failed to raise AttributeError")
+            self.fail(
+                "TestLoader.loadTestsFromNames failed to raise AttributeError")
 
     # "The specifier name is a ``dotted name'' that may resolve either to
     # a module, a test case class, a TestSuite instance, a test method
@@ -654,9 +687,11 @@ class Test_TestLoader(unittest2.TestCase
         try:
             loader.loadTestsFromNames(['sdasfasfasdf'], unittest2)
         except AttributeError as e:
-            self.assertEqual(str(e), "'module' object has no attribute 'sdasfasfasdf'")
+            self.assertEqual(
+                str(e), "'module' object has no attribute 'sdasfasfasdf'")
         else:
-            self.fail("TestLoader.loadTestsFromName failed to raise AttributeError")
+            self.fail(
+                "TestLoader.loadTestsFromName failed to raise AttributeError")
 
     # "The specifier name is a ``dotted name'' that may resolve either to
     # a module, a test case class, a TestSuite instance, a test method
@@ -673,9 +708,11 @@ class Test_TestLoader(unittest2.TestCase
         try:
             loader.loadTestsFromNames(['TestCase', 'sdasfasfasdf'], unittest2)
         except AttributeError as e:
-            self.assertEqual(str(e), "'module' object has no attribute 'sdasfasfasdf'")
+            self.assertEqual(
+                str(e), "'module' object has no attribute 'sdasfasfasdf'")
         else:
-            self.fail("TestLoader.loadTestsFromName failed to raise AttributeError")
+            self.fail(
+                "TestLoader.loadTestsFromName failed to raise AttributeError")
 
     # "The specifier name is a ``dotted name'' that may resolve either to
     # a module, a test case class, a TestSuite instance, a test method
@@ -728,6 +765,7 @@ class Test_TestLoader(unittest2.TestCase
     # either be documented or a TypeError should be raised.
     def test_loadTestsFromNames__relative_not_a_module(self):
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
 
@@ -763,7 +801,9 @@ class Test_TestLoader(unittest2.TestCase
     # ... a test case class"
     def test_loadTestsFromNames__relative_TestCase_subclass(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testcase_1 = MyTestCase
@@ -779,7 +819,9 @@ class Test_TestLoader(unittest2.TestCase
     # ... a TestSuite instance"
     def test_loadTestsFromNames__relative_TestSuite(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testsuite = unittest2.TestSuite([MyTestCase('test')])
@@ -794,7 +836,9 @@ class Test_TestLoader(unittest2.TestCase
     # test method within a test case class"
     def test_loadTestsFromNames__relative_testmethod(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testcase_1 = MyTestCase
@@ -813,7 +857,9 @@ class Test_TestLoader(unittest2.TestCase
     # resolve to "a test method within a test case class" but don't?
     def test_loadTestsFromNames__relative_invalid_testmethod(self):
         m = types.ModuleType('m')
+
         class MyTestCase(unittest2.TestCase):
+
             def test(self):
                 pass
         m.testcase_1 = MyTestCase
@@ -822,7 +868,8 @@ class Test_TestLoader(unittest2.TestCase
         try:
             loader.loadTestsFromNames(['testcase_1.testfoo'], m)
         except AttributeError as e:
-            self.assertEqual(str(e), "type object 'MyTestCase' has no attribute 'testfoo'")
+            self.assertEqual(
+                str(e), "type object 'MyTestCase' has no attribute 'testfoo'")
         else:
             self.fail("Failed to raise AttributeError")
 
@@ -832,6 +879,7 @@ class Test_TestLoader(unittest2.TestCase
         m = types.ModuleType('m')
         testcase_1 = unittest2.FunctionTestCase(lambda: None)
         testcase_2 = unittest2.FunctionTestCase(lambda: None)
+
         def return_TestSuite():
             return unittest2.TestSuite([testcase_1, testcase_2])
         m.return_TestSuite = return_TestSuite
@@ -848,6 +896,7 @@ class Test_TestLoader(unittest2.TestCase
     def test_loadTestsFromNames__callable__TestCase_instance(self):
         m = types.ModuleType('m')
         testcase_1 = unittest2.FunctionTestCase(lambda: None)
+
         def return_TestCase():
             return testcase_1
         m.return_TestCase = return_TestCase
@@ -865,12 +914,16 @@ class Test_TestLoader(unittest2.TestCase
     # Are staticmethods handled correctly?
     def test_loadTestsFromNames__callable__call_staticmethod(self):
         m = types.ModuleType('m')
+
         class Test1(unittest2.TestCase):
+
             def test(self):
                 pass
 
         testcase_1 = Test1('test')
+
         class Foo(unittest2.TestCase):
+
             @staticmethod
             def foo():
                 return testcase_1
@@ -889,6 +942,7 @@ class Test_TestLoader(unittest2.TestCase
     # What happens when the callable returns something else?
     def test_loadTestsFromNames__callable__wrong_type(self):
         m = types.ModuleType('m')
+
         def return_wrong():
             return 6
         m.return_wrong = return_wrong
@@ -924,9 +978,9 @@ class Test_TestLoader(unittest2.TestCase
                 del sys.modules[module_name]
 
     ################################################################
-    ### /Tests for TestLoader.loadTestsFromNames()
+    # /Tests for TestLoader.loadTestsFromNames()
 
-    ### Tests for TestLoader.getTestCaseNames()
+    # Tests for TestLoader.getTestCaseNames()
     ################################################################
 
     # "Return a sorted sequence of method names found within testCaseClass"
@@ -935,8 +989,11 @@ class Test_TestLoader(unittest2.TestCase
     # loader.testMethodPrefix
     def test_getTestCaseNames(self):
         class Test(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foobar(self): pass
 
         loader = unittest2.TestLoader()
@@ -948,6 +1005,7 @@ class Test_TestLoader(unittest2.TestCase
     # Does getTestCaseNames() behave appropriately if no tests are found?
     def test_getTestCaseNames__no_tests(self):
         class Test(unittest2.TestCase):
+
             def foobar(self): pass
 
         loader = unittest2.TestLoader()
@@ -964,6 +1022,7 @@ class Test_TestLoader(unittest2.TestCase
     # probably be revisited for 2.6
     def test_getTestCaseNames__not_a_TestCase(self):
         class BadCase(int):
+
             def test_foo(self):
                 pass
 
@@ -980,12 +1039,17 @@ class Test_TestLoader(unittest2.TestCase
     # loader.testMethodPrefix
     def test_getTestCaseNames__inheritance(self):
         class TestP(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foobar(self): pass
 
         class TestC(TestP):
+
             def test_1(self): pass
+
             def test_3(self): pass
 
         loader = unittest2.TestLoader()
@@ -994,9 +1058,9 @@ class Test_TestLoader(unittest2.TestCase
         self.assertEqual(loader.getTestCaseNames(TestC), names)
 
     ################################################################
-    ### /Tests for TestLoader.getTestCaseNames()
+    # /Tests for TestLoader.getTestCaseNames()
 
-    ### Tests for TestLoader.testMethodPrefix
+    # Tests for TestLoader.testMethodPrefix
     ################################################################
 
     # "String giving the prefix of method names which will be interpreted as
@@ -1006,8 +1070,11 @@ class Test_TestLoader(unittest2.TestCase
     # all loadTestsFrom* methods.
     def test_testMethodPrefix__loadTestsFromTestCase(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foo_bar(self): pass
 
         tests_1 = unittest2.TestSuite([Foo('foo_bar')])
@@ -1027,9 +1094,13 @@ class Test_TestLoader(unittest2.TestCase
     # all loadTestsFrom* methods.
     def test_testMethodPrefix__loadTestsFromModule(self):
         m = types.ModuleType('m')
+
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foo_bar(self): pass
         m.Foo = Foo
 
@@ -1050,9 +1121,13 @@ class Test_TestLoader(unittest2.TestCase
     # all loadTestsFrom* methods.
     def test_testMethodPrefix__loadTestsFromName(self):
         m = types.ModuleType('m')
+
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foo_bar(self): pass
         m.Foo = Foo
 
@@ -1073,9 +1148,13 @@ class Test_TestLoader(unittest2.TestCase
     # all loadTestsFrom* methods.
     def test_testMethodPrefix__loadTestsFromNames(self):
         m = types.ModuleType('m')
+
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foo_bar(self): pass
         m.Foo = Foo
 
@@ -1096,16 +1175,18 @@ class Test_TestLoader(unittest2.TestCase
         self.assertTrue(loader.testMethodPrefix == 'test')
 
     ################################################################
-    ### /Tests for TestLoader.testMethodPrefix
+    # /Tests for TestLoader.testMethodPrefix
 
-    ### Tests for TestLoader.sortTestMethodsUsing
+    # Tests for TestLoader.sortTestMethodsUsing
     ################################################################
 
     # "Function to be used to compare method names when sorting them in
     # getTestCaseNames() and all the loadTestsFromX() methods"
     def test_sortTestMethodsUsing__loadTestsFromTestCase(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
 
         loader = unittest2.TestLoader()
@@ -1118,8 +1199,11 @@ class Test_TestLoader(unittest2.TestCase
     # getTestCaseNames() and all the loadTestsFromX() methods"
     def test_sortTestMethodsUsing__loadTestsFromModule(self):
         m = types.ModuleType('m')
+
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
         m.Foo = Foo
 
@@ -1133,8 +1217,11 @@ class Test_TestLoader(unittest2.TestCase
     # getTestCaseNames() and all the loadTestsFromX() methods"
     def test_sortTestMethodsUsing__loadTestsFromName(self):
         m = types.ModuleType('m')
+
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
         m.Foo = Foo
 
@@ -1148,8 +1235,11 @@ class Test_TestLoader(unittest2.TestCase
     # getTestCaseNames() and all the loadTestsFromX() methods"
     def test_sortTestMethodsUsing__loadTestsFromNames(self):
         m = types.ModuleType('m')
+
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
         m.Foo = Foo
 
@@ -1165,7 +1255,9 @@ class Test_TestLoader(unittest2.TestCase
     # Does it actually affect getTestCaseNames()?
     def test_sortTestMethodsUsing__getTestCaseNames(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
 
         loader = unittest2.TestLoader()
@@ -1185,7 +1277,9 @@ class Test_TestLoader(unittest2.TestCase
     # in a random order or something? This behaviour should die
     def test_sortTestMethodsUsing__None(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
 
         loader = unittest2.TestLoader()
@@ -1195,16 +1289,19 @@ class Test_TestLoader(unittest2.TestCase
         self.assertEqual(set(loader.getTestCaseNames(Foo)), set(test_names))
 
     ################################################################
-    ### /Tests for TestLoader.sortTestMethodsUsing
+    # /Tests for TestLoader.sortTestMethodsUsing
 
-    ### Tests for TestLoader.suiteClass
+    # Tests for TestLoader.suiteClass
     ################################################################
 
     # "Callable object that constructs a test suite from a list of tests."
     def test_suiteClass__loadTestsFromTestCase(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foo_bar(self): pass
 
         tests = [Foo('test_1'), Foo('test_2')]
@@ -1217,9 +1314,13 @@ class Test_TestLoader(unittest2.TestCase
     # all TestLoader.loadTestsFrom* methods respect it. Let's make sure
     def test_suiteClass__loadTestsFromModule(self):
         m = types.ModuleType('m')
+
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foo_bar(self): pass
         m.Foo = Foo
 
@@ -1233,9 +1334,13 @@ class Test_TestLoader(unittest2.TestCase
     # all TestLoader.loadTestsFrom* methods respect it. Let's make sure
     def test_suiteClass__loadTestsFromName(self):
         m = types.ModuleType('m')
+
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foo_bar(self): pass
         m.Foo = Foo
 
@@ -1249,9 +1354,13 @@ class Test_TestLoader(unittest2.TestCase
     # all TestLoader.loadTestsFrom* methods respect it. Let's make sure
     def test_suiteClass__loadTestsFromNames(self):
         m = types.ModuleType('m')
+
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
+
             def foo_bar(self): pass
         m.Foo = Foo
 

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_new_tests.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_new_tests.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_new_tests.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_new_tests.py Tue Sep  6 15:57:50 2016
@@ -7,40 +7,46 @@ from unittest2.test.support import resul
 
 
 class TestUnittest(unittest2.TestCase):
-    
+
     def assertIsSubclass(self, actual, klass):
         self.assertTrue(issubclass(actual, klass), "Not a subclass.")
-    
+
     def testInheritance(self):
         self.assertIsSubclass(unittest2.TestCase, unittest.TestCase)
         self.assertIsSubclass(unittest2.TestResult, unittest.TestResult)
         self.assertIsSubclass(unittest2.TestSuite, unittest.TestSuite)
-        self.assertIsSubclass(unittest2.TextTestRunner, unittest.TextTestRunner)
+        self.assertIsSubclass(
+            unittest2.TextTestRunner,
+            unittest.TextTestRunner)
         self.assertIsSubclass(unittest2.TestLoader, unittest.TestLoader)
         self.assertIsSubclass(unittest2.TextTestResult, unittest.TestResult)
-    
+
     def test_new_runner_old_case(self):
         runner = unittest2.TextTestRunner(resultclass=resultFactory,
                                           stream=StringIO())
+
         class Test(unittest.TestCase):
+
             def testOne(self):
                 pass
         suite = unittest2.TestSuite((Test('testOne'),))
         result = runner.run(suite)
         self.assertEqual(result.testsRun, 1)
         self.assertEqual(len(result.errors), 0)
-    
+
     def test_old_runner_new_case(self):
         runner = unittest.TextTestRunner(stream=StringIO())
+
         class Test(unittest2.TestCase):
+
             def testOne(self):
                 self.assertDictEqual({}, {})
-                
+
         suite = unittest.TestSuite((Test('testOne'),))
         result = runner.run(suite)
         self.assertEqual(result.testsRun, 1)
         self.assertEqual(len(result.errors), 0)
-        
-        
+
+
 if __name__ == '__main__':
-    unittest2.main()
\ No newline at end of file
+    unittest2.main()

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_program.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_program.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_program.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_program.py Tue Sep  6 15:57:50 2016
@@ -5,6 +5,7 @@ import unittest2
 
 hasInstallHandler = hasattr(unittest2, 'installHandler')
 
+
 class Test_TestProgram(unittest2.TestCase):
 
     # Horrible white box test
@@ -13,6 +14,7 @@ class Test_TestProgram(unittest2.TestCas
         test = object()
 
         class FakeRunner(object):
+
             def run(self, test):
                 self.test = test
                 return result
@@ -20,6 +22,7 @@ class Test_TestProgram(unittest2.TestCas
         runner = FakeRunner()
 
         oldParseArgs = unittest2.TestProgram.parseArgs
+
         def restoreParseArgs():
             unittest2.TestProgram.parseArgs = oldParseArgs
         unittest2.TestProgram.parseArgs = lambda *args: None
@@ -30,33 +33,37 @@ class Test_TestProgram(unittest2.TestCas
         unittest2.TestProgram.test = test
         self.addCleanup(removeTest)
 
-        program = unittest2.TestProgram(testRunner=runner, exit=False, verbosity=2)
+        program = unittest2.TestProgram(
+            testRunner=runner, exit=False, verbosity=2)
 
         self.assertEqual(program.result, result)
         self.assertEqual(runner.test, test)
         self.assertEqual(program.verbosity, 2)
 
     class FooBar(unittest2.TestCase):
+
         def testPass(self):
             assert True
+
         def testFail(self):
             assert False
 
     class FooBarLoader(unittest2.TestLoader):
         """Test loader that returns a suite containing FooBar."""
+
         def loadTestsFromModule(self, module):
             return self.suiteClass(
                 [self.loadTestsFromTestCase(Test_TestProgram.FooBar)])
 
-
     def test_NonExit(self):
-        program = unittest2.main(exit=False,
-                                argv=["foobar"],
-                                testRunner=unittest2.TextTestRunner(stream=StringIO()),
-                                testLoader=self.FooBarLoader())
+        program = unittest2.main(
+            exit=False,
+            argv=["foobar"],
+            testRunner=unittest2.TextTestRunner(
+                stream=StringIO()),
+            testLoader=self.FooBarLoader())
         self.assertTrue(hasattr(program, 'result'))
 
-
     def test_Exit(self):
         self.assertRaises(
             SystemExit,
@@ -66,7 +73,6 @@ class Test_TestProgram(unittest2.TestCas
             exit=True,
             testLoader=self.FooBarLoader())
 
-
     def test_ExitAsDefault(self):
         self.assertRaises(
             SystemExit,
@@ -85,11 +91,13 @@ class InitialisableProgram(unittest2.Tes
     testLoader = unittest2.defaultTestLoader
     progName = 'test'
     test = 'test'
+
     def __init__(self, *args):
         pass
 
 RESULT = object()
 
+
 class FakeRunner(object):
     initArgs = None
     test = None
@@ -105,35 +113,37 @@ class FakeRunner(object):
         FakeRunner.test = test
         return RESULT
 
+
 class TestCommandLineArgs(unittest2.TestCase):
-    
+
     def setUp(self):
         self.program = InitialisableProgram()
         self.program.createTests = lambda: None
         FakeRunner.initArgs = None
         FakeRunner.test = None
         FakeRunner.raiseError = False
-    
+
     def testHelpAndUnknown(self):
         program = self.program
+
         def usageExit(msg=None):
             program.msg = msg
             program.exit = True
         program.usageExit = usageExit
-        
+
         for opt in '-h', '-H', '--help':
             program.exit = False
             program.parseArgs([None, opt])
             self.assertTrue(program.exit)
             self.assertIsNone(program.msg)
-    
+
         program.parseArgs([None, '-$'])
         self.assertTrue(program.exit)
         self.assertIsNotNone(program.msg)
-    
+
     def testVerbosity(self):
         program = self.program
-        
+
         for opt in '-q', '--quiet':
             program.verbosity = 1
             program.parseArgs([None, opt])
@@ -147,90 +157,92 @@ class TestCommandLineArgs(unittest2.Test
     def testBufferCatchFailfast(self):
         program = self.program
         for arg, attr in (('buffer', 'buffer'), ('failfast', 'failfast'),
-                      ('catch', 'catchbreak')):
+                          ('catch', 'catchbreak')):
             if attr == 'catch' and not hasInstallHandler:
                 continue
-            
+
             short_opt = '-%s' % arg[0]
             long_opt = '--%s' % arg
             for opt in short_opt, long_opt:
                 setattr(program, attr, None)
-                
+
                 program.parseArgs([None, opt])
                 self.assertTrue(getattr(program, attr))
 
             for opt in short_opt, long_opt:
                 not_none = object()
                 setattr(program, attr, not_none)
-                
+
                 program.parseArgs([None, opt])
                 self.assertEqual(getattr(program, attr), not_none)
 
     def testRunTestsRunnerClass(self):
         program = self.program
-        
+
         program.testRunner = FakeRunner
         program.verbosity = 'verbosity'
         program.failfast = 'failfast'
         program.buffer = 'buffer'
-        
+
         program.runTests()
-        
-        self.assertEqual(FakeRunner.initArgs, {'verbosity': 'verbosity', 
-                                                'failfast': 'failfast',
-                                                'buffer': 'buffer'})
+
+        self.assertEqual(FakeRunner.initArgs, {'verbosity': 'verbosity',
+                                               'failfast': 'failfast',
+                                               'buffer': 'buffer'})
         self.assertEqual(FakeRunner.test, 'test')
         self.assertIs(program.result, RESULT)
 
     def testRunTestsRunnerInstance(self):
         program = self.program
-        
+
         program.testRunner = FakeRunner()
         FakeRunner.initArgs = None
-        
+
         program.runTests()
 
         # A new FakeRunner should not have been instantiated
         self.assertIsNone(FakeRunner.initArgs)
-        
+
         self.assertEqual(FakeRunner.test, 'test')
         self.assertIs(program.result, RESULT)
 
     def testRunTestsOldRunnerClass(self):
         program = self.program
-        
+
         FakeRunner.raiseError = True
         program.testRunner = FakeRunner
         program.verbosity = 'verbosity'
         program.failfast = 'failfast'
         program.buffer = 'buffer'
         program.test = 'test'
-        
+
         program.runTests()
-        
+
         # If initialising raises a type error it should be retried
         # without the new keyword arguments
         self.assertEqual(FakeRunner.initArgs, {})
         self.assertEqual(FakeRunner.test, 'test')
         self.assertIs(program.result, RESULT)
-    
+
     def testCatchBreakInstallsHandler(self):
         module = sys.modules['unittest2.main']
         original = module.installHandler
+
         def restore():
             module.installHandler = original
         self.addCleanup(restore)
 
         self.installed = False
+
         def fakeInstallHandler():
             self.installed = True
         module.installHandler = fakeInstallHandler
-        
+
         program = self.program
         program.catchbreak = True
-        
+
         program.testRunner = FakeRunner
-        
+
         program.runTests()
         self.assertTrue(self.installed)
 

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_result.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_result.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_result.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_result.py Tue Sep  6 15:57:50 2016
@@ -42,6 +42,7 @@ class Test_TestResult(unittest2.TestCase
     # implementation simply increments the instance's testsRun counter."
     def test_startTest(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self):
                 pass
 
@@ -63,6 +64,7 @@ class Test_TestResult(unittest2.TestCase
     # the outcome. The default implementation does nothing."
     def test_stopTest(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self):
                 pass
 
@@ -114,6 +116,7 @@ class Test_TestResult(unittest2.TestCase
     # of sys.exc_info() results."
     def test_addSuccess(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self):
                 pass
 
@@ -153,6 +156,7 @@ class Test_TestResult(unittest2.TestCase
     # of sys.exc_info() results."
     def test_addFailure(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self):
                 pass
 
@@ -201,6 +205,7 @@ class Test_TestResult(unittest2.TestCase
     # of sys.exc_info() results."
     def test_addError(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self):
                 pass
 
@@ -229,18 +234,18 @@ class Test_TestResult(unittest2.TestCase
     def testGetDescriptionWithoutDocstring(self):
         result = unittest2.TextTestResult(None, True, 1)
         self.assertEqual(
-                result.getDescription(self),
-                'testGetDescriptionWithoutDocstring (' + __name__ +
-                '.Test_TestResult)')
+            result.getDescription(self),
+            'testGetDescriptionWithoutDocstring (' + __name__ +
+            '.Test_TestResult)')
 
     def testGetDescriptionWithOneLineDocstring(self):
         """Tests getDescription() for a method with a docstring."""
         result = unittest2.TextTestResult(None, True, 1)
         self.assertEqual(
-                result.getDescription(self),
-               ('testGetDescriptionWithOneLineDocstring '
-                '(' + __name__ + '.Test_TestResult)\n'
-                'Tests getDescription() for a method with a docstring.'))
+            result.getDescription(self),
+            ('testGetDescriptionWithOneLineDocstring '
+             '(' + __name__ + '.Test_TestResult)\n'
+             'Tests getDescription() for a method with a docstring.'))
 
     def testGetDescriptionWithMultiLineDocstring(self):
         """Tests getDescription() for a method with a longer docstring.
@@ -248,19 +253,20 @@ class Test_TestResult(unittest2.TestCase
         """
         result = unittest2.TextTestResult(None, True, 1)
         self.assertEqual(
-                result.getDescription(self),
-               ('testGetDescriptionWithMultiLineDocstring '
-                '(' + __name__ + '.Test_TestResult)\n'
-                'Tests getDescription() for a method with a longer '
-                'docstring.'))
+            result.getDescription(self),
+            ('testGetDescriptionWithMultiLineDocstring '
+             '(' + __name__ + '.Test_TestResult)\n'
+             'Tests getDescription() for a method with a longer '
+             'docstring.'))
 
     def testStackFrameTrimming(self):
         class Frame(object):
+
             class tb_frame(object):
                 f_globals = {}
         result = unittest2.TestResult()
         self.assertFalse(result._is_relevant_tb_level(Frame))
-        
+
         Frame.tb_frame.f_globals['__unittest'] = True
         self.assertTrue(result._is_relevant_tb_level(Frame))
 
@@ -286,6 +292,7 @@ class Test_TestResult(unittest2.TestCase
     def testFailFastSetByRunner(self):
         runner = unittest2.TextTestRunner(stream=StringIO(), failfast=True)
         self.testRan = False
+
         def test(result):
             self.testRan = True
             self.assertTrue(result.failfast)
@@ -306,65 +313,64 @@ class TestOutputBuffering(unittest2.Test
     def testBufferOutputOff(self):
         real_out = self._real_out
         real_err = self._real_err
-        
+
         result = unittest2.TestResult()
         self.assertFalse(result.buffer)
-    
+
         self.assertIs(real_out, sys.stdout)
         self.assertIs(real_err, sys.stderr)
-        
+
         result.startTest(self)
-        
+
         self.assertIs(real_out, sys.stdout)
         self.assertIs(real_err, sys.stderr)
 
     def testBufferOutputStartTestAddSuccess(self):
         real_out = self._real_out
         real_err = self._real_err
-        
+
         result = unittest2.TestResult()
         self.assertFalse(result.buffer)
-        
+
         result.buffer = True
-    
+
         self.assertIs(real_out, sys.stdout)
         self.assertIs(real_err, sys.stderr)
-        
+
         result.startTest(self)
-        
+
         self.assertIsNot(real_out, sys.stdout)
         self.assertIsNot(real_err, sys.stderr)
         self.assertIsInstance(sys.stdout, StringIO)
         self.assertIsInstance(sys.stderr, StringIO)
         self.assertIsNot(sys.stdout, sys.stderr)
-        
+
         out_stream = sys.stdout
         err_stream = sys.stderr
-        
+
         result._original_stdout = StringIO()
         result._original_stderr = StringIO()
-        
+
         print('foo')
         print('bar', file=sys.stderr)
-        
+
         self.assertEqual(out_stream.getvalue(), 'foo\n')
         self.assertEqual(err_stream.getvalue(), 'bar\n')
-        
+
         self.assertEqual(result._original_stdout.getvalue(), '')
         self.assertEqual(result._original_stderr.getvalue(), '')
-        
+
         result.addSuccess(self)
         result.stopTest(self)
-        
+
         self.assertIs(sys.stdout, result._original_stdout)
         self.assertIs(sys.stderr, result._original_stderr)
-        
+
         self.assertEqual(result._original_stdout.getvalue(), '')
         self.assertEqual(result._original_stderr.getvalue(), '')
-        
+
         self.assertEqual(out_stream.getvalue(), '')
         self.assertEqual(err_stream.getvalue(), '')
-        
 
     def getStartedResult(self):
         result = unittest2.TestResult()
@@ -374,26 +380,26 @@ class TestOutputBuffering(unittest2.Test
 
     def testBufferOutputAddErrorOrFailure(self):
         for message_attr, add_attr, include_error in [
-            ('errors', 'addError', True), 
+            ('errors', 'addError', True),
             ('failures', 'addFailure', False),
-            ('errors', 'addError', True), 
+            ('errors', 'addError', True),
             ('failures', 'addFailure', False)
         ]:
             result = self.getStartedResult()
             result._original_stderr = StringIO()
             result._original_stdout = StringIO()
-            
+
             print('foo')
             if include_error:
                 print('bar', file=sys.stderr)
-            
+
             addFunction = getattr(result, add_attr)
             addFunction(self, (None, None, None))
             result.stopTest(self)
-            
+
             result_list = getattr(result, message_attr)
             self.assertEqual(len(result_list), 1)
-            
+
             test, message = result_list[0]
             expectedOutMessage = textwrap.dedent("""
                 Stdout:
@@ -405,14 +411,18 @@ class TestOutputBuffering(unittest2.Test
                 Stderr:
                 bar
             """)
-            expectedFullMessage = 'None\n%s%s' % (expectedOutMessage, expectedErrMessage)
+            expectedFullMessage = 'None\n%s%s' % (
+                expectedOutMessage, expectedErrMessage)
 
             self.assertIs(test, self)
-            self.assertEqual(result._original_stdout.getvalue(), expectedOutMessage)
-            self.assertEqual(result._original_stderr.getvalue(), expectedErrMessage)
+            self.assertEqual(
+                result._original_stdout.getvalue(),
+                expectedOutMessage)
+            self.assertEqual(
+                result._original_stderr.getvalue(),
+                expectedErrMessage)
             self.assertMultiLineEqual(message, expectedFullMessage)
-        
-        
+
 
 if __name__ == '__main__':
     unittest2.main()

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_runner.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_runner.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_runner.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_runner.py Tue Sep  6 15:57:50 2016
@@ -17,63 +17,70 @@ class Test_TextTestRunner(unittest2.Test
         self.assertTrue(runner.descriptions)
         self.assertEqual(runner.resultclass, unittest2.TextTestResult)
 
-
     def testBufferAndFailfast(self):
         class Test(unittest2.TestCase):
+
             def testFoo(self):
                 pass
         result = unittest2.TestResult()
         runner = unittest2.TextTestRunner(stream=StringIO(), failfast=True,
-                                           buffer=True)
+                                          buffer=True)
         # Use our result object
         runner._makeResult = lambda: result
         runner.run(Test('testFoo'))
-        
+
         self.assertTrue(result.failfast)
         self.assertTrue(result.buffer)
 
     def testRunnerRegistersResult(self):
         class Test(unittest2.TestCase):
+
             def testFoo(self):
                 pass
         originalRegisterResult = unittest2.runner.registerResult
+
         def cleanup():
             unittest2.runner.registerResult = originalRegisterResult
         self.addCleanup(cleanup)
-        
+
         result = unittest2.TestResult()
         runner = unittest2.TextTestRunner(stream=StringIO())
         # Use our result object
         runner._makeResult = lambda: result
-        
+
         self.wasRegistered = 0
+
         def fakeRegisterResult(thisResult):
             self.wasRegistered += 1
             self.assertEqual(thisResult, result)
         unittest2.runner.registerResult = fakeRegisterResult
-        
+
         runner.run(unittest2.TestSuite())
         self.assertEqual(self.wasRegistered, 1)
-        
+
     def test_works_with_result_without_startTestRun_stopTestRun(self):
         class OldTextResult(OldTestResult):
+
             def __init__(self, *_):
                 super(OldTextResult, self).__init__()
             separator2 = ''
+
             def printErrors(self):
                 pass
 
-        runner = unittest2.TextTestRunner(stream=StringIO(), 
+        runner = unittest2.TextTestRunner(stream=StringIO(),
                                           resultclass=OldTextResult)
         runner.run(unittest2.TestSuite())
 
     def test_startTestRun_stopTestRun_called(self):
         class LoggingTextResult(LoggingResult):
             separator2 = ''
+
             def printErrors(self):
                 pass
 
         class LoggingRunner(unittest2.TextTestRunner):
+
             def __init__(self, events):
                 super(LoggingRunner, self).__init__(StringIO())
                 self._events = events
@@ -107,15 +114,15 @@ class Test_TextTestRunner(unittest2.Test
         DESCRIPTIONS = object()
         VERBOSITY = object()
         runner = unittest2.TextTestRunner(STREAM, DESCRIPTIONS, VERBOSITY,
-                                         resultclass=MockResultClass)
+                                          resultclass=MockResultClass)
         self.assertEqual(runner.resultclass, MockResultClass)
 
         expectedresult = (runner.stream, DESCRIPTIONS, VERBOSITY)
         self.assertEqual(runner._makeResult(), expectedresult)
 
-
     def test_oldresult(self):
         class Test(unittest2.TestCase):
+
             def testFoo(self):
                 pass
         runner = unittest2.TextTestRunner(resultclass=OldTestResult,
@@ -126,4 +133,4 @@ class Test_TextTestRunner(unittest2.Test
 
 
 if __name__ == '__main__':
-    unittest2.main()
\ No newline at end of file
+    unittest2.main()

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_setups.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_setups.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_setups.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_setups.py Tue Sep  6 15:57:50 2016
@@ -7,18 +7,19 @@ from unittest2.test.support import resul
 
 
 class TestSetups(unittest2.TestCase):
-    
+
     def getRunner(self):
         return unittest2.TextTestRunner(resultclass=resultFactory,
-                                          stream=StringIO())
+                                        stream=StringIO())
+
     def runTests(self, *cases):
         suite = unittest2.TestSuite()
         for case in cases:
             tests = unittest2.defaultTestLoader.loadTestsFromTestCase(case)
             suite.addTests(tests)
-        
+
         runner = self.getRunner()
-        
+
         # creating a nested suite exposes some potential bugs
         realSuite = unittest2.TestSuite()
         realSuite.addTest(suite)
@@ -26,21 +27,24 @@ class TestSetups(unittest2.TestCase):
         suite.addTest(unittest2.TestSuite())
         realSuite.addTest(unittest2.TestSuite())
         return runner.run(realSuite)
-    
+
     def test_setup_class(self):
         class Test(unittest2.TestCase):
             setUpCalled = 0
+
             @classmethod
             def setUpClass(cls):
                 Test.setUpCalled += 1
                 unittest2.TestCase.setUpClass()
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
-            
+
         result = self.runTests(Test)
-        
+
         self.assertEqual(Test.setUpCalled, 1)
         self.assertEqual(result.testsRun, 2)
         self.assertEqual(len(result.errors), 0)
@@ -48,46 +52,55 @@ class TestSetups(unittest2.TestCase):
     def test_teardown_class(self):
         class Test(unittest2.TestCase):
             tearDownCalled = 0
+
             @classmethod
             def tearDownClass(cls):
                 Test.tearDownCalled += 1
                 unittest2.TestCase.tearDownClass()
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
-            
+
         result = self.runTests(Test)
-        
+
         self.assertEqual(Test.tearDownCalled, 1)
         self.assertEqual(result.testsRun, 2)
         self.assertEqual(len(result.errors), 0)
-    
+
     def test_teardown_class_two_classes(self):
         class Test(unittest2.TestCase):
             tearDownCalled = 0
+
             @classmethod
             def tearDownClass(cls):
                 Test.tearDownCalled += 1
                 unittest2.TestCase.tearDownClass()
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
-            
+
         class Test2(unittest2.TestCase):
             tearDownCalled = 0
+
             @classmethod
             def tearDownClass(cls):
                 Test2.tearDownCalled += 1
                 unittest2.TestCase.tearDownClass()
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
-        
+
         result = self.runTests(Test, Test2)
-        
+
         self.assertEqual(Test.tearDownCalled, 1)
         self.assertEqual(Test2.tearDownCalled, 1)
         self.assertEqual(result.testsRun, 4)
@@ -95,81 +108,96 @@ class TestSetups(unittest2.TestCase):
 
     def test_error_in_setupclass(self):
         class BrokenTest(unittest2.TestCase):
+
             @classmethod
             def setUpClass(cls):
                 raise TypeError('foo')
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
-        
+
         result = self.runTests(BrokenTest)
-        
+
         self.assertEqual(result.testsRun, 0)
         self.assertEqual(len(result.errors), 1)
         error, _ = result.errors[0]
-        self.assertEqual(str(error), 
-                    'setUpClass (%s.BrokenTest)' % __name__)
+        self.assertEqual(str(error),
+                         'setUpClass (%s.BrokenTest)' % __name__)
 
     def test_error_in_teardown_class(self):
         class Test(unittest2.TestCase):
             tornDown = 0
+
             @classmethod
             def tearDownClass(cls):
                 Test.tornDown += 1
                 raise TypeError('foo')
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
-            
+
         class Test2(unittest2.TestCase):
             tornDown = 0
+
             @classmethod
             def tearDownClass(cls):
                 Test2.tornDown += 1
                 raise TypeError('foo')
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
-        
+
         result = self.runTests(Test, Test2)
         self.assertEqual(result.testsRun, 4)
         self.assertEqual(len(result.errors), 2)
         self.assertEqual(Test.tornDown, 1)
         self.assertEqual(Test2.tornDown, 1)
-        
+
         error, _ = result.errors[0]
-        self.assertEqual(str(error), 
-                    'tearDownClass (%s.Test)' % __name__)
+        self.assertEqual(str(error),
+                         'tearDownClass (%s.Test)' % __name__)
 
     def test_class_not_torndown_when_setup_fails(self):
         class Test(unittest2.TestCase):
             tornDown = False
+
             @classmethod
             def setUpClass(cls):
                 raise TypeError
+
             @classmethod
             def tearDownClass(cls):
                 Test.tornDown = True
                 raise TypeError('foo')
+
             def test_one(self):
                 pass
 
         self.runTests(Test)
         self.assertFalse(Test.tornDown)
-    
+
     def test_class_not_setup_or_torndown_when_skipped(self):
         class Test(unittest2.TestCase):
             classSetUp = False
             tornDown = False
+
             @classmethod
             def setUpClass(cls):
                 Test.classSetUp = True
+
             @classmethod
             def tearDownClass(cls):
                 Test.tornDown = True
+
             def test_one(self):
                 pass
 
@@ -180,141 +208,169 @@ class TestSetups(unittest2.TestCase):
 
     def test_setup_teardown_order_with_pathological_suite(self):
         results = []
-        
+
         class Module1(object):
+
             @staticmethod
             def setUpModule():
                 results.append('Module1.setUpModule')
+
             @staticmethod
             def tearDownModule():
                 results.append('Module1.tearDownModule')
-    
+
         class Module2(object):
+
             @staticmethod
             def setUpModule():
                 results.append('Module2.setUpModule')
+
             @staticmethod
             def tearDownModule():
                 results.append('Module2.tearDownModule')
-                
+
         class Test1(unittest2.TestCase):
+
             @classmethod
             def setUpClass(cls):
                 results.append('setup 1')
+
             @classmethod
             def tearDownClass(cls):
                 results.append('teardown 1')
+
             def testOne(self):
                 results.append('Test1.testOne')
+
             def testTwo(self):
                 results.append('Test1.testTwo')
-            
+
         class Test2(unittest2.TestCase):
+
             @classmethod
             def setUpClass(cls):
                 results.append('setup 2')
+
             @classmethod
             def tearDownClass(cls):
                 results.append('teardown 2')
+
             def testOne(self):
                 results.append('Test2.testOne')
+
             def testTwo(self):
                 results.append('Test2.testTwo')
-            
+
         class Test3(unittest2.TestCase):
+
             @classmethod
             def setUpClass(cls):
                 results.append('setup 3')
+
             @classmethod
             def tearDownClass(cls):
                 results.append('teardown 3')
+
             def testOne(self):
                 results.append('Test3.testOne')
+
             def testTwo(self):
                 results.append('Test3.testTwo')
-        
+
         Test1.__module__ = Test2.__module__ = 'Module'
         Test3.__module__ = 'Module2'
         sys.modules['Module'] = Module1
         sys.modules['Module2'] = Module2
-        
+
         first = unittest2.TestSuite((Test1('testOne'),))
         second = unittest2.TestSuite((Test1('testTwo'),))
         third = unittest2.TestSuite((Test2('testOne'),))
         fourth = unittest2.TestSuite((Test2('testTwo'),))
         fifth = unittest2.TestSuite((Test3('testOne'),))
         sixth = unittest2.TestSuite((Test3('testTwo'),))
-        suite = unittest2.TestSuite((first, second, third, fourth, fifth, sixth))
-        
+        suite = unittest2.TestSuite(
+            (first, second, third, fourth, fifth, sixth))
+
         runner = self.getRunner()
         result = runner.run(suite)
         self.assertEqual(result.testsRun, 6)
         self.assertEqual(len(result.errors), 0)
 
         self.assertEqual(results,
-                         ['Module1.setUpModule', 'setup 1', 
+                         ['Module1.setUpModule', 'setup 1',
                           'Test1.testOne', 'Test1.testTwo', 'teardown 1',
-                          'setup 2', 'Test2.testOne', 'Test2.testTwo', 
+                          'setup 2', 'Test2.testOne', 'Test2.testTwo',
                           'teardown 2', 'Module1.tearDownModule',
                           'Module2.setUpModule', 'setup 3',
-                          'Test3.testOne', 'Test3.testTwo', 
+                          'Test3.testOne', 'Test3.testTwo',
                           'teardown 3', 'Module2.tearDownModule'])
-        
+
     def test_setup_module(self):
         class Module(object):
             moduleSetup = 0
+
             @staticmethod
             def setUpModule():
                 Module.moduleSetup += 1
-        
+
         class Test(unittest2.TestCase):
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
         Test.__module__ = 'Module'
         sys.modules['Module'] = Module
-        
+
         result = self.runTests(Test)
         self.assertEqual(Module.moduleSetup, 1)
         self.assertEqual(result.testsRun, 2)
         self.assertEqual(len(result.errors), 0)
-    
+
     def test_error_in_setup_module(self):
         class Module(object):
             moduleSetup = 0
             moduleTornDown = 0
+
             @staticmethod
             def setUpModule():
                 Module.moduleSetup += 1
                 raise TypeError('foo')
+
             @staticmethod
             def tearDownModule():
                 Module.moduleTornDown += 1
-        
+
         class Test(unittest2.TestCase):
             classSetUp = False
             classTornDown = False
+
             @classmethod
             def setUpClass(cls):
                 Test.classSetUp = True
+
             @classmethod
             def tearDownClass(cls):
                 Test.classTornDown = True
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
-        
+
         class Test2(unittest2.TestCase):
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
         Test.__module__ = 'Module'
         Test2.__module__ = 'Module'
         sys.modules['Module'] = Module
-        
+
         result = self.runTests(Test, Test2)
         self.assertEqual(Module.moduleSetup, 1)
         self.assertEqual(Module.moduleTornDown, 0)
@@ -324,34 +380,39 @@ class TestSetups(unittest2.TestCase):
         self.assertEqual(len(result.errors), 1)
         error, _ = result.errors[0]
         self.assertEqual(str(error), 'setUpModule (Module)')
-        
+
     def test_testcase_with_missing_module(self):
         class Test(unittest2.TestCase):
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
         Test.__module__ = 'Module'
         sys.modules.pop('Module', None)
-        
+
         result = self.runTests(Test)
         self.assertEqual(result.testsRun, 2)
 
     def test_teardown_module(self):
         class Module(object):
             moduleTornDown = 0
+
             @staticmethod
             def tearDownModule():
                 Module.moduleTornDown += 1
-        
+
         class Test(unittest2.TestCase):
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
         Test.__module__ = 'Module'
         sys.modules['Module'] = Module
-        
+
         result = self.runTests(Test)
         self.assertEqual(Module.moduleTornDown, 1)
         self.assertEqual(result.testsRun, 2)
@@ -360,34 +421,41 @@ class TestSetups(unittest2.TestCase):
     def test_error_in_teardown_module(self):
         class Module(object):
             moduleTornDown = 0
+
             @staticmethod
             def tearDownModule():
                 Module.moduleTornDown += 1
                 raise TypeError('foo')
-        
+
         class Test(unittest2.TestCase):
             classSetUp = False
             classTornDown = False
+
             @classmethod
             def setUpClass(cls):
                 Test.classSetUp = True
+
             @classmethod
             def tearDownClass(cls):
                 Test.classTornDown = True
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
-        
+
         class Test2(unittest2.TestCase):
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
         Test.__module__ = 'Module'
         Test2.__module__ = 'Module'
         sys.modules['Module'] = Module
-        
+
         result = self.runTests(Test, Test2)
         self.assertEqual(Module.moduleTornDown, 1)
         self.assertEqual(result.testsRun, 4)
@@ -399,11 +467,14 @@ class TestSetups(unittest2.TestCase):
 
     def test_skiptest_in_setupclass(self):
         class Test(unittest2.TestCase):
+
             @classmethod
             def setUpClass(cls):
                 raise unittest2.SkipTest('foo')
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
 
@@ -416,12 +487,15 @@ class TestSetups(unittest2.TestCase):
 
     def test_skiptest_in_setupmodule(self):
         class Test(unittest2.TestCase):
+
             def test_one(self):
                 pass
+
             def test_two(self):
                 pass
 
         class Module(object):
+
             @staticmethod
             def setUpModule():
                 raise unittest2.SkipTest('foo')
@@ -440,20 +514,25 @@ class TestSetups(unittest2.TestCase):
         ordering = []
 
         class Module(object):
+
             @staticmethod
             def setUpModule():
                 ordering.append('setUpModule')
+
             @staticmethod
             def tearDownModule():
                 ordering.append('tearDownModule')
 
         class Test(unittest2.TestCase):
+
             @classmethod
             def setUpClass(cls):
                 ordering.append('setUpClass')
+
             @classmethod
             def tearDownClass(cls):
                 ordering.append('tearDownClass')
+
             def test_something(self):
                 ordering.append('test_something')
 
@@ -462,29 +541,39 @@ class TestSetups(unittest2.TestCase):
 
         suite = unittest2.defaultTestLoader.loadTestsFromTestCase(Test)
         suite.debug()
-        expectedOrder = ['setUpModule', 'setUpClass', 'test_something', 'tearDownClass', 'tearDownModule']
+        expectedOrder = [
+            'setUpModule',
+            'setUpClass',
+            'test_something',
+            'tearDownClass',
+            'tearDownModule']
         self.assertEqual(ordering, expectedOrder)
 
     def test_suite_debug_propagates_exceptions(self):
         class Module(object):
+
             @staticmethod
             def setUpModule():
                 if phase == 0:
                     raise Exception('setUpModule')
+
             @staticmethod
             def tearDownModule():
                 if phase == 1:
                     raise Exception('tearDownModule')
 
         class Test(unittest2.TestCase):
+
             @classmethod
             def setUpClass(cls):
                 if phase == 2:
                     raise Exception('setUpClass')
+
             @classmethod
             def tearDownClass(cls):
                 if phase == 3:
                     raise Exception('tearDownClass')
+
             def test_something(self):
                 if phase == 4:
                     raise Exception('test_something')
@@ -494,9 +583,14 @@ class TestSetups(unittest2.TestCase):
 
         _suite = unittest2.defaultTestLoader.loadTestsFromTestCase(Test)
         suite = unittest2.TestSuite()
-        
+
         # nesting a suite again exposes a bug in the initial implementation
         suite.addTest(_suite)
-        messages = ('setUpModule', 'tearDownModule', 'setUpClass', 'tearDownClass', 'test_something')
+        messages = (
+            'setUpModule',
+            'tearDownModule',
+            'setUpClass',
+            'tearDownClass',
+            'test_something')
         for phase, msg in enumerate(messages):
             self.assertRaisesRegexp(Exception, msg, suite.debug)

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_skipping.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_skipping.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_skipping.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_skipping.py Tue Sep  6 15:57:50 2016
@@ -7,6 +7,7 @@ class Test_TestSkipping(unittest2.TestCa
 
     def test_skipping(self):
         class Foo(unittest2.TestCase):
+
             def test_skip_me(self):
                 self.skipTest("skip")
         events = []
@@ -18,8 +19,10 @@ class Test_TestSkipping(unittest2.TestCa
 
         # Try letting setUp skip the test now.
         class Foo(unittest2.TestCase):
+
             def setUp(self):
                 self.skipTest("testing")
+
             def test_nothing(self): pass
         events = []
         result = LoggingResult(events)
@@ -34,14 +37,15 @@ class Test_TestSkipping(unittest2.TestCa
                     (unittest2.skipIf, True, False))
         for deco, do_skip, dont_skip in op_table:
             class Foo(unittest2.TestCase):
+
                 @deco(do_skip, "testing")
-                def test_skip(self): 
+                def test_skip(self):
                     pass
 
                 @deco(dont_skip, "testing")
-                def test_dont_skip(self): 
+                def test_dont_skip(self):
                     pass
-            
+
             test_do_skip = Foo("test_skip")
             test_dont_skip = Foo("test_dont_skip")
             suite = unittest2.TestSuite([test_do_skip, test_dont_skip])
@@ -55,12 +59,13 @@ class Test_TestSkipping(unittest2.TestCa
             self.assertEqual(result.testsRun, 2)
             self.assertEqual(result.skipped, [(test_do_skip, "testing")])
             self.assertTrue(result.wasSuccessful())
-        
+
     def test_skip_class(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self):
                 record.append(1)
-        
+
         # was originally a class decorator...
         Foo = unittest2.skip("testing")(Foo)
         record = []
@@ -73,6 +78,7 @@ class Test_TestSkipping(unittest2.TestCa
 
     def test_expected_failure(self):
         class Foo(unittest2.TestCase):
+
             @unittest2.expectedFailure
             def test_die(self):
                 self.fail("help me!")
@@ -87,6 +93,7 @@ class Test_TestSkipping(unittest2.TestCa
 
     def test_unexpected_success(self):
         class Foo(unittest2.TestCase):
+
             @unittest2.expectedFailure
             def test_die(self):
                 pass
@@ -104,14 +111,17 @@ class Test_TestSkipping(unittest2.TestCa
         class Foo(unittest2.TestCase):
             wasSetUp = False
             wasTornDown = False
+
             def setUp(self):
                 Foo.wasSetUp = True
+
             def tornDown(self):
                 Foo.wasTornDown = True
+
             @unittest2.skip('testing')
             def test_1(self):
                 pass
-        
+
         result = unittest2.TestResult()
         test = Foo("test_1")
         suite = unittest2.TestSuite([test])
@@ -119,19 +129,20 @@ class Test_TestSkipping(unittest2.TestCa
         self.assertEqual(result.skipped, [(test, "testing")])
         self.assertFalse(Foo.wasSetUp)
         self.assertFalse(Foo.wasTornDown)
-    
+
     def test_decorated_skip(self):
         def decorator(func):
             def inner(*a):
                 return func(*a)
             return inner
-        
+
         class Foo(unittest2.TestCase):
+
             @decorator
             @unittest2.skip('testing')
             def test_1(self):
                 pass
-        
+
         result = unittest2.TestResult()
         test = Foo("test_1")
         suite = unittest2.TestSuite([test])

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_suite.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_suite.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_suite.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_suite.py Tue Sep  6 15:57:50 2016
@@ -3,20 +3,27 @@ from unittest2.test.support import Equal
 import sys
 import unittest2
 
+
 class Test(object):
+
     class Foo(unittest2.TestCase):
+
         def test_1(self): pass
+
         def test_2(self): pass
+
         def test_3(self): pass
+
         def runTest(self): pass
 
+
 def _mk_TestSuite(*names):
     return unittest2.TestSuite(Test.Foo(n) for n in names)
 
 
 class Test_TestSuite(unittest2.TestCase, EqualityMixin):
 
-    ### Set up attributes needed by inherited tests
+    # Set up attributes needed by inherited tests
     ################################################################
 
     # Used by EqualityMixin.test_eq
@@ -31,9 +38,9 @@ class Test_TestSuite(unittest2.TestCase,
                 (_mk_TestSuite('test_1'), _mk_TestSuite('test_2'))]
 
     ################################################################
-    ### /Set up attributes needed by inherited tests
+    # /Set up attributes needed by inherited tests
 
-    ### Tests for TestSuite.__init__
+    # Tests for TestSuite.__init__
     ################################################################
 
     # "class TestSuite([tests])"
@@ -93,7 +100,7 @@ class Test_TestSuite(unittest2.TestCase,
         self.assertEqual(suite.countTestCases(), 2)
 
     ################################################################
-    ### /Tests for TestSuite.__init__
+    # /Tests for TestSuite.__init__
 
     # Container types should support the iter protocol
     def test_iter(self):
@@ -121,6 +128,7 @@ class Test_TestSuite(unittest2.TestCase,
     # TestSuite instances) returns 0?
     def test_countTestCases_zero_nested(self):
         class Test1(unittest2.TestCase):
+
             def test(self):
                 pass
 
@@ -145,7 +153,9 @@ class Test_TestSuite(unittest2.TestCase,
     # Make sure this holds for nested TestSuite instances, too
     def test_countTestCases_nested(self):
         class Test1(unittest2.TestCase):
+
             def test1(self): pass
+
             def test2(self): pass
 
         test2 = unittest2.FunctionTestCase(lambda: None)
@@ -188,10 +198,12 @@ class Test_TestSuite(unittest2.TestCase,
         result = LoggingResult(events)
 
         class LoggingCase(unittest2.TestCase):
+
             def run(self, result):
                 events.append('run %s' % self._testMethodName)
 
             def test1(self): pass
+
             def test2(self): pass
 
         tests = [LoggingCase('test1'), LoggingCase('test2')]
@@ -203,6 +215,7 @@ class Test_TestSuite(unittest2.TestCase,
     # "Add a TestCase ... to the suite"
     def test_addTest__TestCase(self):
         class Foo(unittest2.TestCase):
+
             def test(self): pass
 
         test = Foo('test')
@@ -216,6 +229,7 @@ class Test_TestSuite(unittest2.TestCase,
     # "Add a ... TestSuite to the suite"
     def test_addTest__TestSuite(self):
         class Foo(unittest2.TestCase):
+
             def test(self): pass
 
         suite_2 = unittest2.TestSuite([Foo('test')])
@@ -233,7 +247,9 @@ class Test_TestSuite(unittest2.TestCase,
     # each element"
     def test_addTests(self):
         class Foo(unittest2.TestCase):
+
             def test_1(self): pass
+
             def test_2(self): pass
 
         test_1 = Foo('test_1')
@@ -294,35 +310,41 @@ class Test_TestSuite(unittest2.TestCase,
         # when the bug is fixed this line will not crash
         suite.run(unittest2.TestResult())
 
-
     def test_basetestsuite(self):
         class Test(unittest2.TestCase):
             wasSetUp = False
             wasTornDown = False
+
             @classmethod
             def setUpClass(cls):
                 cls.wasSetUp = True
+
             @classmethod
             def tearDownClass(cls):
                 cls.wasTornDown = True
+
             def testPass(self):
                 pass
+
             def testFail(self):
                 fail
+
         class Module(object):
             wasSetUp = False
             wasTornDown = False
+
             @staticmethod
             def setUpModule():
                 Module.wasSetUp = True
+
             @staticmethod
             def tearDownModule():
                 Module.wasTornDown = True
-        
+
         Test.__module__ = 'Module'
         sys.modules['Module'] = Module
         self.addCleanup(sys.modules.pop, 'Module')
-        
+
         suite = unittest2.BaseTestSuite()
         suite.addTests([Test('testPass'), Test('testFail')])
         self.assertEqual(suite.countTestCases(), 2)

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_unittest2_with.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_unittest2_with.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_unittest2_with.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/test/test_unittest2_with.py Tue Sep  6 15:57:50 2016
@@ -7,6 +7,7 @@ import warnings
 # needed to enable the deprecation warnings
 warnings.simplefilter('default')
 
+
 class TestWith(unittest2.TestCase):
     """Tests that use the with statement live in this
     module so that all other tests can be run with Python 2.4.
@@ -27,7 +28,6 @@ class TestWith(unittest2.TestCase):
         self.assertIsInstance(e, ExceptionMock)
         self.assertEqual(e.args[0], v)
 
-    
     def test_assertRaises(self):
         def _raise(e):
             raise e
@@ -73,7 +73,8 @@ class TestWith(unittest2.TestCase):
         with catch_warnings(record=True):
             # This causes a UnicodeWarning due to its craziness
             one = ''.join(chr(i) for i in range(255))
-            # this used to cause a UnicodeDecodeError constructing the failure msg
+            # this used to cause a UnicodeDecodeError constructing the failure
+            # msg
             with self.assertRaises(self.failureException):
                 self.assertDictContainsSubset({'foo': one}, {'foo': u'\uFFFD'})
 
@@ -83,7 +84,7 @@ class TestWith(unittest2.TestCase):
             one = ''.join(chr(i) for i in range(255))
             # this used to cause a UnicodeDecodeError constructing msg
             self._formatMessage(one, u'\uFFFD')
-                
+
     def assertOldResultWarning(self, test, failures):
         with catch_warnings(record=True) as log:
             result = OldTestResult()
@@ -94,31 +95,37 @@ class TestWith(unittest2.TestCase):
 
     def test_old_testresult(self):
         class Test(unittest2.TestCase):
+
             def testSkip(self):
                 self.skipTest('foobar')
+
             @unittest2.expectedFailure
             def testExpectedFail(self):
                 raise TypeError
+
             @unittest2.expectedFailure
             def testUnexpectedSuccess(self):
                 pass
-        
-        for test_name, should_pass in (('testSkip', True), 
-                                       ('testExpectedFail', True), 
+
+        for test_name, should_pass in (('testSkip', True),
+                                       ('testExpectedFail', True),
                                        ('testUnexpectedSuccess', False)):
             test = Test(test_name)
             self.assertOldResultWarning(test, int(not should_pass))
-        
+
     def test_old_testresult_setup(self):
         class Test(unittest2.TestCase):
+
             def setUp(self):
                 self.skipTest('no reason')
+
             def testFoo(self):
                 pass
         self.assertOldResultWarning(Test('testFoo'), 0)
-        
+
     def test_old_testresult_class(self):
         class Test(unittest2.TestCase):
+
             def testFoo(self):
                 pass
         Test = unittest2.skip('no reason')(Test)

Modified: lldb/trunk/third_party/Python/module/unittest2/unittest2/util.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/third_party/Python/module/unittest2/unittest2/util.py?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/third_party/Python/module/unittest2/unittest2/util.py (original)
+++ lldb/trunk/third_party/Python/module/unittest2/unittest2/util.py Tue Sep  6 15:57:50 2016
@@ -4,6 +4,8 @@ __unittest = True
 
 
 _MAX_LENGTH = 80
+
+
 def safe_repr(obj, short=False):
     try:
         result = repr(obj)
@@ -13,15 +15,18 @@ def safe_repr(obj, short=False):
         return result
     return result[:_MAX_LENGTH] + ' [truncated]...'
 
+
 def safe_str(obj):
     try:
         return str(obj)
     except Exception:
         return object.__str__(obj)
 
+
 def strclass(cls):
     return "%s.%s" % (cls.__module__, cls.__name__)
 
+
 def sorted_list_difference(expected, actual):
     """Finds elements in only one or the other of two, sorted input lists.
 
@@ -62,6 +67,7 @@ def sorted_list_difference(expected, act
             break
     return missing, unexpected
 
+
 def unorderable_list_difference(expected, actual, ignore_duplicate=False):
     """Same behavior as sorted_list_difference but
     for lists of unorderable items (like dicts).

Modified: lldb/trunk/tools/argdumper/argdumper.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/argdumper/argdumper.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/tools/argdumper/argdumper.cpp (original)
+++ lldb/trunk/tools/argdumper/argdumper.cpp Tue Sep  6 15:57:50 2016
@@ -1,4 +1,5 @@
-//===-- argdumper.cpp --------------------------------------------*- C++ -*-===//
+//===-- argdumper.cpp --------------------------------------------*- C++
+//-*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -14,25 +15,20 @@
 
 using namespace lldb_private;
 
-int
-main (int argc, char *argv[])
-{
-    JSONArray::SP arguments(new JSONArray());
-    for (int i = 1;
-         i < argc;
-         i++)
-    {
-        arguments->AppendObject(JSONString::SP(new JSONString(argv[i])));
-    }
-    
-    JSONObject::SP object(new JSONObject());
-    object->SetObject("arguments", arguments);
-    
-    StreamString ss;
-    
-    object->Write(ss);
-    
-    std::cout << ss.GetData() << std::endl;
-    
-    return 0;
+int main(int argc, char *argv[]) {
+  JSONArray::SP arguments(new JSONArray());
+  for (int i = 1; i < argc; i++) {
+    arguments->AppendObject(JSONString::SP(new JSONString(argv[i])));
+  }
+
+  JSONObject::SP object(new JSONObject());
+  object->SetObject("arguments", arguments);
+
+  StreamString ss;
+
+  object->Write(ss);
+
+  std::cout << ss.GetData() << std::endl;
+
+  return 0;
 }

Modified: lldb/trunk/tools/compact-unwind/compact-unwind-dumper.c
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/compact-unwind/compact-unwind-dumper.c?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/tools/compact-unwind/compact-unwind-dumper.c (original)
+++ lldb/trunk/tools/compact-unwind/compact-unwind-dumper.c Tue Sep  6 15:57:50 2016
@@ -1,66 +1,64 @@
-#include <stdint.h>
-#include <mach-o/loader.h>
+#include <fcntl.h>
+#include <inttypes.h>
 #include <mach-o/compact_unwind_encoding.h>
+#include <mach-o/loader.h>
+#include <mach-o/nlist.h>
 #include <mach/machine.h>
-#include <stdlib.h>
 #include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/mman.h>
 #include <sys/errno.h>
+#include <sys/mman.h>
 #include <sys/stat.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <mach-o/nlist.h>
-
+#include <sys/types.h>
 
 enum {
-    UNWIND_ARM64_MODE_MASK                     = 0x0F000000,
-    UNWIND_ARM64_MODE_FRAMELESS                = 0x02000000,
-    UNWIND_ARM64_MODE_DWARF                    = 0x03000000,
-    UNWIND_ARM64_MODE_FRAME                    = 0x04000000,
-
-    UNWIND_ARM64_FRAME_X19_X20_PAIR            = 0x00000001,
-    UNWIND_ARM64_FRAME_X21_X22_PAIR            = 0x00000002,
-    UNWIND_ARM64_FRAME_X23_X24_PAIR            = 0x00000004,
-    UNWIND_ARM64_FRAME_X25_X26_PAIR            = 0x00000008,
-    UNWIND_ARM64_FRAME_X27_X28_PAIR            = 0x00000010,
-    UNWIND_ARM64_FRAME_D8_D9_PAIR              = 0x00000100,
-    UNWIND_ARM64_FRAME_D10_D11_PAIR            = 0x00000200,
-    UNWIND_ARM64_FRAME_D12_D13_PAIR            = 0x00000400,
-    UNWIND_ARM64_FRAME_D14_D15_PAIR            = 0x00000800,
+  UNWIND_ARM64_MODE_MASK = 0x0F000000,
+  UNWIND_ARM64_MODE_FRAMELESS = 0x02000000,
+  UNWIND_ARM64_MODE_DWARF = 0x03000000,
+  UNWIND_ARM64_MODE_FRAME = 0x04000000,
+
+  UNWIND_ARM64_FRAME_X19_X20_PAIR = 0x00000001,
+  UNWIND_ARM64_FRAME_X21_X22_PAIR = 0x00000002,
+  UNWIND_ARM64_FRAME_X23_X24_PAIR = 0x00000004,
+  UNWIND_ARM64_FRAME_X25_X26_PAIR = 0x00000008,
+  UNWIND_ARM64_FRAME_X27_X28_PAIR = 0x00000010,
+  UNWIND_ARM64_FRAME_D8_D9_PAIR = 0x00000100,
+  UNWIND_ARM64_FRAME_D10_D11_PAIR = 0x00000200,
+  UNWIND_ARM64_FRAME_D12_D13_PAIR = 0x00000400,
+  UNWIND_ARM64_FRAME_D14_D15_PAIR = 0x00000800,
 
-    UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK     = 0x00FFF000,
-    UNWIND_ARM64_DWARF_SECTION_OFFSET          = 0x00FFFFFF,
+  UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK = 0x00FFF000,
+  UNWIND_ARM64_DWARF_SECTION_OFFSET = 0x00FFFFFF,
 };
 
 enum {
-  UNWIND_ARM_MODE_MASK                         = 0x0F000000,
-  UNWIND_ARM_MODE_FRAME                        = 0x01000000,
-  UNWIND_ARM_MODE_FRAME_D                      = 0x02000000,
-  UNWIND_ARM_MODE_DWARF                        = 0x04000000,
-
-  UNWIND_ARM_FRAME_STACK_ADJUST_MASK           = 0x00C00000,
-
-  UNWIND_ARM_FRAME_FIRST_PUSH_R4               = 0x00000001,
-  UNWIND_ARM_FRAME_FIRST_PUSH_R5               = 0x00000002,
-  UNWIND_ARM_FRAME_FIRST_PUSH_R6               = 0x00000004,
-
-  UNWIND_ARM_FRAME_SECOND_PUSH_R8              = 0x00000008,
-  UNWIND_ARM_FRAME_SECOND_PUSH_R9              = 0x00000010,
-  UNWIND_ARM_FRAME_SECOND_PUSH_R10             = 0x00000020,
-  UNWIND_ARM_FRAME_SECOND_PUSH_R11             = 0x00000040,
-  UNWIND_ARM_FRAME_SECOND_PUSH_R12             = 0x00000080,
+  UNWIND_ARM_MODE_MASK = 0x0F000000,
+  UNWIND_ARM_MODE_FRAME = 0x01000000,
+  UNWIND_ARM_MODE_FRAME_D = 0x02000000,
+  UNWIND_ARM_MODE_DWARF = 0x04000000,
+
+  UNWIND_ARM_FRAME_STACK_ADJUST_MASK = 0x00C00000,
+
+  UNWIND_ARM_FRAME_FIRST_PUSH_R4 = 0x00000001,
+  UNWIND_ARM_FRAME_FIRST_PUSH_R5 = 0x00000002,
+  UNWIND_ARM_FRAME_FIRST_PUSH_R6 = 0x00000004,
+
+  UNWIND_ARM_FRAME_SECOND_PUSH_R8 = 0x00000008,
+  UNWIND_ARM_FRAME_SECOND_PUSH_R9 = 0x00000010,
+  UNWIND_ARM_FRAME_SECOND_PUSH_R10 = 0x00000020,
+  UNWIND_ARM_FRAME_SECOND_PUSH_R11 = 0x00000040,
+  UNWIND_ARM_FRAME_SECOND_PUSH_R12 = 0x00000080,
 
-  UNWIND_ARM_FRAME_D_REG_COUNT_MASK            = 0x00000700,
+  UNWIND_ARM_FRAME_D_REG_COUNT_MASK = 0x00000700,
 
-  UNWIND_ARM_DWARF_SECTION_OFFSET              = 0x00FFFFFF,
+  UNWIND_ARM_DWARF_SECTION_OFFSET = 0x00FFFFFF,
 };
 
-#define EXTRACT_BITS(value, mask) \
-        ( (value >> __builtin_ctz(mask)) & (((1 << __builtin_popcount(mask)))-1) )
-
+#define EXTRACT_BITS(value, mask)                                              \
+  ((value >> __builtin_ctz(mask)) & (((1 << __builtin_popcount(mask))) - 1))
 
 // A quick sketch of a program which can parse the compact unwind info
 // used on Darwin systems for exception handling.  The output of
@@ -68,1534 +66,1450 @@ enum {
 // can dump at least the UNWIND_X86_64_MODE_RBP_FRAME format entries
 // correctly.
 
-struct symbol
-{
-    uint64_t file_address;
-    const char *name;
+struct symbol {
+  uint64_t file_address;
+  const char *name;
 };
 
-int
-symbol_compare (const void *a, const void *b)
-{
-    return (int) ((struct symbol *)a)->file_address - ((struct symbol *)b)->file_address;
+int symbol_compare(const void *a, const void *b) {
+  return (int)((struct symbol *)a)->file_address -
+         ((struct symbol *)b)->file_address;
 }
 
-struct baton
-{
-    cpu_type_t cputype;
+struct baton {
+  cpu_type_t cputype;
 
-    uint8_t *mach_header_start;      // pointer into this program's address space
-    uint8_t *compact_unwind_start;   // pointer into this program's address space
+  uint8_t *mach_header_start;    // pointer into this program's address space
+  uint8_t *compact_unwind_start; // pointer into this program's address space
 
-    int addr_size;                   // 4 or 8 bytes, the size of addresses in this file
+  int addr_size; // 4 or 8 bytes, the size of addresses in this file
 
-    uint64_t text_segment_vmaddr;    // __TEXT segment vmaddr
-    uint64_t text_segment_file_offset;
+  uint64_t text_segment_vmaddr; // __TEXT segment vmaddr
+  uint64_t text_segment_file_offset;
 
-    uint64_t text_section_vmaddr;    // __TEXT,__text section vmaddr
-    uint64_t text_section_file_offset;
+  uint64_t text_section_vmaddr; // __TEXT,__text section vmaddr
+  uint64_t text_section_file_offset;
 
-    uint64_t eh_section_file_address; // the file address of the __TEXT,__eh_frame section
+  uint64_t eh_section_file_address; // the file address of the __TEXT,__eh_frame
+                                    // section
 
-    uint8_t *lsda_array_start;       // for the currently-being-processed first-level index
-    uint8_t *lsda_array_end;         // the lsda_array_start for the NEXT first-level index
+  uint8_t
+      *lsda_array_start; // for the currently-being-processed first-level index
+  uint8_t
+      *lsda_array_end; // the lsda_array_start for the NEXT first-level index
 
-    struct symbol *symbols;
-    int    symbols_count;
+  struct symbol *symbols;
+  int symbols_count;
 
-    uint64_t *function_start_addresses;
-    int function_start_addresses_count;
+  uint64_t *function_start_addresses;
+  int function_start_addresses_count;
 
-    int current_index_table_number;
+  int current_index_table_number;
 
-    struct unwind_info_section_header unwind_header;
-    struct unwind_info_section_header_index_entry first_level_index_entry;
-    struct unwind_info_compressed_second_level_page_header compressed_second_level_page_header;
-    struct unwind_info_regular_second_level_page_header regular_second_level_page_header;
+  struct unwind_info_section_header unwind_header;
+  struct unwind_info_section_header_index_entry first_level_index_entry;
+  struct unwind_info_compressed_second_level_page_header
+      compressed_second_level_page_header;
+  struct unwind_info_regular_second_level_page_header
+      regular_second_level_page_header;
 };
 
+uint64_t read_leb128(uint8_t **offset) {
+  uint64_t result = 0;
+  int shift = 0;
+  while (1) {
+    uint8_t byte = **offset;
+    *offset = *offset + 1;
+    result |= (byte & 0x7f) << shift;
+    if ((byte & 0x80) == 0)
+      break;
+    shift += 7;
+  }
 
-uint64_t 
-read_leb128 (uint8_t **offset)
-{
-    uint64_t result = 0;
-    int shift = 0;
-    while (1) 
-    {
-        uint8_t byte = **offset;
-        *offset = *offset + 1;
-        result |= (byte & 0x7f) << shift;
-        if ((byte & 0x80) == 0)
-            break;
-        shift += 7;
-    }
-
-    return result;
+  return result;
 }
 
 // step through the load commands in a thin mach-o binary,
 // find the cputype and the start of the __TEXT,__unwind_info
 // section, return a pointer to that section or NULL if not found.
 
-static void
-scan_macho_load_commands (struct baton *baton)
-{
-    struct symtab_command symtab_cmd;
-    uint64_t linkedit_segment_vmaddr;
-    uint64_t linkedit_segment_file_offset;
-
-    baton->compact_unwind_start = 0;
-
-    uint32_t *magic = (uint32_t *) baton->mach_header_start;
-
-    if (*magic != MH_MAGIC && *magic != MH_MAGIC_64)
-    {
-        printf ("Unexpected magic number 0x%x in header, exiting.", *magic);
-        exit (1);
-    }
-
-    bool is_64bit = false;
-    if (*magic == MH_MAGIC_64)
-        is_64bit = true;
-
-    uint8_t *offset = baton->mach_header_start;
-
-    struct mach_header mh;
-    memcpy (&mh, offset, sizeof (struct mach_header));
-    if (is_64bit)
-        offset += sizeof (struct mach_header_64);
-    else
-        offset += sizeof (struct mach_header);
-
-    if (is_64bit)
-        baton->addr_size = 8;
-    else
-        baton->addr_size = 4;
-
-    baton->cputype = mh.cputype;
-
-    uint8_t *start_of_load_commands = offset;
-
-    uint32_t cur_cmd = 0;
-    while (cur_cmd < mh.ncmds && (offset - start_of_load_commands) < mh.sizeofcmds)
-    {
-        struct load_command lc;
-        uint32_t *lc_cmd = (uint32_t *) offset;
-        uint32_t *lc_cmdsize = (uint32_t *) offset + 1;
-        uint8_t *start_of_this_load_cmd = offset;
-
-        if (*lc_cmd == LC_SEGMENT || *lc_cmd == LC_SEGMENT_64)
-        {
-            char segment_name[17];
-            segment_name[0] = '\0';
-            uint32_t nsects = 0;
-            uint64_t segment_offset = 0;
-            uint64_t segment_vmaddr = 0;
-
-            if (*lc_cmd == LC_SEGMENT_64)
-            {
-                struct segment_command_64 seg;
-                memcpy (&seg, offset, sizeof (struct segment_command_64));
-                memcpy (&segment_name, &seg.segname, 16);
-                segment_name[16] = '\0';
-                nsects = seg.nsects;
-                segment_offset = seg.fileoff;
-                segment_vmaddr = seg.vmaddr;
-                offset += sizeof (struct segment_command_64);
-                if ((seg.flags & SG_PROTECTED_VERSION_1) == SG_PROTECTED_VERSION_1)
-                {
-                    printf ("Segment '%s' is encrypted.\n", segment_name);
-                }
-            }
-
-            if (*lc_cmd == LC_SEGMENT)
-            {
-                struct segment_command seg;
-                memcpy (&seg, offset, sizeof (struct segment_command));
-                memcpy (&segment_name, &seg.segname, 16);
-                segment_name[16] = '\0';
-                nsects = seg.nsects;
-                segment_offset = seg.fileoff;
-                segment_vmaddr = seg.vmaddr;
-                offset += sizeof (struct segment_command);
-                if ((seg.flags & SG_PROTECTED_VERSION_1) == SG_PROTECTED_VERSION_1)
-                {
-                    printf ("Segment '%s' is encrypted.\n", segment_name);
-                }
-            }
-
-            if (nsects != 0 && strcmp (segment_name, "__TEXT") == 0)
-            {
-                baton->text_segment_vmaddr = segment_vmaddr;
-                baton->text_segment_file_offset = segment_offset;
-
-                uint32_t current_sect = 0;
-                while (current_sect < nsects && (offset - start_of_this_load_cmd) < *lc_cmdsize)
-                {
-                    char sect_name[17];
-                    memcpy (&sect_name, offset, 16);
-                    sect_name[16] = '\0';
-                    if (strcmp (sect_name, "__unwind_info") == 0)
-                    {
-                        if (is_64bit)
-                        {
-                            struct section_64 sect;
-                            memset (&sect, 0, sizeof (struct section_64));
-                            memcpy (&sect, offset, sizeof (struct section_64));
-                            baton->compact_unwind_start = baton->mach_header_start + sect.offset;
-                        }
-                        else
-                        {
-                            struct section sect;
-                            memset (&sect, 0, sizeof (struct section));
-                            memcpy (&sect, offset, sizeof (struct section));
-                            baton->compact_unwind_start = baton->mach_header_start + sect.offset;
-                        }
-                    }
-                    if (strcmp (sect_name, "__eh_frame") == 0)
-                    {
-                        if (is_64bit)
-                        {
-                            struct section_64 sect;
-                            memset (&sect, 0, sizeof (struct section_64));
-                            memcpy (&sect, offset, sizeof (struct section_64));
-                            baton->eh_section_file_address = sect.addr;
-                        }
-                        else
-                        {
-                            struct section sect;
-                            memset (&sect, 0, sizeof (struct section));
-                            memcpy (&sect, offset, sizeof (struct section));
-                            baton->eh_section_file_address = sect.addr;
-                        }
-                    }
-                    if (strcmp (sect_name, "__text") == 0)
-                    {
-                        if (is_64bit)
-                        {
-                            struct section_64 sect;
-                            memset (&sect, 0, sizeof (struct section_64));
-                            memcpy (&sect, offset, sizeof (struct section_64));
-                            baton->text_section_vmaddr = sect.addr;
-                            baton->text_section_file_offset = sect.offset;
-                        }
-                        else
-                        {
-                            struct section sect;
-                            memset (&sect, 0, sizeof (struct section));
-                            memcpy (&sect, offset, sizeof (struct section));
-                            baton->text_section_vmaddr = sect.addr;
-                        }
-                    }
-                    if (is_64bit)
-                    {
-                        offset += sizeof (struct section_64);
-                    }
-                    else
-                    {
-                        offset += sizeof (struct section);
-                    }
-                }
-            }
-
-            if (strcmp (segment_name, "__LINKEDIT") == 0)
-            {
-                linkedit_segment_vmaddr = segment_vmaddr;
-                linkedit_segment_file_offset = segment_offset;
-            }
-        }
-
-        if (*lc_cmd == LC_SYMTAB)
-        {
-            memcpy (&symtab_cmd, offset, sizeof (struct symtab_command));
-        }
-
-        if (*lc_cmd == LC_DYSYMTAB)
-        {
-            struct dysymtab_command dysymtab_cmd;
-            memcpy (&dysymtab_cmd, offset, sizeof (struct dysymtab_command));
-
-            int nlist_size = 12;
-            if (is_64bit)
-                nlist_size = 16;
-
-            char *string_table = (char *) (baton->mach_header_start + symtab_cmd.stroff);
-            uint8_t *local_syms = baton->mach_header_start + symtab_cmd.symoff + (dysymtab_cmd.ilocalsym * nlist_size);
-            int local_syms_count = dysymtab_cmd.nlocalsym;
-            uint8_t *exported_syms = baton->mach_header_start + symtab_cmd.symoff + (dysymtab_cmd.iextdefsym * nlist_size);
-            int exported_syms_count = dysymtab_cmd.nextdefsym;
-
-            // We're only going to create records for a small number of these symbols but to 
-            // simplify the memory management I'll allocate enough space to store all of them.
-            baton->symbols = (struct symbol *) malloc (sizeof (struct symbol) * (local_syms_count + exported_syms_count));
-            baton->symbols_count = 0;
-
-            for (int i = 0; i < local_syms_count; i++)
-            {
-                struct nlist_64 nlist;
-                memset (&nlist, 0, sizeof (struct nlist_64));
-                if (is_64bit)
-                {
-                    memcpy (&nlist, local_syms + (i * nlist_size), sizeof (struct nlist_64));
-                }
-                else
-                {
-                    struct nlist nlist_32;
-                    memset (&nlist_32, 0, sizeof (struct nlist));
-                    memcpy (&nlist_32, local_syms + (i * nlist_size), sizeof (struct nlist));
-                    nlist.n_un.n_strx = nlist_32.n_un.n_strx;
-                    nlist.n_type = nlist_32.n_type;
-                    nlist.n_sect = nlist_32.n_sect;
-                    nlist.n_desc = nlist_32.n_desc;
-                    nlist.n_value = nlist_32.n_value;
-                }
-                if ((nlist.n_type & N_STAB) == 0
-                    && ((nlist.n_type & N_EXT) == 1 || 
-                        ((nlist.n_type & N_TYPE) == N_TYPE && nlist.n_sect != NO_SECT))
-                    && nlist.n_value != 0
-                    && nlist.n_value != baton->text_segment_vmaddr)
-                {
-                    baton->symbols[baton->symbols_count].file_address = nlist.n_value;
-                    if (baton->cputype == CPU_TYPE_ARM)
-                        baton->symbols[baton->symbols_count].file_address = baton->symbols[baton->symbols_count].file_address & ~1;
-                    baton->symbols[baton->symbols_count].name = string_table + nlist.n_un.n_strx;
-                    baton->symbols_count++;
-                }
-            }
-
-            for (int i = 0; i < exported_syms_count; i++)
-            {
-                struct nlist_64 nlist;
-                memset (&nlist, 0, sizeof (struct nlist_64));
-                if (is_64bit)
-                {
-                    memcpy (&nlist, exported_syms + (i * nlist_size), sizeof (struct nlist_64));
-                }
-                else
-                {
-                    struct nlist nlist_32;
-                    memcpy (&nlist_32, exported_syms + (i * nlist_size), sizeof (struct nlist));
-                    nlist.n_un.n_strx = nlist_32.n_un.n_strx;
-                    nlist.n_type = nlist_32.n_type;
-                    nlist.n_sect = nlist_32.n_sect;
-                    nlist.n_desc = nlist_32.n_desc;
-                    nlist.n_value = nlist_32.n_value;
-                }
-                if ((nlist.n_type & N_STAB) == 0
-                    && ((nlist.n_type & N_EXT) == 1 || 
-                        ((nlist.n_type & N_TYPE) == N_TYPE && nlist.n_sect != NO_SECT))
-                    && nlist.n_value != 0
-                    && nlist.n_value != baton->text_segment_vmaddr)
-                {
-                    baton->symbols[baton->symbols_count].file_address = nlist.n_value;
-                    if (baton->cputype == CPU_TYPE_ARM)
-                        baton->symbols[baton->symbols_count].file_address = baton->symbols[baton->symbols_count].file_address & ~1;
-                    baton->symbols[baton->symbols_count].name = string_table + nlist.n_un.n_strx;
-                    baton->symbols_count++;
-                }
-            }
-
-            qsort (baton->symbols, baton->symbols_count, sizeof (struct symbol), symbol_compare);
-        }
-
-        if (*lc_cmd == LC_FUNCTION_STARTS)
-        {
-            struct linkedit_data_command function_starts_cmd;
-            memcpy (&function_starts_cmd, offset, sizeof (struct linkedit_data_command));
-
-            uint8_t *funcstarts_offset = baton->mach_header_start + function_starts_cmd.dataoff;
-            uint8_t *function_end = funcstarts_offset + function_starts_cmd.datasize;
-            int count = 0;
-
-            while (funcstarts_offset < function_end)
-            {
-                if (read_leb128 (&funcstarts_offset) != 0)
-                {
-                    count++;
-                }
-            }
-
-            baton->function_start_addresses = (uint64_t *) malloc (sizeof (uint64_t) * count);
-            baton->function_start_addresses_count = count;
-
-            funcstarts_offset = baton->mach_header_start + function_starts_cmd.dataoff;
-            uint64_t current_pc = baton->text_segment_vmaddr;
-            int i = 0;
-            while (funcstarts_offset < function_end)
-            {
-                uint64_t func_start = read_leb128 (&funcstarts_offset);
-                if (func_start != 0)
-                {
-                    current_pc += func_start;
-                    baton->function_start_addresses[i++] = current_pc;
-                }
-            }
-        }
-
-        offset = start_of_this_load_cmd + *lc_cmdsize;
-        cur_cmd++;
-    }
-
-
-    // Augment the symbol table with the function starts table -- adding symbol entries
-    // for functions that were stripped.
-
-    int unnamed_functions_to_add = 0;
-    for (int i = 0; i < baton->function_start_addresses_count; i++)
-    {
-        struct symbol search_key;
-        search_key.file_address = baton->function_start_addresses[i];
-        if (baton->cputype == CPU_TYPE_ARM)
-            search_key.file_address = search_key.file_address & ~1;
-        struct symbol *sym = bsearch (&search_key, baton->symbols, baton->symbols_count, sizeof (struct symbol), symbol_compare);
-        if (sym == NULL)
-            unnamed_functions_to_add++;
-    }
-
-    baton->symbols = (struct symbol *) realloc (baton->symbols, sizeof (struct symbol) * (baton->symbols_count + unnamed_functions_to_add));
-
-    int current_unnamed_symbol = 1;
-    int number_symbols_added = 0;
-    for (int i = 0; i < baton->function_start_addresses_count; i++)
-    {
-        struct symbol search_key;
-        search_key.file_address = baton->function_start_addresses[i];
-        if (baton->cputype == CPU_TYPE_ARM)
-            search_key.file_address = search_key.file_address & ~1;
-        struct symbol *sym = bsearch (&search_key, baton->symbols, baton->symbols_count, sizeof (struct symbol), symbol_compare);
-        if (sym == NULL)
-        {
-            char *name;
-            asprintf (&name, "unnamed function #%d", current_unnamed_symbol++);
-            baton->symbols[baton->symbols_count + number_symbols_added].file_address = baton->function_start_addresses[i];
-            baton->symbols[baton->symbols_count + number_symbols_added].name = name;
-            number_symbols_added++;
-        }
-    }
-    baton->symbols_count += number_symbols_added;
-    qsort (baton->symbols, baton->symbols_count, sizeof (struct symbol), symbol_compare);
-
-
-//    printf ("function start addresses\n");
-//    for (int i = 0; i < baton->function_start_addresses_count; i++)
-//    {
-//        printf ("0x%012llx\n", baton->function_start_addresses[i]);
-//    }
-
-//    printf ("symbol table names & addresses\n");
-//    for (int i = 0; i < baton->symbols_count; i++)
-//    {
-//        printf ("0x%012llx %s\n", baton->symbols[i].file_address, baton->symbols[i].name);
-//    }
-
+static void scan_macho_load_commands(struct baton *baton) {
+  struct symtab_command symtab_cmd;
+  uint64_t linkedit_segment_vmaddr;
+  uint64_t linkedit_segment_file_offset;
+
+  baton->compact_unwind_start = 0;
+
+  uint32_t *magic = (uint32_t *)baton->mach_header_start;
+
+  if (*magic != MH_MAGIC && *magic != MH_MAGIC_64) {
+    printf("Unexpected magic number 0x%x in header, exiting.", *magic);
+    exit(1);
+  }
+
+  bool is_64bit = false;
+  if (*magic == MH_MAGIC_64)
+    is_64bit = true;
+
+  uint8_t *offset = baton->mach_header_start;
+
+  struct mach_header mh;
+  memcpy(&mh, offset, sizeof(struct mach_header));
+  if (is_64bit)
+    offset += sizeof(struct mach_header_64);
+  else
+    offset += sizeof(struct mach_header);
+
+  if (is_64bit)
+    baton->addr_size = 8;
+  else
+    baton->addr_size = 4;
+
+  baton->cputype = mh.cputype;
+
+  uint8_t *start_of_load_commands = offset;
+
+  uint32_t cur_cmd = 0;
+  while (cur_cmd < mh.ncmds &&
+         (offset - start_of_load_commands) < mh.sizeofcmds) {
+    struct load_command lc;
+    uint32_t *lc_cmd = (uint32_t *)offset;
+    uint32_t *lc_cmdsize = (uint32_t *)offset + 1;
+    uint8_t *start_of_this_load_cmd = offset;
+
+    if (*lc_cmd == LC_SEGMENT || *lc_cmd == LC_SEGMENT_64) {
+      char segment_name[17];
+      segment_name[0] = '\0';
+      uint32_t nsects = 0;
+      uint64_t segment_offset = 0;
+      uint64_t segment_vmaddr = 0;
+
+      if (*lc_cmd == LC_SEGMENT_64) {
+        struct segment_command_64 seg;
+        memcpy(&seg, offset, sizeof(struct segment_command_64));
+        memcpy(&segment_name, &seg.segname, 16);
+        segment_name[16] = '\0';
+        nsects = seg.nsects;
+        segment_offset = seg.fileoff;
+        segment_vmaddr = seg.vmaddr;
+        offset += sizeof(struct segment_command_64);
+        if ((seg.flags & SG_PROTECTED_VERSION_1) == SG_PROTECTED_VERSION_1) {
+          printf("Segment '%s' is encrypted.\n", segment_name);
+        }
+      }
+
+      if (*lc_cmd == LC_SEGMENT) {
+        struct segment_command seg;
+        memcpy(&seg, offset, sizeof(struct segment_command));
+        memcpy(&segment_name, &seg.segname, 16);
+        segment_name[16] = '\0';
+        nsects = seg.nsects;
+        segment_offset = seg.fileoff;
+        segment_vmaddr = seg.vmaddr;
+        offset += sizeof(struct segment_command);
+        if ((seg.flags & SG_PROTECTED_VERSION_1) == SG_PROTECTED_VERSION_1) {
+          printf("Segment '%s' is encrypted.\n", segment_name);
+        }
+      }
+
+      if (nsects != 0 && strcmp(segment_name, "__TEXT") == 0) {
+        baton->text_segment_vmaddr = segment_vmaddr;
+        baton->text_segment_file_offset = segment_offset;
+
+        uint32_t current_sect = 0;
+        while (current_sect < nsects &&
+               (offset - start_of_this_load_cmd) < *lc_cmdsize) {
+          char sect_name[17];
+          memcpy(&sect_name, offset, 16);
+          sect_name[16] = '\0';
+          if (strcmp(sect_name, "__unwind_info") == 0) {
+            if (is_64bit) {
+              struct section_64 sect;
+              memset(&sect, 0, sizeof(struct section_64));
+              memcpy(&sect, offset, sizeof(struct section_64));
+              baton->compact_unwind_start =
+                  baton->mach_header_start + sect.offset;
+            } else {
+              struct section sect;
+              memset(&sect, 0, sizeof(struct section));
+              memcpy(&sect, offset, sizeof(struct section));
+              baton->compact_unwind_start =
+                  baton->mach_header_start + sect.offset;
+            }
+          }
+          if (strcmp(sect_name, "__eh_frame") == 0) {
+            if (is_64bit) {
+              struct section_64 sect;
+              memset(&sect, 0, sizeof(struct section_64));
+              memcpy(&sect, offset, sizeof(struct section_64));
+              baton->eh_section_file_address = sect.addr;
+            } else {
+              struct section sect;
+              memset(&sect, 0, sizeof(struct section));
+              memcpy(&sect, offset, sizeof(struct section));
+              baton->eh_section_file_address = sect.addr;
+            }
+          }
+          if (strcmp(sect_name, "__text") == 0) {
+            if (is_64bit) {
+              struct section_64 sect;
+              memset(&sect, 0, sizeof(struct section_64));
+              memcpy(&sect, offset, sizeof(struct section_64));
+              baton->text_section_vmaddr = sect.addr;
+              baton->text_section_file_offset = sect.offset;
+            } else {
+              struct section sect;
+              memset(&sect, 0, sizeof(struct section));
+              memcpy(&sect, offset, sizeof(struct section));
+              baton->text_section_vmaddr = sect.addr;
+            }
+          }
+          if (is_64bit) {
+            offset += sizeof(struct section_64);
+          } else {
+            offset += sizeof(struct section);
+          }
+        }
+      }
+
+      if (strcmp(segment_name, "__LINKEDIT") == 0) {
+        linkedit_segment_vmaddr = segment_vmaddr;
+        linkedit_segment_file_offset = segment_offset;
+      }
+    }
+
+    if (*lc_cmd == LC_SYMTAB) {
+      memcpy(&symtab_cmd, offset, sizeof(struct symtab_command));
+    }
+
+    if (*lc_cmd == LC_DYSYMTAB) {
+      struct dysymtab_command dysymtab_cmd;
+      memcpy(&dysymtab_cmd, offset, sizeof(struct dysymtab_command));
+
+      int nlist_size = 12;
+      if (is_64bit)
+        nlist_size = 16;
+
+      char *string_table =
+          (char *)(baton->mach_header_start + symtab_cmd.stroff);
+      uint8_t *local_syms = baton->mach_header_start + symtab_cmd.symoff +
+                            (dysymtab_cmd.ilocalsym * nlist_size);
+      int local_syms_count = dysymtab_cmd.nlocalsym;
+      uint8_t *exported_syms = baton->mach_header_start + symtab_cmd.symoff +
+                               (dysymtab_cmd.iextdefsym * nlist_size);
+      int exported_syms_count = dysymtab_cmd.nextdefsym;
+
+      // We're only going to create records for a small number of these symbols
+      // but to
+      // simplify the memory management I'll allocate enough space to store all
+      // of them.
+      baton->symbols = (struct symbol *)malloc(
+          sizeof(struct symbol) * (local_syms_count + exported_syms_count));
+      baton->symbols_count = 0;
+
+      for (int i = 0; i < local_syms_count; i++) {
+        struct nlist_64 nlist;
+        memset(&nlist, 0, sizeof(struct nlist_64));
+        if (is_64bit) {
+          memcpy(&nlist, local_syms + (i * nlist_size),
+                 sizeof(struct nlist_64));
+        } else {
+          struct nlist nlist_32;
+          memset(&nlist_32, 0, sizeof(struct nlist));
+          memcpy(&nlist_32, local_syms + (i * nlist_size),
+                 sizeof(struct nlist));
+          nlist.n_un.n_strx = nlist_32.n_un.n_strx;
+          nlist.n_type = nlist_32.n_type;
+          nlist.n_sect = nlist_32.n_sect;
+          nlist.n_desc = nlist_32.n_desc;
+          nlist.n_value = nlist_32.n_value;
+        }
+        if ((nlist.n_type & N_STAB) == 0 &&
+            ((nlist.n_type & N_EXT) == 1 ||
+             ((nlist.n_type & N_TYPE) == N_TYPE && nlist.n_sect != NO_SECT)) &&
+            nlist.n_value != 0 && nlist.n_value != baton->text_segment_vmaddr) {
+          baton->symbols[baton->symbols_count].file_address = nlist.n_value;
+          if (baton->cputype == CPU_TYPE_ARM)
+            baton->symbols[baton->symbols_count].file_address =
+                baton->symbols[baton->symbols_count].file_address & ~1;
+          baton->symbols[baton->symbols_count].name =
+              string_table + nlist.n_un.n_strx;
+          baton->symbols_count++;
+        }
+      }
+
+      for (int i = 0; i < exported_syms_count; i++) {
+        struct nlist_64 nlist;
+        memset(&nlist, 0, sizeof(struct nlist_64));
+        if (is_64bit) {
+          memcpy(&nlist, exported_syms + (i * nlist_size),
+                 sizeof(struct nlist_64));
+        } else {
+          struct nlist nlist_32;
+          memcpy(&nlist_32, exported_syms + (i * nlist_size),
+                 sizeof(struct nlist));
+          nlist.n_un.n_strx = nlist_32.n_un.n_strx;
+          nlist.n_type = nlist_32.n_type;
+          nlist.n_sect = nlist_32.n_sect;
+          nlist.n_desc = nlist_32.n_desc;
+          nlist.n_value = nlist_32.n_value;
+        }
+        if ((nlist.n_type & N_STAB) == 0 &&
+            ((nlist.n_type & N_EXT) == 1 ||
+             ((nlist.n_type & N_TYPE) == N_TYPE && nlist.n_sect != NO_SECT)) &&
+            nlist.n_value != 0 && nlist.n_value != baton->text_segment_vmaddr) {
+          baton->symbols[baton->symbols_count].file_address = nlist.n_value;
+          if (baton->cputype == CPU_TYPE_ARM)
+            baton->symbols[baton->symbols_count].file_address =
+                baton->symbols[baton->symbols_count].file_address & ~1;
+          baton->symbols[baton->symbols_count].name =
+              string_table + nlist.n_un.n_strx;
+          baton->symbols_count++;
+        }
+      }
+
+      qsort(baton->symbols, baton->symbols_count, sizeof(struct symbol),
+            symbol_compare);
+    }
+
+    if (*lc_cmd == LC_FUNCTION_STARTS) {
+      struct linkedit_data_command function_starts_cmd;
+      memcpy(&function_starts_cmd, offset,
+             sizeof(struct linkedit_data_command));
+
+      uint8_t *funcstarts_offset =
+          baton->mach_header_start + function_starts_cmd.dataoff;
+      uint8_t *function_end = funcstarts_offset + function_starts_cmd.datasize;
+      int count = 0;
+
+      while (funcstarts_offset < function_end) {
+        if (read_leb128(&funcstarts_offset) != 0) {
+          count++;
+        }
+      }
+
+      baton->function_start_addresses =
+          (uint64_t *)malloc(sizeof(uint64_t) * count);
+      baton->function_start_addresses_count = count;
+
+      funcstarts_offset =
+          baton->mach_header_start + function_starts_cmd.dataoff;
+      uint64_t current_pc = baton->text_segment_vmaddr;
+      int i = 0;
+      while (funcstarts_offset < function_end) {
+        uint64_t func_start = read_leb128(&funcstarts_offset);
+        if (func_start != 0) {
+          current_pc += func_start;
+          baton->function_start_addresses[i++] = current_pc;
+        }
+      }
+    }
+
+    offset = start_of_this_load_cmd + *lc_cmdsize;
+    cur_cmd++;
+  }
+
+  // Augment the symbol table with the function starts table -- adding symbol
+  // entries
+  // for functions that were stripped.
+
+  int unnamed_functions_to_add = 0;
+  for (int i = 0; i < baton->function_start_addresses_count; i++) {
+    struct symbol search_key;
+    search_key.file_address = baton->function_start_addresses[i];
+    if (baton->cputype == CPU_TYPE_ARM)
+      search_key.file_address = search_key.file_address & ~1;
+    struct symbol *sym =
+        bsearch(&search_key, baton->symbols, baton->symbols_count,
+                sizeof(struct symbol), symbol_compare);
+    if (sym == NULL)
+      unnamed_functions_to_add++;
+  }
+
+  baton->symbols = (struct symbol *)realloc(
+      baton->symbols, sizeof(struct symbol) *
+                          (baton->symbols_count + unnamed_functions_to_add));
+
+  int current_unnamed_symbol = 1;
+  int number_symbols_added = 0;
+  for (int i = 0; i < baton->function_start_addresses_count; i++) {
+    struct symbol search_key;
+    search_key.file_address = baton->function_start_addresses[i];
+    if (baton->cputype == CPU_TYPE_ARM)
+      search_key.file_address = search_key.file_address & ~1;
+    struct symbol *sym =
+        bsearch(&search_key, baton->symbols, baton->symbols_count,
+                sizeof(struct symbol), symbol_compare);
+    if (sym == NULL) {
+      char *name;
+      asprintf(&name, "unnamed function #%d", current_unnamed_symbol++);
+      baton->symbols[baton->symbols_count + number_symbols_added].file_address =
+          baton->function_start_addresses[i];
+      baton->symbols[baton->symbols_count + number_symbols_added].name = name;
+      number_symbols_added++;
+    }
+  }
+  baton->symbols_count += number_symbols_added;
+  qsort(baton->symbols, baton->symbols_count, sizeof(struct symbol),
+        symbol_compare);
+
+  //    printf ("function start addresses\n");
+  //    for (int i = 0; i < baton->function_start_addresses_count; i++)
+  //    {
+  //        printf ("0x%012llx\n", baton->function_start_addresses[i]);
+  //    }
+
+  //    printf ("symbol table names & addresses\n");
+  //    for (int i = 0; i < baton->symbols_count; i++)
+  //    {
+  //        printf ("0x%012llx %s\n", baton->symbols[i].file_address,
+  //        baton->symbols[i].name);
+  //    }
 }
 
-void
-print_encoding_x86_64 (struct baton baton, uint8_t *function_start, uint32_t encoding)
-{
-    int mode = encoding & UNWIND_X86_64_MODE_MASK;
-    switch (mode)
-    {
-        case UNWIND_X86_64_MODE_RBP_FRAME:
-        {
-            printf ("frame func: CFA is rbp+%d ", 16);
-            printf (" rip=[CFA-8] rbp=[CFA-16]");
-            uint32_t saved_registers_offset = EXTRACT_BITS (encoding, UNWIND_X86_64_RBP_FRAME_OFFSET);
-
-            uint32_t saved_registers_locations = EXTRACT_BITS (encoding, UNWIND_X86_64_RBP_FRAME_REGISTERS);
-
-
-            saved_registers_offset += 2;
-
-            for (int i = 0; i < 5; i++)
-            {
-                switch (saved_registers_locations & 0x7)
-                {
-                    case UNWIND_X86_64_REG_NONE:
-                        break;
-                    case UNWIND_X86_64_REG_RBX:
-                        printf (" rbx=[CFA-%d]", saved_registers_offset * 8);
-                        break;
-                    case UNWIND_X86_64_REG_R12:
-                        printf (" r12=[CFA-%d]", saved_registers_offset * 8);
-                        break;
-                    case UNWIND_X86_64_REG_R13:
-                        printf (" r13=[CFA-%d]", saved_registers_offset * 8);
-                        break;
-                    case UNWIND_X86_64_REG_R14:
-                        printf (" r14=[CFA-%d]", saved_registers_offset * 8);
-                        break;
-                    case UNWIND_X86_64_REG_R15:
-                        printf (" r15=[CFA-%d]", saved_registers_offset * 8);
-                        break;
-                }
-                saved_registers_offset--;
-                saved_registers_locations >>= 3;
-            }
-        }
+void print_encoding_x86_64(struct baton baton, uint8_t *function_start,
+                           uint32_t encoding) {
+  int mode = encoding & UNWIND_X86_64_MODE_MASK;
+  switch (mode) {
+  case UNWIND_X86_64_MODE_RBP_FRAME: {
+    printf("frame func: CFA is rbp+%d ", 16);
+    printf(" rip=[CFA-8] rbp=[CFA-16]");
+    uint32_t saved_registers_offset =
+        EXTRACT_BITS(encoding, UNWIND_X86_64_RBP_FRAME_OFFSET);
+
+    uint32_t saved_registers_locations =
+        EXTRACT_BITS(encoding, UNWIND_X86_64_RBP_FRAME_REGISTERS);
+
+    saved_registers_offset += 2;
+
+    for (int i = 0; i < 5; i++) {
+      switch (saved_registers_locations & 0x7) {
+      case UNWIND_X86_64_REG_NONE:
         break;
-
-        case UNWIND_X86_64_MODE_STACK_IND:
-        case UNWIND_X86_64_MODE_STACK_IMMD:
-        {
-            uint32_t stack_size = EXTRACT_BITS (encoding, UNWIND_X86_64_FRAMELESS_STACK_SIZE);
-            uint32_t register_count = EXTRACT_BITS (encoding, UNWIND_X86_64_FRAMELESS_STACK_REG_COUNT);
-            uint32_t permutation = EXTRACT_BITS (encoding, UNWIND_X86_64_FRAMELESS_STACK_REG_PERMUTATION);
-
-            if (mode == UNWIND_X86_64_MODE_STACK_IND && function_start)
-            {
-                uint32_t stack_adjust = EXTRACT_BITS (encoding, UNWIND_X86_64_FRAMELESS_STACK_ADJUST);
-
-                // offset into the function instructions; 0 == beginning of first instruction
-                uint32_t offset_to_subl_insn = EXTRACT_BITS (encoding, UNWIND_X86_64_FRAMELESS_STACK_SIZE);
-
-                stack_size = *((uint32_t*) (function_start + offset_to_subl_insn));
-
-                stack_size += stack_adjust * 8;
-
-                printf ("large stack ");
-            }
-            
-            if (mode == UNWIND_X86_64_MODE_STACK_IND)
-            {
-                printf ("frameless function: stack size %d, register count %d ", stack_size * 8, register_count);
-            }
-            else
-            {
-                printf ("frameless function: stack size %d, register count %d ", stack_size, register_count);
-            }
-
-            if (register_count == 0)
-            {
-                printf (" no registers saved");
-            }
-            else
-            {
-
-                // We need to include (up to) 6 registers in 10 bits.
-                // That would be 18 bits if we just used 3 bits per reg to indicate
-                // the order they're saved on the stack. 
-                //
-                // This is done with Lehmer code permutation, e.g. see
-                // http://stackoverflow.com/questions/1506078/fast-permutation-number-permutation-mapping-algorithms
-                int permunreg[6];
-
-                // This decodes the variable-base number in the 10 bits
-                // and gives us the Lehmer code sequence which can then
-                // be decoded.
-
-                switch (register_count) 
-                {
-                    case 6:
-                        permunreg[0] = permutation/120;    // 120 == 5!
-                        permutation -= (permunreg[0]*120);
-                        permunreg[1] = permutation/24;     // 24 == 4!
-                        permutation -= (permunreg[1]*24);
-                        permunreg[2] = permutation/6;      // 6 == 3!
-                        permutation -= (permunreg[2]*6);
-                        permunreg[3] = permutation/2;      // 2 == 2!
-                        permutation -= (permunreg[3]*2);
-                        permunreg[4] = permutation;        // 1 == 1!
-                        permunreg[5] = 0;
-                        break;
-                    case 5:
-                        permunreg[0] = permutation/120;
-                        permutation -= (permunreg[0]*120);
-                        permunreg[1] = permutation/24;
-                        permutation -= (permunreg[1]*24);
-                        permunreg[2] = permutation/6;
-                        permutation -= (permunreg[2]*6);
-                        permunreg[3] = permutation/2;
-                        permutation -= (permunreg[3]*2);
-                        permunreg[4] = permutation;
-                        break;
-                    case 4:
-                        permunreg[0] = permutation/60;
-                        permutation -= (permunreg[0]*60);
-                        permunreg[1] = permutation/12;
-                        permutation -= (permunreg[1]*12);
-                        permunreg[2] = permutation/3;
-                        permutation -= (permunreg[2]*3);
-                        permunreg[3] = permutation;
-                        break;
-                    case 3:
-                        permunreg[0] = permutation/20;
-                        permutation -= (permunreg[0]*20);
-                        permunreg[1] = permutation/4;
-                        permutation -= (permunreg[1]*4);
-                        permunreg[2] = permutation;
-                        break;
-                    case 2:
-                        permunreg[0] = permutation/5;
-                        permutation -= (permunreg[0]*5);
-                        permunreg[1] = permutation;
-                        break;
-                    case 1:
-                        permunreg[0] = permutation;
-                        break;
-                }
-                
-                // Decode the Lehmer code for this permutation of
-                // the registers v. http://en.wikipedia.org/wiki/Lehmer_code
-
-                int registers[6];
-                bool used[7] = { false, false, false, false, false, false, false };
-                for (int i = 0; i < register_count; i++)
-                {
-                    int renum = 0;
-                    for (int j = 1; j < 7; j++)
-                    {
-                        if (used[j] == false)
-                        {
-                            if (renum == permunreg[i])
-                            {
-                                registers[i] = j;
-                                used[j] = true;
-                                break;
-                            }
-                            renum++;
-                        }
-                    }
-                }
-
-
-                if (mode == UNWIND_X86_64_MODE_STACK_IND)
-                {
-                    printf (" CFA is rsp+%d ", stack_size);
-                }
-                else
-                {
-                    printf (" CFA is rsp+%d ", stack_size * 8);
-                }
-
-                uint32_t saved_registers_offset = 1;
-                printf (" rip=[CFA-%d]", saved_registers_offset * 8);
-                saved_registers_offset++;
-
-                for (int i = (sizeof (registers) / sizeof (int)) - 1; i >= 0; i--)
-                {
-                    switch (registers[i])
-                    {
-                        case UNWIND_X86_64_REG_NONE:
-                            break;
-                        case UNWIND_X86_64_REG_RBX:
-                            printf (" rbx=[CFA-%d]", saved_registers_offset * 8);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_64_REG_R12:
-                            printf (" r12=[CFA-%d]", saved_registers_offset * 8);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_64_REG_R13:
-                            printf (" r13=[CFA-%d]", saved_registers_offset * 8);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_64_REG_R14:
-                            printf (" r14=[CFA-%d]", saved_registers_offset * 8);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_64_REG_R15:
-                            printf (" r15=[CFA-%d]", saved_registers_offset * 8);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_64_REG_RBP:
-                            printf (" rbp=[CFA-%d]", saved_registers_offset * 8);
-                            saved_registers_offset++;
-                            break;
-                    }
-                }
-
-            }
-
-        }
+      case UNWIND_X86_64_REG_RBX:
+        printf(" rbx=[CFA-%d]", saved_registers_offset * 8);
         break;
-
-        case UNWIND_X86_64_MODE_DWARF:
-        {
-            uint32_t dwarf_offset = encoding & UNWIND_X86_DWARF_SECTION_OFFSET;
-            printf ("DWARF unwind instructions: FDE at offset %d (file address 0x%" PRIx64 ")",
-                    dwarf_offset, dwarf_offset + baton.eh_section_file_address);
-        }
+      case UNWIND_X86_64_REG_R12:
+        printf(" r12=[CFA-%d]", saved_registers_offset * 8);
         break;
-
-        case 0:
-        {
-            printf (" no unwind information");
-        }
+      case UNWIND_X86_64_REG_R13:
+        printf(" r13=[CFA-%d]", saved_registers_offset * 8);
         break;
-    }
-}
-
-void
-print_encoding_i386 (struct baton baton, uint8_t *function_start, uint32_t encoding)
-{
-    int mode = encoding & UNWIND_X86_MODE_MASK;
-    switch (mode)
-    {
-        case UNWIND_X86_MODE_EBP_FRAME:
-        {
-            printf ("frame func: CFA is ebp+%d ", 8);
-            printf (" eip=[CFA-4] ebp=[CFA-8]");
-            uint32_t saved_registers_offset = EXTRACT_BITS (encoding, UNWIND_X86_EBP_FRAME_OFFSET);
-
-            uint32_t saved_registers_locations = EXTRACT_BITS (encoding, UNWIND_X86_EBP_FRAME_REGISTERS);
-
-
-            saved_registers_offset += 2;
-
-            for (int i = 0; i < 5; i++)
-            {
-                switch (saved_registers_locations & 0x7)
-                {
-                    case UNWIND_X86_REG_NONE:
-                        break;
-                    case UNWIND_X86_REG_EBX:
-                        printf (" ebx=[CFA-%d]", saved_registers_offset * 4);
-                        break;
-                    case UNWIND_X86_REG_ECX:
-                        printf (" ecx=[CFA-%d]", saved_registers_offset * 4);
-                        break;
-                    case UNWIND_X86_REG_EDX:
-                        printf (" edx=[CFA-%d]", saved_registers_offset * 4);
-                        break;
-                    case UNWIND_X86_REG_EDI:
-                        printf (" edi=[CFA-%d]", saved_registers_offset * 4);
-                        break;
-                    case UNWIND_X86_REG_ESI:
-                        printf (" esi=[CFA-%d]", saved_registers_offset * 4);
-                        break;
-                }
-                saved_registers_offset--;
-                saved_registers_locations >>= 3;
-            }
-        }
+      case UNWIND_X86_64_REG_R14:
+        printf(" r14=[CFA-%d]", saved_registers_offset * 8);
         break;
+      case UNWIND_X86_64_REG_R15:
+        printf(" r15=[CFA-%d]", saved_registers_offset * 8);
+        break;
+      }
+      saved_registers_offset--;
+      saved_registers_locations >>= 3;
+    }
+  } break;
+
+  case UNWIND_X86_64_MODE_STACK_IND:
+  case UNWIND_X86_64_MODE_STACK_IMMD: {
+    uint32_t stack_size =
+        EXTRACT_BITS(encoding, UNWIND_X86_64_FRAMELESS_STACK_SIZE);
+    uint32_t register_count =
+        EXTRACT_BITS(encoding, UNWIND_X86_64_FRAMELESS_STACK_REG_COUNT);
+    uint32_t permutation =
+        EXTRACT_BITS(encoding, UNWIND_X86_64_FRAMELESS_STACK_REG_PERMUTATION);
+
+    if (mode == UNWIND_X86_64_MODE_STACK_IND && function_start) {
+      uint32_t stack_adjust =
+          EXTRACT_BITS(encoding, UNWIND_X86_64_FRAMELESS_STACK_ADJUST);
+
+      // offset into the function instructions; 0 == beginning of first
+      // instruction
+      uint32_t offset_to_subl_insn =
+          EXTRACT_BITS(encoding, UNWIND_X86_64_FRAMELESS_STACK_SIZE);
+
+      stack_size = *((uint32_t *)(function_start + offset_to_subl_insn));
+
+      stack_size += stack_adjust * 8;
+
+      printf("large stack ");
+    }
+
+    if (mode == UNWIND_X86_64_MODE_STACK_IND) {
+      printf("frameless function: stack size %d, register count %d ",
+             stack_size * 8, register_count);
+    } else {
+      printf("frameless function: stack size %d, register count %d ",
+             stack_size, register_count);
+    }
+
+    if (register_count == 0) {
+      printf(" no registers saved");
+    } else {
+
+      // We need to include (up to) 6 registers in 10 bits.
+      // That would be 18 bits if we just used 3 bits per reg to indicate
+      // the order they're saved on the stack.
+      //
+      // This is done with Lehmer code permutation, e.g. see
+      // http://stackoverflow.com/questions/1506078/fast-permutation-number-permutation-mapping-algorithms
+      int permunreg[6];
+
+      // This decodes the variable-base number in the 10 bits
+      // and gives us the Lehmer code sequence which can then
+      // be decoded.
+
+      switch (register_count) {
+      case 6:
+        permunreg[0] = permutation / 120; // 120 == 5!
+        permutation -= (permunreg[0] * 120);
+        permunreg[1] = permutation / 24; // 24 == 4!
+        permutation -= (permunreg[1] * 24);
+        permunreg[2] = permutation / 6; // 6 == 3!
+        permutation -= (permunreg[2] * 6);
+        permunreg[3] = permutation / 2; // 2 == 2!
+        permutation -= (permunreg[3] * 2);
+        permunreg[4] = permutation; // 1 == 1!
+        permunreg[5] = 0;
+        break;
+      case 5:
+        permunreg[0] = permutation / 120;
+        permutation -= (permunreg[0] * 120);
+        permunreg[1] = permutation / 24;
+        permutation -= (permunreg[1] * 24);
+        permunreg[2] = permutation / 6;
+        permutation -= (permunreg[2] * 6);
+        permunreg[3] = permutation / 2;
+        permutation -= (permunreg[3] * 2);
+        permunreg[4] = permutation;
+        break;
+      case 4:
+        permunreg[0] = permutation / 60;
+        permutation -= (permunreg[0] * 60);
+        permunreg[1] = permutation / 12;
+        permutation -= (permunreg[1] * 12);
+        permunreg[2] = permutation / 3;
+        permutation -= (permunreg[2] * 3);
+        permunreg[3] = permutation;
+        break;
+      case 3:
+        permunreg[0] = permutation / 20;
+        permutation -= (permunreg[0] * 20);
+        permunreg[1] = permutation / 4;
+        permutation -= (permunreg[1] * 4);
+        permunreg[2] = permutation;
+        break;
+      case 2:
+        permunreg[0] = permutation / 5;
+        permutation -= (permunreg[0] * 5);
+        permunreg[1] = permutation;
+        break;
+      case 1:
+        permunreg[0] = permutation;
+        break;
+      }
 
-        case UNWIND_X86_MODE_STACK_IND:
-        case UNWIND_X86_MODE_STACK_IMMD:
-        {
-            uint32_t stack_size = EXTRACT_BITS (encoding, UNWIND_X86_FRAMELESS_STACK_SIZE);
-            uint32_t register_count = EXTRACT_BITS (encoding, UNWIND_X86_FRAMELESS_STACK_REG_COUNT);
-            uint32_t permutation = EXTRACT_BITS (encoding, UNWIND_X86_FRAMELESS_STACK_REG_PERMUTATION);
-
-            if (mode == UNWIND_X86_MODE_STACK_IND && function_start)
-            {
-                uint32_t stack_adjust = EXTRACT_BITS (encoding, UNWIND_X86_FRAMELESS_STACK_ADJUST);
-
-                // offset into the function instructions; 0 == beginning of first instruction
-                uint32_t offset_to_subl_insn = EXTRACT_BITS (encoding, UNWIND_X86_FRAMELESS_STACK_SIZE);
-
-                stack_size = *((uint32_t*) (function_start + offset_to_subl_insn));
-
-                stack_size += stack_adjust * 4;
-
-                printf ("large stack ");
-            }
-            
-            if (mode == UNWIND_X86_MODE_STACK_IND)
-            {
-                printf ("frameless function: stack size %d, register count %d ", stack_size, register_count);
-            }
-            else
-            {
-                printf ("frameless function: stack size %d, register count %d ", stack_size * 4, register_count);
-            }
-
-            if (register_count == 0)
-            {
-                printf (" no registers saved");
-            }
-            else
-            {
-
-                // We need to include (up to) 6 registers in 10 bits.
-                // That would be 18 bits if we just used 3 bits per reg to indicate
-                // the order they're saved on the stack. 
-                //
-                // This is done with Lehmer code permutation, e.g. see
-                // http://stackoverflow.com/questions/1506078/fast-permutation-number-permutation-mapping-algorithms
-                int permunreg[6];
-
-                // This decodes the variable-base number in the 10 bits
-                // and gives us the Lehmer code sequence which can then
-                // be decoded.
-
-                switch (register_count) 
-                {
-                    case 6:
-                        permunreg[0] = permutation/120;    // 120 == 5!
-                        permutation -= (permunreg[0]*120);
-                        permunreg[1] = permutation/24;     // 24 == 4!
-                        permutation -= (permunreg[1]*24);
-                        permunreg[2] = permutation/6;      // 6 == 3!
-                        permutation -= (permunreg[2]*6);
-                        permunreg[3] = permutation/2;      // 2 == 2!
-                        permutation -= (permunreg[3]*2);
-                        permunreg[4] = permutation;        // 1 == 1!
-                        permunreg[5] = 0;
-                        break;
-                    case 5:
-                        permunreg[0] = permutation/120;
-                        permutation -= (permunreg[0]*120);
-                        permunreg[1] = permutation/24;
-                        permutation -= (permunreg[1]*24);
-                        permunreg[2] = permutation/6;
-                        permutation -= (permunreg[2]*6);
-                        permunreg[3] = permutation/2;
-                        permutation -= (permunreg[3]*2);
-                        permunreg[4] = permutation;
-                        break;
-                    case 4:
-                        permunreg[0] = permutation/60;
-                        permutation -= (permunreg[0]*60);
-                        permunreg[1] = permutation/12;
-                        permutation -= (permunreg[1]*12);
-                        permunreg[2] = permutation/3;
-                        permutation -= (permunreg[2]*3);
-                        permunreg[3] = permutation;
-                        break;
-                    case 3:
-                        permunreg[0] = permutation/20;
-                        permutation -= (permunreg[0]*20);
-                        permunreg[1] = permutation/4;
-                        permutation -= (permunreg[1]*4);
-                        permunreg[2] = permutation;
-                        break;
-                    case 2:
-                        permunreg[0] = permutation/5;
-                        permutation -= (permunreg[0]*5);
-                        permunreg[1] = permutation;
-                        break;
-                    case 1:
-                        permunreg[0] = permutation;
-                        break;
-                }
-                
-                // Decode the Lehmer code for this permutation of
-                // the registers v. http://en.wikipedia.org/wiki/Lehmer_code
-
-                int registers[6];
-                bool used[7] = { false, false, false, false, false, false, false };
-                for (int i = 0; i < register_count; i++)
-                {
-                    int renum = 0;
-                    for (int j = 1; j < 7; j++)
-                    {
-                        if (used[j] == false)
-                        {
-                            if (renum == permunreg[i])
-                            {
-                                registers[i] = j;
-                                used[j] = true;
-                                break;
-                            }
-                            renum++;
-                        }
-                    }
-                }
-
-
-                if (mode == UNWIND_X86_MODE_STACK_IND)
-                {
-                    printf (" CFA is esp+%d ", stack_size);
-                }
-                else
-                {
-                    printf (" CFA is esp+%d ", stack_size * 4);
-                }
-
-                uint32_t saved_registers_offset = 1;
-                printf (" eip=[CFA-%d]", saved_registers_offset * 4);
-                saved_registers_offset++;
-
-                for (int i = (sizeof (registers) / sizeof (int)) - 1; i >= 0; i--)
-                {
-                    switch (registers[i])
-                    {
-                        case UNWIND_X86_REG_NONE:
-                            break;
-                        case UNWIND_X86_REG_EBX:
-                            printf (" ebx=[CFA-%d]", saved_registers_offset * 4);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_REG_ECX:
-                            printf (" ecx=[CFA-%d]", saved_registers_offset * 4);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_REG_EDX:
-                            printf (" edx=[CFA-%d]", saved_registers_offset * 4);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_REG_EDI:
-                            printf (" edi=[CFA-%d]", saved_registers_offset * 4);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_REG_ESI:
-                            printf (" esi=[CFA-%d]", saved_registers_offset * 4);
-                            saved_registers_offset++;
-                            break;
-                        case UNWIND_X86_REG_EBP:
-                            printf (" ebp=[CFA-%d]", saved_registers_offset * 4);
-                            saved_registers_offset++;
-                            break;
-                    }
-                }
+      // Decode the Lehmer code for this permutation of
+      // the registers v. http://en.wikipedia.org/wiki/Lehmer_code
 
-            }
+      int registers[6];
+      bool used[7] = {false, false, false, false, false, false, false};
+      for (int i = 0; i < register_count; i++) {
+        int renum = 0;
+        for (int j = 1; j < 7; j++) {
+          if (used[j] == false) {
+            if (renum == permunreg[i]) {
+              registers[i] = j;
+              used[j] = true;
+              break;
+            }
+            renum++;
+          }
+        }
+      }
+
+      if (mode == UNWIND_X86_64_MODE_STACK_IND) {
+        printf(" CFA is rsp+%d ", stack_size);
+      } else {
+        printf(" CFA is rsp+%d ", stack_size * 8);
+      }
+
+      uint32_t saved_registers_offset = 1;
+      printf(" rip=[CFA-%d]", saved_registers_offset * 8);
+      saved_registers_offset++;
+
+      for (int i = (sizeof(registers) / sizeof(int)) - 1; i >= 0; i--) {
+        switch (registers[i]) {
+        case UNWIND_X86_64_REG_NONE:
+          break;
+        case UNWIND_X86_64_REG_RBX:
+          printf(" rbx=[CFA-%d]", saved_registers_offset * 8);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_64_REG_R12:
+          printf(" r12=[CFA-%d]", saved_registers_offset * 8);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_64_REG_R13:
+          printf(" r13=[CFA-%d]", saved_registers_offset * 8);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_64_REG_R14:
+          printf(" r14=[CFA-%d]", saved_registers_offset * 8);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_64_REG_R15:
+          printf(" r15=[CFA-%d]", saved_registers_offset * 8);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_64_REG_RBP:
+          printf(" rbp=[CFA-%d]", saved_registers_offset * 8);
+          saved_registers_offset++;
+          break;
+        }
+      }
+    }
+
+  } break;
+
+  case UNWIND_X86_64_MODE_DWARF: {
+    uint32_t dwarf_offset = encoding & UNWIND_X86_DWARF_SECTION_OFFSET;
+    printf(
+        "DWARF unwind instructions: FDE at offset %d (file address 0x%" PRIx64
+        ")",
+        dwarf_offset, dwarf_offset + baton.eh_section_file_address);
+  } break;
+
+  case 0: {
+    printf(" no unwind information");
+  } break;
+  }
+}
 
-        }
+void print_encoding_i386(struct baton baton, uint8_t *function_start,
+                         uint32_t encoding) {
+  int mode = encoding & UNWIND_X86_MODE_MASK;
+  switch (mode) {
+  case UNWIND_X86_MODE_EBP_FRAME: {
+    printf("frame func: CFA is ebp+%d ", 8);
+    printf(" eip=[CFA-4] ebp=[CFA-8]");
+    uint32_t saved_registers_offset =
+        EXTRACT_BITS(encoding, UNWIND_X86_EBP_FRAME_OFFSET);
+
+    uint32_t saved_registers_locations =
+        EXTRACT_BITS(encoding, UNWIND_X86_EBP_FRAME_REGISTERS);
+
+    saved_registers_offset += 2;
+
+    for (int i = 0; i < 5; i++) {
+      switch (saved_registers_locations & 0x7) {
+      case UNWIND_X86_REG_NONE:
         break;
-
-        case UNWIND_X86_MODE_DWARF:
-        {
-            uint32_t dwarf_offset = encoding & UNWIND_X86_DWARF_SECTION_OFFSET;
-            printf ("DWARF unwind instructions: FDE at offset %d (file address 0x%" PRIx64 ")",
-                    dwarf_offset, dwarf_offset + baton.eh_section_file_address);
-        }
+      case UNWIND_X86_REG_EBX:
+        printf(" ebx=[CFA-%d]", saved_registers_offset * 4);
         break;
-
-        case 0:
-        {
-            printf (" no unwind information");
-        }
+      case UNWIND_X86_REG_ECX:
+        printf(" ecx=[CFA-%d]", saved_registers_offset * 4);
         break;
-    }
-}
-
-void
-print_encoding_arm64 (struct baton baton, uint8_t *function_start, uint32_t encoding)
-{
-    const int wordsize = 8;
-    int mode = encoding & UNWIND_ARM64_MODE_MASK;
-    switch (mode)
-    {
-        case UNWIND_ARM64_MODE_FRAME:
-        {
-            printf ("frame func: CFA is fp+%d ", 16);
-            printf (" pc=[CFA-8] fp=[CFA-16]");
-            int reg_pairs_saved_count = 1;
-            uint32_t saved_register_bits = encoding & 0xfff;
-            if (saved_register_bits & UNWIND_ARM64_FRAME_X19_X20_PAIR)
-            {
-                int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
-                cfa_offset -= wordsize;
-                printf (" x19=[CFA%d]", cfa_offset);
-                cfa_offset -= wordsize;
-                printf (" x20=[CFA%d]", cfa_offset);
-                reg_pairs_saved_count++;
-            }
-            if (saved_register_bits & UNWIND_ARM64_FRAME_X21_X22_PAIR)
-            {
-                int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
-                cfa_offset -= wordsize;
-                printf (" x21=[CFA%d]", cfa_offset);
-                cfa_offset -= wordsize;
-                printf (" x22=[CFA%d]", cfa_offset);
-                reg_pairs_saved_count++;
-            }
-            if (saved_register_bits & UNWIND_ARM64_FRAME_X23_X24_PAIR)
-            {
-                int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
-                cfa_offset -= wordsize;
-                printf (" x23=[CFA%d]", cfa_offset);
-                cfa_offset -= wordsize;
-                printf (" x24=[CFA%d]", cfa_offset);
-                reg_pairs_saved_count++;
-            }
-            if (saved_register_bits & UNWIND_ARM64_FRAME_X25_X26_PAIR)
-            {
-                int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
-                cfa_offset -= wordsize;
-                printf (" x25=[CFA%d]", cfa_offset);
-                cfa_offset -= wordsize;
-                printf (" x26=[CFA%d]", cfa_offset);
-                reg_pairs_saved_count++;
-            }
-            if (saved_register_bits & UNWIND_ARM64_FRAME_X27_X28_PAIR)
-            {
-                int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
-                cfa_offset -= wordsize;
-                printf (" x27=[CFA%d]", cfa_offset);
-                cfa_offset -= wordsize;
-                printf (" x28=[CFA%d]", cfa_offset);
-                reg_pairs_saved_count++;
-            }
-            if (saved_register_bits & UNWIND_ARM64_FRAME_D8_D9_PAIR)
-            {
-                int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
-                cfa_offset -= wordsize;
-                printf (" d8=[CFA%d]", cfa_offset);
-                cfa_offset -= wordsize;
-                printf (" d9=[CFA%d]", cfa_offset);
-                reg_pairs_saved_count++;
-            }
-            if (saved_register_bits & UNWIND_ARM64_FRAME_D10_D11_PAIR)
-            {
-                int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
-                cfa_offset -= wordsize;
-                printf (" d10=[CFA%d]", cfa_offset);
-                cfa_offset -= wordsize;
-                printf (" d11=[CFA%d]", cfa_offset);
-                reg_pairs_saved_count++;
-            }
-            if (saved_register_bits & UNWIND_ARM64_FRAME_D12_D13_PAIR)
-            {
-                int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
-                cfa_offset -= wordsize;
-                printf (" d12=[CFA%d]", cfa_offset);
-                cfa_offset -= wordsize;
-                printf (" d13=[CFA%d]", cfa_offset);
-                reg_pairs_saved_count++;
-            }
-            if (saved_register_bits & UNWIND_ARM64_FRAME_D14_D15_PAIR)
-            {
-                int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
-                cfa_offset -= wordsize;
-                printf (" d14=[CFA%d]", cfa_offset);
-                cfa_offset -= wordsize;
-                printf (" d15=[CFA%d]", cfa_offset);
-                reg_pairs_saved_count++;
-            }
-
-        }
+      case UNWIND_X86_REG_EDX:
+        printf(" edx=[CFA-%d]", saved_registers_offset * 4);
         break;
-
-        case UNWIND_ARM64_MODE_FRAMELESS:
-        {
-            uint32_t stack_size = encoding & UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK;
-            printf ("frameless function: stack size %d ", stack_size * 16);
-
-        }
+      case UNWIND_X86_REG_EDI:
+        printf(" edi=[CFA-%d]", saved_registers_offset * 4);
         break;
-
-        case UNWIND_ARM64_MODE_DWARF:
-        {
-            uint32_t dwarf_offset = encoding & UNWIND_ARM64_DWARF_SECTION_OFFSET;
-            printf ("DWARF unwind instructions: FDE at offset %d (file address 0x%" PRIx64 ")",
-                    dwarf_offset, dwarf_offset + baton.eh_section_file_address);
-        }
+      case UNWIND_X86_REG_ESI:
+        printf(" esi=[CFA-%d]", saved_registers_offset * 4);
         break;
-
-        case 0:
-        {
-            printf (" no unwind information");
-        }
+      }
+      saved_registers_offset--;
+      saved_registers_locations >>= 3;
+    }
+  } break;
+
+  case UNWIND_X86_MODE_STACK_IND:
+  case UNWIND_X86_MODE_STACK_IMMD: {
+    uint32_t stack_size =
+        EXTRACT_BITS(encoding, UNWIND_X86_FRAMELESS_STACK_SIZE);
+    uint32_t register_count =
+        EXTRACT_BITS(encoding, UNWIND_X86_FRAMELESS_STACK_REG_COUNT);
+    uint32_t permutation =
+        EXTRACT_BITS(encoding, UNWIND_X86_FRAMELESS_STACK_REG_PERMUTATION);
+
+    if (mode == UNWIND_X86_MODE_STACK_IND && function_start) {
+      uint32_t stack_adjust =
+          EXTRACT_BITS(encoding, UNWIND_X86_FRAMELESS_STACK_ADJUST);
+
+      // offset into the function instructions; 0 == beginning of first
+      // instruction
+      uint32_t offset_to_subl_insn =
+          EXTRACT_BITS(encoding, UNWIND_X86_FRAMELESS_STACK_SIZE);
+
+      stack_size = *((uint32_t *)(function_start + offset_to_subl_insn));
+
+      stack_size += stack_adjust * 4;
+
+      printf("large stack ");
+    }
+
+    if (mode == UNWIND_X86_MODE_STACK_IND) {
+      printf("frameless function: stack size %d, register count %d ",
+             stack_size, register_count);
+    } else {
+      printf("frameless function: stack size %d, register count %d ",
+             stack_size * 4, register_count);
+    }
+
+    if (register_count == 0) {
+      printf(" no registers saved");
+    } else {
+
+      // We need to include (up to) 6 registers in 10 bits.
+      // That would be 18 bits if we just used 3 bits per reg to indicate
+      // the order they're saved on the stack.
+      //
+      // This is done with Lehmer code permutation, e.g. see
+      // http://stackoverflow.com/questions/1506078/fast-permutation-number-permutation-mapping-algorithms
+      int permunreg[6];
+
+      // This decodes the variable-base number in the 10 bits
+      // and gives us the Lehmer code sequence which can then
+      // be decoded.
+
+      switch (register_count) {
+      case 6:
+        permunreg[0] = permutation / 120; // 120 == 5!
+        permutation -= (permunreg[0] * 120);
+        permunreg[1] = permutation / 24; // 24 == 4!
+        permutation -= (permunreg[1] * 24);
+        permunreg[2] = permutation / 6; // 6 == 3!
+        permutation -= (permunreg[2] * 6);
+        permunreg[3] = permutation / 2; // 2 == 2!
+        permutation -= (permunreg[3] * 2);
+        permunreg[4] = permutation; // 1 == 1!
+        permunreg[5] = 0;
         break;
-    }
-}
-
-void
-print_encoding_armv7 (struct baton baton, uint8_t *function_start, uint32_t encoding)
-{
-    const int wordsize = 4;
-    int mode = encoding & UNWIND_ARM_MODE_MASK;
-    switch (mode)
-    {
-        case UNWIND_ARM_MODE_FRAME_D:
-        case UNWIND_ARM_MODE_FRAME:
-        {
-            int stack_adjust = EXTRACT_BITS (encoding, UNWIND_ARM_FRAME_STACK_ADJUST_MASK) * wordsize;
-
-            printf ("frame func: CFA is fp+%d ", (2 * wordsize) + stack_adjust);
-            int cfa_offset = -stack_adjust;
-
-            cfa_offset -= wordsize;
-            printf (" pc=[CFA%d]", cfa_offset);
-            cfa_offset -= wordsize;
-            printf (" fp=[CFA%d]", cfa_offset);
-
-            uint32_t saved_register_bits = encoding & 0xff;
-            if (saved_register_bits & UNWIND_ARM_FRAME_FIRST_PUSH_R6)
-            {
-                cfa_offset -= wordsize;
-                printf (" r6=[CFA%d]", cfa_offset);
-            }
-            if (saved_register_bits & UNWIND_ARM_FRAME_FIRST_PUSH_R5)
-            {
-                cfa_offset -= wordsize;
-                printf (" r5=[CFA%d]", cfa_offset);
-            }
-            if (saved_register_bits & UNWIND_ARM_FRAME_FIRST_PUSH_R4)
-            {
-                cfa_offset -= wordsize;
-                printf (" r4=[CFA%d]", cfa_offset);
-            }
-            if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R12)
-            {
-                cfa_offset -= wordsize;
-                printf (" r12=[CFA%d]", cfa_offset);
-            }
-            if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R11)
-            {
-                cfa_offset -= wordsize;
-                printf (" r11=[CFA%d]", cfa_offset);
-            }
-            if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R10)
-            {
-                cfa_offset -= wordsize;
-                printf (" r10=[CFA%d]", cfa_offset);
-            }
-            if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R9)
-            {
-                cfa_offset -= wordsize;
-                printf (" r9=[CFA%d]", cfa_offset);
-            }
-            if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R8)
-            {
-                cfa_offset -= wordsize;
-                printf (" r8=[CFA%d]", cfa_offset);
-            }
-
-            if (mode == UNWIND_ARM_MODE_FRAME_D)
-            {
-                uint32_t d_reg_bits = EXTRACT_BITS (encoding, UNWIND_ARM_FRAME_D_REG_COUNT_MASK);
-                switch (d_reg_bits)
-                {
-                    case 0:
-                        // vpush {d8}
-                        cfa_offset -= 8;
-                        printf (" d8=[CFA%d]", cfa_offset);
-                        break;
-                    case 1:
-                        // vpush {d10}
-                        // vpush {d8}
-                        cfa_offset -= 8;
-                        printf (" d10=[CFA%d]", cfa_offset);
-                        cfa_offset -= 8;
-                        printf (" d8=[CFA%d]", cfa_offset);
-                        break;
-                    case 2:
-                        // vpush {d12}
-                        // vpush {d10}
-                        // vpush {d8}
-                        cfa_offset -= 8;
-                        printf (" d12=[CFA%d]", cfa_offset);
-                        cfa_offset -= 8;
-                        printf (" d10=[CFA%d]", cfa_offset);
-                        cfa_offset -= 8;
-                        printf (" d8=[CFA%d]", cfa_offset);
-                        break;
-                    case 3:
-                        // vpush {d14}
-                        // vpush {d12}
-                        // vpush {d10}
-                        // vpush {d8}
-                        cfa_offset -= 8;
-                        printf (" d14=[CFA%d]", cfa_offset);
-                        cfa_offset -= 8;
-                        printf (" d12=[CFA%d]", cfa_offset);
-                        cfa_offset -= 8;
-                        printf (" d10=[CFA%d]", cfa_offset);
-                        cfa_offset -= 8;
-                        printf (" d8=[CFA%d]", cfa_offset);
-                        break;
-                    case 4:
-                        // vpush {d14}
-                        // vpush {d12}
-                        // sp = (sp - 24) & (-16);
-                        // vst   {d8, d9, d10}
-                        printf (" d14, d12, d10, d9, d8");
-                        break;
-                    case 5:
-                        // vpush {d14}
-                        // sp = (sp - 40) & (-16);
-                        // vst   {d8, d9, d10, d11}
-                        // vst   {d12}
-                        printf (" d14, d11, d10, d9, d8, d12");
-                        break;
-                    case 6:
-                        // sp = (sp - 56) & (-16);
-                        // vst   {d8, d9, d10, d11}
-                        // vst   {d12, d13, d14}
-                        printf (" d11, d10, d9, d8, d14, d13, d12");
-                        break;
-                    case 7:
-                        // sp = (sp - 64) & (-16);
-                        // vst   {d8, d9, d10, d11}
-                        // vst   {d12, d13, d14, d15}
-                        printf (" d11, d10, d9, d8, d15, d14, d13, d12");
-                        break;
-                }
-            }
-        }
+      case 5:
+        permunreg[0] = permutation / 120;
+        permutation -= (permunreg[0] * 120);
+        permunreg[1] = permutation / 24;
+        permutation -= (permunreg[1] * 24);
+        permunreg[2] = permutation / 6;
+        permutation -= (permunreg[2] * 6);
+        permunreg[3] = permutation / 2;
+        permutation -= (permunreg[3] * 2);
+        permunreg[4] = permutation;
         break;
-
-        case UNWIND_ARM_MODE_DWARF:
-        {
-            uint32_t dwarf_offset = encoding & UNWIND_ARM_DWARF_SECTION_OFFSET;
-            printf ("DWARF unwind instructions: FDE at offset %d (file address 0x%" PRIx64 ")",
-                    dwarf_offset, dwarf_offset + baton.eh_section_file_address);
-        }
+      case 4:
+        permunreg[0] = permutation / 60;
+        permutation -= (permunreg[0] * 60);
+        permunreg[1] = permutation / 12;
+        permutation -= (permunreg[1] * 12);
+        permunreg[2] = permutation / 3;
+        permutation -= (permunreg[2] * 3);
+        permunreg[3] = permutation;
         break;
-
-        case 0:
-        {
-            printf (" no unwind information");
-        }
+      case 3:
+        permunreg[0] = permutation / 20;
+        permutation -= (permunreg[0] * 20);
+        permunreg[1] = permutation / 4;
+        permutation -= (permunreg[1] * 4);
+        permunreg[2] = permutation;
         break;
-    }
-}
-
-
-
+      case 2:
+        permunreg[0] = permutation / 5;
+        permutation -= (permunreg[0] * 5);
+        permunreg[1] = permutation;
+        break;
+      case 1:
+        permunreg[0] = permutation;
+        break;
+      }
 
-void print_encoding (struct baton baton, uint8_t *function_start, uint32_t encoding)
-{
+      // Decode the Lehmer code for this permutation of
+      // the registers v. http://en.wikipedia.org/wiki/Lehmer_code
 
-    if (baton.cputype == CPU_TYPE_X86_64)
-    {
-        print_encoding_x86_64 (baton, function_start, encoding);
-    }
-    else if (baton.cputype == CPU_TYPE_I386)
-    {
-        print_encoding_i386 (baton, function_start, encoding);
-    }
-    else if (baton.cputype == CPU_TYPE_ARM64)
-    {
-        print_encoding_arm64 (baton, function_start, encoding);
-    }
-    else if (baton.cputype == CPU_TYPE_ARM)
-    {
-        print_encoding_armv7 (baton, function_start, encoding);
-    }
-    else
-    {
-        printf (" -- unsupported encoding arch -- ");
-    }
+      int registers[6];
+      bool used[7] = {false, false, false, false, false, false, false};
+      for (int i = 0; i < register_count; i++) {
+        int renum = 0;
+        for (int j = 1; j < 7; j++) {
+          if (used[j] == false) {
+            if (renum == permunreg[i]) {
+              registers[i] = j;
+              used[j] = true;
+              break;
+            }
+            renum++;
+          }
+        }
+      }
+
+      if (mode == UNWIND_X86_MODE_STACK_IND) {
+        printf(" CFA is esp+%d ", stack_size);
+      } else {
+        printf(" CFA is esp+%d ", stack_size * 4);
+      }
+
+      uint32_t saved_registers_offset = 1;
+      printf(" eip=[CFA-%d]", saved_registers_offset * 4);
+      saved_registers_offset++;
+
+      for (int i = (sizeof(registers) / sizeof(int)) - 1; i >= 0; i--) {
+        switch (registers[i]) {
+        case UNWIND_X86_REG_NONE:
+          break;
+        case UNWIND_X86_REG_EBX:
+          printf(" ebx=[CFA-%d]", saved_registers_offset * 4);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_REG_ECX:
+          printf(" ecx=[CFA-%d]", saved_registers_offset * 4);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_REG_EDX:
+          printf(" edx=[CFA-%d]", saved_registers_offset * 4);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_REG_EDI:
+          printf(" edi=[CFA-%d]", saved_registers_offset * 4);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_REG_ESI:
+          printf(" esi=[CFA-%d]", saved_registers_offset * 4);
+          saved_registers_offset++;
+          break;
+        case UNWIND_X86_REG_EBP:
+          printf(" ebp=[CFA-%d]", saved_registers_offset * 4);
+          saved_registers_offset++;
+          break;
+        }
+      }
+    }
+
+  } break;
+
+  case UNWIND_X86_MODE_DWARF: {
+    uint32_t dwarf_offset = encoding & UNWIND_X86_DWARF_SECTION_OFFSET;
+    printf(
+        "DWARF unwind instructions: FDE at offset %d (file address 0x%" PRIx64
+        ")",
+        dwarf_offset, dwarf_offset + baton.eh_section_file_address);
+  } break;
+
+  case 0: {
+    printf(" no unwind information");
+  } break;
+  }
 }
 
-void
-print_function_encoding (struct baton baton, uint32_t idx, uint32_t encoding, uint32_t entry_encoding_index, uint32_t entry_func_offset)
-{
-
-    char *entry_encoding_index_str = "";
-    if (entry_encoding_index != (uint32_t) -1)
-    {
-        asprintf (&entry_encoding_index_str, ", encoding #%d", entry_encoding_index);
-    }
-    else
-    {
-        asprintf (&entry_encoding_index_str, "");
-    }
-
-    uint64_t file_address = baton.first_level_index_entry.functionOffset + entry_func_offset + baton.text_segment_vmaddr;
-
-    if (baton.cputype == CPU_TYPE_ARM)
-        file_address = file_address & ~1;
-
-    printf ("    func [%d] offset %d (file addr 0x%" PRIx64 ")%s, encoding is 0x%x", 
-            idx, entry_func_offset, 
-            file_address,
-            entry_encoding_index_str, 
-            encoding);
-
-    struct symbol *symbol = NULL;
-    for (int i = 0; i < baton.symbols_count; i++)
-    {
-        if (i == baton.symbols_count - 1 && baton.symbols[i].file_address <= file_address)
-        {
-            symbol = &(baton.symbols[i]);
-            break;
-        }
-        else
-        {
-            if (baton.symbols[i].file_address <= file_address && baton.symbols[i + 1].file_address > file_address)
-            {
-                symbol = &(baton.symbols[i]);
-                break;
-            }
-        }
-    }
+void print_encoding_arm64(struct baton baton, uint8_t *function_start,
+                          uint32_t encoding) {
+  const int wordsize = 8;
+  int mode = encoding & UNWIND_ARM64_MODE_MASK;
+  switch (mode) {
+  case UNWIND_ARM64_MODE_FRAME: {
+    printf("frame func: CFA is fp+%d ", 16);
+    printf(" pc=[CFA-8] fp=[CFA-16]");
+    int reg_pairs_saved_count = 1;
+    uint32_t saved_register_bits = encoding & 0xfff;
+    if (saved_register_bits & UNWIND_ARM64_FRAME_X19_X20_PAIR) {
+      int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
+      cfa_offset -= wordsize;
+      printf(" x19=[CFA%d]", cfa_offset);
+      cfa_offset -= wordsize;
+      printf(" x20=[CFA%d]", cfa_offset);
+      reg_pairs_saved_count++;
+    }
+    if (saved_register_bits & UNWIND_ARM64_FRAME_X21_X22_PAIR) {
+      int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
+      cfa_offset -= wordsize;
+      printf(" x21=[CFA%d]", cfa_offset);
+      cfa_offset -= wordsize;
+      printf(" x22=[CFA%d]", cfa_offset);
+      reg_pairs_saved_count++;
+    }
+    if (saved_register_bits & UNWIND_ARM64_FRAME_X23_X24_PAIR) {
+      int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
+      cfa_offset -= wordsize;
+      printf(" x23=[CFA%d]", cfa_offset);
+      cfa_offset -= wordsize;
+      printf(" x24=[CFA%d]", cfa_offset);
+      reg_pairs_saved_count++;
+    }
+    if (saved_register_bits & UNWIND_ARM64_FRAME_X25_X26_PAIR) {
+      int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
+      cfa_offset -= wordsize;
+      printf(" x25=[CFA%d]", cfa_offset);
+      cfa_offset -= wordsize;
+      printf(" x26=[CFA%d]", cfa_offset);
+      reg_pairs_saved_count++;
+    }
+    if (saved_register_bits & UNWIND_ARM64_FRAME_X27_X28_PAIR) {
+      int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
+      cfa_offset -= wordsize;
+      printf(" x27=[CFA%d]", cfa_offset);
+      cfa_offset -= wordsize;
+      printf(" x28=[CFA%d]", cfa_offset);
+      reg_pairs_saved_count++;
+    }
+    if (saved_register_bits & UNWIND_ARM64_FRAME_D8_D9_PAIR) {
+      int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
+      cfa_offset -= wordsize;
+      printf(" d8=[CFA%d]", cfa_offset);
+      cfa_offset -= wordsize;
+      printf(" d9=[CFA%d]", cfa_offset);
+      reg_pairs_saved_count++;
+    }
+    if (saved_register_bits & UNWIND_ARM64_FRAME_D10_D11_PAIR) {
+      int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
+      cfa_offset -= wordsize;
+      printf(" d10=[CFA%d]", cfa_offset);
+      cfa_offset -= wordsize;
+      printf(" d11=[CFA%d]", cfa_offset);
+      reg_pairs_saved_count++;
+    }
+    if (saved_register_bits & UNWIND_ARM64_FRAME_D12_D13_PAIR) {
+      int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
+      cfa_offset -= wordsize;
+      printf(" d12=[CFA%d]", cfa_offset);
+      cfa_offset -= wordsize;
+      printf(" d13=[CFA%d]", cfa_offset);
+      reg_pairs_saved_count++;
+    }
+    if (saved_register_bits & UNWIND_ARM64_FRAME_D14_D15_PAIR) {
+      int cfa_offset = reg_pairs_saved_count * -2 * wordsize;
+      cfa_offset -= wordsize;
+      printf(" d14=[CFA%d]", cfa_offset);
+      cfa_offset -= wordsize;
+      printf(" d15=[CFA%d]", cfa_offset);
+      reg_pairs_saved_count++;
+    }
+
+  } break;
+
+  case UNWIND_ARM64_MODE_FRAMELESS: {
+    uint32_t stack_size = encoding & UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK;
+    printf("frameless function: stack size %d ", stack_size * 16);
+
+  } break;
+
+  case UNWIND_ARM64_MODE_DWARF: {
+    uint32_t dwarf_offset = encoding & UNWIND_ARM64_DWARF_SECTION_OFFSET;
+    printf(
+        "DWARF unwind instructions: FDE at offset %d (file address 0x%" PRIx64
+        ")",
+        dwarf_offset, dwarf_offset + baton.eh_section_file_address);
+  } break;
+
+  case 0: {
+    printf(" no unwind information");
+  } break;
+  }
+}
 
-    printf ("\n         ");
-    if (symbol)
-    {
-        int offset = file_address - symbol->file_address;
-
-        // FIXME this is a poor heuristic - if we're greater than 16 bytes past the
-        // start of the function, this is the unwind info for a stripped function.
-        // In reality the compact unwind entry may not line up exactly with the 
-        // function bounds.
-        if (offset >= 0)
-        {
-            printf ("name: %s", symbol->name);
-            if (offset > 0)
-            {
-                printf (" + %d", offset);
-            }
-        }
-        printf ("\n         ");
+void print_encoding_armv7(struct baton baton, uint8_t *function_start,
+                          uint32_t encoding) {
+  const int wordsize = 4;
+  int mode = encoding & UNWIND_ARM_MODE_MASK;
+  switch (mode) {
+  case UNWIND_ARM_MODE_FRAME_D:
+  case UNWIND_ARM_MODE_FRAME: {
+    int stack_adjust =
+        EXTRACT_BITS(encoding, UNWIND_ARM_FRAME_STACK_ADJUST_MASK) * wordsize;
+
+    printf("frame func: CFA is fp+%d ", (2 * wordsize) + stack_adjust);
+    int cfa_offset = -stack_adjust;
+
+    cfa_offset -= wordsize;
+    printf(" pc=[CFA%d]", cfa_offset);
+    cfa_offset -= wordsize;
+    printf(" fp=[CFA%d]", cfa_offset);
+
+    uint32_t saved_register_bits = encoding & 0xff;
+    if (saved_register_bits & UNWIND_ARM_FRAME_FIRST_PUSH_R6) {
+      cfa_offset -= wordsize;
+      printf(" r6=[CFA%d]", cfa_offset);
+    }
+    if (saved_register_bits & UNWIND_ARM_FRAME_FIRST_PUSH_R5) {
+      cfa_offset -= wordsize;
+      printf(" r5=[CFA%d]", cfa_offset);
+    }
+    if (saved_register_bits & UNWIND_ARM_FRAME_FIRST_PUSH_R4) {
+      cfa_offset -= wordsize;
+      printf(" r4=[CFA%d]", cfa_offset);
+    }
+    if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R12) {
+      cfa_offset -= wordsize;
+      printf(" r12=[CFA%d]", cfa_offset);
+    }
+    if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R11) {
+      cfa_offset -= wordsize;
+      printf(" r11=[CFA%d]", cfa_offset);
+    }
+    if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R10) {
+      cfa_offset -= wordsize;
+      printf(" r10=[CFA%d]", cfa_offset);
+    }
+    if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R9) {
+      cfa_offset -= wordsize;
+      printf(" r9=[CFA%d]", cfa_offset);
+    }
+    if (saved_register_bits & UNWIND_ARM_FRAME_SECOND_PUSH_R8) {
+      cfa_offset -= wordsize;
+      printf(" r8=[CFA%d]", cfa_offset);
+    }
+
+    if (mode == UNWIND_ARM_MODE_FRAME_D) {
+      uint32_t d_reg_bits =
+          EXTRACT_BITS(encoding, UNWIND_ARM_FRAME_D_REG_COUNT_MASK);
+      switch (d_reg_bits) {
+      case 0:
+        // vpush {d8}
+        cfa_offset -= 8;
+        printf(" d8=[CFA%d]", cfa_offset);
+        break;
+      case 1:
+        // vpush {d10}
+        // vpush {d8}
+        cfa_offset -= 8;
+        printf(" d10=[CFA%d]", cfa_offset);
+        cfa_offset -= 8;
+        printf(" d8=[CFA%d]", cfa_offset);
+        break;
+      case 2:
+        // vpush {d12}
+        // vpush {d10}
+        // vpush {d8}
+        cfa_offset -= 8;
+        printf(" d12=[CFA%d]", cfa_offset);
+        cfa_offset -= 8;
+        printf(" d10=[CFA%d]", cfa_offset);
+        cfa_offset -= 8;
+        printf(" d8=[CFA%d]", cfa_offset);
+        break;
+      case 3:
+        // vpush {d14}
+        // vpush {d12}
+        // vpush {d10}
+        // vpush {d8}
+        cfa_offset -= 8;
+        printf(" d14=[CFA%d]", cfa_offset);
+        cfa_offset -= 8;
+        printf(" d12=[CFA%d]", cfa_offset);
+        cfa_offset -= 8;
+        printf(" d10=[CFA%d]", cfa_offset);
+        cfa_offset -= 8;
+        printf(" d8=[CFA%d]", cfa_offset);
+        break;
+      case 4:
+        // vpush {d14}
+        // vpush {d12}
+        // sp = (sp - 24) & (-16);
+        // vst   {d8, d9, d10}
+        printf(" d14, d12, d10, d9, d8");
+        break;
+      case 5:
+        // vpush {d14}
+        // sp = (sp - 40) & (-16);
+        // vst   {d8, d9, d10, d11}
+        // vst   {d12}
+        printf(" d14, d11, d10, d9, d8, d12");
+        break;
+      case 6:
+        // sp = (sp - 56) & (-16);
+        // vst   {d8, d9, d10, d11}
+        // vst   {d12, d13, d14}
+        printf(" d11, d10, d9, d8, d14, d13, d12");
+        break;
+      case 7:
+        // sp = (sp - 64) & (-16);
+        // vst   {d8, d9, d10, d11}
+        // vst   {d12, d13, d14, d15}
+        printf(" d11, d10, d9, d8, d15, d14, d13, d12");
+        break;
+      }
     }
+  } break;
 
-    print_encoding (baton, baton.mach_header_start + baton.first_level_index_entry.functionOffset + baton.text_section_file_offset + entry_func_offset, encoding);
-
-    bool has_lsda = encoding & UNWIND_HAS_LSDA;
-
-    if (has_lsda)
-    {
-        uint32_t func_offset = entry_func_offset + baton.first_level_index_entry.functionOffset;
-
-        int lsda_entry_number = -1;
-
-        uint32_t low = 0;
-        uint32_t high = (baton.lsda_array_end - baton.lsda_array_start) / sizeof (struct unwind_info_section_header_lsda_index_entry);
+  case UNWIND_ARM_MODE_DWARF: {
+    uint32_t dwarf_offset = encoding & UNWIND_ARM_DWARF_SECTION_OFFSET;
+    printf(
+        "DWARF unwind instructions: FDE at offset %d (file address 0x%" PRIx64
+        ")",
+        dwarf_offset, dwarf_offset + baton.eh_section_file_address);
+  } break;
+
+  case 0: {
+    printf(" no unwind information");
+  } break;
+  }
+}
 
-        while (low < high)
-        {
-            uint32_t mid = (low + high) / 2;
+void print_encoding(struct baton baton, uint8_t *function_start,
+                    uint32_t encoding) {
 
-            uint8_t *mid_lsda_entry_addr = (baton.lsda_array_start + (mid * sizeof (struct unwind_info_section_header_lsda_index_entry)));
-            struct unwind_info_section_header_lsda_index_entry mid_lsda_entry;
-            memcpy (&mid_lsda_entry, mid_lsda_entry_addr, sizeof (struct unwind_info_section_header_lsda_index_entry));
-            if (mid_lsda_entry.functionOffset == func_offset)
-            {
-                lsda_entry_number = (mid_lsda_entry_addr - baton.lsda_array_start) / sizeof (struct unwind_info_section_header_lsda_index_entry);
-                break;
-            }
-            else if (mid_lsda_entry.functionOffset < func_offset)
-            {
-                low = mid + 1;
-            }
-            else
-            {
-                high = mid;
-            }
-        }
+  if (baton.cputype == CPU_TYPE_X86_64) {
+    print_encoding_x86_64(baton, function_start, encoding);
+  } else if (baton.cputype == CPU_TYPE_I386) {
+    print_encoding_i386(baton, function_start, encoding);
+  } else if (baton.cputype == CPU_TYPE_ARM64) {
+    print_encoding_arm64(baton, function_start, encoding);
+  } else if (baton.cputype == CPU_TYPE_ARM) {
+    print_encoding_armv7(baton, function_start, encoding);
+  } else {
+    printf(" -- unsupported encoding arch -- ");
+  }
+}
 
-        if (lsda_entry_number != -1)
-        {
-            printf (", LSDA entry #%d", lsda_entry_number);
-        }
-        else
-        {
-            printf (", LSDA entry not found");
-        }
+void print_function_encoding(struct baton baton, uint32_t idx,
+                             uint32_t encoding, uint32_t entry_encoding_index,
+                             uint32_t entry_func_offset) {
+
+  char *entry_encoding_index_str = "";
+  if (entry_encoding_index != (uint32_t)-1) {
+    asprintf(&entry_encoding_index_str, ", encoding #%d", entry_encoding_index);
+  } else {
+    asprintf(&entry_encoding_index_str, "");
+  }
+
+  uint64_t file_address = baton.first_level_index_entry.functionOffset +
+                          entry_func_offset + baton.text_segment_vmaddr;
+
+  if (baton.cputype == CPU_TYPE_ARM)
+    file_address = file_address & ~1;
+
+  printf(
+      "    func [%d] offset %d (file addr 0x%" PRIx64 ")%s, encoding is 0x%x",
+      idx, entry_func_offset, file_address, entry_encoding_index_str, encoding);
+
+  struct symbol *symbol = NULL;
+  for (int i = 0; i < baton.symbols_count; i++) {
+    if (i == baton.symbols_count - 1 &&
+        baton.symbols[i].file_address <= file_address) {
+      symbol = &(baton.symbols[i]);
+      break;
+    } else {
+      if (baton.symbols[i].file_address <= file_address &&
+          baton.symbols[i + 1].file_address > file_address) {
+        symbol = &(baton.symbols[i]);
+        break;
+      }
     }
+  }
 
-    uint32_t pers_idx = EXTRACT_BITS (encoding, UNWIND_PERSONALITY_MASK);
-    if (pers_idx != 0)
-    {
-        pers_idx--;  // Change 1-based to 0-based index
-        printf (", personality entry #%d", pers_idx);
-    }
+  printf("\n         ");
+  if (symbol) {
+    int offset = file_address - symbol->file_address;
+
+    // FIXME this is a poor heuristic - if we're greater than 16 bytes past the
+    // start of the function, this is the unwind info for a stripped function.
+    // In reality the compact unwind entry may not line up exactly with the
+    // function bounds.
+    if (offset >= 0) {
+      printf("name: %s", symbol->name);
+      if (offset > 0) {
+        printf(" + %d", offset);
+      }
+    }
+    printf("\n         ");
+  }
+
+  print_encoding(baton, baton.mach_header_start +
+                            baton.first_level_index_entry.functionOffset +
+                            baton.text_section_file_offset + entry_func_offset,
+                 encoding);
+
+  bool has_lsda = encoding & UNWIND_HAS_LSDA;
+
+  if (has_lsda) {
+    uint32_t func_offset =
+        entry_func_offset + baton.first_level_index_entry.functionOffset;
+
+    int lsda_entry_number = -1;
+
+    uint32_t low = 0;
+    uint32_t high = (baton.lsda_array_end - baton.lsda_array_start) /
+                    sizeof(struct unwind_info_section_header_lsda_index_entry);
+
+    while (low < high) {
+      uint32_t mid = (low + high) / 2;
+
+      uint8_t *mid_lsda_entry_addr =
+          (baton.lsda_array_start +
+           (mid * sizeof(struct unwind_info_section_header_lsda_index_entry)));
+      struct unwind_info_section_header_lsda_index_entry mid_lsda_entry;
+      memcpy(&mid_lsda_entry, mid_lsda_entry_addr,
+             sizeof(struct unwind_info_section_header_lsda_index_entry));
+      if (mid_lsda_entry.functionOffset == func_offset) {
+        lsda_entry_number =
+            (mid_lsda_entry_addr - baton.lsda_array_start) /
+            sizeof(struct unwind_info_section_header_lsda_index_entry);
+        break;
+      } else if (mid_lsda_entry.functionOffset < func_offset) {
+        low = mid + 1;
+      } else {
+        high = mid;
+      }
+    }
+
+    if (lsda_entry_number != -1) {
+      printf(", LSDA entry #%d", lsda_entry_number);
+    } else {
+      printf(", LSDA entry not found");
+    }
+  }
+
+  uint32_t pers_idx = EXTRACT_BITS(encoding, UNWIND_PERSONALITY_MASK);
+  if (pers_idx != 0) {
+    pers_idx--; // Change 1-based to 0-based index
+    printf(", personality entry #%d", pers_idx);
+  }
 
-    printf ("\n");
+  printf("\n");
 }
 
-void
-print_second_level_index_regular (struct baton baton)
-{
-    uint8_t *page_entries = baton.compact_unwind_start + baton.first_level_index_entry.secondLevelPagesSectionOffset + baton.regular_second_level_page_header.entryPageOffset;
-    uint32_t entries_count =  baton.regular_second_level_page_header.entryCount;
-
-    uint8_t *offset = page_entries;
-
-    uint32_t idx = 0;
-    while (idx < entries_count)
-    {
-        uint32_t func_offset = *((uint32_t *) (offset));
-        uint32_t encoding = *((uint32_t *) (offset + 4)); 
-
-        // UNWIND_SECOND_LEVEL_REGULAR entries have a funcOffset which includes the 
-        // functionOffset from the containing index table already.  UNWIND_SECOND_LEVEL_COMPRESSED
-        // entries only have the offset from the containing index table functionOffset.
-        // So strip off the containing index table functionOffset value here so they can
-        // be treated the same at the lower layers.
-
-        print_function_encoding (baton, idx, encoding, (uint32_t) -1, func_offset - baton.first_level_index_entry.functionOffset);
-        idx++;
-        offset += 8;
-    }
+void print_second_level_index_regular(struct baton baton) {
+  uint8_t *page_entries =
+      baton.compact_unwind_start +
+      baton.first_level_index_entry.secondLevelPagesSectionOffset +
+      baton.regular_second_level_page_header.entryPageOffset;
+  uint32_t entries_count = baton.regular_second_level_page_header.entryCount;
+
+  uint8_t *offset = page_entries;
+
+  uint32_t idx = 0;
+  while (idx < entries_count) {
+    uint32_t func_offset = *((uint32_t *)(offset));
+    uint32_t encoding = *((uint32_t *)(offset + 4));
+
+    // UNWIND_SECOND_LEVEL_REGULAR entries have a funcOffset which includes the
+    // functionOffset from the containing index table already.
+    // UNWIND_SECOND_LEVEL_COMPRESSED
+    // entries only have the offset from the containing index table
+    // functionOffset.
+    // So strip off the containing index table functionOffset value here so they
+    // can
+    // be treated the same at the lower layers.
+
+    print_function_encoding(baton, idx, encoding, (uint32_t)-1,
+                            func_offset -
+                                baton.first_level_index_entry.functionOffset);
+    idx++;
+    offset += 8;
+  }
 }
 
-void
-print_second_level_index_compressed (struct baton baton)
-{
-    uint8_t *this_index = baton.compact_unwind_start + baton.first_level_index_entry.secondLevelPagesSectionOffset;
-    uint8_t *start_of_entries = this_index + baton.compressed_second_level_page_header.entryPageOffset;
-    uint8_t *offset = start_of_entries;
-    for (uint16_t idx = 0; idx < baton.compressed_second_level_page_header.entryCount; idx++)
-    {
-        uint32_t entry = *((uint32_t*) offset);
-        offset += 4;
-        uint32_t encoding;
-
-        uint32_t entry_encoding_index = UNWIND_INFO_COMPRESSED_ENTRY_ENCODING_INDEX (entry);
-        uint32_t entry_func_offset = UNWIND_INFO_COMPRESSED_ENTRY_FUNC_OFFSET (entry);
-
-        if (entry_encoding_index < baton.unwind_header.commonEncodingsArrayCount)
-        {
-            // encoding is in common table in section header
-            encoding = *((uint32_t*) (baton.compact_unwind_start + baton.unwind_header.commonEncodingsArraySectionOffset + (entry_encoding_index * sizeof (uint32_t))));
-        }
-        else
-        {
-            // encoding is in page specific table
-            uint32_t page_encoding_index = entry_encoding_index - baton.unwind_header.commonEncodingsArrayCount;
-            encoding = *((uint32_t*) (this_index + baton.compressed_second_level_page_header.encodingsPageOffset + (page_encoding_index * sizeof (uint32_t))));
-        }
-
-
-        print_function_encoding (baton, idx, encoding, entry_encoding_index, entry_func_offset);
-    }
+void print_second_level_index_compressed(struct baton baton) {
+  uint8_t *this_index =
+      baton.compact_unwind_start +
+      baton.first_level_index_entry.secondLevelPagesSectionOffset;
+  uint8_t *start_of_entries =
+      this_index + baton.compressed_second_level_page_header.entryPageOffset;
+  uint8_t *offset = start_of_entries;
+  for (uint16_t idx = 0;
+       idx < baton.compressed_second_level_page_header.entryCount; idx++) {
+    uint32_t entry = *((uint32_t *)offset);
+    offset += 4;
+    uint32_t encoding;
+
+    uint32_t entry_encoding_index =
+        UNWIND_INFO_COMPRESSED_ENTRY_ENCODING_INDEX(entry);
+    uint32_t entry_func_offset =
+        UNWIND_INFO_COMPRESSED_ENTRY_FUNC_OFFSET(entry);
+
+    if (entry_encoding_index < baton.unwind_header.commonEncodingsArrayCount) {
+      // encoding is in common table in section header
+      encoding =
+          *((uint32_t *)(baton.compact_unwind_start +
+                         baton.unwind_header.commonEncodingsArraySectionOffset +
+                         (entry_encoding_index * sizeof(uint32_t))));
+    } else {
+      // encoding is in page specific table
+      uint32_t page_encoding_index =
+          entry_encoding_index - baton.unwind_header.commonEncodingsArrayCount;
+      encoding = *((uint32_t *)(this_index +
+                                baton.compressed_second_level_page_header
+                                    .encodingsPageOffset +
+                                (page_encoding_index * sizeof(uint32_t))));
+    }
+
+    print_function_encoding(baton, idx, encoding, entry_encoding_index,
+                            entry_func_offset);
+  }
 }
 
-void
-print_second_level_index (struct baton baton)
-{
-    uint8_t *index_start = baton.compact_unwind_start + baton.first_level_index_entry.secondLevelPagesSectionOffset;
-
-    if ((*(uint32_t*) index_start) == UNWIND_SECOND_LEVEL_REGULAR)
-    {
-        struct unwind_info_regular_second_level_page_header header;
-        memcpy (&header, index_start, sizeof (struct unwind_info_regular_second_level_page_header));
-        printf ("  UNWIND_SECOND_LEVEL_REGULAR #%d entryPageOffset %d, entryCount %d\n", baton.current_index_table_number, header.entryPageOffset, header.entryCount);
-        baton.regular_second_level_page_header = header;
-        print_second_level_index_regular (baton);
-    }
-
-    if ((*(uint32_t*) index_start) == UNWIND_SECOND_LEVEL_COMPRESSED)
-    {
-        struct unwind_info_compressed_second_level_page_header header;
-        memcpy (&header, index_start, sizeof (struct unwind_info_compressed_second_level_page_header));
-        printf ("  UNWIND_SECOND_LEVEL_COMPRESSED #%d entryPageOffset %d, entryCount %d, encodingsPageOffset %d, encodingsCount %d\n", baton.current_index_table_number, header.entryPageOffset, header.entryCount, header.encodingsPageOffset, header.encodingsCount);
-        baton.compressed_second_level_page_header = header;
-        print_second_level_index_compressed (baton);
-    }
+void print_second_level_index(struct baton baton) {
+  uint8_t *index_start =
+      baton.compact_unwind_start +
+      baton.first_level_index_entry.secondLevelPagesSectionOffset;
+
+  if ((*(uint32_t *)index_start) == UNWIND_SECOND_LEVEL_REGULAR) {
+    struct unwind_info_regular_second_level_page_header header;
+    memcpy(&header, index_start,
+           sizeof(struct unwind_info_regular_second_level_page_header));
+    printf(
+        "  UNWIND_SECOND_LEVEL_REGULAR #%d entryPageOffset %d, entryCount %d\n",
+        baton.current_index_table_number, header.entryPageOffset,
+        header.entryCount);
+    baton.regular_second_level_page_header = header;
+    print_second_level_index_regular(baton);
+  }
+
+  if ((*(uint32_t *)index_start) == UNWIND_SECOND_LEVEL_COMPRESSED) {
+    struct unwind_info_compressed_second_level_page_header header;
+    memcpy(&header, index_start,
+           sizeof(struct unwind_info_compressed_second_level_page_header));
+    printf("  UNWIND_SECOND_LEVEL_COMPRESSED #%d entryPageOffset %d, "
+           "entryCount %d, encodingsPageOffset %d, encodingsCount %d\n",
+           baton.current_index_table_number, header.entryPageOffset,
+           header.entryCount, header.encodingsPageOffset,
+           header.encodingsCount);
+    baton.compressed_second_level_page_header = header;
+    print_second_level_index_compressed(baton);
+  }
 }
 
-
-void
-print_index_sections (struct baton baton)
-{    
-    uint8_t *index_section_offset = baton.compact_unwind_start + baton.unwind_header.indexSectionOffset;
-    uint32_t index_count = baton.unwind_header.indexCount;
-
-    uint32_t cur_idx = 0;
-
-    uint8_t *offset = index_section_offset;
-    while (cur_idx < index_count)
-    {
-        baton.current_index_table_number = cur_idx;
-        struct unwind_info_section_header_index_entry index_entry;
-        memcpy (&index_entry, offset, sizeof (struct unwind_info_section_header_index_entry));
-        printf ("index section #%d: functionOffset %d, secondLevelPagesSectionOffset %d, lsdaIndexArraySectionOffset %d\n", cur_idx, index_entry.functionOffset, index_entry.secondLevelPagesSectionOffset, index_entry.lsdaIndexArraySectionOffset);
-
-        // secondLevelPagesSectionOffset == 0 means this is a sentinel entry
-        if (index_entry.secondLevelPagesSectionOffset != 0)
-        {
-            struct unwind_info_section_header_index_entry next_index_entry;
-            memcpy (&next_index_entry, offset + sizeof (struct unwind_info_section_header_index_entry), sizeof (struct unwind_info_section_header_index_entry));
-
-            baton.lsda_array_start = baton.compact_unwind_start + index_entry.lsdaIndexArraySectionOffset;
-            baton.lsda_array_end = baton.compact_unwind_start + next_index_entry.lsdaIndexArraySectionOffset;
-
-            uint8_t *lsda_entry_offset = baton.lsda_array_start;
-            uint32_t lsda_count = 0;
-            while (lsda_entry_offset < baton.lsda_array_end)
-            {
-                struct unwind_info_section_header_lsda_index_entry lsda_entry;
-                memcpy (&lsda_entry, lsda_entry_offset, sizeof (struct unwind_info_section_header_lsda_index_entry));
-                uint64_t function_file_address = baton.first_level_index_entry.functionOffset + lsda_entry.functionOffset + baton.text_segment_vmaddr;
-                uint64_t lsda_file_address = lsda_entry.lsdaOffset + baton.text_segment_vmaddr;
-                printf ("    LSDA [%d] functionOffset %d (%d) (file address 0x%" PRIx64 "), lsdaOffset %d (file address 0x%" PRIx64 ")\n", 
-                        lsda_count, lsda_entry.functionOffset, 
-                        lsda_entry.functionOffset - index_entry.functionOffset, 
-                        function_file_address,
-                        lsda_entry.lsdaOffset, lsda_file_address);
-                lsda_count++;
-                lsda_entry_offset += sizeof (struct unwind_info_section_header_lsda_index_entry);
-            }
-
-            printf ("\n");
-
-            baton.first_level_index_entry = index_entry;
-            print_second_level_index (baton);
-        }
-
-        printf ("\n");
-
-        cur_idx++;
-        offset += sizeof (struct unwind_info_section_header_index_entry);
-    }
+void print_index_sections(struct baton baton) {
+  uint8_t *index_section_offset =
+      baton.compact_unwind_start + baton.unwind_header.indexSectionOffset;
+  uint32_t index_count = baton.unwind_header.indexCount;
+
+  uint32_t cur_idx = 0;
+
+  uint8_t *offset = index_section_offset;
+  while (cur_idx < index_count) {
+    baton.current_index_table_number = cur_idx;
+    struct unwind_info_section_header_index_entry index_entry;
+    memcpy(&index_entry, offset,
+           sizeof(struct unwind_info_section_header_index_entry));
+    printf("index section #%d: functionOffset %d, "
+           "secondLevelPagesSectionOffset %d, lsdaIndexArraySectionOffset %d\n",
+           cur_idx, index_entry.functionOffset,
+           index_entry.secondLevelPagesSectionOffset,
+           index_entry.lsdaIndexArraySectionOffset);
+
+    // secondLevelPagesSectionOffset == 0 means this is a sentinel entry
+    if (index_entry.secondLevelPagesSectionOffset != 0) {
+      struct unwind_info_section_header_index_entry next_index_entry;
+      memcpy(&next_index_entry,
+             offset + sizeof(struct unwind_info_section_header_index_entry),
+             sizeof(struct unwind_info_section_header_index_entry));
+
+      baton.lsda_array_start =
+          baton.compact_unwind_start + index_entry.lsdaIndexArraySectionOffset;
+      baton.lsda_array_end = baton.compact_unwind_start +
+                             next_index_entry.lsdaIndexArraySectionOffset;
+
+      uint8_t *lsda_entry_offset = baton.lsda_array_start;
+      uint32_t lsda_count = 0;
+      while (lsda_entry_offset < baton.lsda_array_end) {
+        struct unwind_info_section_header_lsda_index_entry lsda_entry;
+        memcpy(&lsda_entry, lsda_entry_offset,
+               sizeof(struct unwind_info_section_header_lsda_index_entry));
+        uint64_t function_file_address =
+            baton.first_level_index_entry.functionOffset +
+            lsda_entry.functionOffset + baton.text_segment_vmaddr;
+        uint64_t lsda_file_address =
+            lsda_entry.lsdaOffset + baton.text_segment_vmaddr;
+        printf("    LSDA [%d] functionOffset %d (%d) (file address 0x%" PRIx64
+               "), lsdaOffset %d (file address 0x%" PRIx64 ")\n",
+               lsda_count, lsda_entry.functionOffset,
+               lsda_entry.functionOffset - index_entry.functionOffset,
+               function_file_address, lsda_entry.lsdaOffset, lsda_file_address);
+        lsda_count++;
+        lsda_entry_offset +=
+            sizeof(struct unwind_info_section_header_lsda_index_entry);
+      }
+
+      printf("\n");
+
+      baton.first_level_index_entry = index_entry;
+      print_second_level_index(baton);
+    }
+
+    printf("\n");
+
+    cur_idx++;
+    offset += sizeof(struct unwind_info_section_header_index_entry);
+  }
 }
 
-int main (int argc, char **argv)
-{
-    struct stat st;
-    char *file = argv[0];
-    if (argc > 1)
-        file = argv[1];
-    int fd = open (file, O_RDONLY);
-    if (fd == -1)
-    {
-        printf ("Failed to open '%s'\n", file);
-        exit (1);
-    }
-    fstat (fd, &st);
-    uint8_t *file_mem = (uint8_t*) mmap (0, st.st_size, PROT_READ, MAP_PRIVATE | MAP_FILE, fd, 0);
-    if (file_mem == MAP_FAILED)
-    {
-        printf ("Failed to mmap() '%s'\n", file);
-    }
-
-    FILE *f = fopen ("a.out", "r");
-
-    struct baton baton;
-    baton.mach_header_start = file_mem;
-    baton.symbols = NULL;
-    baton.symbols_count = 0;
-    baton.function_start_addresses = NULL;
-    baton.function_start_addresses_count = 0;
-
-    scan_macho_load_commands (&baton);
-
-    if (baton.compact_unwind_start == NULL)
-    {
-        printf ("could not find __TEXT,__unwind_info section\n");
-        exit (1);
-    }
-
-
-    struct unwind_info_section_header header;
-    memcpy (&header, baton.compact_unwind_start, sizeof (struct unwind_info_section_header));
-    printf ("Header:\n");
-    printf ("  version %u\n", header.version);
-    printf ("  commonEncodingsArraySectionOffset is %d\n", header.commonEncodingsArraySectionOffset);
-    printf ("  commonEncodingsArrayCount is %d\n", header.commonEncodingsArrayCount);
-    printf ("  personalityArraySectionOffset is %d\n", header.personalityArraySectionOffset);
-    printf ("  personalityArrayCount is %d\n", header.personalityArrayCount);
-    printf ("  indexSectionOffset is %d\n", header.indexSectionOffset);
-    printf ("  indexCount is %d\n", header.indexCount);
-
-    uint8_t *common_encodings = baton.compact_unwind_start + header.commonEncodingsArraySectionOffset;
-    uint32_t encoding_idx = 0;
-    while (encoding_idx < header.commonEncodingsArrayCount)
-    {
-        uint32_t encoding = *((uint32_t*) common_encodings);
-        printf ("    Common Encoding [%d]: 0x%x ", encoding_idx, encoding);
-        print_encoding (baton, NULL, encoding);
-        printf ("\n");
-        common_encodings += sizeof (uint32_t);
-        encoding_idx++;
-    }
-
-    uint8_t *pers_arr = baton.compact_unwind_start + header.personalityArraySectionOffset;
-    uint32_t pers_idx = 0;
-    while (pers_idx < header.personalityArrayCount)
-    {
-        int32_t pers_delta = *((int32_t*) (baton.compact_unwind_start + header.personalityArraySectionOffset + (pers_idx * sizeof (uint32_t))));
-        printf ("    Personality [%d]: personality function ptr @ offset %d (file address 0x%" PRIx64 ")\n", pers_idx, pers_delta, baton.text_segment_vmaddr + pers_delta);
-        pers_idx++;
-        pers_arr += sizeof (uint32_t);
-    }
-
-    printf ("\n");
+int main(int argc, char **argv) {
+  struct stat st;
+  char *file = argv[0];
+  if (argc > 1)
+    file = argv[1];
+  int fd = open(file, O_RDONLY);
+  if (fd == -1) {
+    printf("Failed to open '%s'\n", file);
+    exit(1);
+  }
+  fstat(fd, &st);
+  uint8_t *file_mem =
+      (uint8_t *)mmap(0, st.st_size, PROT_READ, MAP_PRIVATE | MAP_FILE, fd, 0);
+  if (file_mem == MAP_FAILED) {
+    printf("Failed to mmap() '%s'\n", file);
+  }
+
+  FILE *f = fopen("a.out", "r");
+
+  struct baton baton;
+  baton.mach_header_start = file_mem;
+  baton.symbols = NULL;
+  baton.symbols_count = 0;
+  baton.function_start_addresses = NULL;
+  baton.function_start_addresses_count = 0;
+
+  scan_macho_load_commands(&baton);
+
+  if (baton.compact_unwind_start == NULL) {
+    printf("could not find __TEXT,__unwind_info section\n");
+    exit(1);
+  }
+
+  struct unwind_info_section_header header;
+  memcpy(&header, baton.compact_unwind_start,
+         sizeof(struct unwind_info_section_header));
+  printf("Header:\n");
+  printf("  version %u\n", header.version);
+  printf("  commonEncodingsArraySectionOffset is %d\n",
+         header.commonEncodingsArraySectionOffset);
+  printf("  commonEncodingsArrayCount is %d\n",
+         header.commonEncodingsArrayCount);
+  printf("  personalityArraySectionOffset is %d\n",
+         header.personalityArraySectionOffset);
+  printf("  personalityArrayCount is %d\n", header.personalityArrayCount);
+  printf("  indexSectionOffset is %d\n", header.indexSectionOffset);
+  printf("  indexCount is %d\n", header.indexCount);
+
+  uint8_t *common_encodings =
+      baton.compact_unwind_start + header.commonEncodingsArraySectionOffset;
+  uint32_t encoding_idx = 0;
+  while (encoding_idx < header.commonEncodingsArrayCount) {
+    uint32_t encoding = *((uint32_t *)common_encodings);
+    printf("    Common Encoding [%d]: 0x%x ", encoding_idx, encoding);
+    print_encoding(baton, NULL, encoding);
+    printf("\n");
+    common_encodings += sizeof(uint32_t);
+    encoding_idx++;
+  }
+
+  uint8_t *pers_arr =
+      baton.compact_unwind_start + header.personalityArraySectionOffset;
+  uint32_t pers_idx = 0;
+  while (pers_idx < header.personalityArrayCount) {
+    int32_t pers_delta = *((int32_t *)(baton.compact_unwind_start +
+                                       header.personalityArraySectionOffset +
+                                       (pers_idx * sizeof(uint32_t))));
+    printf("    Personality [%d]: personality function ptr @ offset %d (file "
+           "address 0x%" PRIx64 ")\n",
+           pers_idx, pers_delta, baton.text_segment_vmaddr + pers_delta);
+    pers_idx++;
+    pers_arr += sizeof(uint32_t);
+  }
 
-    baton.unwind_header = header;
+  printf("\n");
 
-    print_index_sections (baton);
+  baton.unwind_header = header;
 
+  print_index_sections(baton);
 
-    return 0;
+  return 0;
 }

Modified: lldb/trunk/tools/darwin-debug/darwin-debug.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/darwin-debug/darwin-debug.cpp?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/tools/darwin-debug/darwin-debug.cpp (original)
+++ lldb/trunk/tools/darwin-debug/darwin-debug.cpp Tue Sep  6 15:57:50 2016
@@ -18,11 +18,11 @@
 // attribute flags to accomplish its task. It uses an "exec only" flag
 // which avoids forking this process, and it uses a "stop at entry"
 // flag to stop the program at the entry point.
-// 
+//
 // Since it uses darwin specific flags this code should not be compiled
 // on other systems.
 //----------------------------------------------------------------------
-#if defined (__APPLE__)
+#if defined(__APPLE__)
 
 #include <crt_externs.h> // for _NSGetEnviron()
 #include <getopt.h>
@@ -41,314 +41,297 @@
 #include <string>
 
 #ifndef _POSIX_SPAWN_DISABLE_ASLR
-#define _POSIX_SPAWN_DISABLE_ASLR       0x0100
+#define _POSIX_SPAWN_DISABLE_ASLR 0x0100
 #endif
 
-#define streq(a,b) strcmp(a,b) == 0
+#define streq(a, b) strcmp(a, b) == 0
 
-static struct option g_long_options[] = 
-{
-	{ "arch",			required_argument,	NULL,           'a'		},
-	{ "disable-aslr",   no_argument,		NULL,           'd'		},
-	{ "no-env",         no_argument,		NULL,           'e'		},
-	{ "help",           no_argument,		NULL,           'h'		},
-	{ "setsid",         no_argument,		NULL,           's'		},
-	{ "unix-socket",    required_argument,  NULL,           'u'		},
-    { "working-dir",    required_argument,  NULL,           'w'     },
-    { "env",            required_argument,  NULL,           'E'     },
-	{ NULL,				0,					NULL,            0		}
-};
-
-static void
-usage()
-{
-    puts (
-"NAME\n"
-"    darwin-debug -- posix spawn a process that is stopped at the entry point\n"
-"                    for debugging.\n"
-"\n"
-"SYNOPSIS\n"
-"    darwin-debug --unix-socket=<SOCKET> [--arch=<ARCH>] [--working-dir=<PATH>] [--disable-aslr] [--no-env] [--setsid] [--help] -- <PROGRAM> [<PROGRAM-ARG> <PROGRAM-ARG> ....]\n"
-"\n"
-"DESCRIPTION\n"
-"    darwin-debug will exec itself into a child process <PROGRAM> that is\n"
-"    halted for debugging. It does this by using posix_spawn() along with\n"
-"    darwin specific posix_spawn flags that allows exec only (no fork), and\n"
-"    stop at the program entry point. Any program arguments <PROGRAM-ARG> are\n"
-"    passed on to the exec as the arguments for the new process. The current\n"
-"    environment will be passed to the new process unless the \"--no-env\"\n"
-"    option is used. A unix socket must be supplied using the\n"
-"    --unix-socket=<SOCKET> option so the calling program can handshake with\n"
-"    this process and get its process id.\n"
-"\n"
-"EXAMPLE\n"
-"   darwin-debug --arch=i386 -- /bin/ls -al /tmp\n"
-);
-    exit (1);
+static struct option g_long_options[] = {
+    {"arch", required_argument, NULL, 'a'},
+    {"disable-aslr", no_argument, NULL, 'd'},
+    {"no-env", no_argument, NULL, 'e'},
+    {"help", no_argument, NULL, 'h'},
+    {"setsid", no_argument, NULL, 's'},
+    {"unix-socket", required_argument, NULL, 'u'},
+    {"working-dir", required_argument, NULL, 'w'},
+    {"env", required_argument, NULL, 'E'},
+    {NULL, 0, NULL, 0}};
+
+static void usage() {
+  puts("NAME\n"
+       "    darwin-debug -- posix spawn a process that is stopped at the entry "
+       "point\n"
+       "                    for debugging.\n"
+       "\n"
+       "SYNOPSIS\n"
+       "    darwin-debug --unix-socket=<SOCKET> [--arch=<ARCH>] "
+       "[--working-dir=<PATH>] [--disable-aslr] [--no-env] [--setsid] [--help] "
+       "-- <PROGRAM> [<PROGRAM-ARG> <PROGRAM-ARG> ....]\n"
+       "\n"
+       "DESCRIPTION\n"
+       "    darwin-debug will exec itself into a child process <PROGRAM> that "
+       "is\n"
+       "    halted for debugging. It does this by using posix_spawn() along "
+       "with\n"
+       "    darwin specific posix_spawn flags that allows exec only (no fork), "
+       "and\n"
+       "    stop at the program entry point. Any program arguments "
+       "<PROGRAM-ARG> are\n"
+       "    passed on to the exec as the arguments for the new process. The "
+       "current\n"
+       "    environment will be passed to the new process unless the "
+       "\"--no-env\"\n"
+       "    option is used. A unix socket must be supplied using the\n"
+       "    --unix-socket=<SOCKET> option so the calling program can handshake "
+       "with\n"
+       "    this process and get its process id.\n"
+       "\n"
+       "EXAMPLE\n"
+       "   darwin-debug --arch=i386 -- /bin/ls -al /tmp\n");
+  exit(1);
 }
 
-static void
-exit_with_errno (int err, const char *prefix)
-{
-    if (err)
-    {
-        fprintf (stderr, 
-                 "%s%s", 
-                 prefix ? prefix : "", 
-                 strerror(err));
-        exit (err);
-    }
+static void exit_with_errno(int err, const char *prefix) {
+  if (err) {
+    fprintf(stderr, "%s%s", prefix ? prefix : "", strerror(err));
+    exit(err);
+  }
 }
 
-pid_t
-posix_spawn_for_debug 
-(
-    char *const *argv, 
-    char *const *envp, 
-    const char *working_dir,
-    cpu_type_t cpu_type, 
-    int disable_aslr)
-{
-    pid_t pid = 0;
-
-    const char *path = argv[0];
-
-    posix_spawnattr_t attr;
-
-    exit_with_errno (::posix_spawnattr_init (&attr), "::posix_spawnattr_init (&attr) error: ");
-
-    // Here we are using a darwin specific feature that allows us to exec only
-    // since we want this program to turn into the program we want to debug, 
-    // and also have the new program start suspended (right at __dyld_start)
-    // so we can debug it
-    short flags = POSIX_SPAWN_START_SUSPENDED | POSIX_SPAWN_SETEXEC | POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK;
-
-    // Disable ASLR if we were asked to
-    if (disable_aslr)
-        flags |= _POSIX_SPAWN_DISABLE_ASLR;
-    
-    sigset_t no_signals;
-    sigset_t all_signals;
-    sigemptyset (&no_signals);
-    sigfillset (&all_signals);
-    ::posix_spawnattr_setsigmask(&attr, &no_signals);
-    ::posix_spawnattr_setsigdefault(&attr, &all_signals);
-    
-    // Set the flags we just made into our posix spawn attributes
-    exit_with_errno (::posix_spawnattr_setflags (&attr, flags), "::posix_spawnattr_setflags (&attr, flags) error: ");
-    
-    
-    // Another darwin specific thing here where we can select the architecture
-    // of the binary we want to re-exec as.
-    if (cpu_type != 0)
-    {
-        size_t ocount = 0;
-        exit_with_errno (::posix_spawnattr_setbinpref_np (&attr, 1, &cpu_type, &ocount), "posix_spawnattr_setbinpref_np () error: ");
-    }
-    
-    // I wish there was a posix_spawn flag to change the working directory of
-    // the inferior process we will spawn, but there currently isn't. If there
-    // ever is a better way to do this, we should use it. I would rather not
-    // manually fork, chdir in the child process, and then posix_spawn with exec
-    // as the whole reason for doing posix_spawn is to not hose anything up
-    // after the fork and prior to the exec...
-    if (working_dir)
-        ::chdir (working_dir);
-
-    exit_with_errno (::posix_spawnp (&pid, path, NULL, &attr, (char * const*)argv, (char * const*)envp), "posix_spawn() error: ");
-    
-    // This code will only be reached if the posix_spawn exec failed...
-    ::posix_spawnattr_destroy (&attr);
+pid_t posix_spawn_for_debug(char *const *argv, char *const *envp,
+                            const char *working_dir, cpu_type_t cpu_type,
+                            int disable_aslr) {
+  pid_t pid = 0;
+
+  const char *path = argv[0];
+
+  posix_spawnattr_t attr;
+
+  exit_with_errno(::posix_spawnattr_init(&attr),
+                  "::posix_spawnattr_init (&attr) error: ");
+
+  // Here we are using a darwin specific feature that allows us to exec only
+  // since we want this program to turn into the program we want to debug,
+  // and also have the new program start suspended (right at __dyld_start)
+  // so we can debug it
+  short flags = POSIX_SPAWN_START_SUSPENDED | POSIX_SPAWN_SETEXEC |
+                POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK;
+
+  // Disable ASLR if we were asked to
+  if (disable_aslr)
+    flags |= _POSIX_SPAWN_DISABLE_ASLR;
+
+  sigset_t no_signals;
+  sigset_t all_signals;
+  sigemptyset(&no_signals);
+  sigfillset(&all_signals);
+  ::posix_spawnattr_setsigmask(&attr, &no_signals);
+  ::posix_spawnattr_setsigdefault(&attr, &all_signals);
+
+  // Set the flags we just made into our posix spawn attributes
+  exit_with_errno(::posix_spawnattr_setflags(&attr, flags),
+                  "::posix_spawnattr_setflags (&attr, flags) error: ");
+
+  // Another darwin specific thing here where we can select the architecture
+  // of the binary we want to re-exec as.
+  if (cpu_type != 0) {
+    size_t ocount = 0;
+    exit_with_errno(
+        ::posix_spawnattr_setbinpref_np(&attr, 1, &cpu_type, &ocount),
+        "posix_spawnattr_setbinpref_np () error: ");
+  }
+
+  // I wish there was a posix_spawn flag to change the working directory of
+  // the inferior process we will spawn, but there currently isn't. If there
+  // ever is a better way to do this, we should use it. I would rather not
+  // manually fork, chdir in the child process, and then posix_spawn with exec
+  // as the whole reason for doing posix_spawn is to not hose anything up
+  // after the fork and prior to the exec...
+  if (working_dir)
+    ::chdir(working_dir);
+
+  exit_with_errno(::posix_spawnp(&pid, path, NULL, &attr, (char *const *)argv,
+                                 (char *const *)envp),
+                  "posix_spawn() error: ");
 
-    return pid;
-}
+  // This code will only be reached if the posix_spawn exec failed...
+  ::posix_spawnattr_destroy(&attr);
 
+  return pid;
+}
 
-int main (int argc, char *const *argv, char *const *envp, const char **apple)
-{
-#if defined (DEBUG_LLDB_LAUNCHER)
-    const char *program_name = strrchr(apple[0], '/');
-    
-    if (program_name)
-        program_name++; // Skip the last slash..
-    else
-        program_name = apple[0];
-    
-    printf("%s called with:\n", program_name);
-    for (int i=0; i<argc; ++i)
-        printf("argv[%u] = '%s'\n", i, argv[i]);
+int main(int argc, char *const *argv, char *const *envp, const char **apple) {
+#if defined(DEBUG_LLDB_LAUNCHER)
+  const char *program_name = strrchr(apple[0], '/');
+
+  if (program_name)
+    program_name++; // Skip the last slash..
+  else
+    program_name = apple[0];
+
+  printf("%s called with:\n", program_name);
+  for (int i = 0; i < argc; ++i)
+    printf("argv[%u] = '%s'\n", i, argv[i]);
 #endif
 
-    cpu_type_t cpu_type = 0;
-    bool show_usage = false;
-    int ch;
-    int disable_aslr = 0; // By default we disable ASLR
-    bool pass_env = true;
-    std::string unix_socket_name;
-    std::string working_dir;
-    
+  cpu_type_t cpu_type = 0;
+  bool show_usage = false;
+  int ch;
+  int disable_aslr = 0; // By default we disable ASLR
+  bool pass_env = true;
+  std::string unix_socket_name;
+  std::string working_dir;
+
 #if __GLIBC__
-    optind = 0;
+  optind = 0;
 #else
-    optreset = 1;
-    optind = 1;
-#endif
-
-	while ((ch = getopt_long_only(argc, argv, "a:deE:hsu:?", g_long_options, NULL)) != -1)
-	{
-		switch (ch) 
-		{
-        case 0:
-            break;
-
-		case 'a':	// "-a i386" or "--arch=i386"
-			if (optarg)
-			{
-				if (streq (optarg, "i386"))
-                    cpu_type = CPU_TYPE_I386;
-				else if (streq (optarg, "x86_64"))
-                    cpu_type = CPU_TYPE_X86_64;
-                else if (streq (optarg, "x86_64h"))
-                    cpu_type = 0; // Don't set CPU type when we have x86_64h
-                else if (strstr (optarg, "arm") == optarg)
-                    cpu_type = CPU_TYPE_ARM;
-                else
-                {
-                    ::fprintf (stderr, "error: unsupported cpu type '%s'\n", optarg);
-                    ::exit (1);
-                }
-			} 
-			break;
-
-        case 'd':
-            disable_aslr = 1;
-            break;            
-
-        case 'e':
-            pass_env = false;
-            break;
-            
-        case 'E':
-            {
-                // Since we will exec this program into our new program, we can just set environment
-                // variables in this process and they will make it into the child process.
-                std::string name;
-                std::string value;
-                const char *equal_pos = strchr (optarg, '=');
-                if (equal_pos)
-                {
-                    name.assign (optarg, equal_pos - optarg);
-                    value.assign (equal_pos + 1);
-                }
-                else
-                {
-                    name = optarg;
-                }
-                ::setenv (name.c_str(), value.c_str(), 1);
-            }
-            break;
-            
-        case 's':
-            // Create a new session to avoid having control-C presses kill our current
-            // terminal session when this program is launched from a .command file
-            ::setsid();
-            break;
-
-        case 'u':
-            unix_socket_name.assign (optarg);
-            break;
-
-        case 'w':
-            {
-                struct stat working_dir_stat;
-                if (stat (optarg, &working_dir_stat) == 0)
-                    working_dir.assign (optarg);
-                else
-                    ::fprintf(stderr, "warning: working directory doesn't exist: '%s'\n", optarg);
-            }
-            break;
-
-		case 'h':
-		case '?':
-		default:
-			show_usage = true;
-			break;
-		}
-	}
-	argc -= optind;
-	argv += optind;
-
-    if (show_usage || argc <= 0 || unix_socket_name.empty())
-        usage();
-
-#if defined (DEBUG_LLDB_LAUNCHER)
-    printf ("\n%s post options:\n", program_name);
-    for (int i=0; i<argc; ++i)
-        printf ("argv[%u] = '%s'\n", i, argv[i]);
+  optreset = 1;
+  optind = 1;
 #endif
 
-    // Open the socket that was passed in as an option
-    struct sockaddr_un saddr_un;
-    int s = ::socket (AF_UNIX, SOCK_STREAM, 0);
-    if (s < 0)
-    {
-        perror("error: socket (AF_UNIX, SOCK_STREAM, 0)");
-        exit(1);
-    }
-
-    saddr_un.sun_family = AF_UNIX;
-    ::strncpy(saddr_un.sun_path, unix_socket_name.c_str(), sizeof(saddr_un.sun_path) - 1);
-    saddr_un.sun_path[sizeof(saddr_un.sun_path) - 1] = '\0';
-    saddr_un.sun_len = SUN_LEN (&saddr_un);
-
-    if (::connect (s, (struct sockaddr *)&saddr_un, SUN_LEN (&saddr_un)) < 0) 
-    {
-        perror("error: connect (socket, &saddr_un, saddr_un_len)");
-        exit(1);
-    }
-    
-    // We were able to connect to the socket, now write our PID so whomever
-    // launched us will know this process's ID
-    char pid_str[64];
-    const int pid_str_len = ::snprintf (pid_str, sizeof(pid_str), "%i", ::getpid());
-    const int bytes_sent = ::send (s, pid_str, pid_str_len, 0);
-    
-    if (pid_str_len != bytes_sent)
-    {
-        perror("error: send (s, pid_str, pid_str_len, 0)");
-        exit (1);
-    }
-
-    // We are done with the socket
-    close (s);
-
-    system("clear");
-    printf ("Launching: '%s'\n", argv[0]);
-    if (working_dir.empty())
-    {
-        char cwd[PATH_MAX];
-        const char *cwd_ptr = getcwd(cwd, sizeof(cwd));
-        printf ("Working directory: '%s'\n", cwd_ptr);
-    }
-    else
-    {
-        printf ("Working directory: '%s'\n", working_dir.c_str());
+  while ((ch = getopt_long_only(argc, argv, "a:deE:hsu:?", g_long_options,
+                                NULL)) != -1) {
+    switch (ch) {
+    case 0:
+      break;
+
+    case 'a': // "-a i386" or "--arch=i386"
+      if (optarg) {
+        if (streq(optarg, "i386"))
+          cpu_type = CPU_TYPE_I386;
+        else if (streq(optarg, "x86_64"))
+          cpu_type = CPU_TYPE_X86_64;
+        else if (streq(optarg, "x86_64h"))
+          cpu_type = 0; // Don't set CPU type when we have x86_64h
+        else if (strstr(optarg, "arm") == optarg)
+          cpu_type = CPU_TYPE_ARM;
+        else {
+          ::fprintf(stderr, "error: unsupported cpu type '%s'\n", optarg);
+          ::exit(1);
+        }
+      }
+      break;
+
+    case 'd':
+      disable_aslr = 1;
+      break;
+
+    case 'e':
+      pass_env = false;
+      break;
+
+    case 'E': {
+      // Since we will exec this program into our new program, we can just set
+      // environment
+      // variables in this process and they will make it into the child process.
+      std::string name;
+      std::string value;
+      const char *equal_pos = strchr(optarg, '=');
+      if (equal_pos) {
+        name.assign(optarg, equal_pos - optarg);
+        value.assign(equal_pos + 1);
+      } else {
+        name = optarg;
+      }
+      ::setenv(name.c_str(), value.c_str(), 1);
+    } break;
+
+    case 's':
+      // Create a new session to avoid having control-C presses kill our current
+      // terminal session when this program is launched from a .command file
+      ::setsid();
+      break;
+
+    case 'u':
+      unix_socket_name.assign(optarg);
+      break;
+
+    case 'w': {
+      struct stat working_dir_stat;
+      if (stat(optarg, &working_dir_stat) == 0)
+        working_dir.assign(optarg);
+      else
+        ::fprintf(stderr, "warning: working directory doesn't exist: '%s'\n",
+                  optarg);
+    } break;
+
+    case 'h':
+    case '?':
+    default:
+      show_usage = true;
+      break;
     }
-    printf ("%i arguments:\n", argc);
+  }
+  argc -= optind;
+  argv += optind;
+
+  if (show_usage || argc <= 0 || unix_socket_name.empty())
+    usage();
+
+#if defined(DEBUG_LLDB_LAUNCHER)
+  printf("\n%s post options:\n", program_name);
+  for (int i = 0; i < argc; ++i)
+    printf("argv[%u] = '%s'\n", i, argv[i]);
+#endif
 
-    for (int i=0; i<argc; ++i)
-        printf ("argv[%u] = '%s'\n", i, argv[i]);
+  // Open the socket that was passed in as an option
+  struct sockaddr_un saddr_un;
+  int s = ::socket(AF_UNIX, SOCK_STREAM, 0);
+  if (s < 0) {
+    perror("error: socket (AF_UNIX, SOCK_STREAM, 0)");
+    exit(1);
+  }
+
+  saddr_un.sun_family = AF_UNIX;
+  ::strncpy(saddr_un.sun_path, unix_socket_name.c_str(),
+            sizeof(saddr_un.sun_path) - 1);
+  saddr_un.sun_path[sizeof(saddr_un.sun_path) - 1] = '\0';
+  saddr_un.sun_len = SUN_LEN(&saddr_un);
+
+  if (::connect(s, (struct sockaddr *)&saddr_un, SUN_LEN(&saddr_un)) < 0) {
+    perror("error: connect (socket, &saddr_un, saddr_un_len)");
+    exit(1);
+  }
+
+  // We were able to connect to the socket, now write our PID so whomever
+  // launched us will know this process's ID
+  char pid_str[64];
+  const int pid_str_len =
+      ::snprintf(pid_str, sizeof(pid_str), "%i", ::getpid());
+  const int bytes_sent = ::send(s, pid_str, pid_str_len, 0);
+
+  if (pid_str_len != bytes_sent) {
+    perror("error: send (s, pid_str, pid_str_len, 0)");
+    exit(1);
+  }
+
+  // We are done with the socket
+  close(s);
+
+  system("clear");
+  printf("Launching: '%s'\n", argv[0]);
+  if (working_dir.empty()) {
+    char cwd[PATH_MAX];
+    const char *cwd_ptr = getcwd(cwd, sizeof(cwd));
+    printf("Working directory: '%s'\n", cwd_ptr);
+  } else {
+    printf("Working directory: '%s'\n", working_dir.c_str());
+  }
+  printf("%i arguments:\n", argc);
+
+  for (int i = 0; i < argc; ++i)
+    printf("argv[%u] = '%s'\n", i, argv[i]);
+
+  // Now we posix spawn to exec this process into the inferior that we want
+  // to debug.
+  posix_spawn_for_debug(
+      argv,
+      pass_env ? *_NSGetEnviron() : NULL, // Pass current environment as we may
+                                          // have modified it if "--env" options
+                                          // was used, do NOT pass "envp" here
+      working_dir.empty() ? NULL : working_dir.c_str(), cpu_type, disable_aslr);
 
-    // Now we posix spawn to exec this process into the inferior that we want
-    // to debug.
-    posix_spawn_for_debug (argv,
-                           pass_env ? *_NSGetEnviron() : NULL, // Pass current environment as we may have modified it if "--env" options was used, do NOT pass "envp" here
-                           working_dir.empty() ? NULL : working_dir.c_str(),
-                           cpu_type, 
-                           disable_aslr);
-    
-	return 0;
+  return 0;
 }
 
 #endif // #if defined (__APPLE__)
-

Modified: lldb/trunk/tools/darwin-threads/examine-threads.c
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/darwin-threads/examine-threads.c?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/tools/darwin-threads/examine-threads.c (original)
+++ lldb/trunk/tools/darwin-threads/examine-threads.c Tue Sep  6 15:57:50 2016
@@ -1,291 +1,266 @@
+#include <ctype.h>
+#include <dispatch/dispatch.h>
+#include <errno.h>
+#include <libproc.h>
+#include <mach/mach.h>
+#include <mach/task_info.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <mach/mach.h>
-#include <mach/task_info.h>
-#include <time.h>
 #include <sys/sysctl.h>
-#include <ctype.h>
-#include <libproc.h>
-#include <errno.h>
-#include <dispatch/dispatch.h>
+#include <time.h>
 
 // from System.framework/Versions/B/PrivateHeaders/sys/codesign.h
-#define CS_OPS_STATUS           0       /* return status */
-#define CS_RESTRICT             0x0000800       /* tell dyld to treat restricted */
-int csops(pid_t pid, unsigned int  ops, void * useraddr, size_t usersize);
+#define CS_OPS_STATUS 0       /* return status */
+#define CS_RESTRICT 0x0000800 /* tell dyld to treat restricted */
+int csops(pid_t pid, unsigned int ops, void *useraddr, size_t usersize);
 
 /* Step through the process table, find a matching process name, return
    the pid of that matched process.
    If there are multiple processes with that name, issue a warning on stdout
    and return the highest numbered process.
    The proc_pidpath() call is used which gets the full process name including
-   directories to the executable and the full (longer than 16 character) 
+   directories to the executable and the full (longer than 16 character)
    executable name. */
 
-pid_t
-get_pid_for_process_name (const char *procname)
-{
-  int process_count = proc_listpids (PROC_ALL_PIDS, 0, NULL, 0) / sizeof (pid_t);
-  if (process_count < 1)
-    {
-      printf ("Only found %d processes running!\n", process_count);
-      exit (1);
-    }
+pid_t get_pid_for_process_name(const char *procname) {
+  int process_count = proc_listpids(PROC_ALL_PIDS, 0, NULL, 0) / sizeof(pid_t);
+  if (process_count < 1) {
+    printf("Only found %d processes running!\n", process_count);
+    exit(1);
+  }
 
   // Allocate a few extra slots in case new processes are spawned
-  int all_pids_size = sizeof (pid_t) * (process_count + 3);
-  pid_t *all_pids = (pid_t *) malloc (all_pids_size);
+  int all_pids_size = sizeof(pid_t) * (process_count + 3);
+  pid_t *all_pids = (pid_t *)malloc(all_pids_size);
 
-  // re-set process_count in case the number of processes changed (got smaller; we won't do bigger)
-  process_count = proc_listpids (PROC_ALL_PIDS, 0, all_pids, all_pids_size) / sizeof (pid_t);
+  // re-set process_count in case the number of processes changed (got smaller;
+  // we won't do bigger)
+  process_count =
+      proc_listpids(PROC_ALL_PIDS, 0, all_pids, all_pids_size) / sizeof(pid_t);
 
   int i;
   pid_t highest_pid = 0;
   int match_count = 0;
-  for (i = 1; i < process_count; i++)
-    {
-      char pidpath[PATH_MAX];
-      int pidpath_len = proc_pidpath (all_pids[i], pidpath, sizeof (pidpath));
-      if (pidpath_len == 0)
-        continue;
-      char *j = strrchr (pidpath, '/');
-      if ((j == NULL && strcmp (procname, pidpath) == 0)
-          || (j != NULL && strcmp (j + 1, procname)  == 0))
-        {
-          match_count++;
-          if (all_pids[i] > highest_pid)
-            highest_pid = all_pids[i];
-        }
+  for (i = 1; i < process_count; i++) {
+    char pidpath[PATH_MAX];
+    int pidpath_len = proc_pidpath(all_pids[i], pidpath, sizeof(pidpath));
+    if (pidpath_len == 0)
+      continue;
+    char *j = strrchr(pidpath, '/');
+    if ((j == NULL && strcmp(procname, pidpath) == 0) ||
+        (j != NULL && strcmp(j + 1, procname) == 0)) {
+      match_count++;
+      if (all_pids[i] > highest_pid)
+        highest_pid = all_pids[i];
     }
-  free (all_pids);
+  }
+  free(all_pids);
 
-  if (match_count == 0)
-    {
-      printf ("Did not find process '%s'.\n", procname);
-      exit (1);
-    }
-  if (match_count > 1)
-    {
-      printf ("Warning:  More than one process '%s'!\n", procname);
-      printf ("          defaulting to the highest-pid one, %d\n", highest_pid);
-    }
+  if (match_count == 0) {
+    printf("Did not find process '%s'.\n", procname);
+    exit(1);
+  }
+  if (match_count > 1) {
+    printf("Warning:  More than one process '%s'!\n", procname);
+    printf("          defaulting to the highest-pid one, %d\n", highest_pid);
+  }
   return highest_pid;
 }
 
-/* Given a pid, get the full executable name (including directory 
+/* Given a pid, get the full executable name (including directory
    paths and the longer-than-16-chars executable name) and return
    the basename of that (i.e. do not include the directory components).
    This function mallocs the memory for the string it returns;
    the caller must free this memory. */
 
-const char *
-get_process_name_for_pid (pid_t pid)
-{
+const char *get_process_name_for_pid(pid_t pid) {
   char tmp_name[PATH_MAX];
-  if (proc_pidpath (pid, tmp_name, sizeof (tmp_name)) == 0)
-    {
-      printf ("Could not find process with pid of %d\n", (int) pid);
-      exit (1);
-    }
-  if (strrchr (tmp_name, '/'))
-    return strdup (strrchr (tmp_name, '/') + 1);
+  if (proc_pidpath(pid, tmp_name, sizeof(tmp_name)) == 0) {
+    printf("Could not find process with pid of %d\n", (int)pid);
+    exit(1);
+  }
+  if (strrchr(tmp_name, '/'))
+    return strdup(strrchr(tmp_name, '/') + 1);
   else
-    return strdup (tmp_name);
+    return strdup(tmp_name);
 }
 
 /* Get a struct kinfo_proc structure for a given pid.
    Process name is required for error printing.
-   Gives you the current state of the process and whether it is being debugged by anyone.
+   Gives you the current state of the process and whether it is being debugged
+   by anyone.
    memory is malloc()'ed for the returned struct kinfo_proc
    and must be freed by the caller.  */
 
-struct kinfo_proc *
-get_kinfo_proc_for_pid (pid_t pid, const char *process_name)
-{
-  struct kinfo_proc *kinfo = (struct kinfo_proc *) malloc (sizeof (struct kinfo_proc));
-  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid };
-  size_t len = sizeof (struct kinfo_proc);
-  if (sysctl (mib, sizeof (mib) / sizeof (mib[0]), kinfo, &len, NULL, 0) != 0)
-    {
-      free ((void *) kinfo);
-      printf ("Could not get kinfo_proc for pid %d\n", (int) pid);
-      exit (1);
-    }
+struct kinfo_proc *get_kinfo_proc_for_pid(pid_t pid, const char *process_name) {
+  struct kinfo_proc *kinfo =
+      (struct kinfo_proc *)malloc(sizeof(struct kinfo_proc));
+  int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
+  size_t len = sizeof(struct kinfo_proc);
+  if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), kinfo, &len, NULL, 0) != 0) {
+    free((void *)kinfo);
+    printf("Could not get kinfo_proc for pid %d\n", (int)pid);
+    exit(1);
+  }
   return kinfo;
 }
 
 /* Get the basic information (thread_basic_info_t) about a given
-   thread.  
-   Gives you the suspend count; thread state; user time; system time; sleep time; etc.
+   thread.
+   Gives you the suspend count; thread state; user time; system time; sleep
+   time; etc.
    The return value is a pointer to malloc'ed memory - it is the caller's
    responsibility to free it.  */
 
-thread_basic_info_t
-get_thread_basic_info (thread_t thread)
-{
+thread_basic_info_t get_thread_basic_info(thread_t thread) {
   kern_return_t kr;
-  integer_t *thinfo = (integer_t *) malloc (sizeof (integer_t) * THREAD_INFO_MAX);
+  integer_t *thinfo = (integer_t *)malloc(sizeof(integer_t) * THREAD_INFO_MAX);
   mach_msg_type_number_t thread_info_count = THREAD_INFO_MAX;
-  kr = thread_info (thread, THREAD_BASIC_INFO,
-                    (thread_info_t) thinfo, &thread_info_count);
-  if (kr != KERN_SUCCESS)
-    {
-      printf ("Error - unable to get basic thread info for a thread\n");
-      exit (1);
-    }
-  return (thread_basic_info_t) thinfo;
+  kr = thread_info(thread, THREAD_BASIC_INFO, (thread_info_t)thinfo,
+                   &thread_info_count);
+  if (kr != KERN_SUCCESS) {
+    printf("Error - unable to get basic thread info for a thread\n");
+    exit(1);
+  }
+  return (thread_basic_info_t)thinfo;
 }
 
-/* Get the thread identifier info (thread_identifier_info_data_t) 
-   about a given thread. 
-   Gives you the system-wide unique thread number; the pthread identifier number 
+/* Get the thread identifier info (thread_identifier_info_data_t)
+   about a given thread.
+   Gives you the system-wide unique thread number; the pthread identifier number
 */
 
-thread_identifier_info_data_t 
-get_thread_identifier_info (thread_t thread)
-{
+thread_identifier_info_data_t get_thread_identifier_info(thread_t thread) {
   kern_return_t kr;
   thread_identifier_info_data_t tident;
   mach_msg_type_number_t tident_count = THREAD_IDENTIFIER_INFO_COUNT;
-  kr = thread_info (thread, THREAD_IDENTIFIER_INFO,
-                    (thread_info_t) &tident, &tident_count);
-  if (kr != KERN_SUCCESS)
-    {
-      printf ("Error - unable to get thread ident for a thread\n");
-      exit (1);
-    }
+  kr = thread_info(thread, THREAD_IDENTIFIER_INFO, (thread_info_t)&tident,
+                   &tident_count);
+  if (kr != KERN_SUCCESS) {
+    printf("Error - unable to get thread ident for a thread\n");
+    exit(1);
+  }
   return tident;
 }
 
-
-/* Given a mach port # (in the examine-threads mach port namespace) for a thread,
-   find the mach port # in the inferior program's port namespace.  
+/* Given a mach port # (in the examine-threads mach port namespace) for a
+   thread,
+   find the mach port # in the inferior program's port namespace.
    Sets inferior_port if successful.
    Returns true if successful, false if unable to find the port number.  */
 
-bool
-inferior_namespace_mach_port_num (task_t task, thread_t examine_threads_port, thread_t *inferior_port)
-{
-    kern_return_t retval;
-    mach_port_name_array_t names;
-    mach_msg_type_number_t nameslen;
-    mach_port_type_array_t types;
-    mach_msg_type_number_t typeslen;
-
-    if (inferior_port == NULL)
-        return false;
-
-    retval = mach_port_names (task, &names, &nameslen, &types, &typeslen);
-    if (retval != KERN_SUCCESS)
-    {
-        printf ("Error - unable to get mach port names for inferior.\n");
-        return false;
-    }
-    int i = 0;
-    for (i = 0; i < nameslen; i++)
-    {
-        mach_port_t local_name;
-        mach_msg_type_name_t local_type;
-        retval = mach_port_extract_right (task, names[i], MACH_MSG_TYPE_COPY_SEND, &local_name, &local_type);
-        if (retval == KERN_SUCCESS)
-        {
-            mach_port_deallocate (mach_task_self(), local_name);
-            if (local_name == examine_threads_port)
-            {
-                *inferior_port = names[i];
-                vm_deallocate (mach_task_self (), (vm_address_t) names, nameslen * sizeof (mach_port_t));
-                vm_deallocate (mach_task_self (), (vm_address_t) types, typeslen * sizeof (mach_port_t));
-                return true;
-            }
-        }
-    }
-    vm_deallocate (mach_task_self (), (vm_address_t) names, nameslen * sizeof (mach_port_t));
-    vm_deallocate (mach_task_self (), (vm_address_t) types, typeslen * sizeof (mach_port_t));
+bool inferior_namespace_mach_port_num(task_t task,
+                                      thread_t examine_threads_port,
+                                      thread_t *inferior_port) {
+  kern_return_t retval;
+  mach_port_name_array_t names;
+  mach_msg_type_number_t nameslen;
+  mach_port_type_array_t types;
+  mach_msg_type_number_t typeslen;
+
+  if (inferior_port == NULL)
+    return false;
+
+  retval = mach_port_names(task, &names, &nameslen, &types, &typeslen);
+  if (retval != KERN_SUCCESS) {
+    printf("Error - unable to get mach port names for inferior.\n");
     return false;
+  }
+  int i = 0;
+  for (i = 0; i < nameslen; i++) {
+    mach_port_t local_name;
+    mach_msg_type_name_t local_type;
+    retval = mach_port_extract_right(task, names[i], MACH_MSG_TYPE_COPY_SEND,
+                                     &local_name, &local_type);
+    if (retval == KERN_SUCCESS) {
+      mach_port_deallocate(mach_task_self(), local_name);
+      if (local_name == examine_threads_port) {
+        *inferior_port = names[i];
+        vm_deallocate(mach_task_self(), (vm_address_t)names,
+                      nameslen * sizeof(mach_port_t));
+        vm_deallocate(mach_task_self(), (vm_address_t)types,
+                      typeslen * sizeof(mach_port_t));
+        return true;
+      }
+    }
+  }
+  vm_deallocate(mach_task_self(), (vm_address_t)names,
+                nameslen * sizeof(mach_port_t));
+  vm_deallocate(mach_task_self(), (vm_address_t)types,
+                typeslen * sizeof(mach_port_t));
+  return false;
 }
 
 /* Get the current pc value for a given thread.  */
 
-uint64_t
-get_current_pc (thread_t thread, int *wordsize)
-{
-  kern_return_t kr ;
+uint64_t get_current_pc(thread_t thread, int *wordsize) {
+  kern_return_t kr;
 
-#if defined (__x86_64__) || defined (__i386__)
+#if defined(__x86_64__) || defined(__i386__)
   x86_thread_state_t gp_regs;
   mach_msg_type_number_t gp_count = x86_THREAD_STATE_COUNT;
-  kr = thread_get_state (thread, x86_THREAD_STATE,
-                         (thread_state_t) &gp_regs, &gp_count);
-  if (kr != KERN_SUCCESS)
-    {
-      printf ("Error - unable to get registers for a thread\n");
-      exit (1);
-    }
+  kr = thread_get_state(thread, x86_THREAD_STATE, (thread_state_t)&gp_regs,
+                        &gp_count);
+  if (kr != KERN_SUCCESS) {
+    printf("Error - unable to get registers for a thread\n");
+    exit(1);
+  }
 
-  if (gp_regs.tsh.flavor == x86_THREAD_STATE64)
-    {
-      *wordsize = 8;
-      return gp_regs.uts.ts64.__rip;
-    }
-  else
-    {
-      *wordsize = 4;
-      return gp_regs.uts.ts32.__eip;
-    }
+  if (gp_regs.tsh.flavor == x86_THREAD_STATE64) {
+    *wordsize = 8;
+    return gp_regs.uts.ts64.__rip;
+  } else {
+    *wordsize = 4;
+    return gp_regs.uts.ts32.__eip;
+  }
 #endif
 
-#if defined (__arm__)
+#if defined(__arm__)
   arm_thread_state_t gp_regs;
   mach_msg_type_number_t gp_count = ARM_THREAD_STATE_COUNT;
-  kr = thread_get_state (thread, ARM_THREAD_STATE,
-                         (thread_state_t) &gp_regs, &gp_count);
-  if (kr != KERN_SUCCESS)
-    {
-      printf ("Error - unable to get registers for a thread\n");
-      exit (1);
-    }
+  kr = thread_get_state(thread, ARM_THREAD_STATE, (thread_state_t)&gp_regs,
+                        &gp_count);
+  if (kr != KERN_SUCCESS) {
+    printf("Error - unable to get registers for a thread\n");
+    exit(1);
+  }
   *wordsize = 4;
   return gp_regs.__pc;
 #endif
 
-#if defined (__arm64__)
+#if defined(__arm64__)
   arm_thread_state64_t gp_regs;
   mach_msg_type_number_t gp_count = ARM_THREAD_STATE64_COUNT;
-  kr = thread_get_state (thread, ARM_THREAD_STATE64,
-                         (thread_state_t) &gp_regs, &gp_count);
-  if (kr != KERN_SUCCESS)
-    {
-      printf ("Error - unable to get registers for a thread\n");
-      exit (1);
-    }
+  kr = thread_get_state(thread, ARM_THREAD_STATE64, (thread_state_t)&gp_regs,
+                        &gp_count);
+  if (kr != KERN_SUCCESS) {
+    printf("Error - unable to get registers for a thread\n");
+    exit(1);
+  }
   *wordsize = 8;
   return gp_regs.__pc;
 #endif
-
 }
 
 /* Get the proc_threadinfo for a given thread.
-   Gives you the thread name, if set; current and max priorities.  
+   Gives you the thread name, if set; current and max priorities.
    Returns 1 if successful
    Returns 0 if proc_pidinfo() failed
 */
 
-int
-get_proc_threadinfo (pid_t pid, uint64_t thread_handle, struct proc_threadinfo *pth)
-{
+int get_proc_threadinfo(pid_t pid, uint64_t thread_handle,
+                        struct proc_threadinfo *pth) {
   pth->pth_name[0] = '\0';
-  int ret = proc_pidinfo (pid, PROC_PIDTHREADINFO, thread_handle,
-                          pth, sizeof (struct proc_threadinfo));
+  int ret = proc_pidinfo(pid, PROC_PIDTHREADINFO, thread_handle, pth,
+                         sizeof(struct proc_threadinfo));
   if (ret != 0)
     return 1;
   else
     return 0;
 }
 
-int
-main (int argc, char **argv)
-{
+int main(int argc, char **argv) {
   kern_return_t kr;
   task_t task;
   pid_t pid = 0;
@@ -294,221 +269,239 @@ main (int argc, char **argv)
   int do_loop = 0;
   int verbose = 0;
   int resume_when_done = 0;
-  mach_port_t mytask = mach_task_self ();
+  mach_port_t mytask = mach_task_self();
 
-  if (argc != 2 && argc != 3 && argc != 4 && argc != 5)
-    {
-      printf ("Usage: tdump [-l] [-v] [-r] pid/procname\n");
-      exit (1);
-    }
-  
-  if (argc == 3 || argc == 4)
-    {
-      int i = 1;
-      while (i < argc - 1)
-        {
-          if (strcmp (argv[i], "-l") == 0)
-            do_loop = 1;
-          if (strcmp (argv[i], "-v") == 0)
-            verbose = 1;
-          if (strcmp (argv[i], "-r") == 0)
-            resume_when_done++;
-          i++;
-        }
+  if (argc != 2 && argc != 3 && argc != 4 && argc != 5) {
+    printf("Usage: tdump [-l] [-v] [-r] pid/procname\n");
+    exit(1);
+  }
+
+  if (argc == 3 || argc == 4) {
+    int i = 1;
+    while (i < argc - 1) {
+      if (strcmp(argv[i], "-l") == 0)
+        do_loop = 1;
+      if (strcmp(argv[i], "-v") == 0)
+        verbose = 1;
+      if (strcmp(argv[i], "-r") == 0)
+        resume_when_done++;
+      i++;
     }
+  }
 
   char *c = argv[argc - 1];
-  if (*c == '\0')
-    {
-      printf ("Usage: tdump [-l] [-v] pid/procname\n");
-      exit (1);
-    }
-  while (*c != '\0')
-    {
-      if (!isdigit (*c))
-        {
-          arg_is_procname = 1;
-          procname = argv[argc - 1];
-          break;
-        }
-      c++;
+  if (*c == '\0') {
+    printf("Usage: tdump [-l] [-v] pid/procname\n");
+    exit(1);
+  }
+  while (*c != '\0') {
+    if (!isdigit(*c)) {
+      arg_is_procname = 1;
+      procname = argv[argc - 1];
+      break;
     }
+    c++;
+  }
 
-  if (arg_is_procname && procname)
-    {
-      pid = get_pid_for_process_name (procname);
-    }
-  else
-    {
-      errno = 0;
-      pid = (pid_t) strtol (argv[argc - 1], NULL, 10);
-      if (pid == 0 && errno == EINVAL)
-        {
-          printf ("Usage: tdump [-l] [-v] pid/procname\n");
-          exit (1);
-        }
+  if (arg_is_procname && procname) {
+    pid = get_pid_for_process_name(procname);
+  } else {
+    errno = 0;
+    pid = (pid_t)strtol(argv[argc - 1], NULL, 10);
+    if (pid == 0 && errno == EINVAL) {
+      printf("Usage: tdump [-l] [-v] pid/procname\n");
+      exit(1);
     }
+  }
 
-  const char *process_name = get_process_name_for_pid (pid);
+  const char *process_name = get_process_name_for_pid(pid);
 
-  // At this point "pid" is the process id and "process_name" is the process name
-  // Now we have to get the process list from the kernel (which only has the truncated
+  // At this point "pid" is the process id and "process_name" is the process
+  // name
+  // Now we have to get the process list from the kernel (which only has the
+  // truncated
   // 16 char names)
 
-  struct kinfo_proc *kinfo = get_kinfo_proc_for_pid (pid, process_name);
+  struct kinfo_proc *kinfo = get_kinfo_proc_for_pid(pid, process_name);
 
-  printf ("pid %d (%s) is currently ", pid, process_name);
+  printf("pid %d (%s) is currently ", pid, process_name);
   switch (kinfo->kp_proc.p_stat) {
-    case SIDL: printf ("being created by fork"); break;
-    case SRUN: printf ("runnable"); break;
-    case SSLEEP: printf ("sleeping on an address"); break;
-    case SSTOP: printf ("suspended"); break;
-    case SZOMB: printf ("zombie state - awaiting collection by parent"); break;
-    default: printf ("unknown");
+  case SIDL:
+    printf("being created by fork");
+    break;
+  case SRUN:
+    printf("runnable");
+    break;
+  case SSLEEP:
+    printf("sleeping on an address");
+    break;
+  case SSTOP:
+    printf("suspended");
+    break;
+  case SZOMB:
+    printf("zombie state - awaiting collection by parent");
+    break;
+  default:
+    printf("unknown");
   }
   if (kinfo->kp_proc.p_flag & P_TRACED)
-    printf (" and is being debugged.");
-  free ((void *) kinfo);
+    printf(" and is being debugged.");
+  free((void *)kinfo);
 
-  printf ("\n");
+  printf("\n");
 
   int csops_flags = 0;
-  if (csops (pid, CS_OPS_STATUS, &csops_flags, sizeof (csops_flags)) != -1
-      && (csops_flags & CS_RESTRICT))
-  {
-      printf ("pid %d (%s) is restricted so nothing can attach to it.\n", pid, process_name);
+  if (csops(pid, CS_OPS_STATUS, &csops_flags, sizeof(csops_flags)) != -1 &&
+      (csops_flags & CS_RESTRICT)) {
+    printf("pid %d (%s) is restricted so nothing can attach to it.\n", pid,
+           process_name);
   }
 
-  kr = task_for_pid (mach_task_self (), pid, &task);
-  if (kr != KERN_SUCCESS)
-    {
-      printf ("Error - unable to task_for_pid()\n");
-      exit (1);
-    }
+  kr = task_for_pid(mach_task_self(), pid, &task);
+  if (kr != KERN_SUCCESS) {
+    printf("Error - unable to task_for_pid()\n");
+    exit(1);
+  }
 
   struct task_basic_info info;
   unsigned int info_count = TASK_BASIC_INFO_COUNT;
 
-  kr = task_info (task, TASK_BASIC_INFO, (task_info_t) &info, &info_count);
-  if (kr != KERN_SUCCESS)
-    {
-      printf ("Error - unable to call task_info.\n");
-      exit (1);
-    }
-  printf ("Task suspend count: %d.\n", info.suspend_count);
+  kr = task_info(task, TASK_BASIC_INFO, (task_info_t)&info, &info_count);
+  if (kr != KERN_SUCCESS) {
+    printf("Error - unable to call task_info.\n");
+    exit(1);
+  }
+  printf("Task suspend count: %d.\n", info.suspend_count);
 
-  struct timespec *rqtp = (struct timespec *) malloc (sizeof (struct timespec));
+  struct timespec *rqtp = (struct timespec *)malloc(sizeof(struct timespec));
   rqtp->tv_sec = 0;
   rqtp->tv_nsec = 150000000;
 
   int loop_cnt = 1;
-  do
-    {
-      int i;
-      if (do_loop)
-        printf ("Iteration %d:\n", loop_cnt++);
-      thread_array_t thread_list;
-      mach_msg_type_number_t thread_count;
-
-      kr = task_threads (task, &thread_list, &thread_count);
-      if (kr != KERN_SUCCESS)
-        {
-          printf ("Error - unable to get thread list\n");
-          exit (1);
+  do {
+    int i;
+    if (do_loop)
+      printf("Iteration %d:\n", loop_cnt++);
+    thread_array_t thread_list;
+    mach_msg_type_number_t thread_count;
+
+    kr = task_threads(task, &thread_list, &thread_count);
+    if (kr != KERN_SUCCESS) {
+      printf("Error - unable to get thread list\n");
+      exit(1);
+    }
+    printf("pid %d has %d threads\n", pid, thread_count);
+    if (verbose)
+      printf("\n");
+
+    for (i = 0; i < thread_count; i++) {
+      thread_basic_info_t basic_info = get_thread_basic_info(thread_list[i]);
+
+      thread_identifier_info_data_t identifier_info =
+          get_thread_identifier_info(thread_list[i]);
+
+      int wordsize;
+      uint64_t pc = get_current_pc(thread_list[i], &wordsize);
+
+      printf("thread #%d, system-wide-unique-tid %lld, suspend count is %d, ",
+             i, identifier_info.thread_id, basic_info->suspend_count);
+      if (wordsize == 8)
+        printf("pc 0x%016llx, ", pc);
+      else
+        printf("pc 0x%08llx, ", pc);
+      printf("run state is ");
+      switch (basic_info->run_state) {
+      case TH_STATE_RUNNING:
+        puts("running");
+        break;
+      case TH_STATE_STOPPED:
+        puts("stopped");
+        break;
+      case TH_STATE_WAITING:
+        puts("waiting");
+        break;
+      case TH_STATE_UNINTERRUPTIBLE:
+        puts("uninterruptible");
+        break;
+      case TH_STATE_HALTED:
+        puts("halted");
+        break;
+      default:
+        puts("");
+      }
+
+      printf("           pthread handle id 0x%llx (not the same value as "
+             "pthread_self() returns)\n",
+             (uint64_t)identifier_info.thread_handle);
+
+      struct proc_threadinfo pth;
+      int proc_threadinfo_succeeded =
+          get_proc_threadinfo(pid, identifier_info.thread_handle, &pth);
+
+      if (proc_threadinfo_succeeded && pth.pth_name[0] != '\0')
+        printf("           thread name '%s'\n", pth.pth_name);
+
+      printf("           libdispatch qaddr 0x%llx (not the same as the "
+             "dispatch_queue_t token)\n",
+             (uint64_t)identifier_info.dispatch_qaddr);
+
+      if (verbose) {
+        printf(
+            "           (examine-threads port namespace) mach port # 0x%4.4x\n",
+            (int)thread_list[i]);
+        thread_t mach_port_inferior_namespace;
+        if (inferior_namespace_mach_port_num(task, thread_list[i],
+                                             &mach_port_inferior_namespace))
+          printf("           (inferior port namepsace) mach port # 0x%4.4x\n",
+                 (int)mach_port_inferior_namespace);
+        printf("           user %d.%06ds, system %d.%06ds",
+               basic_info->user_time.seconds,
+               basic_info->user_time.microseconds,
+               basic_info->system_time.seconds,
+               basic_info->system_time.microseconds);
+        if (basic_info->cpu_usage > 0) {
+          float cpu_percentage = basic_info->cpu_usage / 10.0;
+          printf(", using %.1f%% cpu currently", cpu_percentage);
         }
-      printf ("pid %d has %d threads\n", pid, thread_count);
-      if (verbose)
-        printf ("\n");
-
-      for (i = 0; i < thread_count; i++)
-        {
-          thread_basic_info_t basic_info = get_thread_basic_info (thread_list[i]);
-
-          thread_identifier_info_data_t identifier_info = get_thread_identifier_info (thread_list[i]);
-          
-          int wordsize;
-          uint64_t pc = get_current_pc (thread_list[i], &wordsize);
-
-          printf ("thread #%d, system-wide-unique-tid %lld, suspend count is %d, ", i,
-                  identifier_info.thread_id,
-                  basic_info->suspend_count);
-          if (wordsize == 8)
-            printf ("pc 0x%016llx, ", pc);
-          else
-            printf ("pc 0x%08llx, ", pc);
-          printf ("run state is ");
-          switch (basic_info->run_state) {
-            case TH_STATE_RUNNING: puts ("running"); break;
-            case TH_STATE_STOPPED: puts ("stopped"); break;
-            case TH_STATE_WAITING: puts ("waiting"); break;
-            case TH_STATE_UNINTERRUPTIBLE: puts ("uninterruptible"); break;
-            case TH_STATE_HALTED: puts ("halted"); break;
-            default: puts ("");
-          }
-
-          printf ("           pthread handle id 0x%llx (not the same value as pthread_self() returns)\n", (uint64_t) identifier_info.thread_handle);
-
-          struct proc_threadinfo pth;
-          int proc_threadinfo_succeeded = get_proc_threadinfo (pid, identifier_info.thread_handle, &pth);
-
-          if (proc_threadinfo_succeeded && pth.pth_name[0] != '\0')
-            printf ("           thread name '%s'\n", pth.pth_name);
-
-          printf ("           libdispatch qaddr 0x%llx (not the same as the dispatch_queue_t token)\n", (uint64_t) identifier_info.dispatch_qaddr);
-
-          if (verbose)
-            {
-              printf ("           (examine-threads port namespace) mach port # 0x%4.4x\n", (int) thread_list[i]);
-              thread_t mach_port_inferior_namespace;
-              if (inferior_namespace_mach_port_num (task, thread_list[i], &mach_port_inferior_namespace))
-                  printf ("           (inferior port namepsace) mach port # 0x%4.4x\n", (int) mach_port_inferior_namespace);
-              printf ("           user %d.%06ds, system %d.%06ds", 
-                              basic_info->user_time.seconds, basic_info->user_time.microseconds, 
-                              basic_info->system_time.seconds, basic_info->system_time.microseconds);
-              if (basic_info->cpu_usage > 0)
-                {
-                  float cpu_percentage = basic_info->cpu_usage / 10.0;
-                  printf (", using %.1f%% cpu currently", cpu_percentage);
-                }
-              if (basic_info->sleep_time > 0)
-                printf (", this thread has slept for %d seconds", basic_info->sleep_time);
-
-              printf ("\n           ");
-              printf ("scheduling policy %d", basic_info->policy);
-
-              if (basic_info->flags != 0)
-                {
-                  printf (", flags %d", basic_info->flags);
-                  if ((basic_info->flags | TH_FLAGS_SWAPPED) == TH_FLAGS_SWAPPED)
-                    printf (" (thread is swapped out)");
-                  if ((basic_info->flags | TH_FLAGS_IDLE) == TH_FLAGS_IDLE)
-                    printf (" (thread is idle)");
-                }
-               if (proc_threadinfo_succeeded)
-                 printf (", current pri %d, max pri %d", pth.pth_curpri, pth.pth_maxpriority);
-
-              printf ("\n\n");
-            }
-
-          free ((void *) basic_info);
+        if (basic_info->sleep_time > 0)
+          printf(", this thread has slept for %d seconds",
+                 basic_info->sleep_time);
+
+        printf("\n           ");
+        printf("scheduling policy %d", basic_info->policy);
+
+        if (basic_info->flags != 0) {
+          printf(", flags %d", basic_info->flags);
+          if ((basic_info->flags | TH_FLAGS_SWAPPED) == TH_FLAGS_SWAPPED)
+            printf(" (thread is swapped out)");
+          if ((basic_info->flags | TH_FLAGS_IDLE) == TH_FLAGS_IDLE)
+            printf(" (thread is idle)");
         }
-      if (do_loop)
-        printf ("\n");
-      vm_deallocate (mytask, (vm_address_t) thread_list, 
-                         thread_count * sizeof (thread_act_t));
-      nanosleep (rqtp, NULL);
-    } while (do_loop);
-  
-    while (resume_when_done > 0)
-    {
-        kern_return_t err = task_resume (task);
-        if (err != KERN_SUCCESS)
-          printf ("Error resuming task: %d.", err);
-        resume_when_done--;
-    }
+        if (proc_threadinfo_succeeded)
+          printf(", current pri %d, max pri %d", pth.pth_curpri,
+                 pth.pth_maxpriority);
+
+        printf("\n\n");
+      }
+
+      free((void *)basic_info);
+    }
+    if (do_loop)
+      printf("\n");
+    vm_deallocate(mytask, (vm_address_t)thread_list,
+                  thread_count * sizeof(thread_act_t));
+    nanosleep(rqtp, NULL);
+  } while (do_loop);
+
+  while (resume_when_done > 0) {
+    kern_return_t err = task_resume(task);
+    if (err != KERN_SUCCESS)
+      printf("Error resuming task: %d.", err);
+    resume_when_done--;
+  }
 
-    vm_deallocate (mytask, (vm_address_t) task, sizeof (task_t));
-    free ((void *) process_name);
+  vm_deallocate(mytask, (vm_address_t)task, sizeof(task_t));
+  free((void *)process_name);
 
   return 0;
 }

Modified: lldb/trunk/tools/debugserver/source/ARM_DWARF_Registers.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/ARM_DWARF_Registers.h?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/tools/debugserver/source/ARM_DWARF_Registers.h (original)
+++ lldb/trunk/tools/debugserver/source/ARM_DWARF_Registers.h Tue Sep  6 15:57:50 2016
@@ -10,200 +10,197 @@
 #ifndef ARM_DWARF_Registers_h_
 #define ARM_DWARF_Registers_h_
 
-
-enum
-{
-    dwarf_r0 = 0,
-    dwarf_r1,
-    dwarf_r2,
-    dwarf_r3,
-    dwarf_r4,
-    dwarf_r5,
-    dwarf_r6,
-    dwarf_r7,
-    dwarf_r8,
-    dwarf_r9,
-    dwarf_r10,
-    dwarf_r11,
-    dwarf_r12,
-    dwarf_sp,
-    dwarf_lr,
-    dwarf_pc,
-    dwarf_cpsr,
-
-    dwarf_s0 = 64,
-    dwarf_s1,
-    dwarf_s2,
-    dwarf_s3,
-    dwarf_s4,
-    dwarf_s5,
-    dwarf_s6,
-    dwarf_s7,
-    dwarf_s8,
-    dwarf_s9,
-    dwarf_s10,
-    dwarf_s11,
-    dwarf_s12,
-    dwarf_s13,
-    dwarf_s14,
-    dwarf_s15,
-    dwarf_s16,
-    dwarf_s17,
-    dwarf_s18,
-    dwarf_s19,
-    dwarf_s20,
-    dwarf_s21,
-    dwarf_s22,
-    dwarf_s23,
-    dwarf_s24,
-    dwarf_s25,
-    dwarf_s26,
-    dwarf_s27,
-    dwarf_s28,
-    dwarf_s29,
-    dwarf_s30,
-    dwarf_s31,
-
-    // FPA Registers 0-7
-    dwarf_f0 = 96,
-    dwarf_f1,
-    dwarf_f2,
-    dwarf_f3,
-    dwarf_f4,
-    dwarf_f5,
-    dwarf_f6,
-    dwarf_f7,
-
-    // Intel wireless MMX general purpose registers 0 - 7
-    dwarf_wCGR0 = 104,
-    dwarf_wCGR1,
-    dwarf_wCGR2,
-    dwarf_wCGR3,
-    dwarf_wCGR4,
-    dwarf_wCGR5,
-    dwarf_wCGR6,
-    dwarf_wCGR7,
-
-    // XScale accumulator register 0–7 (they do overlap with wCGR0 - wCGR7)
-    dwarf_ACC0 = 104,
-    dwarf_ACC1,
-    dwarf_ACC2,
-    dwarf_ACC3,
-    dwarf_ACC4,
-    dwarf_ACC5,
-    dwarf_ACC6,
-    dwarf_ACC7,
-
-    // Intel wireless MMX data registers 0 - 15
-    dwarf_wR0 = 112,
-    dwarf_wR1,
-    dwarf_wR2,
-    dwarf_wR3,
-    dwarf_wR4,
-    dwarf_wR5,
-    dwarf_wR6,
-    dwarf_wR7,
-    dwarf_wR8,
-    dwarf_wR9,
-    dwarf_wR10,
-    dwarf_wR11,
-    dwarf_wR12,
-    dwarf_wR13,
-    dwarf_wR14,
-    dwarf_wR15,
-
-    dwarf_spsr = 128,
-    dwarf_spsr_fiq,
-    dwarf_spsr_irq,
-    dwarf_spsr_abt,
-    dwarf_spsr_und,
-    dwarf_spsr_svc,
-
-    dwarf_r8_usr = 144,
-    dwarf_r9_usr,
-    dwarf_r10_usr,
-    dwarf_r11_usr,
-    dwarf_r12_usr,
-    dwarf_r13_usr,
-    dwarf_r14_usr,
-    dwarf_r8_fiq,
-    dwarf_r9_fiq,
-    dwarf_r10_fiq,
-    dwarf_r11_fiq,
-    dwarf_r12_fiq,
-    dwarf_r13_fiq,
-    dwarf_r14_fiq,
-    dwarf_r13_irq,
-    dwarf_r14_irq,
-    dwarf_r13_abt,
-    dwarf_r14_abt,
-    dwarf_r13_und,
-    dwarf_r14_und,
-    dwarf_r13_svc,
-    dwarf_r14_svc,
-
-    // Intel wireless MMX control register in co-processor 0 - 7
-    dwarf_wC0 = 192,
-    dwarf_wC1,
-    dwarf_wC2,
-    dwarf_wC3,
-    dwarf_wC4,
-    dwarf_wC5,
-    dwarf_wC6,
-    dwarf_wC7,
-
-    // VFP-v3/Neon
-    dwarf_d0 = 256,
-    dwarf_d1,
-    dwarf_d2,
-    dwarf_d3,
-    dwarf_d4,
-    dwarf_d5,
-    dwarf_d6,
-    dwarf_d7,
-    dwarf_d8,
-    dwarf_d9,
-    dwarf_d10,
-    dwarf_d11,
-    dwarf_d12,
-    dwarf_d13,
-    dwarf_d14,
-    dwarf_d15,
-    dwarf_d16,
-    dwarf_d17,
-    dwarf_d18,
-    dwarf_d19,
-    dwarf_d20,
-    dwarf_d21,
-    dwarf_d22,
-    dwarf_d23,
-    dwarf_d24,
-    dwarf_d25,
-    dwarf_d26,
-    dwarf_d27,
-    dwarf_d28,
-    dwarf_d29,
-    dwarf_d30,
-    dwarf_d31,
-
-    // Neon quadword registers
-    dwarf_q0 = 288,
-    dwarf_q1,
-    dwarf_q2,
-    dwarf_q3,
-    dwarf_q4,
-    dwarf_q5,
-    dwarf_q6,
-    dwarf_q7,
-    dwarf_q8,
-    dwarf_q9,
-    dwarf_q10,
-    dwarf_q11,
-    dwarf_q12,
-    dwarf_q13,
-    dwarf_q14,
-    dwarf_q15
+enum {
+  dwarf_r0 = 0,
+  dwarf_r1,
+  dwarf_r2,
+  dwarf_r3,
+  dwarf_r4,
+  dwarf_r5,
+  dwarf_r6,
+  dwarf_r7,
+  dwarf_r8,
+  dwarf_r9,
+  dwarf_r10,
+  dwarf_r11,
+  dwarf_r12,
+  dwarf_sp,
+  dwarf_lr,
+  dwarf_pc,
+  dwarf_cpsr,
+
+  dwarf_s0 = 64,
+  dwarf_s1,
+  dwarf_s2,
+  dwarf_s3,
+  dwarf_s4,
+  dwarf_s5,
+  dwarf_s6,
+  dwarf_s7,
+  dwarf_s8,
+  dwarf_s9,
+  dwarf_s10,
+  dwarf_s11,
+  dwarf_s12,
+  dwarf_s13,
+  dwarf_s14,
+  dwarf_s15,
+  dwarf_s16,
+  dwarf_s17,
+  dwarf_s18,
+  dwarf_s19,
+  dwarf_s20,
+  dwarf_s21,
+  dwarf_s22,
+  dwarf_s23,
+  dwarf_s24,
+  dwarf_s25,
+  dwarf_s26,
+  dwarf_s27,
+  dwarf_s28,
+  dwarf_s29,
+  dwarf_s30,
+  dwarf_s31,
+
+  // FPA Registers 0-7
+  dwarf_f0 = 96,
+  dwarf_f1,
+  dwarf_f2,
+  dwarf_f3,
+  dwarf_f4,
+  dwarf_f5,
+  dwarf_f6,
+  dwarf_f7,
+
+  // Intel wireless MMX general purpose registers 0 - 7
+  dwarf_wCGR0 = 104,
+  dwarf_wCGR1,
+  dwarf_wCGR2,
+  dwarf_wCGR3,
+  dwarf_wCGR4,
+  dwarf_wCGR5,
+  dwarf_wCGR6,
+  dwarf_wCGR7,
+
+  // XScale accumulator register 0–7 (they do overlap with wCGR0 - wCGR7)
+  dwarf_ACC0 = 104,
+  dwarf_ACC1,
+  dwarf_ACC2,
+  dwarf_ACC3,
+  dwarf_ACC4,
+  dwarf_ACC5,
+  dwarf_ACC6,
+  dwarf_ACC7,
+
+  // Intel wireless MMX data registers 0 - 15
+  dwarf_wR0 = 112,
+  dwarf_wR1,
+  dwarf_wR2,
+  dwarf_wR3,
+  dwarf_wR4,
+  dwarf_wR5,
+  dwarf_wR6,
+  dwarf_wR7,
+  dwarf_wR8,
+  dwarf_wR9,
+  dwarf_wR10,
+  dwarf_wR11,
+  dwarf_wR12,
+  dwarf_wR13,
+  dwarf_wR14,
+  dwarf_wR15,
+
+  dwarf_spsr = 128,
+  dwarf_spsr_fiq,
+  dwarf_spsr_irq,
+  dwarf_spsr_abt,
+  dwarf_spsr_und,
+  dwarf_spsr_svc,
+
+  dwarf_r8_usr = 144,
+  dwarf_r9_usr,
+  dwarf_r10_usr,
+  dwarf_r11_usr,
+  dwarf_r12_usr,
+  dwarf_r13_usr,
+  dwarf_r14_usr,
+  dwarf_r8_fiq,
+  dwarf_r9_fiq,
+  dwarf_r10_fiq,
+  dwarf_r11_fiq,
+  dwarf_r12_fiq,
+  dwarf_r13_fiq,
+  dwarf_r14_fiq,
+  dwarf_r13_irq,
+  dwarf_r14_irq,
+  dwarf_r13_abt,
+  dwarf_r14_abt,
+  dwarf_r13_und,
+  dwarf_r14_und,
+  dwarf_r13_svc,
+  dwarf_r14_svc,
+
+  // Intel wireless MMX control register in co-processor 0 - 7
+  dwarf_wC0 = 192,
+  dwarf_wC1,
+  dwarf_wC2,
+  dwarf_wC3,
+  dwarf_wC4,
+  dwarf_wC5,
+  dwarf_wC6,
+  dwarf_wC7,
+
+  // VFP-v3/Neon
+  dwarf_d0 = 256,
+  dwarf_d1,
+  dwarf_d2,
+  dwarf_d3,
+  dwarf_d4,
+  dwarf_d5,
+  dwarf_d6,
+  dwarf_d7,
+  dwarf_d8,
+  dwarf_d9,
+  dwarf_d10,
+  dwarf_d11,
+  dwarf_d12,
+  dwarf_d13,
+  dwarf_d14,
+  dwarf_d15,
+  dwarf_d16,
+  dwarf_d17,
+  dwarf_d18,
+  dwarf_d19,
+  dwarf_d20,
+  dwarf_d21,
+  dwarf_d22,
+  dwarf_d23,
+  dwarf_d24,
+  dwarf_d25,
+  dwarf_d26,
+  dwarf_d27,
+  dwarf_d28,
+  dwarf_d29,
+  dwarf_d30,
+  dwarf_d31,
+
+  // Neon quadword registers
+  dwarf_q0 = 288,
+  dwarf_q1,
+  dwarf_q2,
+  dwarf_q3,
+  dwarf_q4,
+  dwarf_q5,
+  dwarf_q6,
+  dwarf_q7,
+  dwarf_q8,
+  dwarf_q9,
+  dwarf_q10,
+  dwarf_q11,
+  dwarf_q12,
+  dwarf_q13,
+  dwarf_q14,
+  dwarf_q15
 };
 
 #endif // ARM_DWARF_Registers_h_
-

Modified: lldb/trunk/tools/debugserver/source/ARM_ehframe_Registers.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/ARM_ehframe_Registers.h?rev=280751&r1=280750&r2=280751&view=diff
==============================================================================
--- lldb/trunk/tools/debugserver/source/ARM_ehframe_Registers.h (original)
+++ lldb/trunk/tools/debugserver/source/ARM_ehframe_Registers.h Tue Sep  6 15:57:50 2016
@@ -1,4 +1,5 @@
-//===-- ARM_ehframe_Registers.h -------------------------------------*- C++ -*-===//
+//===-- ARM_ehframe_Registers.h -------------------------------------*- C++
+//-*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -10,26 +11,24 @@
 #ifndef utility_ARM_ehframe_Registers_h_
 #define utility_ARM_ehframe_Registers_h_
 
-enum
-{
-    ehframe_r0 = 0,
-    ehframe_r1,
-    ehframe_r2,
-    ehframe_r3,
-    ehframe_r4,
-    ehframe_r5,
-    ehframe_r6,
-    ehframe_r7,
-    ehframe_r8,
-    ehframe_r9,
-    ehframe_r10,
-    ehframe_r11,
-    ehframe_r12,
-    ehframe_sp,
-    ehframe_lr,
-    ehframe_pc,
-    ehframe_cpsr
+enum {
+  ehframe_r0 = 0,
+  ehframe_r1,
+  ehframe_r2,
+  ehframe_r3,
+  ehframe_r4,
+  ehframe_r5,
+  ehframe_r6,
+  ehframe_r7,
+  ehframe_r8,
+  ehframe_r9,
+  ehframe_r10,
+  ehframe_r11,
+  ehframe_r12,
+  ehframe_sp,
+  ehframe_lr,
+  ehframe_pc,
+  ehframe_cpsr
 };
 
 #endif // utility_ARM_ehframe_Registers_h_
-




More information about the lldb-commits mailing list