Make dtinfo work on OpenBSD.
authorPascal Stumpf <Pascal.Stumpf@cubes.de>
Sat, 11 Aug 2012 11:43:57 +0000 (13:43 +0200)
committerJon Trulson <jon@radscan.com>
Sun, 12 Aug 2012 01:48:18 +0000 (19:48 -0600)
strstream.h is now called "strstream" and is obsolete, but use it anyway until
all code is converted over.  This also needs std:: added, at least for GCC
4.2.1.  Lastly, when hardcoding the path to perl, /usr/bin/perl should be used
rather than anything else.

cde/programs/dtinfo/tools/misc/msgsets.C
cde/programs/dtinfo/tools/misc/treeres

index 48f0d248dfcb1a3c611a6fe6d58aa7a6527ec876..6b59abf27d1dc0a32926d8bc4fa7d9d6599a4b58 100644 (file)
@@ -42,7 +42,7 @@
 #ifdef __cplusplus
 
 #include <stdlib.h>
-#if !defined(__DECCXX) && !defined(USL)
+#if !defined(__DECCXX) && !defined(USL) && !defined(CSRG_BASED)
 #include <osfcn.h>
 #else
 #include <unistd.h>
@@ -195,11 +195,12 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
 /*     All Rights Reserved                     */
 
 #include <string.h>
-#include <strstream.h>
+#include <strstream>
+#include <iostream>
 
 #define BUFFER_INCR_UNIT       64
 
-ostrstream **sets;
+std::ostrstream **sets;
 int sets_cnt = 0; /* number of sets slots occupied */
 int sets_max = 0; /* total number of sets slots */
 
@@ -509,14 +510,14 @@ case 1:
 
        sets_max += BUFFER_INCR_UNIT;
        if (sets_cnt == 0) {
-           sets = (ostrstream **)
-                       malloc(sizeof(ostrstream *) * sets_max);
+           sets = (std::ostrstream **)
+                       malloc(sizeof(std::ostrstream *) * sets_max);
            set_nums = (int *)
                        malloc(sizeof(int) * sets_max);
        }
        else {
-           sets = (ostrstream **)
-                       realloc(sets, sizeof(ostrstream *) * sets_max);
+           sets = (std::ostrstream **)
+                       realloc(sets, sizeof(std::ostrstream *) * sets_max);
            set_nums = (int *)
                        realloc(set_nums, sizeof(int) * sets_max);
        }
@@ -528,7 +529,7 @@ case 1:
     }
     if (cur_set >= 0)
        *sets[cur_set] << '\0';
-    sets[cur_set = sets_cnt++] = new ostrstream;
+    sets[cur_set = sets_cnt++] = new std::ostrstream;
 
     *sets[cur_set] << (char*)yytext;
 
@@ -556,7 +557,7 @@ case 3:
 case 4:
 {
     if (cur_set < 0) { // maybe not a message id
-       cout << (char*)yytext;
+       std::cout << (char*)yytext;
     }
     else { // must be a message id
        *sets[cur_set] << (char*)yytext;
@@ -581,7 +582,7 @@ case 7:
 case 8:
 {
     if (cur_set < 0)
-       cout << *(char*)yytext;
+       std::cout << *(char*)yytext;
     else
        *sets[cur_set] << *(char*)yytext;
 }
@@ -1151,7 +1152,7 @@ main()
 
     for (i = 0; i < sets_cnt; i++) {
        const char* record = sets[sorted[i]]->str();
-       cout << record << '\n' << flush;
+       std::cout << record << '\n' << std::flush;
     }
 
     free(sorted);
index 653774358790df8ffe70467f40b376533353e816..d077302efc747f0dcee569dcf8246b2f8474c3e7 100755 (executable)
@@ -1,5 +1,5 @@
 # feed this into perl
-eval '(exit $?0)' && eval 'exec /usr/local/bin/perl $0 ${1+"$@"}' & eval 'exec /usr/local/bin/perl $0 $argv'
+eval '(exit $?0)' && eval 'exec /usr/bin/perl $0 ${1+"$@"}' & eval 'exec /usr/bin/perl $0 $argv'
    if 0;
 
 # treeres - resource file preprocessor