Mercurial > emacs
comparison lib-src/movemail.c @ 89943:4c90ffeb71c5
Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-15
Merge from emacs--cvs-trunk--0
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-218
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-220
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-221
Restore deleted tagline in etc/TUTORIAL.ru
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-222
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-228
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-229
Remove TeX output files from the archive
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-230
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-247
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-248
src/lisp.h (CYCLE_CHECK): Macro moved from xfaces.c
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-249
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-256
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-258
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-263
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-264
Update from CVS: lispref/display.texi: emacs -> Emacs.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-265
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-274
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-275
Update from CVS: man/makefile.w32-in: Revert last change
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-276
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-295
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-296
Allow restarting an existing debugger session that's exited
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-297
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-327
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-328
Update from CVS: src/.gdbinit (xsymbol): Fix last change.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-329
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-344
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-345
Tweak source regexps so that building in place won't cause problems
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-346
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-351
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-352
Update from CVS: lisp/flymake.el: New file.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-353
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-361
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-362
Support " [...]" style defaults in minibuffer-electric-default-mode
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-363
(read-number): Use canonical format for default in prompt.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-364
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-367
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-368
Improve display-supports-face-attributes-p on non-ttys
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-369
Rewrite face-differs-from-default-p
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-370
Move `display-supports-face-attributes-p' entirely into C code
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-371
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372
Simplify face-differs-from-default-p; don't consider :stipple.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-373
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-374
(tty_supports_face_attributes_p): Ensure attributes differ from default
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-375
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-376
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-377
(Fdisplay_supports_face_attributes_p): Work around bootstrapping problem
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-378
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-380
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-381
Face merging cleanups
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-382
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-384
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-385
src/xfaces.c (push_named_merge_point): Return 0 if a cycle is detected
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-386
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-395
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-396
Tweak arch tagging to make build/install-in-place less annoying
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-397
Work around vc-arch problems when building eshell
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-398
Tweak permissions
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-399
Tweak directory permissions
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-400
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-401
More build-in-place tweaking of arch tagging
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-402
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-403
Yet more build-in-place tweaking of arch tagging
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-404
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-409
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-410
Make sure image types are initialized for lookup too
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-411
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-416
Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Mon, 28 Jun 2004 07:56:49 +0000 |
parents | 68c22ea6027c a47704955f8d |
children | fa9654493afb |
comparison
equal
deleted
inserted
replaced
89942:9cb747ae49af | 89943:4c90ffeb71c5 |
---|---|
214 #endif | 214 #endif |
215 case 'p': | 215 case 'p': |
216 preserve_mail++; | 216 preserve_mail++; |
217 break; | 217 break; |
218 default: | 218 default: |
219 exit(1); | 219 exit (EXIT_FAILURE); |
220 } | 220 } |
221 } | 221 } |
222 | 222 |
223 if ( | 223 if ( |
224 #ifdef MAIL_USE_POP | 224 #ifdef MAIL_USE_POP |
232 fprintf (stderr, "Usage: movemail [-p] inbox destfile%s\n", | 232 fprintf (stderr, "Usage: movemail [-p] inbox destfile%s\n", |
233 " [POP-password]"); | 233 " [POP-password]"); |
234 #else | 234 #else |
235 fprintf (stderr, "Usage: movemail [-p] inbox destfile%s\n", ""); | 235 fprintf (stderr, "Usage: movemail [-p] inbox destfile%s\n", ""); |
236 #endif | 236 #endif |
237 exit (1); | 237 exit (EXIT_FAILURE); |
238 } | 238 } |
239 | 239 |
240 inname = argv[optind]; | 240 inname = argv[optind]; |
241 outname = argv[optind+1]; | 241 outname = argv[optind+1]; |
242 | 242 |
534 /* This has to occur in the child, i.e., in the process that | 534 /* This has to occur in the child, i.e., in the process that |
535 acquired the lock! */ | 535 acquired the lock! */ |
536 if (spool_name) | 536 if (spool_name) |
537 mailunlock (); | 537 mailunlock (); |
538 #endif | 538 #endif |
539 exit (0); | 539 exit (EXIT_SUCCESS); |
540 } | 540 } |
541 | 541 |
542 wait (&status); | 542 wait (&status); |
543 if (!WIFEXITED (status)) | 543 if (!WIFEXITED (status)) |
544 exit (1); | 544 exit (EXIT_FAILURE); |
545 else if (WRETCODE (status) != 0) | 545 else if (WRETCODE (status) != 0) |
546 exit (WRETCODE (status)); | 546 exit (WRETCODE (status)); |
547 | 547 |
548 #if !defined (MAIL_USE_MMDF) && !defined (MAIL_USE_SYSTEM_LOCK) | 548 #if !defined (MAIL_USE_MMDF) && !defined (MAIL_USE_SYSTEM_LOCK) |
549 #ifdef MAIL_USE_MAILLOCK | 549 #ifdef MAIL_USE_MAILLOCK |
552 unlink (lockname); | 552 unlink (lockname); |
553 #endif /* not MAIL_USE_MMDF and not MAIL_USE_SYSTEM_LOCK */ | 553 #endif /* not MAIL_USE_MMDF and not MAIL_USE_SYSTEM_LOCK */ |
554 | 554 |
555 #endif /* ! DISABLE_DIRECT_ACCESS */ | 555 #endif /* ! DISABLE_DIRECT_ACCESS */ |
556 | 556 |
557 return 0; | 557 return EXIT_SUCCESS; |
558 } | 558 } |
559 | 559 |
560 #ifdef MAIL_USE_MAILLOCK | 560 #ifdef MAIL_USE_MAILLOCK |
561 /* This function uses stat to confirm that the mail directory is | 561 /* This function uses stat to confirm that the mail directory is |
562 identical to the directory of the input file, rather than just | 562 identical to the directory of the input file, rather than just |
605 char *s1, *s2; | 605 char *s1, *s2; |
606 { | 606 { |
607 if (delete_lockname) | 607 if (delete_lockname) |
608 unlink (delete_lockname); | 608 unlink (delete_lockname); |
609 error (s1, s2, 0); | 609 error (s1, s2, 0); |
610 exit (1); | 610 exit (EXIT_FAILURE); |
611 } | 611 } |
612 | 612 |
613 /* Print error message. `s1' is printf control string, `s2' and `s3' | 613 /* Print error message. `s1' is printf control string, `s2' and `s3' |
614 are args for it or null. */ | 614 are args for it or null. */ |
615 | 615 |
707 * off of the front of the mailbox name. | 707 * off of the front of the mailbox name. |
708 * | 708 * |
709 * If the mailbox is in the form "po:username:hostname", then it is | 709 * If the mailbox is in the form "po:username:hostname", then it is |
710 * modified by this function -- the second colon is replaced by a | 710 * modified by this function -- the second colon is replaced by a |
711 * null. | 711 * null. |
712 * | |
713 * Return a value suitable for passing to `exit'. | |
712 */ | 714 */ |
713 | 715 |
714 int | 716 int |
715 popmail (mailbox, outfile, preserve, password, reverse_order) | 717 popmail (mailbox, outfile, preserve, password, reverse_order) |
716 char *mailbox; | 718 char *mailbox; |
734 | 736 |
735 server = pop_open (hostname, user, password, POP_NO_GETPASS); | 737 server = pop_open (hostname, user, password, POP_NO_GETPASS); |
736 if (! server) | 738 if (! server) |
737 { | 739 { |
738 error ("Error connecting to POP server: %s", pop_error, 0); | 740 error ("Error connecting to POP server: %s", pop_error, 0); |
739 return (1); | 741 return EXIT_FAILURE; |
740 } | 742 } |
741 | 743 |
742 if (pop_stat (server, &nmsgs, &nbytes)) | 744 if (pop_stat (server, &nmsgs, &nbytes)) |
743 { | 745 { |
744 error ("Error getting message count from POP server: %s", pop_error, 0); | 746 error ("Error getting message count from POP server: %s", pop_error, 0); |
745 return (1); | 747 return EXIT_FAILURE; |
746 } | 748 } |
747 | 749 |
748 if (!nmsgs) | 750 if (!nmsgs) |
749 { | 751 { |
750 pop_close (server); | 752 pop_close (server); |
751 return (0); | 753 return EXIT_SUCCESS; |
752 } | 754 } |
753 | 755 |
754 mbfi = open (outfile, O_WRONLY | O_CREAT | O_EXCL, 0666); | 756 mbfi = open (outfile, O_WRONLY | O_CREAT | O_EXCL, 0666); |
755 if (mbfi < 0) | 757 if (mbfi < 0) |
756 { | 758 { |
757 pop_close (server); | 759 pop_close (server); |
758 error ("Error in open: %s, %s", strerror (errno), outfile); | 760 error ("Error in open: %s, %s", strerror (errno), outfile); |
759 return (1); | 761 return EXIT_FAILURE; |
760 } | 762 } |
761 fchown (mbfi, getuid (), -1); | 763 fchown (mbfi, getuid (), -1); |
762 | 764 |
763 if ((mbf = fdopen (mbfi, "wb")) == NULL) | 765 if ((mbf = fdopen (mbfi, "wb")) == NULL) |
764 { | 766 { |
765 pop_close (server); | 767 pop_close (server); |
766 error ("Error in fdopen: %s", strerror (errno), 0); | 768 error ("Error in fdopen: %s", strerror (errno), 0); |
767 close (mbfi); | 769 close (mbfi); |
768 unlink (outfile); | 770 unlink (outfile); |
769 return (1); | 771 return EXIT_FAILURE; |
770 } | 772 } |
771 | 773 |
772 if (reverse_order) | 774 if (reverse_order) |
773 { | 775 { |
774 start = nmsgs; | 776 start = nmsgs; |
787 mbx_delimit_begin (mbf); | 789 mbx_delimit_begin (mbf); |
788 if (pop_retr (server, i, mbf) != OK) | 790 if (pop_retr (server, i, mbf) != OK) |
789 { | 791 { |
790 error (Errmsg, 0, 0); | 792 error (Errmsg, 0, 0); |
791 close (mbfi); | 793 close (mbfi); |
792 return (1); | 794 return EXIT_FAILURE; |
793 } | 795 } |
794 mbx_delimit_end (mbf); | 796 mbx_delimit_end (mbf); |
795 fflush (mbf); | 797 fflush (mbf); |
796 if (ferror (mbf)) | 798 if (ferror (mbf)) |
797 { | 799 { |
798 error ("Error in fflush: %s", strerror (errno), 0); | 800 error ("Error in fflush: %s", strerror (errno), 0); |
799 pop_close (server); | 801 pop_close (server); |
800 close (mbfi); | 802 close (mbfi); |
801 return (1); | 803 return EXIT_FAILURE; |
802 } | 804 } |
803 } | 805 } |
804 | 806 |
805 /* On AFS, a call to write only modifies the file in the local | 807 /* On AFS, a call to write only modifies the file in the local |
806 * workstation's AFS cache. The changes are not written to the server | 808 * workstation's AFS cache. The changes are not written to the server |
810 | 812 |
811 #ifdef BSD_SYSTEM | 813 #ifdef BSD_SYSTEM |
812 if (fsync (mbfi) < 0) | 814 if (fsync (mbfi) < 0) |
813 { | 815 { |
814 error ("Error in fsync: %s", strerror (errno), 0); | 816 error ("Error in fsync: %s", strerror (errno), 0); |
815 return (1); | 817 return EXIT_FAILURE; |
816 } | 818 } |
817 #endif | 819 #endif |
818 | 820 |
819 if (close (mbfi) == -1) | 821 if (close (mbfi) == -1) |
820 { | 822 { |
821 error ("Error in close: %s", strerror (errno), 0); | 823 error ("Error in close: %s", strerror (errno), 0); |
822 return (1); | 824 return EXIT_FAILURE; |
823 } | 825 } |
824 | 826 |
825 if (! preserve) | 827 if (! preserve) |
826 for (i = 1; i <= nmsgs; i++) | 828 for (i = 1; i <= nmsgs; i++) |
827 { | 829 { |
828 if (pop_delete (server, i)) | 830 if (pop_delete (server, i)) |
829 { | 831 { |
830 error ("Error from POP server: %s", pop_error, 0); | 832 error ("Error from POP server: %s", pop_error, 0); |
831 pop_close (server); | 833 pop_close (server); |
832 return (1); | 834 return EXIT_FAILURE; |
833 } | 835 } |
834 } | 836 } |
835 | 837 |
836 if (pop_quit (server)) | 838 if (pop_quit (server)) |
837 { | 839 { |
838 error ("Error from POP server: %s", pop_error, 0); | 840 error ("Error from POP server: %s", pop_error, 0); |
839 return (1); | 841 return EXIT_FAILURE; |
840 } | 842 } |
841 | 843 |
842 return (0); | 844 return EXIT_SUCCESS; |
843 } | 845 } |
844 | 846 |
845 int | 847 int |
846 pop_retr (server, msgno, arg) | 848 pop_retr (server, msgno, arg) |
847 popserver server; | 849 popserver server; |
955 | 957 |
956 #endif /* ! HAVE_STRERROR */ | 958 #endif /* ! HAVE_STRERROR */ |
957 | 959 |
958 /* arch-tag: 1c323112-41fe-4fe5-8de9-494de631f73f | 960 /* arch-tag: 1c323112-41fe-4fe5-8de9-494de631f73f |
959 (do not change this comment) */ | 961 (do not change this comment) */ |
962 | |
963 /* movemail.c ends here */ |