program.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /*
  2. * libdpkg - Debian packaging suite library routines
  3. * program.c - dpkg-based program support
  4. *
  5. * Copyright © 2013 Guillem Jover <guillem@debian.org>
  6. *
  7. * This is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 2 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * This is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  19. */
  20. #include <config.h>
  21. #include <compat.h>
  22. #include <sys/stat.h>
  23. #include <stdio.h>
  24. #include <dpkg/progname.h>
  25. #include <dpkg/report.h>
  26. #include <dpkg/ehandle.h>
  27. #include <dpkg/program.h>
  28. /**
  29. * Standard initializations when starting a dpkg-based program.
  30. *
  31. * @param progname The program name.
  32. */
  33. void
  34. dpkg_program_init(const char *progname)
  35. {
  36. dpkg_set_progname(progname);
  37. dpkg_set_report_buffer(stdout);
  38. push_error_context();
  39. /* Set sane default permissions for newly created files. */
  40. umask(022);
  41. }
  42. /**
  43. * Standard cleanups before terminating a dpkg-based program.
  44. */
  45. void
  46. dpkg_program_done(void)
  47. {
  48. pop_error_context(ehflag_normaltidy);
  49. }