PageRenderTime 32ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/lib/Debug.ahk

http://github.com/Skiouros/Macro
AutoHotKey | 44 lines | 39 code | 5 blank | 0 comment | 6 complexity | 253a28b4da9aee10e9eebe03c1d4fedb MD5 | raw file
  1. debug(msg, delimiter = False) {
  2. global debugfile, s_name
  3. if (!s_name)
  4. s_name := A_ScriptName
  5. static stdout, ft := True ; First time.
  6. args := arg()
  7. for index, arg in args
  8. parameters .= (A_Index > 1 ? arg . " " : "")
  9. file := Exception("", -1).File
  10. SplitPath, file, fileName
  11. msg := fileName . ":" . Exception("", -1).Line . " - " . msg
  12. if (ft)
  13. stdout := FileOpen(DllCall("GetStdHandle", "int", -11, "ptr"), "h `n")
  14. t := delimiter = 1 ? msg := "* ----------------------------------------`n" . msg
  15. t := delimiter = 2 ? msg := msg . "* ----------------------------------------`n"
  16. t := delimiter = 3 ? (msg := "* ----------------------------------------`n" . msg
  17. . "`n* ----------------------------------------")
  18. t := delimiter = 4 ? (msg := "* " . s_name . " Debug OFF`n* " . s_name . "[Stop]`n"
  19. . "* ----------------------------------------`n")
  20. if (!debugfile) {
  21. ft ? (msg := "* ----------------------------------------`n"
  22. . "* " . s_name . " Debug ON`n* " . s_name . "[Start]`n"
  23. . "* Parameters: " . parameters "`n" . msg, ft := 0)
  24. OutputDebug % msg
  25. stdout.Write(msg . "`n")
  26. stdout.Read(0) ; Flush the write buffer.
  27. }
  28. else if (debugfile) {
  29. ft ? (msg := "* ----------------------------------------`n"
  30. . "* " . s_name . " Debug ON`n* " . s_name . "[Start]`n"
  31. . "* Parameters: " . parameters . "`n" . msg, ft := 0)
  32. FileAppend, %msg%`n, %debugfile%
  33. }
  34. }
  35. arg() {
  36. Loop, % (arg := {0: %false%}) [0]
  37. arg[A_Index] := %A_Index%
  38. return arg
  39. }