Changeset 9195


Ignore:
Timestamp:
12/21/08 18:09:49 (16 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r9194 r9195  
    1919                                                 -*-*- END OF LINE -*-*-
    2020
     21 2008/12/21 Thomas Bretz
     22
     23   * Makefile.rules:
     24     - removed $(ROOTSYS) from the call to rootcint. It should
     25       be in th epath anyway
     26
     27   * mars-config.cc, mbase/MZlib.cc:
     28     - included string.h
     29
     30   * showlog.cc, manalysis/MGeomApply.cc, mbase/MAGIC.cc,
     31     mbase/MMath.cc, mbase/MProgressBar.cc, mbase/MSearch.cc,
     32     mdata/MDataElement.cc, mfileio/MReadScanFile.cc,
     33     mhbase/MH3.cc, mjobs/MSequenceSQL.cc,
     34     mpointing/MPointingDevCalc.cc, msql/MSQLMagic.cc:
     35     - included stdlib.h
     36
     37   * mastro/MAstro.h, mhbase/MHn.h:
     38     - fixed the naming of some veriables in the definition
     39
     40   * mbase/MGMap.cc, mtools/MagicJam.cc:
     41     - inlcude climits
     42
     43   * mbase/MStatusDisplay.cc:
     44     - implemented a workaround against root's buffer overflows
     45     - switched of root's own handling by resetting
     46       kShowEventStatus
     47
     48   * mhbase/MH.[h,cc]:
     49     - added a workaround for the buffor overflow in
     50       TH1::GetObjectInfo and TProfile::GetObjectInfo
     51
     52   * mhist/MHCamera.cc:
     53     - implemented a workaround for the buffer overflow in root's
     54       GetObjectInfo
     55
     56   * msql/MSQLServer.[h,cc]:
     57     - replaced GetPrimaryKey by GetPrimaryKeys
     58
     59
     60
    2161 2008/12/19 Daniel Hoehne-Moench
    2262
    2363   * datacenter/macros/filldotrun.C:
    24      - implemented SuperArehucas version 081204-0 incl. sumtrigger flag
     64     - implemented SuperArehucas version 081204-0 incl. sumtrigger
     65       flag
     66
    2567   * datacenter/db/magicdefs.php, datacenter/db/menu.php:
    2668     - implemented sumtrigger flag (in runinfo and sequinfo menus)
  • trunk/MagicSoft/Mars/Makefile.rules

    r7903 r9195  
    3434$(CINT)Cint.cc: $(HEADERS) $(CINT)LinkDef.h
    3535        @echo " - Generating dictionary $(CINT)Cint.cc"
    36         $(ROOTSYS)/bin/rootcint -f $(CINT)Cint.cc \
     36        rootcint -f $(CINT)Cint.cc \
    3737        -c $(INCLUDES) $(DEFINES) $(HEADERS) $(CINT)Incl.h $(CINT)LinkDef.h
    3838
  • trunk/MagicSoft/Mars/manalysis/MGeomApply.cc

    r8923 r9195  
    6464#include "MGeomApply.h"
    6565
     66#include <stdlib.h> // atoi (Ubuntu 8.10)
     67
    6668#include <fstream>
    6769
  • trunk/MagicSoft/Mars/mars-config.cc

    r8033 r9195  
    11#include <iostream>
     2
     3#include <string.h> // strcmp (Ubuntu 8.10)
    24
    35#include <RVersion.h>
  • trunk/MagicSoft/Mars/mastro/MAstro.h

    r9156 r9195  
    4646    static Double_t Hms2Hor(Int_t hor, UInt_t min, Double_t sec, Char_t sgn='+');
    4747
    48     static void Day2Hms(Double_t day, Char_t &sgn, UShort_t &hor, UShort_t &min, UShort_t &sec);
    49     static void Rad2Dms(Double_t rad, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    50     static void Rad2Hms(Double_t rad, Char_t &sgn, UShort_t &hor, UShort_t &min, UShort_t &sec);
    51     static void Deg2Dms(Double_t deg, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    52     static void Deg2Hms(Double_t deg, Char_t &sgn, UShort_t &hor, UShort_t &min, UShort_t &sec);
    53     static void Hor2Dms(Double_t hor, Char_t &sgn, UShort_t &deg, UShort_t &min, UShort_t &sec);
    54     static void Hor2Hms(Double_t hor, Char_t &sgn, UShort_t &hor, UShort_t &min, UShort_t &sec);
     48    static void Day2Hms(Double_t day, Char_t &sgn, UShort_t &h, UShort_t &m, UShort_t &s);
     49    static void Rad2Dms(Double_t rad, Char_t &sgn, UShort_t &d, UShort_t &m, UShort_t &s);
     50    static void Rad2Hms(Double_t rad, Char_t &sgn, UShort_t &h, UShort_t &m, UShort_t &s);
     51    static void Deg2Dms(Double_t deg, Char_t &sgn, UShort_t &d, UShort_t &m, UShort_t &s);
     52    static void Deg2Hms(Double_t deg, Char_t &sgn, UShort_t &h, UShort_t &m, UShort_t &s);
     53    static void Hor2Dms(Double_t hor, Char_t &sgn, UShort_t &d, UShort_t &m, UShort_t &s);
     54    static void Hor2Hms(Double_t hor, Char_t &sgn, UShort_t &h, UShort_t &m, UShort_t &s);
    5555
    56     static void Day2Hm(Double_t day, Char_t &sgn, UShort_t &hor, Double_t &min);
    57     static void Rad2Dm(Double_t rad, Char_t &sgn, UShort_t &deg, Double_t &min);
    58     static void Rad2Hm(Double_t rad, Char_t &sgn, UShort_t &hor, Double_t &min);
    59     static void Deg2Dm(Double_t deg, Char_t &sgn, UShort_t &deg, Double_t &min);
    60     static void Deg2Hm(Double_t deg, Char_t &sgn, UShort_t &hor, Double_t &min);
    61     static void Hor2Dm(Double_t rad, Char_t &sgn, UShort_t &deg, Double_t &min);
    62     static void Hor2Hm(Double_t rad, Char_t &sgn, UShort_t &hor, Double_t &min);
     56    static void Day2Hm(Double_t day, Char_t &sgn, UShort_t &h, Double_t &m);
     57    static void Rad2Dm(Double_t rad, Char_t &sgn, UShort_t &d, Double_t &m);
     58    static void Rad2Hm(Double_t rad, Char_t &sgn, UShort_t &h, Double_t &m);
     59    static void Deg2Dm(Double_t deg, Char_t &sgn, UShort_t &d, Double_t &m);
     60    static void Deg2Hm(Double_t deg, Char_t &sgn, UShort_t &h, Double_t &m);
     61    static void Hor2Dm(Double_t rad, Char_t &sgn, UShort_t &d, Double_t &m);
     62    static void Hor2Hm(Double_t rad, Char_t &sgn, UShort_t &h, Double_t &m);
    6363
    6464    // Print funtions
  • trunk/MagicSoft/Mars/mbase/MAGIC.cc

    r8029 r9195  
    3030#include "MAGIC.h"
    3131
     32#include <stdlib.h> // getenv (Ubuntu 8.10)
     33
    3234#include <iostream>
    3335
  • trunk/MagicSoft/Mars/mbase/MGMap.cc

    r8907 r9195  
    3939#include "MGMap.h"
    4040
    41 //#include <limits.h>  // INT_MAX
     41#include <climits>  // INT_MAX (Ubuntu 8.10)
    4242
    4343#include <TMath.h>
  • trunk/MagicSoft/Mars/mbase/MMath.cc

    r8989 r9195  
    11/* ======================================================================== *\
    2 ! $Name: not supported by cvs2svn $:$Id: MMath.cc,v 1.41 2008-07-01 14:03:58 tbretz Exp $
     2! $Name: not supported by cvs2svn $:$Id: MMath.cc,v 1.42 2008-12-21 18:09:49 tbretz Exp $
    33! --------------------------------------------------------------------------
    44!
     
    3434#include "MMath.h"
    3535
     36#include <stdlib.h> // atof (Ubuntu 8.10)
     37
    3638#ifndef ROOT_TVector2
    3739#include <TVector2.h>
  • trunk/MagicSoft/Mars/mbase/MProgressBar.cc

    r3586 r9195  
    3030//
    3131/////////////////////////////////////////////////////////////////////////////
     32#include "MProgressBar.h"
    3233
    33 #include "MProgressBar.h"
     34#include <stdlib.h>         // rand (Ubuntu 8.10)
    3435
    3536#include <TSystem.h>        // gSystem
  • trunk/MagicSoft/Mars/mbase/MSearch.cc

    r7808 r9195  
    4040/////////////////////////////////////////////////////////////////////////////
    4141#include "MSearch.h"
     42
     43#include <stdlib.h>         // rand (Ubuntu 8.10)
    4244
    4345#include <TSystem.h>      // gSystem
  • trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc

    r9185 r9195  
    6262
    6363#include <errno.h>
     64#include <stdlib.h>               // mktemp (Ubunto 8.10)
    6465
    6566#include <fstream>                // fstream
     
    110111#include "MParContainer.h"        // MParContainer::GetDescriptor
    111112#include "MStatusArray.h"         // MStatusArray
     113
     114#if ROOT_VERSION_CODE <= ROOT_VERSION(5,22,00)
     115#include "../mhbase/MH.h"
     116#endif
    112117
    113118#undef DEBUG
     
    10401045
    10411046    if (gPad)
     1047    {
     1048        // Find the object which will get picked by the GetObjectInfo
     1049        // due to buffer overflows in many root-versions
     1050        // in TH1 and TProfile we have to work around and implement
     1051        // our own GetObjectInfo which make everything a bit more
     1052        // complicated.
     1053#if ROOT_VERSION_CODE > ROOT_VERSION(5,22,00)
    10421054        SetStatusLine2(selected->GetObjectInfo(px,py));
     1055#else
     1056        TObjLink *link=0;
     1057        static_cast<TPad*>(gPad)->Pick(px, py, link);
     1058
     1059        const TObject *o = link ? link->GetObject() : 0;
     1060        if (o)
     1061            SetStatusLine2(MH::GetObjectInfo(px, py, *o));
     1062#endif
     1063    }
    10431064
    10441065    gPad=save;
     
    11191140    c.Connect("ProcessedEvent(Int_t,Int_t,Int_t,TObject*)",
    11201141              "MStatusDisplay", this, "EventInfo(Int_t,Int_t,Int_t,TObject*)");
     1142
     1143    // Make sure that root itself doesn't try to call GetObjectInfo
     1144    // This is now handled from EventsInfo. This is necessary
     1145    // due to the buffer overflow bug in GetObjectInfo of
     1146    // TProfile and TH1
     1147    c.ResetBit(TCanvas::kShowEventStatus);
    11211148
    11221149    // Remove the canvas from the global list to make sure it is
  • trunk/MagicSoft/Mars/mbase/MZlib.cc

    r7808 r9195  
    3535//////////////////////////////////////////////////////////////////////////////
    3636#include "MZlib.h"
     37
     38#include <string.h> // memcpy (UBuntu 8.10)
    3739
    3840ClassImp(MZlib);
  • trunk/MagicSoft/Mars/mdata/MDataElement.cc

    r8001 r9195  
    3737/////////////////////////////////////////////////////////////////////////////
    3838#include "MDataElement.h"
     39
     40#include <stdlib.h>   // atoi (Ubuntu 8.10)
    3941
    4042#include <fstream>
  • trunk/MagicSoft/Mars/mfileio/MReadScanFile.cc

    r9041 r9195  
    3030#include "MReadScanFile.h"
    3131
     32#include <stdlib.h> // atoi (Ubuntu 8.10)
     33
    3234#include "MLog.h"
    3335#include "MLogManip.h"
  • trunk/MagicSoft/Mars/mhbase/MH.cc

    r9186 r9195  
    11/* ======================================================================== *\
    2 ! $Name: not supported by cvs2svn $:$Id: MH.cc,v 1.41 2008-12-02 11:22:15 tbretz Exp $
     2! $Name: not supported by cvs2svn $:$Id: MH.cc,v 1.42 2008-12-21 18:09:49 tbretz Exp $
    33! --------------------------------------------------------------------------
    44!
     
    16161616        CreateGradientColorTable(8, s, r, g, b, ncol);
    16171617        found=kTRUE;
    1618     }
     1618    }/*
     1619    if (paletteName.Contains("glows2"))
     1620    {
     1621        double s[10] = {0.00, 0.17, 0.35, 0.50, 0.65, 0.73, 0.77, 0.85, 0.92, 1.00};
     1622        double r[10] = {0.09, 0.18, 0.09, 0.00, 0.00, 0.20, 0.55, 0.85, 1.00, 1.00};
     1623        double g[10] = {0.81, 0.51, 0.27, 0.00, 0.00, 0.05, 0.10, 0.20, 0.73, 1.00};
     1624        double b[10] = {0.70, 0.40, 0.02, 0.00, 0.27, 0.40, 0.35, 0.16, 0.03, 1.00};
     1625        gStyle->CreateGradientColorTable(10, s, r, g, b, ncol);
     1626        found=kTRUE;
     1627    }*/
    16191628
    16201629    if (paletteName.Contains("redish"))
     
    16681677        gLog << warn << "MH::SetPalette: Palette " << paletteName << " unknown... ignored." << endl;
    16691678}
     1679
     1680// --------------------------------------------------------------------------
     1681//
     1682// Unfortunately in TH1::GetObjectInfo the buffer is just 64 characters
     1683// which is sometimes to small. This is just a copy of the code but the
     1684// buffer has been increased to 128 which should fairly be enough.
     1685//
     1686//  Necessary for root <= 5.22/00
     1687//
     1688char *MH::GetObjectInfoH(Int_t px, Int_t py, const TH1 &h)
     1689{
     1690   const TH1 *fH = &h;
     1691   const TAxis *fXaxis = h.GetXaxis();
     1692   const TAxis *fYaxis = h.GetYaxis();
     1693
     1694   //   Redefines TObject::GetObjectInfo.
     1695   //   Displays the histogram info (bin number, contents, integral up to bin
     1696   //   corresponding to cursor position px,py
     1697
     1698   if (!gPad) return (char*)"";
     1699
     1700   static char info[128];
     1701   Double_t x  = gPad->PadtoX(gPad->AbsPixeltoX(px));
     1702   Double_t y  = gPad->PadtoY(gPad->AbsPixeltoY(py));
     1703   Double_t x1 = gPad->PadtoX(gPad->AbsPixeltoX(px+1));
     1704   const char *drawOption = fH->GetDrawOption();
     1705   Double_t xmin, xmax, uxmin,uxmax;
     1706   Double_t ymin, ymax, uymin,uymax;
     1707   if (fH->GetDimension() == 2) {
     1708      if (gPad->GetView() || strncmp(drawOption,"cont",4) == 0
     1709                          || strncmp(drawOption,"CONT",4) == 0) {
     1710         uxmin=gPad->GetUxmin();
     1711         uxmax=gPad->GetUxmax();
     1712         xmin = fXaxis->GetBinLowEdge(fXaxis->GetFirst());
     1713         xmax = fXaxis->GetBinUpEdge(fXaxis->GetLast());
     1714         x = xmin +(xmax-xmin)*(x-uxmin)/(uxmax-uxmin);
     1715         uymin=gPad->GetUymin();
     1716         uymax=gPad->GetUymax();
     1717         ymin = fYaxis->GetBinLowEdge(fYaxis->GetFirst());
     1718         ymax = fYaxis->GetBinUpEdge(fYaxis->GetLast());
     1719         y = ymin +(ymax-ymin)*(y-uymin)/(uymax-uymin);
     1720      }
     1721   }
     1722   Int_t binx,biny,binmin,binx1;
     1723   if (gPad->IsVertical()) {
     1724      binx   = fXaxis->FindFixBin(x);
     1725      binmin = fXaxis->GetFirst();
     1726      binx1  = fXaxis->FindFixBin(x1);
     1727      // special case if more than 1 bin in x per pixel
     1728      if (binx1-binx>1 && fH->GetDimension() == 1) {
     1729         Double_t binval=fH->GetBinContent(binx);
     1730         Int_t binnear=binx;
     1731         for (Int_t ibin=binx+1; ibin<binx1; ibin++) {
     1732            Double_t binvaltmp = fH->GetBinContent(ibin);
     1733            if (TMath::Abs(y-binvaltmp) < TMath::Abs(y-binval)) {
     1734               binval=binvaltmp;
     1735               binnear=ibin;
     1736            }
     1737         }
     1738         binx = binnear;
     1739      }
     1740   } else {
     1741      x1 = gPad->PadtoY(gPad->AbsPixeltoY(py+1));
     1742      binx   = fXaxis->FindFixBin(y);
     1743      binmin = fXaxis->GetFirst();
     1744      binx1  = fXaxis->FindFixBin(x1);
     1745      // special case if more than 1 bin in x per pixel
     1746      if (binx1-binx>1 && fH->GetDimension() == 1) {
     1747         Double_t binval=fH->GetBinContent(binx);
     1748         Int_t binnear=binx;
     1749         for (Int_t ibin=binx+1; ibin<binx1; ibin++) {
     1750            Double_t binvaltmp = fH->GetBinContent(ibin);
     1751            if (TMath::Abs(x-binvaltmp) < TMath::Abs(x-binval)) {
     1752               binval=binvaltmp;
     1753               binnear=ibin;
     1754            }
     1755         }
     1756         binx = binnear;
     1757      }
     1758   }
     1759   if (fH->GetDimension() == 1) {
     1760      Double_t integ = 0;
     1761      for (Int_t bin=binmin;bin<=binx;bin++) {integ += fH->GetBinContent(bin);}
     1762      sprintf(info,"(x=%g, y=%g, binx=%d, binc=%g, Sum=%g)",x,y,binx,fH->GetBinContent(binx),integ);
     1763   } else {
     1764      biny = fYaxis->FindFixBin(y);
     1765      sprintf(info,"(x=%g, y=%g, binx=%d, biny=%d, binc=%g)",x,y,binx,biny,fH->GetCellContent(binx,biny));
     1766   }
     1767   return info;
     1768}
     1769
     1770// --------------------------------------------------------------------------
     1771//
     1772// Unfortunately in TProfile::GetObjectInfo the buffer is just 64 characters
     1773// which is sometimes to small. This is just a copy of the code but the
     1774// buffer has been increased to 128 which should fairly be enough.
     1775//
     1776//  Necessary for root <= 5.22/00
     1777//
     1778char *MH::GetObjectInfoP(Int_t px, Int_t py, const TProfile &p)
     1779{
     1780    if (!gPad) return (char*)"";
     1781    static char info[128];
     1782    Double_t x  = gPad->PadtoX(gPad->AbsPixeltoX(px));
     1783    Double_t y  = gPad->PadtoY(gPad->AbsPixeltoY(py));
     1784    Int_t binx   = p.GetXaxis()->FindFixBin(x);
     1785    sprintf(info,"(x=%g, y=%g, binx=%d, binc=%g, bine=%g, binn=%d)", x, y, binx, p.GetBinContent(binx), p.GetBinError(binx), (Int_t)p.GetBinEntries(binx));
     1786    return info;
     1787}
     1788
     1789// --------------------------------------------------------------------------
     1790//
     1791// Unfortunately TH1::GetObjectInfo and TProfile::GetObjectInfo can
     1792// result in buffer ovwerflows therefor we have to re-implement these
     1793// function by our own.
     1794//
     1795//  Necessary for root <= 5.22/00
     1796//
     1797char *MH::GetObjectInfo(Int_t px, Int_t py, const TObject &o)
     1798{
     1799    if (!o.InheritsFrom(TH1::Class()))
     1800        return o.GetObjectInfo(px, py);
     1801
     1802    if (o.InheritsFrom(TProfile::Class()))
     1803        return GetObjectInfoP(px, py, static_cast<const TProfile&>(o));
     1804
     1805    if (o.InheritsFrom("MHCamera"))
     1806        return o.GetObjectInfo(px, py);
     1807
     1808    if (o.InheritsFrom(TH1::Class()))
     1809        return GetObjectInfoH(px, py, static_cast<const TH1&>(o));
     1810
     1811    return "MH::GetObjectInfo: unknown class.";
     1812}
  • trunk/MagicSoft/Mars/mhbase/MH3.cc

    r9153 r9195  
    146146#include "MH3.h"
    147147
    148 #include <ctype.h>   // tolower
     148#include <ctype.h>    // tolower
     149#include <stdlib.h>   // atoi (Ubuntu 8.10)
    149150#include <fstream>
    150151
  • trunk/MagicSoft/Mars/mhbase/MHn.h

    r9153 r9195  
    2121    void InitHist();
    2222
    23     Bool_t InitName(Int_t n,  const char *n);
    24     Bool_t InitTitle(Int_t n, const char *t);
     23    Bool_t InitName(Int_t n,  const char *name);
     24    Bool_t InitTitle(Int_t n, const char *title);
    2525    Bool_t SetDrawOption(Int_t n, const char *opt);
    2626
  • trunk/MagicSoft/Mars/mhist/MHCamera.cc

    r9186 r9195  
    11/* ======================================================================== *\
    2 ! $Name: not supported by cvs2svn $:$Id: MHCamera.cc,v 1.110 2008-12-02 11:22:19 tbretz Exp $
     2! $Name: not supported by cvs2svn $:$Id: MHCamera.cc,v 1.111 2008-12-21 18:09:49 tbretz Exp $
    33! --------------------------------------------------------------------------
    44!
     
    20062006{
    20072007    if (TString(GetDrawOption()).Contains("hist", TString::kIgnoreCase))
     2008#if ROOT_VERSION_CODE > ROOT_VERSION(5,22,00)
     2009        return MH::GetObjectInfoH(px, py, *this);
     2010#else
    20082011        return TH1D::GetObjectInfo(px, py);
     2012#endif
    20092013
    20102014    static char info[128];
  • trunk/MagicSoft/Mars/mjobs/MSequenceSQL.cc

    r9019 r9195  
    6767#include "MSequenceSQL.h"
    6868
     69#include <stdlib.h> // atof (Ubuntu 8.10)
     70
    6971#include <TSQLRow.h>
    7072#include <TSQLResult.h>
  • trunk/MagicSoft/Mars/mpointing/MPointingDevCalc.cc

    r8989 r9195  
    256256#include "MPointingDevCalc.h"
    257257
     258#include <stdlib.h> // atoi (Ubuntu 8.10)
     259
    258260#include "MLog.h"
    259261#include "MLogManip.h"
  • trunk/MagicSoft/Mars/msql/MSQLMagic.cc

    r9039 r9195  
    3333#include "MSQLMagic.h"
    3434
     35#include <stdlib.h> // atoi (Ubuntu 8.10)
     36
    3537#include <iostream>
    3638
  • trunk/MagicSoft/Mars/msql/MSQLServer.cc

    r8996 r9195  
    11/* ======================================================================== *\
    2 ! $Name: not supported by cvs2svn $:$Id: MSQLServer.cc,v 1.16 2008-07-05 18:57:35 tbretz Exp $
     2! $Name: not supported by cvs2svn $:$Id: MSQLServer.cc,v 1.17 2008-12-21 18:09:49 tbretz Exp $
    33! --------------------------------------------------------------------------
    44!
     
    5858#include <TBrowser.h>
    5959
     60#include <TObjString.h>
     61#include <TObjArray.h>
     62
    6063ClassImp(MSQLServer);
    6164
     
    781784// Return the name of the (first) column with a primary key
    782785//
    783 TString MSQLServer::GetPrimaryKey(const char *table)
     786TString MSQLServer::GetPrimaryKeys(const char *table)
    784787{
    785788    TSQLResult *res = GetColumns(table);
     
    787790        return "";
    788791
    789     TString rc;
     792    TObjArray arr;
     793    arr.SetOwner();
    790794
    791795    TSQLRow *row = 0;
     
    794798        const TString key = (*row)[3];
    795799        if (key=="PRI")
    796         {
    797             if (!rc.IsNull())
    798                 rc += ", ";
    799             rc += (*row)[0];
    800         }
     800            arr.Add(new TObjString((*row)[0]));
    801801        delete row;
    802802    }
    803 
    804803    delete res;
     804
     805    arr.Sort();
     806
     807    TString rc;
     808    for (int i=0; i<arr.GetEntries(); i++)
     809    {
     810        if (i>0)
     811            rc += ", ";
     812        rc += arr[i]->GetName();
     813    }
    805814    return rc;
    806815}
     
    849858
    850859        // Now get the primary key of the table to be joined
    851         const TString prim = GetPrimaryKey(tab);
     860        const TString prim = GetPrimaryKeys(tab);
    852861        if (prim.IsNull())
    853862            continue;
  • trunk/MagicSoft/Mars/msql/MSQLServer.h

    r8185 r9195  
    123123
    124124    TString     GetEntry(const char *where, const char *col=0, const char *table=0) const;
    125     TString     GetPrimaryKey(const char *table);
     125    TString     GetPrimaryKeys(const char *table);
    126126    TString     GetJoins(const char *table, const TString text);
    127127
  • trunk/MagicSoft/Mars/mtools/MagicJam.cc

    r8910 r9195  
    5353#include "MagicJam.h"
    5454
     55#include <climits> // INT_MAX (Ubuntu 8.10)
     56
    5557#include <iostream>
    5658#include <fstream>
  • trunk/MagicSoft/Mars/showlog.cc

    r9141 r9195  
    11#include <errno.h>
     2#include <stdlib.h> // strtol (Ubuntu 8.10)
     3
    24#include <fstream>
    35
Note: See TracChangeset for help on using the changeset viewer.