html.hpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. namespace nall::Decode {
  3. inline auto HTML(const string& input) -> string {
  4. string output;
  5. for(uint n = 0; n < input.size();) {
  6. if(input[n] == '&') {
  7. if(input(n + 1) == 'a' && input(n + 2) == 'm' && input(n + 3) == 'p' && input(n + 4) == ';') {
  8. output.append('&');
  9. n += 5;
  10. continue;
  11. }
  12. if(input(n + 1) == 'l' && input(n + 2) == 't' && input(n + 3) == ';') {
  13. output.append('<');
  14. n += 4;
  15. continue;
  16. }
  17. if(input(n + 1) == 'g' && input(n + 2) == 't' && input(n + 3) == ';') {
  18. output.append('>');
  19. n += 4;
  20. continue;
  21. }
  22. if(input(n + 1) == 'q' && input(n + 2) == 'u' && input(n + 3) == 'o' && input(n + 4) == 't' && input(n + 5) == ';') {
  23. output.append('"');
  24. n += 6;
  25. continue;
  26. }
  27. if(input(n + 1) == 'a' && input(n + 2) == 'p' && input(n + 3) == 'o' && input(n + 4) == 's' && input(n + 5) == ';') {
  28. output.append('\'');
  29. n += 6;
  30. continue;
  31. }
  32. }
  33. output.append(input[n++]);
  34. }
  35. return output;
  36. }
  37. }