~ubuntu-branches/ubuntu/edgy/pysvn/edgy

« back to all changes in this revision

Viewing changes to Source/pysvn_converters.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2006-03-07 14:08:44 UTC
  • mto: This revision was merged to the branch mainline in revision 5.
  • Revision ID: james.westby@ubuntu.com-20060307140844-xey4ygiqdrexvq0s
Tags: upstream-1.4.1
ImportĀ upstreamĀ versionĀ 1.4.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
//
2
2
// ====================================================================
3
 
// Copyright (c) 2003-2005 Barry A Scott.  All rights reserved.
 
3
// Copyright (c) 2003-2006 Barry A Scott.  All rights reserved.
4
4
//
5
5
// This software is licensed as described in the file LICENSE.txt,
6
6
// which you should have received as part of this distribution.
98
98
    return Py::Float( double( t )/1000000 );
99
99
}
100
100
 
101
 
Py::Object toObject( svn_client_commit_info_t *commit_info )
102
 
{
103
 
    if( commit_info == NULL || !SVN_IS_VALID_REVNUM( commit_info->revision ) )
104
 
        return Py::Nothing();
105
 
 
106
 
    return Py::asObject( new pysvn_revision( svn_opt_revision_number, 0, commit_info->revision ) );
107
 
}
 
101
#if defined( PYSVN_HAS_SVN_COMMIT_INFO_T )
 
102
Py::Object toObject( pysvn_commit_info_t *commit_info )
 
103
{
 
104
    if( commit_info == NULL || !SVN_IS_VALID_REVNUM( commit_info->revision ) )
 
105
        return Py::Nothing();
 
106
 
 
107
    return Py::asObject( new pysvn_revision( svn_opt_revision_number, 0, commit_info->revision ) );
 
108
}
 
109
#else
 
110
Py::Object toObject( pysvn_commit_info_t *commit_info )
 
111
{
 
112
    if( commit_info == NULL || !SVN_IS_VALID_REVNUM( commit_info->revision ) )
 
113
        return Py::Nothing();
 
114
 
 
115
    return Py::asObject( new pysvn_revision( svn_opt_revision_number, 0, commit_info->revision ) );
 
116
}
 
117
#endif
108
118
 
109
119
#ifdef PYSVN_HAS_CLIENT_INFO
110
120
Py::Object toObject( const svn_info_t *info )
144
154
    }
145
155
    else
146
156
    {
147
 
        Py::Dict py_lock;
148
 
        py_lock[str_path] = utf8_string_or_none( info->lock->path );
149
 
        py_lock[str_token] = utf8_string_or_none( info->lock->token );
150
 
        py_lock[str_owner] = utf8_string_or_none( info->lock->owner );
151
 
        py_lock[str_comment] = utf8_string_or_none( info->lock->comment );
152
 
        py_lock[str_is_dav_comment] = Py::Int( info->lock->is_dav_comment != 0 );
153
 
        if( info->lock->creation_date == 0 )
154
 
            py_lock[str_creation_date] = Py::None();
155
 
        else
156
 
            py_lock[str_creation_date] = toObject( info->lock->creation_date );
157
 
        if( info->lock->expiration_date == 0 )
158
 
            py_lock[str_expiration_date] = Py::None();
159
 
        else
160
 
            py_lock[str_expiration_date] = toObject( info->lock->expiration_date );
161
 
 
162
 
        py_info[str_lock] = py_lock;
 
157
        py_info[str_lock] = toObject( info->lock );
163
158
    }
164
159
 
165
160
    // Whether or not to ignore the next 10 wc-specific fields.
186
181
    return py_info;
187
182
}
188
183
#endif
 
184
#ifdef PYSVN_HAS_CLIENT_LOCK
 
185
Py::Object toObject( const svn_lock_t *lock )
 
186
{
 
187
    Py::Dict py_lock;
 
188
    py_lock[str_path] = utf8_string_or_none( lock->path );
 
189
    py_lock[str_token] = utf8_string_or_none( lock->token );
 
190
    py_lock[str_owner] = utf8_string_or_none( lock->owner );
 
191
    py_lock[str_comment] = utf8_string_or_none( lock->comment );
 
192
    py_lock[str_is_dav_comment] = Py::Int( lock->is_dav_comment != 0 );
 
193
    if( lock->creation_date == 0 )
 
194
        py_lock[str_creation_date] = Py::None();
 
195
    else
 
196
        py_lock[str_creation_date] = toObject( lock->creation_date );
 
197
    if( lock->expiration_date == 0 )
 
198
        py_lock[str_expiration_date] = Py::None();
 
199
    else
 
200
        py_lock[str_expiration_date] = toObject( lock->expiration_date );
 
201
 
 
202
    return py_lock;
 
203
}
 
204
#endif
189
205
 
190
206
Py::Object propsToObject( apr_hash_t *props, SvnPool &pool )
191
207
{
223
239
    }
224
240
}
225
241
 
 
242
Py::Object revnumListToObject( apr_array_header_t *revs, SvnPool &pool )
 
243
{
 
244
    Py::List py_list;
 
245
 
 
246
    for (int j = 0; j < revs->nelts; ++j)
 
247
    {
 
248
        svn_revnum_t revnum = ((svn_revnum_t *)revs->elts)[j];
 
249
 
 
250
        Py::Object py_rev( Py::asObject( new pysvn_revision( svn_opt_revision_number, 0, revnum ) ) );
 
251
 
 
252
        py_list.append( py_rev );
 
253
    }
 
254
 
 
255
    return py_list;
 
256
}
 
257
 
226
258
Py::String asUtf8String( Py::Object obj )
227
259
{
228
260
    Py::String any( obj );