Hello,

At 20:02 -0400 on 2014-4-17 Stefan Bruda wrote:
 >
 > ddd fails as follows:
 > 
 > g++ -DHAVE_CONFIG_H -I.  -I./.. -isystem /usr/X11R6/include -I/sw/include  
 > -O2 -g -Wall -W -Wwrite-strings -mminimal-toc -trigraphs  -c -o ddd.o ddd.C
 > ./strclass.h:813:19: error: friend declaration specifying a default argument 
 > must be a definition
 >     friend string common_prefix(const string& x, const string& y, 
 >                   ^
 > ./strclass.h:815:19: error: friend declaration specifying a default argument 
 > must be a definition
 >     friend string common_suffix(const string& x, const string& y, 
 >                   ^
 > ./strclass.h:866:16: error: friend declaration specifying a default argument 
 > must be a definition
 >     friend int readline(std::istream& s, string& x, 

The following trivial patch for ddd-3.3.12/ddd/strclass.h fixes the
build process.  The resulting ddd appears to run as expected (though I
only tested it on a single program).

------ begin patch for ddd-3.3.12/ddd/strclass.h ------
diff -ru ddd-3.3.12/ddd/strclass.h ddd-3.3.12-patched/ddd/strclass.C
--- ddd-3.3.12/ddd/strclass.h   2014-04-26 13:11:06.000000000 -0400
+++ ddd-3.3.12-patched/ddd/strclass.h   2014-04-26 13:35:52.000000000 -0400
@@ -543,6 +543,9 @@
     bool OK() const; 
 };
 
+int readline(std::istream& s, string& x, char terminator = '\n', int 
discard_terminator = 1);
+string common_prefix(const string& x, const string& y, int startpos = 0);
+string common_suffix(const string& x, const string& y, int startpos = -1);
 
 class string
 {
@@ -811,9 +814,9 @@
                     const regex& sep);
 
     friend string common_prefix(const string& x, const string& y, 
-                               int startpos = 0);
+                               int startpos);
     friend string common_suffix(const string& x, const string& y, 
-                               int startpos = -1);
+                               int startpos);
     friend string replicate(char c, int n);
     friend string replicate(const string& y, int n);
     friend string join(const string *src, int n, const string& sep);
@@ -864,8 +867,8 @@
     friend std::istream& operator>>(std::istream& s, string& x);
 
     friend int readline(std::istream& s, string& x, 
-                       char terminator = '\n',
-                       int discard_terminator = 1);
+                       char terminator,
+                       int discard_terminator);
 
     // Status
     unsigned int length() const;
------ end patch for ddd-3.3.12/ddd/strclass.h ------

For ease of copy and paste here is the resulting, complete ddd.patch
(which is the old one with the above appended) as well as a patch for
ddd.info:

------ begin ddd.info.patch ------
diff -Pur ddd.info.orig ddd.info
--- ddd.info.orig       2014-04-26 14:44:49.000000000 -0400
+++ ddd.info    2014-04-26 14:45:06.000000000 -0400
@@ -1,6 +1,6 @@
 Package: ddd
 Version: 3.3.12
-Revision: 3
+Revision: 4
 GCC: 4.0
 Maintainer: Remko Scharroo <rem...@users.sourceforge.net>
 BuildDepends: fink (>= 0.24.12-1), lesstif, libncurses5 (>= 5.4-20041023-1006)
@@ -8,7 +8,7 @@
 Source: mirror:gnu:%n/%n-%v.tar.gz
 Source-MD5: c50396db7bac3862a6d2555b3b22c34e
 PatchFile: %n.patch
-PatchFile-MD5: 6b443dce9aa6b17f20ff8fe421e34c09
+PatchFile-MD5: af5098dc09a59b39277d8487092fea4a
 ConfigureParams: <<
  --mandir=%p/share/man \
  --infodir=%p/share/info \
------ end ddd.info.patch ------

------ begin ddd.patch ------
diff -ru ddd-3.3.12/configure ddd-3.3.12-patched/configure
--- ddd-3.3.12/configure        2009-02-11 18:25:52.000000000 +0100
+++ ddd-3.3.12-patched/configure        2009-10-22 23:44:00.000000000 +0200
@@ -4275,7 +4275,7 @@
 rm -f conftest$ac_cv_exeext
 { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
 echo "${ECHO_T}$ac_cv_exeext" >&6; }
-
+ac_cv_exeext=".exe"
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
diff -ru ddd-3.3.12/ddd/Makefile.in ddd-3.3.12-patched/ddd/Makefile.in
--- ddd-3.3.12/ddd/Makefile.in  2009-02-11 18:25:55.000000000 +0100
+++ ddd-3.3.12-patched/ddd/Makefile.in  2009-10-22 23:41:51.000000000 +0200
@@ -2693,7 +2693,7 @@
 
 $(srcdir)/ddd.info.txt.gz.C: $(srcdir)/ddd.info.txt.gz
        $(MAKE) stringify$(EXEEXT)
-       -./stringify < $? > $@~ && $(MV) $@~ $@
+       -./stringify$(EXEEXT) < $? > $@~ && $(MV) $@~ $@
 
 # License.
 $(srcdir)/COPYING.gz: $(srcdir)/../COPYING
@@ -2701,7 +2701,7 @@
 
 $(srcdir)/COPYING.gz.C: $(srcdir)/COPYING.gz
        $(MAKE) stringify$(EXEEXT)
-       -./stringify < $? > $@~ && $(MV) $@~ $@
+       -./stringify$(EXEEXT) < $? > $@~ && $(MV) $@~ $@
 
 # News.
 $(srcdir)/NEWS.gz: $(srcdir)/../NEWS
@@ -2709,7 +2709,7 @@
 
 $(srcdir)/NEWS.gz.C: $(srcdir)/NEWS.gz
        $(MAKE) stringify$(EXEEXT)
-       -./stringify < $? > $@~ && $(MV) $@~ $@
+       -./stringify$(EXEEXT) < $? > $@~ && $(MV) $@~ $@
 
 show.$(OBJEXT): COPYING.gz.C NEWS.gz.C ddd.info.txt.gz.C
 
diff -ru ddd-3.3.12/ddd/VSLDefList.C ddd-3.3.12-patched/ddd/VSLDefList.C
--- ddd-3.3.12/ddd/VSLDefList.C 2009-02-11 18:25:07.000000000 +0100
+++ ddd-3.3.12-patched/ddd/VSLDefList.C 2013-12-07 22:30:31.000000000 +0100
@@ -60,7 +60,7 @@
     {
        std::ostringstream s;
        s << *arg;
-       VSLLib::eval_error("no suiting definition for " + f_name() + s);
+       VSLLib::eval_error("no suiting definition for " + f_name() + 
s.str().c_str());
     }
 
     return d ? d->eval(arg) : 0;
diff -ru ddd-3.3.12/ddd/strclass.h ddd-3.3.12-patched/ddd/strclass.C
--- ddd-3.3.12/ddd/strclass.h   2014-04-26 13:11:06.000000000 -0400
+++ ddd-3.3.12-patched/ddd/strclass.h   2014-04-26 13:35:52.000000000 -0400
@@ -543,6 +543,9 @@
     bool OK() const; 
 };
 
+int readline(std::istream& s, string& x, char terminator = '\n', int 
discard_terminator = 1);
+string common_prefix(const string& x, const string& y, int startpos = 0);
+string common_suffix(const string& x, const string& y, int startpos = -1);
 
 class string
 {
@@ -811,9 +814,9 @@
                     const regex& sep);
 
     friend string common_prefix(const string& x, const string& y, 
-                               int startpos = 0);
+                               int startpos);
     friend string common_suffix(const string& x, const string& y, 
-                               int startpos = -1);
+                               int startpos);
     friend string replicate(char c, int n);
     friend string replicate(const string& y, int n);
     friend string join(const string *src, int n, const string& sep);
@@ -864,8 +867,8 @@
     friend std::istream& operator>>(std::istream& s, string& x);
 
     friend int readline(std::istream& s, string& x, 
-                       char terminator = '\n',
-                       int discard_terminator = 1);
+                       char terminator,
+                       int discard_terminator);
 
     // Status
     unsigned int length() const;
------ end ddd.patch ------

Best regards,
Stefan

-- 
If it was so, it might be; and if it were so, it would be; but as it 
isn't, it ain't.  That's logic.  --Lewis Carroll, Through the Looking-Glass

No HTML emails and proprietary attachments please <http://bruda.ca/ascii>

------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
Fink-users mailing list
Fink-users@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.macosx.fink.user
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-users

Reply via email to