• Bug#266045: scim: FTBFS with gcc-3.4: ISO C++ forbids cast to non-refer

    From Ming Hua@1:229/2 to Andreas Jochens on Wed Aug 18 05:40:06 2004
    From: [email protected]

    On Mon, Aug 16, 2004 at 03:19:15PM +0200, Andreas Jochens wrote:
    Package: scim
    Severity: normal
    Tags: patch

    With the attached patch 'scim' can be compiled using gcc-3.4.

    Regards
    Andreas Jochens

    Hi Andreas,

    Thanks for the report. The version of scim in Debian is the stable
    version 0.9.7, and there are heavy development on the unstable branch
    (will become 1.0 finally). The first part is already fixed in upstream,
    by using a static cast like:
    char *cbuf = static_cast<char *> (buf);
    I am not sure about the second part of your patch though.

    I am planning to package scim 1.0 as soon as it is released. Since
    sarge will use gcc 3.3 as default I think it's not a big problem for
    now. I realize amd64 is using gcc 3.4 as default, so if it's really
    necessary, I can prepare a new package, but I need a sponsor for that.

    diff -urN ../tmp-orig/scim-0.9.7/src/scim_socket.cpp ./src/scim_socket.cpp --- ../tmp-orig/scim-0.9.7/src/scim_socket.cpp 2004-01-14 10:31:54.000000000 +0100
    +++ ./src/scim_socket.cpp 2004-08-16 15:00:06.123570113 +0200
    @@ -349,7 +349,7 @@
    if (ret < 0) return ret;
    if (ret == 0) return nbytes;

    - ((char*)buf) += ret;
    + buf = ((char*)buf) + ret;
    nbytes += ret;
    size -= ret;
    }
    @@ -371,7 +371,7 @@
    ret = ::write (m_id, buf, size);
    if (ret <= 0) break;
    size -= (size_t) ret;
    - ((char*)buf) += ret;
    + buf = ((char*)buf) + ret;
    }

    if (ret == 0) m_err = EPIPE;
    diff -urN ../tmp-orig/scim-0.9.7/src/scim_socket.h ./src/scim_socket.h
    --- ../tmp-orig/scim-0.9.7/src/scim_socket.h 2004-02-06 08:53:15.000000000 +0100
    +++ ./src/scim_socket.h 2004-08-16 15:00:28.541162121 +0200
    @@ -149,6 +149,7 @@

    SocketImpl *m_impl;

    +public:
    /**
    * null declaration of copy constructor and operator,
    * to prevent from being constructed by user.
    @@ -156,7 +157,6 @@
    Socket (const Socket&);
    const Socket& operator = (const Socket&);

    -public:
    /**
    * create a Socket object from an already created socket_id.
    */

    Thanks,
    Ming
    2004.08.17

    -------------------------------------------------------------------------- Wireless telegraph is not difficult to understand. The ordinary telegraph
    is like a very long cat. You pull the tail in New York, and it meows in
    Los Angeles. The wireless is the same, only without the cat.
    --- Albert Einstein --------------------------------------------------------------------------


    --
    To UNSUBSCRIBE, email to [email protected]
    with a subject of "unsubscribe". Trouble? Contact [email protected]

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)