* Note, if is_win32_backup, we must open the Directory so that
* the BackupRead will save its permissions and ownership streams.
*/
- if (ff_pkt->type != FT_LNKSAVED && (S_ISREG(ff_pkt->statp.st_mode) &&
- ff_pkt->statp.st_size > 0) ||
- ff_pkt->type == FT_RAW || ff_pkt->type == FT_FIFO ||
+ bool do_read = false;
+
+ if (ff_pkt->type != FT_LNKSAVED && S_ISREG(ff_pkt->statp.st_mode)) {
+#ifdef HAVE_WIN32
+ do_read = !is_portable_backup(&ff_pkt->bfd) || ff_pkt->statp.st_size > 0;
+#else
+ do_read = ff_pkt->statp.st_size > 0;
+#endif
+ } else if (ff_pkt->type == FT_RAW || ff_pkt->type == FT_FIFO ||
(!is_portable_backup(&ff_pkt->bfd) && ff_pkt->type == FT_DIREND)) {
+ do_read = true;
+ }
+
+ if (do_read) {
btimer_t *tid;
if (ff_pkt->type == FT_FIFO) {
tid = start_thread_timer(pthread_self(), 60);
?blseek@@YA_JPAUBFILE@@_JH@Z\r
\r
; bget_msg.obj \r
-?bget_msg@@YAHPAUBSOCK@@@Z\r
+?bget_msg@@YAHPAVBSOCK@@@Z\r
\r
; bnet.obj \r
-?bnet_recv@@YAJPAUBSOCK@@@Z\r
-?is_bnet_stop@@YA_NPAUBSOCK@@@Z\r
-?is_bnet_error@@YAHPAUBSOCK@@@Z\r
-?bnet_suppress_error_messages@@YAXPAUBSOCK@@_N@Z\r
-?bnet_despool_to_bsock@@YAHPAUBSOCK@@P6AXH@ZH@Z\r
-?bnet_send@@YA_NPAUBSOCK@@@Z\r
-?bnet_tls_server@@YA_NPAUTLS_Context@@PAUBSOCK@@PAValist@@@Z\r
-?bnet_tls_client@@YA_NPAUTLS_Context@@PAUBSOCK@@@Z\r
-?bnet_wait_data@@YAHPAUBSOCK@@H@Z\r
-?bnet_wait_data_intr@@YAHPAUBSOCK@@H@Z\r
-?bnet_connect@@YAPAUBSOCK@@PAVJCR@@HHPBDPAD2HH@Z\r
-?bnet_strerror@@YAPBDPAUBSOCK@@@Z\r
-?bnet_fsend@@YA_NPAUBSOCK@@PBDZZ\r
-?bnet_get_peer@@YAHPAUBSOCK@@PADH@Z\r
-?bnet_set_buffer_size@@YA_NPAUBSOCK@@IH@Z\r
-?bnet_sig@@YA_NPAUBSOCK@@H@Z\r
-?bnet_sig_to_ascii@@YAPBDPAUBSOCK@@@Z\r
-?init_bsock@@YAPAUBSOCK@@PAVJCR@@HPBD1HPAUsockaddr@@@Z\r
-?dup_bsock@@YAPAUBSOCK@@PAU1@@Z\r
-?bnet_close@@YAXPAUBSOCK@@@Z\r
-?term_bsock@@YAXPAUBSOCK@@@Z\r
- \r
-; bnet_server.obj \r
+?bnet_recv@@YAJPAVBSOCK@@@Z\r
+?is_bnet_stop@@YA_NPAVBSOCK@@@Z\r
+?is_bnet_error@@YAHPAVBSOCK@@@Z\r
+?bnet_suppress_error_messages@@YAXPAVBSOCK@@_N@Z\r
+?bnet_despool_to_bsock@@YAHPAVBSOCK@@P6AXH@ZH@Z\r
+?bnet_send@@YA_NPAVBSOCK@@@Z\r
+?bnet_tls_server@@YA_NPAUTLS_Context@@PAVBSOCK@@PAValist@@@Z\r
+?bnet_tls_client@@YA_NPAUTLS_Context@@PAVBSOCK@@@Z\r
+?bnet_wait_data@@YAHPAVBSOCK@@H@Z\r
+?bnet_wait_data_intr@@YAHPAVBSOCK@@H@Z\r
+?bnet_connect@@YAPAVBSOCK@@PAVJCR@@HHPBDPAD2HH@Z\r
+?bnet_strerror@@YAPBDPAVBSOCK@@@Z\r
+?bnet_fsend@@YA_NPAVBSOCK@@PBDZZ\r
+?bnet_get_peer@@YAHPAVBSOCK@@PADH@Z\r
+?bnet_set_buffer_size@@YA_NPAVBSOCK@@IH@Z\r
+?bnet_sig@@YA_NPAVBSOCK@@H@Z\r
+?bnet_sig_to_ascii@@YAPBDPAVBSOCK@@@Z\r
+?bnet_close@@YAXPAVBSOCK@@@Z\r
+?term_bsock@@YAXPAVBSOCK@@@Z\r
+\r
+; bnet_server.obj\r
?bnet_stop_thread_server@@YAXPAUpthread_t_@@@Z\r
?bnet_thread_server@@YAXPAVdlist@@HPAUworkq_tag@@P6APAXPAX@Z@Z\r
- \r
-; bpipe.obj \r
+\r
+; bpipe.obj\r
?run_program@@YAHPADH0@Z\r
?run_program_full_output@@YAHPADH0@Z\r
- \r
-; bregex.obj \r
+\r
+; bregex.obj\r
b_regcomp\r
b_regexec\r
b_regerror\r
b_regfree\r
\r
-; bsnprintf.obj \r
+; bsnprintf.obj\r
?bsnprintf@@YAHPADJPBDZZ\r
?bvsnprintf@@YAHPADJPBD0@Z\r
- \r
-; bsys.obj \r
+\r
+; bsock.obj\r
+?close@BSOCK@@QAEXXZ\r
+?dup_bsock@@YAPAVBSOCK@@PAV1@@Z\r
+?fsend@BSOCK@@QAA_NPBDZZ\r
+?init_bsock@@YAPAVBSOCK@@PAVJCR@@HPBD1HPAUsockaddr@@@Z\r
+?recv@BSOCK@@QAEJXZ\r
+?send@BSOCK@@QAE_NXZ\r
+?signal@BSOCK@@QAE_NH@Z\r
+\r
+; bsys.obj\r
?bmicrosleep@@YAHJJ@Z\r
?bstrncpy@@YAPADPADPBDH@Z\r
?bstrncpy@@YAPADPADAAVPOOL_MEM@@H@Z\r
\r
; btimers.obj \r
?start_thread_timer@@YAPAUs_btimer_t@@PAUpthread_t_@@I@Z\r
-?start_bsock_timer@@YAPAUs_btimer_t@@PAUBSOCK@@I@Z\r
+?start_bsock_timer@@YAPAUs_btimer_t@@PAVBSOCK@@I@Z\r
?stop_bsock_timer@@YAXPAUs_btimer_t@@@Z\r
?stop_thread_timer@@YAXPAUs_btimer_t@@@Z\r
\r
?utime@@YAHPBDPAUutimbuf@@@Z\r
\r
; cram-md5.obj \r
-?cram_md5_challenge@@YA_NPAUBSOCK@@PADHH@Z\r
-?cram_md5_respond@@YA_NPAUBSOCK@@PADPAH2@Z\r
+?cram_md5_challenge@@YA_NPAVBSOCK@@PADHH@Z\r
+?cram_md5_respond@@YA_NPAVBSOCK@@PADPAH2@Z\r
\r
; crc32.obj \r
?bcrc32@@YAIPAEH@Z\r
?binary_insert_multiple@dlist@@QAEXPAXP6AH00@Z@Z\r
?binary_search@dlist@@QAEPAXPAXP6AH00@Z@Z\r
?remove@dlist@@QAEXPAX@Z\r
-?next@dlist@@QBEPAXPBX@Z\r
+?next@dlist@@QAEPAXPAX@Z\r
?destroy@dlist@@QAEXXZ\r
- \r
-; drivetype.obj \r
+?new_dlistString@@YAPAVdlistString@@PBD@Z\r
+\r
+; drivetype.obj\r
?drivetype@@YA_NPBDPADH@Z\r
- \r
-; edit.obj \r
+\r
+; edit.obj\r
?str_to_uint64@@YA_KPAD@Z\r
?str_to_int64@@YA_JPAD@Z\r
?edit_uint64_with_commas@@YAPAD_KPAD@Z\r