~ubuntu-branches/debian/sid/subversion/sid

« back to all changes in this revision

Viewing changes to subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp

  • Committer: Package Import Robot
  • Author(s): James McCoy, Peter Samuelson, James McCoy
  • Date: 2014-01-12 19:48:33 UTC
  • mfrom: (0.2.10)
  • Revision ID: package-import@ubuntu.com-20140112194833-w3axfwksn296jn5x
Tags: 1.8.5-1
[ Peter Samuelson ]
* New upstream release.  (Closes: #725787) Rediff patches:
  - Remove apr-abi1 (applied upstream), rename apr-abi2 to apr-abi
  - Remove loosen-sqlite-version-check (shouldn't be needed)
  - Remove java-osgi-metadata (applied upstream)
  - svnmucc prompts for a changelog if none is provided. (Closes: #507430)
  - Remove fix-bdb-version-detection, upstream uses "apu-config --dbm-libs"
  - Remove ruby-test-wc (applied upstream)
  - Fix “svn diff -r N file” when file has svn:mime-type set.
    (Closes: #734163)
  - Support specifying an encoding for mod_dav_svn's environment in which
    hooks are run.  (Closes: #601544)
  - Fix ordering of “svnadmin dump” paths with certain APR versions.
    (Closes: #687291)
  - Provide a better error message when authentication fails with an
    svn+ssh:// URL.  (Closes: #273874)
  - Updated Polish translations.  (Closes: #690815)

[ James McCoy ]
* Remove all traces of libneon, replaced by libserf.
* patches/sqlite_3.8.x_workaround: Upstream fix for wc-queries-test test
  failurse.
* Run configure with --with-apache-libexecdir, which allows removing part of
  patches/rpath.
* Re-enable auth-test as upstream has fixed the problem of picking up
  libraries from the environment rather than the build tree.
  (Closes: #654172)
* Point LD_LIBRARY_PATH at the built auth libraries when running the svn
  command during the build.  (Closes: #678224)
* Add a NEWS entry describing how to configure mod_dav_svn to understand
  UTF-8.  (Closes: #566148)
* Remove ancient transitional package, libsvn-ruby.
* Enable compatibility with Sqlite3 versions back to Wheezy.
* Enable hardening flags.  (Closes: #734918)
* patches/build-fixes: Enable verbose build logs.
* Build against the default ruby version.  (Closes: #722393)

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
#include "InfoCallback.h"
48
48
#include "StatusCallback.h"
49
49
#include "ListCallback.h"
 
50
#include "ImportFilterCallback.h"
50
51
#include "ChangelistCallback.h"
51
52
#include "StringArray.h"
52
53
#include "RevpropTable.h"
 
54
#include "VersionExtended.h"
 
55
#include "DiffOptions.h"
53
56
#include "svn_version.h"
54
57
#include "svn_private_config.h"
55
58
#include "version.h"
75
78
      JNIUtil::throwError(_("bad C++ this"));
76
79
      return;
77
80
    }
78
 
  cl->dispose();
 
81
  cl->dispose(jthis);
79
82
}
80
83
 
81
84
JNIEXPORT void JNICALL
88
91
    cl->finalize();
89
92
}
90
93
 
 
94
JNIEXPORT jobject JNICALL
 
95
Java_org_apache_subversion_javahl_SVNClient_getVersionExtended(
 
96
    JNIEnv *env, jobject jthis, jboolean verbose)
 
97
{
 
98
  JNIEntry(SVNClient, getVersionExtended);
 
99
  SVNClient *cl = SVNClient::getCppObject(jthis);
 
100
  if (cl == NULL)
 
101
    {
 
102
      JNIUtil::throwError(_("bad C++ this"));
 
103
      return NULL;
 
104
    }
 
105
  return cl->getVersionExtended(!!verbose);
 
106
}
 
107
 
91
108
JNIEXPORT jstring JNICALL
92
109
Java_org_apache_subversion_javahl_SVNClient_getAdminDirectoryName
93
110
(JNIEnv *env, jobject jthis)
160
177
 
161
178
  ListCallback callback(jcallback);
162
179
  cl->list(url, revision, pegRevision, EnumMapper::toDepth(jdepth),
163
 
           (int)jdirentFields, jfetchLocks ? true : false, &callback);
 
180
           static_cast<int>(jdirentFields), jfetchLocks ? true : false,
 
181
           &callback);
164
182
}
165
183
 
166
184
JNIEXPORT void JNICALL
305
323
  cl->logMessages(path, pegRevision, revisionRanges,
306
324
                  jstopOnCopy ? true: false, jdisoverPaths ? true : false,
307
325
                  jincludeMergedRevisions ? true : false,
308
 
                  revProps, jlimit, &callback);
 
326
                  revProps, static_cast<long>(jlimit), &callback);
309
327
}
310
328
 
311
329
JNIEXPORT jlong JNICALL
401
419
JNIEXPORT void JNICALL
402
420
Java_org_apache_subversion_javahl_SVNClient_add
403
421
(JNIEnv *env, jobject jthis, jstring jpath, jobject jdepth,
404
 
 jboolean jforce, jboolean jnoIgnore, jboolean jaddParents)
 
422
 jboolean jforce, jboolean jnoIgnore, jboolean jnoAutoProps,
 
423
 jboolean jaddParents)
405
424
{
406
425
  JNIEntry(SVNClient, add);
407
426
  SVNClient *cl = SVNClient::getCppObject(jthis);
414
433
  if (JNIUtil::isExceptionThrown())
415
434
    return;
416
435
 
417
 
  cl->add(path, EnumMapper::toDepth(jdepth), jforce ? true : false,
418
 
          jnoIgnore ? true : false, jaddParents ? true : false);
 
436
  cl->add(path, EnumMapper::toDepth(jdepth),
 
437
          jforce ? true : false,
 
438
          jnoIgnore ? true : false,
 
439
          jnoAutoProps ? true : false,
 
440
          jaddParents ? true : false);
419
441
}
420
442
 
421
443
JNIEXPORT jlongArray JNICALL
531
553
Java_org_apache_subversion_javahl_SVNClient_move
532
554
(JNIEnv *env, jobject jthis, jobject jsrcPaths, jstring jdestPath,
533
555
 jboolean jforce, jboolean jmoveAsChild, jboolean jmakeParents,
534
 
 jobject jrevpropTable, jobject jmessage, jobject jcallback)
 
556
 jboolean jmetadataOnly, jboolean jallowMixRev, jobject jrevpropTable,
 
557
 jobject jmessage, jobject jcallback)
535
558
{
536
559
  JNIEntry(SVNClient, move);
537
560
 
561
584
  CommitCallback callback(jcallback);
562
585
  cl->move(srcPaths, destPath, &message, jforce ? true : false,
563
586
           jmoveAsChild ? true : false, jmakeParents ? true : false,
 
587
           jmetadataOnly ? true: false, jallowMixRev ? true : false,
564
588
           revprops, jcallback ? &callback : NULL);
565
589
}
566
590
 
711
735
JNIEXPORT void JNICALL
712
736
Java_org_apache_subversion_javahl_SVNClient_doImport
713
737
(JNIEnv *env, jobject jthis, jstring jpath, jstring jurl, jobject jdepth,
714
 
 jboolean jnoIgnore, jboolean jignoreUnknownNodeTypes, jobject jrevpropTable,
715
 
 jobject jmessage, jobject jcallback)
 
738
 jboolean jnoIgnore, jboolean jnoAutoProps,
 
739
 jboolean jignoreUnknownNodeTypes, jobject jrevpropTable,
 
740
 jobject jimportFilterCallback, jobject jmessage, jobject jcommitCallback)
716
741
{
717
742
  JNIEntry(SVNClient, doImport);
718
743
  SVNClient *cl = SVNClient::getCppObject(jthis);
737
762
  if (JNIUtil::isExceptionThrown())
738
763
    return;
739
764
 
740
 
  CommitCallback callback(jcallback);
 
765
  ImportFilterCallback importFilterCallback(jimportFilterCallback);
 
766
  CommitCallback commitCallback(jcommitCallback);
 
767
 
741
768
  cl->doImport(path, url, &message, EnumMapper::toDepth(jdepth),
742
 
               jnoIgnore ? true : false,
 
769
               jnoIgnore ? true : false, jnoAutoProps ? true : false,
743
770
               jignoreUnknownNodeTypes ? true : false, revprops,
744
 
               jcallback ? &callback : NULL);
 
771
               jimportFilterCallback ? &importFilterCallback : NULL,
 
772
               jcommitCallback ? &commitCallback : NULL);
745
773
}
746
774
 
747
775
JNIEXPORT jobject JNICALL
768
796
}
769
797
 
770
798
JNIEXPORT void JNICALL
771
 
Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZ
 
799
Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZZ
772
800
(JNIEnv *env, jobject jthis, jstring jpath1, jobject jrevision1,
773
 
 jstring jpath2, jobject jrevision2, jstring jlocalPath, jboolean jforce,
774
 
 jobject jdepth, jboolean jignoreAncestry, jboolean jdryRun,
775
 
 jboolean jrecordOnly)
 
801
 jstring jpath2, jobject jrevision2, jstring jlocalPath, jboolean jforceDelete,
 
802
 jobject jdepth, jboolean jignoreMergeinfo, jboolean jdiffIgnoreAncestry,
 
803
 jboolean jdryRun, jboolean jrecordOnly)
776
804
{
777
805
  JNIEntry(SVNClient, merge);
778
806
  SVNClient *cl = SVNClient::getCppObject(jthis);
802
830
    return;
803
831
 
804
832
  cl->merge(path1, revision1, path2, revision2, localPath,
805
 
            jforce ? true:false, EnumMapper::toDepth(jdepth),
806
 
            jignoreAncestry ? true:false, jdryRun ? true:false,
 
833
            jforceDelete ? true:false,
 
834
            EnumMapper::toDepth(jdepth),
 
835
            jignoreMergeinfo ? true:false,
 
836
            jdiffIgnoreAncestry ? true:false,
 
837
            jdryRun ? true:false,
807
838
            jrecordOnly ? true:false);
808
839
}
809
840
 
810
841
JNIEXPORT void JNICALL
811
 
Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_util_List_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZ
 
842
Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_util_List_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZZ
812
843
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
813
 
 jobject jranges, jstring jlocalPath, jboolean jforce, jobject jdepth,
814
 
 jboolean jignoreAncestry, jboolean jdryRun, jboolean jrecordOnly)
 
844
 jobject jranges, jstring jlocalPath, jboolean jforceDelete, jobject jdepth,
 
845
 jboolean jignoreMergeinfo, jboolean jdiffIgnoreAncestry,
 
846
 jboolean jdryRun, jboolean jrecordOnly)
815
847
{
816
848
  JNIEntry(SVNClient, merge);
817
849
  SVNClient *cl = SVNClient::getCppObject(jthis);
833
865
  if (JNIUtil::isExceptionThrown())
834
866
    return;
835
867
 
 
868
  std::vector<RevisionRange> *revisionRanges = NULL;
 
869
  std::vector<RevisionRange> realRevisionRanges;
836
870
  // Build the revision range vector from the Java array.
837
 
  Array ranges(jranges);
838
 
  if (JNIUtil::isExceptionThrown())
839
 
    return;
840
 
 
841
 
  std::vector<RevisionRange> revisionRanges;
842
 
  std::vector<jobject> rangeVec = ranges.vector();
843
 
 
844
 
  for (std::vector<jobject>::const_iterator it = rangeVec.begin();
845
 
        it < rangeVec.end(); ++it)
 
871
  if (jranges)
846
872
    {
847
 
      RevisionRange revisionRange(*it);
 
873
      Array ranges(jranges);
848
874
      if (JNIUtil::isExceptionThrown())
849
875
        return;
850
876
 
851
 
      revisionRanges.push_back(revisionRange);
 
877
      std::vector<jobject> rangeVec = ranges.vector();
 
878
 
 
879
      for (std::vector<jobject>::const_iterator it = rangeVec.begin();
 
880
           it < rangeVec.end(); ++it)
 
881
        {
 
882
          RevisionRange revisionRange(*it);
 
883
          if (JNIUtil::isExceptionThrown())
 
884
            return;
 
885
 
 
886
          realRevisionRanges.push_back(revisionRange);
 
887
        }
 
888
      revisionRanges = &realRevisionRanges;
852
889
    }
853
890
 
854
891
  cl->merge(path, pegRevision, revisionRanges, localPath,
855
 
            jforce ? true:false, EnumMapper::toDepth(jdepth),
856
 
            jignoreAncestry ? true:false, jdryRun ? true:false,
 
892
            jforceDelete ? true:false,
 
893
            EnumMapper::toDepth(jdepth),
 
894
            jignoreMergeinfo ? true:false,
 
895
            jdiffIgnoreAncestry ? true:false,
 
896
            jdryRun ? true:false,
857
897
            jrecordOnly ? true:false);
858
898
}
859
899
 
886
926
                       jdryRun ? true:false);
887
927
}
888
928
 
889
 
JNIEXPORT void JNICALL
890
 
Java_org_apache_subversion_javahl_SVNClient_properties
 
929
static void SVNClient_properties
891
930
(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision,
892
931
 jobject jpegRevision, jobject jdepth, jobject jchangelists,
893
 
 jobject jproplistCallback)
 
932
 jobject jproplistCallback, bool inherited)
894
933
{
895
 
  JNIEntry(SVNClient, properties);
896
934
  SVNClient *cl = SVNClient::getCppObject(jthis);
897
935
  if (cl == NULL)
898
936
    {
915
953
  if (JNIUtil::isExceptionThrown())
916
954
    return;
917
955
 
918
 
  ProplistCallback callback(jproplistCallback);
 
956
  ProplistCallback callback(jproplistCallback, inherited);
919
957
  cl->properties(path, revision, pegRevision, EnumMapper::toDepth(jdepth),
920
958
                 changelists, &callback);
921
959
}
922
960
 
923
961
JNIEXPORT void JNICALL
 
962
Java_org_apache_subversion_javahl_SVNClient_properties__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2Lorg_apache_subversion_javahl_callback_ProplistCallback_2
 
963
(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision,
 
964
 jobject jpegRevision, jobject jdepth, jobject jchangelists,
 
965
 jobject jproplistCallback)
 
966
{
 
967
  JNIEntry(SVNClient, properties);
 
968
  SVNClient_properties(env, jthis, jpath, jrevision, jpegRevision, jdepth,
 
969
                       jchangelists, jproplistCallback, false);
 
970
}
 
971
 
 
972
JNIEXPORT void JNICALL
 
973
Java_org_apache_subversion_javahl_SVNClient_properties__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2Lorg_apache_subversion_javahl_callback_InheritedProplistCallback_2
 
974
(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision,
 
975
 jobject jpegRevision, jobject jdepth, jobject jchangelists,
 
976
 jobject jproplistCallback)
 
977
{
 
978
  JNIEntry(SVNClient, properties);
 
979
  SVNClient_properties(env, jthis, jpath, jrevision, jpegRevision, jdepth,
 
980
                       jchangelists, jproplistCallback, true);
 
981
}
 
982
 
 
983
JNIEXPORT void JNICALL
924
984
Java_org_apache_subversion_javahl_SVNClient_propertySetRemote
925
985
(JNIEnv *env, jobject jthis, jstring jpath, jlong jbaseRev, jstring jname,
926
 
 jbyteArray jvalue, jobject jmessage, jboolean jforce, jobject jrevpropTable,
 
986
 jbyteArray jval, jobject jmessage, jboolean jforce, jobject jrevpropTable,
927
987
 jobject jcallback)
928
988
{
929
989
  JNIEntry(SVNClient, propertySet);
945
1005
  if (JNIUtil::isExceptionThrown())
946
1006
    return;
947
1007
 
948
 
  JNIByteArray value(jvalue);
 
1008
  JNIByteArray value(jval);
949
1009
  if (JNIUtil::isExceptionThrown())
950
1010
    return;
951
1011
 
954
1014
    return;
955
1015
 
956
1016
  CommitCallback callback(jcallback);
957
 
  cl->propertySetRemote(path, jbaseRev, name, &message, value,
958
 
                        jforce ? true:false,
 
1017
  cl->propertySetRemote(path, static_cast<svn_revnum_t>(jbaseRev),
 
1018
                        name, &message, value, jforce ? true : false,
959
1019
                        revprops, jcallback ? &callback : NULL);
960
1020
}
961
1021
 
962
1022
JNIEXPORT void JNICALL
963
1023
Java_org_apache_subversion_javahl_SVNClient_propertySetLocal
964
1024
(JNIEnv *env, jobject jthis, jobject jtargets, jstring jname,
965
 
 jbyteArray jvalue, jobject jdepth, jobject jchangelists, jboolean jforce)
 
1025
 jbyteArray jval, jobject jdepth, jobject jchangelists, jboolean jforce)
966
1026
{
967
1027
  JNIEntry(SVNClient, propertySet);
968
1028
  SVNClient *cl = SVNClient::getCppObject(jthis);
981
1041
  if (JNIUtil::isExceptionThrown())
982
1042
    return;
983
1043
 
984
 
  JNIByteArray value(jvalue);
 
1044
  JNIByteArray value(jval);
985
1045
  if (JNIUtil::isExceptionThrown())
986
1046
    return;
987
1047
 
1044
1104
JNIEXPORT void JNICALL
1045
1105
Java_org_apache_subversion_javahl_SVNClient_setRevProperty
1046
1106
(JNIEnv *env, jobject jthis, jstring jpath, jstring jname, jobject jrevision,
1047
 
 jstring jvalue, jstring joriginalValue, jboolean jforce)
 
1107
 jstring jval, jstring joriginalValue, jboolean jforce)
1048
1108
{
1049
1109
  JNIEntry(SVNClient, setRevProperty);
1050
1110
  SVNClient *cl = SVNClient::getCppObject(jthis);
1065
1125
  if (JNIUtil::isExceptionThrown())
1066
1126
    return;
1067
1127
 
1068
 
  JNIStringHolder value(jvalue);
 
1128
  JNIStringHolder value(jval);
1069
1129
  if (JNIUtil::isExceptionThrown())
1070
1130
    return;
1071
1131
 
1080
1140
JNIEXPORT jbyteArray JNICALL
1081
1141
Java_org_apache_subversion_javahl_SVNClient_propertyGet
1082
1142
(JNIEnv *env, jobject jthis, jstring jpath, jstring jname, jobject jrevision,
1083
 
 jobject jpegRevision)
 
1143
 jobject jpegRevision, jobject jchangelists)
1084
1144
{
1085
1145
  JNIEntry(SVNClient, propertyGet);
1086
1146
  SVNClient *cl = SVNClient::getCppObject(jthis);
1105
1165
  if (JNIUtil::isExceptionThrown())
1106
1166
    return NULL;
1107
1167
 
1108
 
  return cl->propertyGet(path, name, revision, pegRevision);
 
1168
  StringArray changelists(jchangelists);
 
1169
  if (JNIUtil::isExceptionThrown())
 
1170
    return NULL;
 
1171
 
 
1172
  return cl->propertyGet(path, name, revision, pegRevision, changelists);
1109
1173
}
1110
1174
 
1111
1175
JNIEXPORT jobject JNICALL
1131
1195
JNIEXPORT void JNICALL Java_org_apache_subversion_javahl_SVNClient_getMergeinfoLog
1132
1196
(JNIEnv *env, jobject jthis, jobject jkind, jstring jpathOrUrl,
1133
1197
 jobject jpegRevision, jstring jmergeSourceUrl, jobject jsrcPegRevision,
 
1198
 jobject jsrcStartRevision, jobject jsrcEndRevision,
1134
1199
 jboolean jdiscoverChangedPaths, jobject jdepth, jobject jrevProps,
1135
1200
 jobject jlogMessageCallback)
1136
1201
{
1150
1215
  if (JNIUtil::isExceptionThrown())
1151
1216
    return;
1152
1217
 
 
1218
  Revision srcStartRevision(jsrcStartRevision);
 
1219
  if (JNIUtil::isExceptionThrown())
 
1220
    return;
 
1221
 
 
1222
  Revision srcEndRevision(jsrcEndRevision);
 
1223
  if (JNIUtil::isExceptionThrown())
 
1224
    return;
 
1225
 
1153
1226
  JNIStringHolder pathOrUrl(jpathOrUrl);
1154
1227
  if (JNIUtil::isExceptionThrown())
1155
1228
    return;
1166
1239
 
1167
1240
  cl->getMergeinfoLog(EnumMapper::toMergeinfoLogKind(jkind),
1168
1241
                      pathOrUrl, pegRevision, mergeSourceUrl,
1169
 
                      srcPegRevision, jdiscoverChangedPaths ? true : false,
 
1242
                      srcPegRevision, srcStartRevision, srcEndRevision,
 
1243
                      jdiscoverChangedPaths ? true : false,
1170
1244
                      EnumMapper::toDepth(jdepth), revProps, &callback);
1171
1245
}
1172
1246
 
1173
1247
JNIEXPORT void JNICALL
1174
 
Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZ
 
1248
Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZZLorg_apache_subversion_javahl_types_DiffOptions_2
1175
1249
(JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
1176
1250
 jstring jtarget2, jobject jrevision2, jstring jrelativeToDir,
1177
 
 jstring joutfileName, jobject jdepth, jobject jchangelists,
 
1251
 jobject jstream, jobject jdepth, jobject jchangelists,
1178
1252
 jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
1179
 
 jboolean jcopiesAsAdds)
 
1253
 jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly,
 
1254
 jobject jdiffOptions)
1180
1255
{
1181
1256
  JNIEntry(SVNClient, diff);
1182
1257
  SVNClient *cl = SVNClient::getCppObject(jthis);
1205
1280
  if (JNIUtil::isExceptionThrown())
1206
1281
    return;
1207
1282
 
1208
 
  JNIStringHolder outfileName(joutfileName);
 
1283
  OutputStream dataOut(jstream);
1209
1284
  if (JNIUtil::isExceptionThrown())
1210
1285
    return;
1211
1286
 
1213
1288
  if (JNIUtil::isExceptionThrown())
1214
1289
    return;
1215
1290
 
1216
 
  cl->diff(target1, revision1, target2, revision2, relativeToDir, outfileName,
 
1291
  DiffOptions options(jdiffOptions);
 
1292
  if (JNIUtil::isExceptionThrown())
 
1293
    return;
 
1294
 
 
1295
  cl->diff(target1, revision1, target2, revision2, relativeToDir, dataOut,
1217
1296
           EnumMapper::toDepth(jdepth), changelists,
1218
1297
           jignoreAncestry ? true:false,
1219
1298
           jnoDiffDeleted ? true:false, jforce ? true:false,
1220
 
           jcopiesAsAdds ? true:false);
 
1299
           jcopiesAsAdds ? true:false, jignoreProps ? true:false,
 
1300
           jpropsOnly ? true:false, options);
1221
1301
}
1222
1302
 
1223
1303
JNIEXPORT void JNICALL
1224
 
Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZ
 
1304
Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZZLorg_apache_subversion_javahl_types_DiffOptions_2
1225
1305
(JNIEnv *env, jobject jthis, jstring jtarget, jobject jpegRevision,
1226
1306
 jobject jstartRevision, jobject jendRevision, jstring jrelativeToDir,
1227
 
 jstring joutfileName, jobject jdepth, jobject jchangelists,
 
1307
 jobject jstream, jobject jdepth, jobject jchangelists,
1228
1308
 jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
1229
 
 jboolean jcopiesAsAdds)
 
1309
 jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly,
 
1310
 jobject jdiffOptions)
1230
1311
{
1231
1312
  JNIEntry(SVNClient, diff);
1232
1313
  SVNClient *cl = SVNClient::getCppObject(jthis);
1251
1332
  if (JNIUtil::isExceptionThrown())
1252
1333
    return;
1253
1334
 
1254
 
  JNIStringHolder outfileName(joutfileName);
 
1335
  OutputStream dataOut(jstream);
1255
1336
  if (JNIUtil::isExceptionThrown())
1256
1337
    return;
1257
1338
 
1263
1344
  if (JNIUtil::isExceptionThrown())
1264
1345
    return;
1265
1346
 
 
1347
  DiffOptions options(jdiffOptions);
 
1348
  if (JNIUtil::isExceptionThrown())
 
1349
    return;
 
1350
 
1266
1351
  cl->diff(target, pegRevision, startRevision, endRevision, relativeToDir,
1267
 
           outfileName, EnumMapper::toDepth(jdepth), changelists,
 
1352
           dataOut, EnumMapper::toDepth(jdepth), changelists,
1268
1353
           jignoreAncestry ? true:false,
1269
1354
           jnoDiffDeleted ? true:false, jforce ? true:false,
1270
 
           jcopiesAsAdds ? true:false);
 
1355
           jcopiesAsAdds ? true:false, jignoreProps ? true:false,
 
1356
           jpropsOnly ? true:false, options);
1271
1357
}
1272
1358
 
1273
1359
JNIEXPORT void JNICALL
1760
1846
    return;
1761
1847
 
1762
1848
  PatchCallback callback(jcallback);
1763
 
  cl->patch(patchPath, targetPath, jdryRun ? true : false, (int) jstripCount,
 
1849
  cl->patch(patchPath, targetPath,
 
1850
            jdryRun ? true : false, static_cast<int>(jstripCount),
1764
1851
            jreverse ? true : false, jignoreWhitespace ? true : false,
1765
1852
            jremoveTempfiles ? true : false, &callback);
1766
1853
}