~svn/ubuntu/oneiric/subversion/ppa

« back to all changes in this revision

Viewing changes to subversion/bindings/java/javahl/native/SVNClient.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2006-12-13 17:57:16 UTC
  • mfrom: (1.1.6 upstream) (0.1.3 etch)
  • Revision ID: james.westby@ubuntu.com-20061213175716-2ysv6z4w5dpa2r2f
Tags: 1.4.2dfsg1-2ubuntu1
* Merge with Debian unstable; remaining changes:
  - Create pot file on build.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
#include "JNIByteArray.h"
32
32
#include "CommitMessage.h"
33
33
#include "EnumMapper.h"
34
 
#include <svn_client.h>
35
 
#include <svn_sorts.h>
36
 
#include <svn_time.h>
37
 
#include <svn_config.h>
38
 
#include <svn_io.h>
39
 
#include <svn_path.h>
 
34
#include "svn_client.h"
 
35
#include "svn_sorts.h"
 
36
#include "svn_time.h"
 
37
#include "svn_config.h"
 
38
#include "svn_io.h"
 
39
#include "svn_path.h"
40
40
#include "svn_private_config.h"
41
41
#include "../include/org_tigris_subversion_javahl_Revision.h"
42
42
#include "../include/org_tigris_subversion_javahl_NodeKind.h"
69
69
    delete m_prompter;
70
70
}
71
71
 
72
 
jlong SVNClient::getCppAddr()
73
 
{
74
 
    return reinterpret_cast<jlong>(this);
75
 
}
76
 
 
77
72
SVNClient * SVNClient::getCppObject(jobject jthis)
78
73
{
79
74
    static jfieldID fid = 0;
80
 
    JNIEnv *env = JNIUtil::getEnv();
81
 
    if(fid == 0)
82
 
    {
83
 
        jclass clazz = env->FindClass(JAVA_PACKAGE"/SVNClient");
84
 
        if(JNIUtil::isJavaExceptionThrown())
85
 
        {
86
 
            return NULL;
87
 
        }
88
 
        fid = env->GetFieldID(clazz, "cppAddr", "J");
89
 
        if(JNIUtil::isJavaExceptionThrown())
90
 
        {
91
 
            return NULL;
92
 
        }
93
 
    }
94
 
 
95
 
    jlong cppAddr = env->GetLongField(jthis, fid);
96
 
    if(JNIUtil::isJavaExceptionThrown())
97
 
    {
98
 
        return NULL;
99
 
    }
100
 
    return reinterpret_cast<SVNClient*>(cppAddr);
101
 
 
 
75
    jlong cppAddr = SVNBase::findCppAddrForJObject(jthis, &fid,
 
76
                                                   JAVA_PACKAGE"/SVNClient");
 
77
    return (cppAddr == 0 ? NULL : reinterpret_cast<SVNClient *>(cppAddr));
102
78
}
103
79
 
104
80
void SVNClient::dispose(jobject jthis)
105
81
{
106
 
    delete this;
107
82
    static jfieldID fid = 0;
108
 
    JNIEnv *env = JNIUtil::getEnv();
109
 
    if(fid == 0)
110
 
    {
111
 
        jclass clazz = env->FindClass(JAVA_PACKAGE"/SVNClient");
112
 
        if(JNIUtil::isJavaExceptionThrown())
113
 
        {
114
 
            return;
115
 
        }
116
 
        fid = env->GetFieldID(clazz, "cppAddr", "J");
117
 
        if(JNIUtil::isJavaExceptionThrown())
118
 
        {
119
 
            return;
120
 
        }
121
 
    }
122
 
 
123
 
    env->SetLongField(jthis, fid, 0);
124
 
    if(JNIUtil::isJavaExceptionThrown())
125
 
    {
126
 
        return;
127
 
    }
128
 
}
129
 
 
130
 
void SVNClient::finalize()
131
 
{
132
 
    JNIUtil::putFinalizedClient(this);
 
83
    SVNBase::dispose(jthis, &fid, JAVA_PACKAGE"/SVNClient");
133
84
}
134
85
 
135
86
jstring SVNClient::getAdminDirectoryName()
430
381
 
431
382
void SVNClient::username(const char *pi_username)
432
383
{
433
 
    m_userName = pi_username;
 
384
    m_userName = (pi_username == NULL ? "" : pi_username);
434
385
}
435
386
 
436
387
void SVNClient::password(const char *pi_password)
437
388
{
438
 
    m_passWord = pi_password;
 
389
    m_passWord = (pi_password == NULL ? "" : pi_password);
439
390
}
440
391
 
441
392
void SVNClient::setPrompt(Prompter *prompter)
675
626
    {
676
627
        return;
677
628
    }
678
 
    Err = svn_client_add2 (intPath.c_str (), recurse, force, 
679
 
                                        ctx, apr_pool);
 
629
    Err = svn_client_add3 (intPath.c_str (), recurse, force, FALSE,
 
630
                           ctx, apr_pool);
680
631
 
681
632
    if(Err != NULL)
682
633
         JNIUtil::handleSVNError(Err);
2035
1986
    {
2036
1987
        return SVN_NO_ERROR;
2037
1988
    }
2038
 
    svn_error_t * error = NULL;
2039
1989
    std::vector<jobject> *logs = (std::vector<jobject>*)baton;
2040
1990
 
2041
1991
    static jmethodID mid = 0;
2084
2034
    if(date != NULL && *date != '\0')
2085
2035
    {
2086
2036
        apr_time_t timeTemp;
2087
 
        svn_time_from_cstring (&timeTemp, date, pool);
 
2037
        
 
2038
        svn_error_t * err = svn_time_from_cstring (&timeTemp, date, pool);
 
2039
        if(err != SVN_NO_ERROR)
 
2040
            return err;
2088
2041
 
2089
2042
        jdate = JNIUtil::createDate(timeTemp);
2090
2043
        if(JNIUtil::isJavaExceptionThrown())
2758
2711
                const char *line,
2759
2712
                apr_pool_t *pool)
2760
2713
{
2761
 
    ((BlameCallback *)baton)->callback(revision, author, date, line, pool);
2762
 
    return NULL;
 
2714
    return ((BlameCallback *)baton)->callback(revision, author, date, line, pool);
2763
2715
}
2764
2716
void SVNClient::blame(const char *path, Revision &pegRevision, 
2765
2717
                      Revision &revisionStart,
2797
2749
 
2798
2750
void SVNClient::setConfigDirectory(const char *configDir)
2799
2751
{
2800
 
    m_configDir = configDir;
 
2752
    // A change to the config directory may necessitate creation of
 
2753
    // the config templates.
 
2754
    Pool requestPool;
 
2755
    svn_error_t *err = svn_config_ensure(configDir, requestPool.pool());
 
2756
    if (err)
 
2757
    {
 
2758
        JNIUtil::handleSVNError(err);
 
2759
    }
 
2760
    else
 
2761
    {
 
2762
        m_configDir = (configDir == NULL ? "" : configDir);
 
2763
    }
2801
2764
}
2802
2765
 
2803
2766
const char * SVNClient::getConfigDirectory()