… | |
… | |
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.11 2002/10/13 13:08:44 root Exp $"; |
84 | char * uulib_id = "$Id: uulib.c,v 1.12 2003/11/06 13:33:41 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) |
… | |
… | |
243 | { &uunconc_B64xlat, 256 * sizeof (int) }, |
243 | { &uunconc_B64xlat, 256 * sizeof (int) }, |
244 | { &uunconc_XXxlat, 256 * sizeof (int) }, |
244 | { &uunconc_XXxlat, 256 * sizeof (int) }, |
245 | { &uunconc_BHxlat, 256 * sizeof (int) }, |
245 | { &uunconc_BHxlat, 256 * sizeof (int) }, |
246 | { &uunconc_save, 3*1200 }, /* from uunconc.c:decoding buffer */ |
246 | { &uunconc_save, 3*1200 }, /* from uunconc.c:decoding buffer */ |
247 | { &uuscan_shlline, 1024 }, /* from uuscan.c:ScanHeaderLine() */ |
247 | { &uuscan_shlline, 1024 }, /* from uuscan.c:ScanHeaderLine() */ |
|
|
248 | { &uuscan_shlline2, 1024 }, /* from uuscan.c:ScanHeaderLine() */ |
248 | { &uuscan_pvvalue, 300 }, /* from uuscan.c:ParseValue() */ |
249 | { &uuscan_pvvalue, 300 }, /* from uuscan.c:ParseValue() */ |
249 | { &uuscan_phtext, 300 }, /* from uuscan.c:ParseHeader() */ |
250 | { &uuscan_phtext, 300 }, /* from uuscan.c:ParseHeader() */ |
250 | { &uuscan_sdline, 300 }, /* from uuscan.c:ScanData() */ |
251 | { &uuscan_sdline, 300 }, /* from uuscan.c:ScanData() */ |
251 | { &uuscan_sdbhds1, 300 }, |
252 | { &uuscan_sdbhds1, 300 }, |
252 | { &uuscan_sdbhds2, 300 }, |
253 | { &uuscan_sdbhds2, 300 }, |
… | |
… | |
673 | */ |
674 | */ |
674 | |
675 | |
675 | int UUEXPORT |
676 | int UUEXPORT |
676 | UULoadFile (char *filename, char *fileid, int delflag, int *partcount) |
677 | UULoadFile (char *filename, char *fileid, int delflag, int *partcount) |
677 | { |
678 | { |
|
|
679 | return UULoadFileWithPartNo(filename, fileid, delflag, -1, partcount); |
|
|
680 | } |
|
|
681 | |
|
|
682 | int UUEXPORT |
|
|
683 | UULoadFileWithPartNo (char *filename, char *fileid, int delflag, int partno, int *partcount) |
|
|
684 | { |
678 | int res, sr; |
685 | int res, sr, count=0; |
679 | struct stat finfo; |
686 | struct stat finfo; |
680 | fileread *loaded; |
687 | fileread *loaded; |
681 | uufile *fload; |
688 | uufile *fload; |
682 | itbd *killem; |
689 | itbd *killem; |
683 | FILE *datei; |
690 | FILE *datei; |
… | |
… | |
772 | progress.action = 0; |
779 | progress.action = 0; |
773 | fclose (datei); |
780 | fclose (datei); |
774 | return UURET_IOERR; |
781 | return UURET_IOERR; |
775 | } |
782 | } |
776 | |
783 | |
|
|
784 | if (partno != -1) |
|
|
785 | loaded->partno = partno; |
|
|
786 | |
777 | if ((loaded->uudet == QP_ENCODED || loaded->uudet == PT_ENCODED) && |
787 | if ((loaded->uudet == QP_ENCODED || loaded->uudet == PT_ENCODED) && |
778 | (loaded->filename == NULL || *(loaded->filename) == '\0') && |
788 | (loaded->filename == NULL || *(loaded->filename) == '\0') && |
779 | !uu_handletext && (loaded->flags&FL_PARTIAL)==0) { |
789 | !uu_handletext && (loaded->flags&FL_PARTIAL)==0) { |
780 | /* |
790 | /* |
781 | * Don't want text |
791 | * Don't want text |
… | |
… | |
853 | (*partcount)++; |
863 | (*partcount)++; |
854 | |
864 | |
855 | if (uu_fast_scanning && sr != UURET_CONT) |
865 | if (uu_fast_scanning && sr != UURET_CONT) |
856 | break; |
866 | break; |
857 | } |
867 | } |
|
|
868 | if (ferror (datei)) { |
|
|
869 | UUMessage (uulib_id, __LINE__, UUMSG_ERROR, |
|
|
870 | uustring (S_READ_ERROR), filename, |
|
|
871 | strerror (uu_errno = errno)); |
|
|
872 | UUCheckGlobalList (); |
|
|
873 | progress.action = 0; |
|
|
874 | fclose (datei); |
|
|
875 | return UURET_IOERR; |
|
|
876 | } |
858 | fclose (datei); |
877 | fclose (datei); |
859 | |
878 | |
860 | if (!uu_fast_scanning && *partcount == 0) |
879 | if (!uu_fast_scanning && *partcount == 0) |
861 | UUMessage (uulib_id, __LINE__, UUMSG_NOTE, |
880 | UUMessage (uulib_id, __LINE__, UUMSG_NOTE, |
862 | uustring (S_NO_DATA_FOUND), filename); |
881 | uustring (S_NO_DATA_FOUND), filename); |
… | |
… | |
1041 | unlink (uugen_fnbuffer); |
1060 | unlink (uugen_fnbuffer); |
1042 | return UURET_IOERR; |
1061 | return UURET_IOERR; |
1043 | } |
1062 | } |
1044 | } |
1063 | } |
1045 | |
1064 | |
1046 | fclose (target); |
|
|
1047 | fclose (source); |
1065 | fclose (source); |
|
|
1066 | if (fclose (target)) { |
|
|
1067 | UUMessage (uulib_id, __LINE__, UUMSG_ERROR, |
|
|
1068 | uustring (S_WR_ERR_TARGET), |
|
|
1069 | uugen_fnbuffer, strerror (uu_errno = errno)); |
|
|
1070 | unlink (uugen_fnbuffer); |
|
|
1071 | return UURET_IOERR; |
|
|
1072 | } |
1048 | |
1073 | |
1049 | /* |
1074 | /* |
1050 | * after a successful decoding run, we delete the temporary file |
1075 | * after a successful decoding run, we delete the temporary file |
1051 | */ |
1076 | */ |
1052 | |
1077 | |