ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Convert-UUlib/uulib/uulib.c
(Generate patch)

Comparing Convert-UUlib/uulib/uulib.c (file contents):
Revision 1.11 by root, Sun Oct 13 13:08:44 2002 UTC vs.
Revision 1.12 by root, Thu Nov 6 13:33:41 2003 UTC

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
84char * uulib_id = "$Id: uulib.c,v 1.11 2002/10/13 13:08:44 root Exp $"; 84char * 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
87BOOL _export WINAPI 87BOOL _export WINAPI
88DllEntryPoint (HINSTANCE hInstance, DWORD seginfo, 88DllEntryPoint (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
675int UUEXPORT 676int UUEXPORT
676UULoadFile (char *filename, char *fileid, int delflag, int *partcount) 677UULoadFile (char *filename, char *fileid, int delflag, int *partcount)
677{ 678{
679 return UULoadFileWithPartNo(filename, fileid, delflag, -1, partcount);
680}
681
682int UUEXPORT
683UULoadFileWithPartNo (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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines