* gnu/packages/patches/procmail-ambiguous-getline-debian.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/mail.scm (procmail): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Rename getline() to procmail_getline() to avoid namespace clash with
 | |
| POSIX getline(). Fixes FTBFS.
 | |
| 
 | |
| Copied from Debian:
 | |
| http://sources.debian.net/src/procmail/3.22-24/debian/patches/24/
 | |
| 
 | |
| References:
 | |
| http://bugs.debian.org/549426
 | |
| 
 | |
| --- a/src/fields.c
 | |
| +++ b/src/fields.c
 | |
| @@ -110,16 +110,16 @@
 | |
|  		    /* try and append one valid field to rdheader from stdin */
 | |
|  int readhead P((void))
 | |
|  { int idlen;
 | |
| -  getline();
 | |
| +  procmail_getline();
 | |
|    if((idlen=breakfield(buf,buffilled))<=0) /* not the start of a valid field */
 | |
|       return 0;
 | |
|    if(idlen==STRLEN(FROM)&&eqFrom_(buf))			/* it's a From_ line */
 | |
|     { if(rdheader)
 | |
|  	return 0;			       /* the From_ line was a fake! */
 | |
| -     for(;buflast=='>';getline());	    /* gather continued >From_ lines */
 | |
| +     for(;buflast=='>';procmail_getline());	    /* gather continued >From_ lines */
 | |
|     }
 | |
|    else
 | |
| -     for(;;getline())		      /* get the rest of the continued field */
 | |
| +     for(;;procmail_getline())		      /* get the rest of the continued field */
 | |
|        { switch(buflast)			     /* will this line be continued? */
 | |
|  	 { case ' ':case '\t':				  /* yep, it sure is */
 | |
|  	      continue;
 | |
| --- a/src/formail.c
 | |
| +++ b/src/formail.c
 | |
| @@ -819,7 +819,7 @@
 | |
|        { if(split)		       /* gobble up the next start separator */
 | |
|  	 { buffilled=0;
 | |
|  #ifdef sMAILBOX_SEPARATOR
 | |
| -	   getline();buffilled=0;		 /* but only if it's defined */
 | |
| +	   procmail_getline();buffilled=0;		 /* but only if it's defined */
 | |
|  #endif
 | |
|  	   if(buflast!=EOF)					   /* if any */
 | |
|  	      goto splitit;
 | |
| --- a/src/formisc.c
 | |
| +++ b/src/formisc.c
 | |
| @@ -115,7 +115,7 @@
 | |
|    buf[buffilled++]=c;
 | |
|  }
 | |
|  
 | |
| -int getline P((void))			   /* read a newline-terminated line */
 | |
| +int procmail_getline P((void))			   /* read a newline-terminated line */
 | |
|  { if(buflast==EOF)			 /* at the end of our Latin already? */
 | |
|     { loadchar('\n');					  /* fake empty line */
 | |
|       return EOF;					  /* spread the word */
 | |
| --- a/src/formisc.h
 | |
| +++ b/src/formisc.h
 | |
| @@ -17,4 +17,4 @@
 | |
|  char*
 | |
|   skipwords P((char*start));
 | |
|  int
 | |
| - getline P((void));
 | |
| + procmail_getline P((void));
 |