main.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include <u.h>
  2. #include <libc.h>
  3. #include <bio.h>
  4. #include <draw.h>
  5. #include <html.h>
  6. #include "dat.h"
  7. char *url = "";
  8. int aflag;
  9. int width = 70;
  10. int defcharset;
  11. void
  12. usage(void)
  13. {
  14. fprint(2, "usage: htmlfmt [-c charset] [-u URL] [-a] [-l length] [file ...]\n");
  15. exits("usage");
  16. }
  17. void
  18. main(int argc, char *argv[])
  19. {
  20. int i, fd;
  21. char *p, *err, *file;
  22. char errbuf[ERRMAX];
  23. ARGBEGIN{
  24. case 'a':
  25. aflag++;
  26. break;
  27. case 'c':
  28. p = smprint("<meta charset=\"%s\">", EARGF(usage()));
  29. defcharset = charset(p);
  30. free(p);
  31. break;
  32. case 'l': case 'w':
  33. err = EARGF(usage());
  34. width = atoi(err);
  35. if(width <= 0)
  36. usage();
  37. break;
  38. case 'u':
  39. url = EARGF(usage());
  40. aflag++;
  41. break;
  42. default:
  43. usage();
  44. }ARGEND
  45. err = nil;
  46. file = "<stdin>";
  47. if(argc == 0)
  48. err = loadhtml(0);
  49. else
  50. for(i=0; err==nil && i<argc; i++){
  51. file = argv[i];
  52. fd = open(file, OREAD);
  53. if(fd < 0){
  54. errstr(errbuf, sizeof errbuf);
  55. err = errbuf;
  56. break;
  57. }
  58. err = loadhtml(fd);
  59. close(fd);
  60. if(err)
  61. break;
  62. }
  63. if(err)
  64. fprint(2, "htmlfmt: processing %s: %s\n", file, err);
  65. exits(err);
  66. }