Mageia Bugzilla – Attachment 9780 Details for
Bug 21996
Update request: ncftp 3.2.6
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
[patch]
Updated EPLF patch
ncftp-3.2.6-EPLF.patch (text/plain), 1.83 KB, created by
Stig-Ørjan Smelror
on 2017-11-09 06:47:57 CET
(
hide
)
Description:
Updated EPLF patch
Filename:
MIME Type:
Creator:
Stig-Ørjan Smelror
Created:
2017-11-09 06:47:57 CET
Size:
1.83 KB
patch
obsolete
>--- libncftp/io_listmem.c.orig 2017-11-09 06:23:08.528442125 +0100 >+++ libncftp/io_listmem.c 2017-11-09 06:28:09.897439442 +0100 >@@ -14,6 +14,49 @@ > # define NO_SIGNALS 1 > #endif > >+void parseEPLF(char *line) { >+ char newline[512]; >+ char *name=0; >+ time_t mtime=0,now=time(0); >+ char type=0; /* 0=file, 1=dir */ >+ unsigned long size=0; >+ char *ptr=line; >+ struct tm *t; >+ char date[20]; >+ char *months[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; >+ while (*ptr) >+ switch (*ptr) { >+ case '\t': >+ { >+ char *tmp=strchr(ptr,'\n'); >+ if (tmp) *tmp=0; >+ } >+ t=localtime(&mtime); >+ if ((mtime<=now) && (mtime>=now-(60*60*24*7*26))) { >+ sprintf(date,"%s %-2d %02d:%02d",months[t->tm_mon],t->tm_mday,t->tm_hour,t->tm_min); >+ } else { >+ sprintf(date,"%s %-2d %5d",months[t->tm_mon],t->tm_mday,t->tm_year+1900); >+ } >+ snprintf(newline,511,"%s 1 mirror mirror %8d %s %s", >+ type?"drwxr-xr-x":"-rw-r--r--",size,date,ptr+1); >+ newline[511]=0; >+ strcpy(line,newline); >+ return; >+ case 's': >+ while (*++ptr && (*ptr != ',')) >+ size = size * 10 + (*ptr - '0'); >+ break; >+ case 'm': >+ while (*++ptr && (*ptr != ',')) >+ mtime = mtime * 10 + (*ptr - '0'); >+ break; >+ case '/': >+ type=1; >+ default: >+ while (*ptr) if (*ptr++ == ',') break; >+ } >+} >+ > int > FTPListToMemory2(const FTPCIPtr cip, const char *const pattern, const FTPLineListPtr llines, const char *const lsflags, const int blankLines, int *const tryMLSD) > { >@@ -214,6 +257,12 @@ > if ((line[0] == '.') && ((islsenddelim(line[1])) || ((line[1] == '.') && (islsenddelim(line[2]))))) > continue; /* Skip . and .. */ > >+ if (line[0] == '+') { /* EPLF */ >+ parseEPLF(line); >+ } >+ >+ >+ > (void) AddLine(llines, line); > } >
--- libncftp/io_listmem.c.orig 2017-11-09 06:23:08.528442125 +0100 +++ libncftp/io_listmem.c 2017-11-09 06:28:09.897439442 +0100 @@ -14,6 +14,49 @@ # define NO_SIGNALS 1 #endif +void parseEPLF(char *line) { + char newline[512]; + char *name=0; + time_t mtime=0,now=time(0); + char type=0; /* 0=file, 1=dir */ + unsigned long size=0; + char *ptr=line; + struct tm *t; + char date[20]; + char *months[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; + while (*ptr) + switch (*ptr) { + case '\t': + { + char *tmp=strchr(ptr,'\n'); + if (tmp) *tmp=0; + } + t=localtime(&mtime); + if ((mtime<=now) && (mtime>=now-(60*60*24*7*26))) { + sprintf(date,"%s %-2d %02d:%02d",months[t->tm_mon],t->tm_mday,t->tm_hour,t->tm_min); + } else { + sprintf(date,"%s %-2d %5d",months[t->tm_mon],t->tm_mday,t->tm_year+1900); + } + snprintf(newline,511,"%s 1 mirror mirror %8d %s %s", + type?"drwxr-xr-x":"-rw-r--r--",size,date,ptr+1); + newline[511]=0; + strcpy(line,newline); + return; + case 's': + while (*++ptr && (*ptr != ',')) + size = size * 10 + (*ptr - '0'); + break; + case 'm': + while (*++ptr && (*ptr != ',')) + mtime = mtime * 10 + (*ptr - '0'); + break; + case '/': + type=1; + default: + while (*ptr) if (*ptr++ == ',') break; + } +} + int FTPListToMemory2(const FTPCIPtr cip, const char *const pattern, const FTPLineListPtr llines, const char *const lsflags, const int blankLines, int *const tryMLSD) { @@ -214,6 +257,12 @@ if ((line[0] == '.') && ((islsenddelim(line[1])) || ((line[1] == '.') && (islsenddelim(line[2]))))) continue; /* Skip . and .. */ + if (line[0] == '+') { /* EPLF */ + parseEPLF(line); + } + + + (void) AddLine(llines, line); }
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 21996
:
9779
| 9780 |
9791