Guest User

Untitled

a guest
Feb 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. while arg = argv.shift
  2. case arg
  3. when /\A--(.*)/
  4. if $1.empty? # xinit -- -bpp 24
  5. break
  6. end
  7.  
  8. opt, val = $1.split('=', 2)
  9.  
  10. if opt.size == 1
  11. argv.unshift arg
  12. return nil
  13. elsif valopts.key? opt # imclean --src +trash
  14. valopts[opt] = val || argv.shift or return nil
  15. elsif boolopts.key? opt # ruby --verbose
  16. boolopts[opt] = true
  17. else
  18. argv.unshift arg
  19. return nil
  20. end
  21.  
  22. c += 1
  23. when /\A-(.+)/
  24. opts = $1
  25.  
  26. until opts.empty?
  27. opt = opts.slice!(0, 1)
  28.  
  29. if valopts.key? opt
  30. val = opts
  31.  
  32. if val.empty? # ruby -e 'p $:'
  33. valopts[opt] = argv.shift or return nil
  34. else # cc -ohello ...
  35. valopts[opt] = val
  36. end
  37.  
  38. c += 1
  39. break
  40. elsif boolopts.key? opt
  41. boolopts[opt] = true # ruby -h
  42. c += 1
  43. else
  44. argv.unshift arg
  45. return nil
  46. end
  47. end
  48. else
  49. argv.unshift arg
  50. break
  51. end
  52. end
Add Comment
Please, Sign In to add comment