* gnu/packages/documentation.scm (doc++): New variable. * gnu/packages/patches/doc++-include-directives.patch, gnu/packages/patches/doc++-segfault-fix.patch: New files. * gnu-system.am (dist_patch_DATA): Add them.
		
			
				
	
	
		
			169 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Adapted from https://sources.debian.net/data/main/d/doc%2B%2B/3.4.10-3.4/debian/patches/segfault_fix.patch
 | |
| 
 | |
| --- doc++-3.4.10/src/McDArray.h	2000-07-30 12:40:48.000000000 +0200
 | |
| +++ doc++-3.4.10/src/McDArray.h	2005-05-10 15:02:06.000000000 +0200
 | |
| @@ -80,9 +80,14 @@
 | |
|      McDArray(const McDArray& old) : memFactor(old.memFactor),
 | |
|  	thesize(old.thesize), themax(old.themax)
 | |
|  	{
 | |
| -	data = (T*)malloc(themax * sizeof(T));
 | |
| -	if(thesize)
 | |
| -	    memcpy(data, old.data, thesize * sizeof(T));
 | |
| +	if (themax)
 | |
| +	    {
 | |
| +	    data = (T*)malloc(themax * sizeof(T));
 | |
| +	    if(thesize)
 | |
| +		memcpy(data, old.data, thesize * sizeof(T));
 | |
| +	    }
 | |
| +	else
 | |
| +	    data = 0;
 | |
|  	assert(isConsistent());
 | |
|  	}
 | |
|  
 | |
| --- doc++-3.4.10/src/McDirectory.cc	2000-03-14 22:17:36.000000000 +0100
 | |
| +++ doc++-3.4.10/src/McDirectory.cc	2005-05-10 15:02:18.000000000 +0200
 | |
| @@ -23,12 +23,13 @@
 | |
|  */
 | |
|  
 | |
|  #include "McDirectory.h"
 | |
| -#include "McSorter.h"
 | |
|  #include "McString.h"
 | |
|  #include "doc.h"
 | |
|  
 | |
|  #include <stdio.h>
 | |
|  
 | |
| +#include <algorithm>
 | |
| +
 | |
|  #ifdef WIN32
 | |
|  #include <windows.h>
 | |
|  #ifdef __BORLANDC__
 | |
| @@ -62,7 +63,7 @@
 | |
|      FindClose(searchHandle);
 | |
|      StringCompare comp;
 | |
|      if(list.size())
 | |
| -	sort((char **)list, list.size(), comp, 0);
 | |
| +	std::sort((char **)list, (char **)list + list.size(), comp);
 | |
|      return 0;
 | |
|  }
 | |
|  
 | |
| @@ -107,7 +108,7 @@
 | |
|      closedir(dir);
 | |
|      StringCompare comp;
 | |
|      if(list.size())
 | |
| -	sort((char **)list, list.size(), comp, 0);
 | |
| +	std::sort((char **)list, (char **)list + list.size(), comp);
 | |
|      return list.size();
 | |
|  }
 | |
|  
 | |
| --- doc++-3.4.10/src/McDirectory.h	2000-06-28 21:54:58.000000000 +0200
 | |
| +++ doc++-3.4.10/src/McDirectory.h	2005-05-10 15:02:18.000000000 +0200
 | |
| @@ -59,9 +59,9 @@
 | |
|      class StringCompare
 | |
|  	{
 | |
|  	public:
 | |
| -	    int operator()(const char *t1, const char *t2)
 | |
| +	    bool operator()(const char *t1, const char *t2)
 | |
|  		{
 | |
| -		return strcmp(t1, t2);
 | |
| +		return strcmp(t1, t2) < 0;
 | |
|  		}
 | |
|  	};
 | |
|  };
 | |
| --- doc++-3.4.10/src/html.cc	2001-02-17 07:34:49.000000000 +0100
 | |
| +++ doc++-3.4.10/src/html.cc	2005-05-10 15:02:18.000000000 +0200
 | |
| @@ -38,9 +38,10 @@
 | |
|  #include <sys/stat.h>
 | |
|  #include <sys/types.h>
 | |
|  
 | |
| +#include <algorithm>
 | |
| +
 | |
|  #include "McDirectory.h"
 | |
|  #include "McHashTable.h"
 | |
| -#include "McSorter.h"
 | |
|  #include "classgraph.h"
 | |
|  #include "doc.h"
 | |
|  #include "gifs.h"
 | |
| @@ -314,9 +315,11 @@
 | |
|  	virtual void writeMember(Entry *e, bool links, bool withSub = true);
 | |
|  	class EntryCompare {
 | |
|  	    public:
 | |
| -		int operator()(const MemberWriterListEntry& l1, const MemberWriterListEntry& l2)
 | |
| +		bool operator()(const MemberWriterListEntry& l1, const MemberWriterListEntry& l2)
 | |
|  		    {
 | |
| -		    return strcmp(l1.entry->fullName.c_str(), l2.entry->fullName.c_str());
 | |
| +		    const char *s1 = l1.entry->fullName.c_str();
 | |
| +		    const char *s2 = l2.entry->fullName.c_str();
 | |
| +		    return strcmp(s1, s2) < 0;
 | |
|  		    }
 | |
|  	};
 | |
|      public:
 | |
| @@ -324,7 +327,7 @@
 | |
|  	    {
 | |
|  	    EntryCompare comp;
 | |
|  	    if(list.size())
 | |
| -		::sort((MemberWriterListEntry *)list, list.size(), comp, 0);
 | |
| +		std::sort((MemberWriterListEntry *)list, (MemberWriterListEntry *)list + list.size(), comp);
 | |
|  	    }
 | |
|  	virtual void startList(FILE *f, char *heading, bool withLinks);
 | |
|  	virtual void addMember(Entry *e, bool links, bool withSub = true)
 | |
| @@ -376,7 +379,7 @@
 | |
|  	    int lp;
 | |
|  
 | |
|  	    if(list.size() > 1)
 | |
| -		::sort((TOCListEntry *)list, list.size(), comp, 0);
 | |
| +		std::sort((TOCListEntry *)list, (TOCListEntry *)list + list.size(), comp);
 | |
|  
 | |
|  	    // Sort subsections
 | |
|  	    for(lp = 0; lp < list.size(); lp++)
 | |
| @@ -385,9 +388,9 @@
 | |
|  	    }
 | |
|  	class EntryCompare {
 | |
|  	    public:
 | |
| -		int operator()(TOCListEntry& l1, TOCListEntry& l2)
 | |
| +		bool operator()(const TOCListEntry& l1, const TOCListEntry& l2)
 | |
|  		    {
 | |
| -		    return strcmp(l1.name, l2.name);
 | |
| +		    return strcmp(l1.name, l2.name) < 0;
 | |
|  		    }
 | |
|  	};
 | |
|  	void addEntry(Entry *entry, TOClist *tl);
 | |
| @@ -487,7 +490,7 @@
 | |
|  
 | |
|      for(i = 0; i < list.size(); i++)
 | |
|  	if(list[i].tl)
 | |
| -	    free(list[i].tl);
 | |
| +	    delete list[i].tl;
 | |
|  }
 | |
|  
 | |
|  class HIERlist;
 | |
| @@ -509,7 +512,7 @@
 | |
|  	    int i;
 | |
|  
 | |
|  	    if(list.size() > 1)
 | |
| -		::sort((HIERListEntry *)list, list.size(), comp, 0);
 | |
| +		std::sort((HIERListEntry *)list, (HIERListEntry *)list + list.size(), comp);
 | |
|  
 | |
|  	    // Sort subentries
 | |
|  	    for(i = 0; i < list.size(); i++)
 | |
| @@ -519,9 +522,9 @@
 | |
|  	class EntryCompare
 | |
|  	    {
 | |
|  	    public:
 | |
| -		int operator()(HIERListEntry& l1, HIERListEntry& l2)
 | |
| +		bool operator()(const HIERListEntry& l1, const HIERListEntry& l2)
 | |
|  		    {
 | |
| -		    return strcmp(l1.name, l2.name);
 | |
| +		    return strcmp(l1.name, l2.name) < 0;
 | |
|  		    }
 | |
|  	    };
 | |
|  	void addEntry(Entry *entry, HIERlist *hl);
 | |
| --- doc++-3.4.10/src/readfiles.ll	2001-11-25 18:04:48.000000000 +0100
 | |
| +++ doc++-3.4.10/src/readfiles.ll	2005-05-10 15:02:18.000000000 +0200
 | |
| @@ -28,7 +28,6 @@
 | |
|  #include <sys/types.h>
 | |
|  
 | |
|  #include "McDirectory.h"
 | |
| -#include "McSorter.h"
 | |
|  #include "McString.h"
 | |
|  #include "doc.h"
 | |
|  #include "nametable.h"
 |