… | |
… | |
79 | #include <uudeview.h> |
79 | #include <uudeview.h> |
80 | #include <uuint.h> |
80 | #include <uuint.h> |
81 | #include <fptools.h> |
81 | #include <fptools.h> |
82 | #include <uustring.h> |
82 | #include <uustring.h> |
83 | |
83 | |
84 | char * uulib_id = "$Id: uulib.c,v 1.4.2.3 2002/10/13 13:03:08 root Exp $"; |
84 | char * uulib_id = "$Id: uulib.c,v 1.4.2.4 2003/11/06 13:08:24 root Exp $"; |
85 | |
85 | |
86 | #ifdef SYSTEM_WINDLL |
86 | #ifdef SYSTEM_WINDLL |
87 | BOOL _export WINAPI |
87 | BOOL _export WINAPI |
88 | DllEntryPoint (HINSTANCE hInstance, DWORD seginfo, |
88 | DllEntryPoint (HINSTANCE hInstance, DWORD seginfo, |
89 | LPVOID lpCmdLine) |
89 | LPVOID lpCmdLine) |
… | |
… | |
240 | { &uunconc_B64xlat, 256 * sizeof (int) }, |
240 | { &uunconc_B64xlat, 256 * sizeof (int) }, |
241 | { &uunconc_XXxlat, 256 * sizeof (int) }, |
241 | { &uunconc_XXxlat, 256 * sizeof (int) }, |
242 | { &uunconc_BHxlat, 256 * sizeof (int) }, |
242 | { &uunconc_BHxlat, 256 * sizeof (int) }, |
243 | { &uunconc_save, 3*300 }, /* from uunconc.c:decoding buffer */ |
243 | { &uunconc_save, 3*300 }, /* from uunconc.c:decoding buffer */ |
244 | { &uuscan_shlline, 1024 }, /* from uuscan.c:ScanHeaderLine() */ |
244 | { &uuscan_shlline, 1024 }, /* from uuscan.c:ScanHeaderLine() */ |
|
|
245 | { &uuscan_shlline2, 1024 }, /* from uuscan.c:ScanHeaderLine() */ |
245 | { &uuscan_pvvalue, 300 }, /* from uuscan.c:ParseValue() */ |
246 | { &uuscan_pvvalue, 300 }, /* from uuscan.c:ParseValue() */ |
246 | { &uuscan_phtext, 300 }, /* from uuscan.c:ParseHeader() */ |
247 | { &uuscan_phtext, 300 }, /* from uuscan.c:ParseHeader() */ |
247 | { &uuscan_sdline, 300 }, /* from uuscan.c:ScanData() */ |
248 | { &uuscan_sdline, 300 }, /* from uuscan.c:ScanData() */ |
248 | { &uuscan_sdbhds1, 300 }, |
249 | { &uuscan_sdbhds1, 300 }, |
249 | { &uuscan_sdbhds2, 300 }, |
250 | { &uuscan_sdbhds2, 300 }, |
… | |
… | |
652 | * add the parts to UUGlobalFileList |
653 | * add the parts to UUGlobalFileList |
653 | */ |
654 | */ |
654 | |
655 | |
655 | int UUEXPORT |
656 | int UUEXPORT |
656 | UULoadFile (char *filename, char *fileid, int delflag) |
657 | UULoadFile (char *filename, char *fileid, int delflag) |
|
|
658 | { |
|
|
659 | return UULoadFileWithPartNo(filename, fileid, delflag, -1); |
|
|
660 | } |
|
|
661 | |
|
|
662 | int UUEXPORT |
|
|
663 | UULoadFileWithPartNo (char *filename, char *fileid, int delflag, int partno) |
657 | { |
664 | { |
658 | int res, sr, count=0; |
665 | int res, sr, count=0; |
659 | struct stat finfo; |
666 | struct stat finfo; |
660 | fileread *loaded; |
667 | fileread *loaded; |
661 | uufile *fload; |
668 | uufile *fload; |
… | |
… | |
746 | progress.action = 0; |
753 | progress.action = 0; |
747 | fclose (datei); |
754 | fclose (datei); |
748 | return UURET_IOERR; |
755 | return UURET_IOERR; |
749 | } |
756 | } |
750 | |
757 | |
|
|
758 | if (partno != -1) |
|
|
759 | loaded->partno = partno; |
|
|
760 | |
751 | if ((loaded->uudet == QP_ENCODED || loaded->uudet == PT_ENCODED) && |
761 | if ((loaded->uudet == QP_ENCODED || loaded->uudet == PT_ENCODED) && |
752 | (loaded->filename == NULL || *(loaded->filename) == '\0') && |
762 | (loaded->filename == NULL || *(loaded->filename) == '\0') && |
753 | !uu_handletext && (loaded->flags&FL_PARTIAL)==0) { |
763 | !uu_handletext && (loaded->flags&FL_PARTIAL)==0) { |
754 | /* |
764 | /* |
755 | * Don't want text |
765 | * Don't want text |
… | |
… | |
827 | break; |
837 | break; |
828 | |
838 | |
829 | if (loaded->uudet) |
839 | if (loaded->uudet) |
830 | count++; |
840 | count++; |
831 | } |
841 | } |
|
|
842 | if (ferror (datei)) { |
|
|
843 | UUMessage (uulib_id, __LINE__, UUMSG_ERROR, |
|
|
844 | uustring (S_READ_ERROR), filename, |
|
|
845 | strerror (uu_errno = errno)); |
|
|
846 | UUCheckGlobalList (); |
|
|
847 | progress.action = 0; |
|
|
848 | fclose (datei); |
|
|
849 | return UURET_IOERR; |
|
|
850 | } |
832 | fclose (datei); |
851 | fclose (datei); |
833 | |
852 | |
834 | if (!uu_fast_scanning && count==0) { |
853 | if (!uu_fast_scanning && count==0) { |
835 | UUMessage (uulib_id, __LINE__, UUMSG_NOTE, |
854 | UUMessage (uulib_id, __LINE__, UUMSG_NOTE, |
836 | uustring (S_NO_DATA_FOUND), filename); |
855 | uustring (S_NO_DATA_FOUND), filename); |
… | |
… | |
1002 | unlink (uugen_fnbuffer); |
1021 | unlink (uugen_fnbuffer); |
1003 | return UURET_IOERR; |
1022 | return UURET_IOERR; |
1004 | } |
1023 | } |
1005 | } |
1024 | } |
1006 | |
1025 | |
1007 | fclose (target); |
|
|
1008 | fclose (source); |
1026 | fclose (source); |
|
|
1027 | if (fclose (target)) { |
|
|
1028 | UUMessage (uulib_id, __LINE__, UUMSG_ERROR, |
|
|
1029 | uustring (S_WR_ERR_TARGET), |
|
|
1030 | uugen_fnbuffer, strerror (uu_errno = errno)); |
|
|
1031 | unlink (uugen_fnbuffer); |
|
|
1032 | return UURET_IOERR; |
|
|
1033 | } |
1009 | |
1034 | |
1010 | /* |
1035 | /* |
1011 | * after a successful decoding run, we delete the temporary file |
1036 | * after a successful decoding run, we delete the temporary file |
1012 | */ |
1037 | */ |
1013 | |
1038 | |