rugged 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/rugged_commit.c +1 -1
  3. data/lib/rugged/commit.rb +16 -2
  4. data/lib/rugged/version.rb +1 -1
  5. data/vendor/libgit2/CMakeLists.txt +31 -69
  6. data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
  7. data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
  8. data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
  9. data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
  10. data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
  11. data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
  12. data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
  13. data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
  14. data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
  15. data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
  16. data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
  17. data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
  18. data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
  19. data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
  20. data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
  21. data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
  22. data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
  23. data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +25 -32
  24. data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +20 -28
  25. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
  26. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +6 -5
  27. data/vendor/libgit2/deps/ntlmclient/compat.h +8 -1
  28. data/vendor/libgit2/deps/ntlmclient/ntlm.c +8 -11
  29. data/vendor/libgit2/deps/pcre/LICENCE +93 -0
  30. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  31. data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
  32. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
  33. data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
  34. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
  35. data/vendor/libgit2/deps/zlib/deflate.c +1 -0
  36. data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
  37. data/vendor/libgit2/include/git2/blame.h +2 -0
  38. data/vendor/libgit2/include/git2/common.h +15 -3
  39. data/vendor/libgit2/include/git2/deprecated.h +42 -2
  40. data/vendor/libgit2/include/git2/errors.h +2 -1
  41. data/vendor/libgit2/include/git2/index.h +1 -2
  42. data/vendor/libgit2/include/git2/pack.h +1 -1
  43. data/vendor/libgit2/include/git2/strarray.h +6 -10
  44. data/vendor/libgit2/include/git2/version.h +4 -4
  45. data/vendor/libgit2/src/CMakeLists.txt +53 -41
  46. data/vendor/libgit2/src/apply.c +5 -1
  47. data/vendor/libgit2/src/assert_safe.h +58 -0
  48. data/vendor/libgit2/src/attr_file.c +8 -3
  49. data/vendor/libgit2/src/attrcache.c +2 -3
  50. data/vendor/libgit2/src/blame.c +2 -0
  51. data/vendor/libgit2/src/blame_git.c +6 -3
  52. data/vendor/libgit2/src/blob.c +2 -0
  53. data/vendor/libgit2/src/branch.c +19 -21
  54. data/vendor/libgit2/src/buffer.c +6 -3
  55. data/vendor/libgit2/src/cache.c +1 -22
  56. data/vendor/libgit2/src/checkout.c +49 -72
  57. data/vendor/libgit2/src/cherrypick.c +2 -0
  58. data/vendor/libgit2/src/clone.c +78 -18
  59. data/vendor/libgit2/src/common.h +1 -0
  60. data/vendor/libgit2/src/config.c +3 -7
  61. data/vendor/libgit2/src/config_entries.c +35 -27
  62. data/vendor/libgit2/src/config_parse.c +1 -1
  63. data/vendor/libgit2/src/config_snapshot.c +2 -1
  64. data/vendor/libgit2/src/describe.c +5 -1
  65. data/vendor/libgit2/src/diff.c +12 -11
  66. data/vendor/libgit2/src/diff_file.c +3 -1
  67. data/vendor/libgit2/src/diff_generate.c +10 -11
  68. data/vendor/libgit2/src/diff_parse.c +2 -3
  69. data/vendor/libgit2/src/diff_print.c +63 -60
  70. data/vendor/libgit2/src/diff_stats.c +12 -11
  71. data/vendor/libgit2/src/diff_tform.c +2 -3
  72. data/vendor/libgit2/src/errors.c +2 -0
  73. data/vendor/libgit2/src/fetch.c +2 -0
  74. data/vendor/libgit2/src/filter.c +3 -3
  75. data/vendor/libgit2/src/futils.c +3 -3
  76. data/vendor/libgit2/src/futils.h +3 -3
  77. data/vendor/libgit2/src/global.c +3 -1
  78. data/vendor/libgit2/src/idxmap.c +0 -22
  79. data/vendor/libgit2/src/index.c +12 -7
  80. data/vendor/libgit2/src/indexer.c +10 -4
  81. data/vendor/libgit2/src/iterator.c +4 -4
  82. data/vendor/libgit2/src/merge.c +13 -7
  83. data/vendor/libgit2/src/merge_file.c +4 -6
  84. data/vendor/libgit2/src/midx.c +418 -0
  85. data/vendor/libgit2/src/midx.h +83 -0
  86. data/vendor/libgit2/src/mwindow.c +124 -51
  87. data/vendor/libgit2/src/net.c +6 -1
  88. data/vendor/libgit2/src/object.c +2 -1
  89. data/vendor/libgit2/src/odb.c +9 -6
  90. data/vendor/libgit2/src/odb_loose.c +3 -3
  91. data/vendor/libgit2/src/odb_mempack.c +2 -0
  92. data/vendor/libgit2/src/oid.c +2 -0
  93. data/vendor/libgit2/src/pack-objects.c +29 -21
  94. data/vendor/libgit2/src/pack.c +47 -28
  95. data/vendor/libgit2/src/pack.h +19 -2
  96. data/vendor/libgit2/src/patch_generate.c +1 -3
  97. data/vendor/libgit2/src/patch_parse.c +4 -2
  98. data/vendor/libgit2/src/path.c +4 -4
  99. data/vendor/libgit2/src/pathspec.c +4 -3
  100. data/vendor/libgit2/src/pool.c +21 -15
  101. data/vendor/libgit2/src/pool.h +9 -1
  102. data/vendor/libgit2/src/proxy.c +2 -0
  103. data/vendor/libgit2/src/push.c +2 -0
  104. data/vendor/libgit2/src/rebase.c +2 -0
  105. data/vendor/libgit2/src/refdb.c +135 -0
  106. data/vendor/libgit2/src/refdb.h +69 -0
  107. data/vendor/libgit2/src/refdb_fs.c +19 -81
  108. data/vendor/libgit2/src/reflog.c +2 -6
  109. data/vendor/libgit2/src/refs.c +60 -188
  110. data/vendor/libgit2/src/refs.h +1 -19
  111. data/vendor/libgit2/src/regexp.c +2 -2
  112. data/vendor/libgit2/src/remote.c +32 -17
  113. data/vendor/libgit2/src/repository.c +168 -79
  114. data/vendor/libgit2/src/repository.h +10 -27
  115. data/vendor/libgit2/src/revert.c +2 -0
  116. data/vendor/libgit2/src/revparse.c +5 -4
  117. data/vendor/libgit2/src/revwalk.c +3 -5
  118. data/vendor/libgit2/src/settings.c +9 -0
  119. data/vendor/libgit2/src/sortedcache.c +2 -3
  120. data/vendor/libgit2/src/stash.c +2 -0
  121. data/vendor/libgit2/src/status.c +2 -0
  122. data/vendor/libgit2/src/strarray.c +63 -0
  123. data/vendor/libgit2/src/streams/openssl.c +12 -6
  124. data/vendor/libgit2/src/streams/registry.c +5 -3
  125. data/vendor/libgit2/src/submodule.c +6 -4
  126. data/vendor/libgit2/src/sysdir.c +4 -20
  127. data/vendor/libgit2/src/sysdir.h +0 -11
  128. data/vendor/libgit2/src/tag.c +2 -0
  129. data/vendor/libgit2/src/thread-utils.h +139 -21
  130. data/vendor/libgit2/src/transaction.c +2 -1
  131. data/vendor/libgit2/src/transports/credential.c +2 -0
  132. data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
  133. data/vendor/libgit2/src/transports/httpclient.c +6 -8
  134. data/vendor/libgit2/src/transports/local.c +2 -2
  135. data/vendor/libgit2/src/transports/smart.c +2 -2
  136. data/vendor/libgit2/src/transports/winhttp.c +18 -7
  137. data/vendor/libgit2/src/unix/posix.h +13 -1
  138. data/vendor/libgit2/src/util.c +25 -58
  139. data/vendor/libgit2/src/util.h +2 -2
  140. data/vendor/libgit2/src/win32/git2.rc +18 -3
  141. data/vendor/libgit2/src/win32/path_w32.c +2 -2
  142. data/vendor/libgit2/src/worktree.c +4 -0
  143. metadata +27 -25
  144. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
  145. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
  146. data/vendor/libgit2/src/refdb_fs.h +0 -19
@@ -76,7 +76,8 @@ int git_transaction_new(git_transaction **out, git_repository *repo)
76
76
 
77
77
  assert(out && repo);
78
78
 
79
- git_pool_init(&pool, 1);
79
+ if ((error = git_pool_init(&pool, 1)) < 0)
80
+ goto on_error;
80
81
 
81
82
  tx = git_pool_mallocz(&pool, sizeof(git_transaction));
82
83
  if (!tx) {
@@ -391,6 +391,7 @@ void git_credential_free(git_credential *cred)
391
391
 
392
392
  /* Deprecated credential functions */
393
393
 
394
+ #ifndef GIT_DEPRECATE_HARD
394
395
  int git_cred_has_username(git_credential *cred)
395
396
  {
396
397
  return git_credential_has_username(cred);
@@ -474,3 +475,4 @@ void git_cred_free(git_credential *cred)
474
475
  {
475
476
  git_credential_free(cred);
476
477
  }
478
+ #endif
@@ -54,6 +54,7 @@ int git_credential_userpass(
54
54
 
55
55
  /* Deprecated credential functions */
56
56
 
57
+ #ifndef GIT_DEPRECATE_HARD
57
58
  int git_cred_userpass(
58
59
  git_credential **out,
59
60
  const char *url,
@@ -64,3 +65,4 @@ int git_cred_userpass(
64
65
  return git_credential_userpass(out, url, user_from_url,
65
66
  allowed_types, payload);
66
67
  }
68
+ #endif
@@ -445,7 +445,7 @@ GIT_INLINE(int) client_write_request(git_http_client *client)
445
445
  0);
446
446
  }
447
447
 
448
- const char *name_for_method(git_http_method method)
448
+ static const char *name_for_method(git_http_method method)
449
449
  {
450
450
  switch (method) {
451
451
  case GIT_HTTP_METHOD_GET:
@@ -1120,11 +1120,6 @@ GIT_INLINE(int) client_read_and_parse(git_http_client *client)
1120
1120
  return -1;
1121
1121
  }
1122
1122
 
1123
- if (parser->upgrade) {
1124
- git_error_set(GIT_ERROR_HTTP, "server requested upgrade");
1125
- return -1;
1126
- }
1127
-
1128
1123
  if (ctx->parse_status == PARSE_STATUS_ERROR) {
1129
1124
  client->connected = 0;
1130
1125
  return ctx->error ? ctx->error : -1;
@@ -1374,8 +1369,11 @@ int git_http_client_read_response(
1374
1369
 
1375
1370
  git_http_response_dispose(response);
1376
1371
 
1377
- git_vector_free_deep(&client->server.auth_challenges);
1378
- git_vector_free_deep(&client->proxy.auth_challenges);
1372
+ if (client->current_server == PROXY) {
1373
+ git_vector_free_deep(&client->proxy.auth_challenges);
1374
+ } else if(client->current_server == SERVER) {
1375
+ git_vector_free_deep(&client->server.auth_challenges);
1376
+ }
1379
1377
 
1380
1378
  client->state = READING_RESPONSE;
1381
1379
  client->keepalive = 0;
@@ -185,12 +185,12 @@ static int store_refs(transport_local *t)
185
185
  }
186
186
 
187
187
  t->have_refs = 1;
188
- git_strarray_free(&ref_names);
188
+ git_strarray_dispose(&ref_names);
189
189
  return 0;
190
190
 
191
191
  on_error:
192
192
  git_vector_free(&t->refs);
193
- git_strarray_free(&ref_names);
193
+ git_strarray_dispose(&ref_names);
194
194
  return -1;
195
195
  }
196
196
 
@@ -132,7 +132,7 @@ static int git_smart__set_custom_headers(
132
132
  size_t i;
133
133
 
134
134
  if (t->custom_headers.count)
135
- git_strarray_free(&t->custom_headers);
135
+ git_strarray_dispose(&t->custom_headers);
136
136
 
137
137
  if (!custom_headers)
138
138
  return 0;
@@ -465,7 +465,7 @@ static void git_smart__free(git_transport *transport)
465
465
  git_vector_free(refs);
466
466
  git__free((char *)t->proxy.url);
467
467
 
468
- git_strarray_free(&t->custom_headers);
468
+ git_strarray_dispose(&t->custom_headers);
469
469
 
470
470
  git__free(t);
471
471
  }
@@ -41,14 +41,18 @@
41
41
  #define WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH 0
42
42
  #endif
43
43
 
44
- #ifndef WINHTTP_FLAG_SECURE_PROTOCOL_TLS_1_1
44
+ #ifndef WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1
45
45
  # define WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 0x00000200
46
46
  #endif
47
47
 
48
- #ifndef WINHTTP_FLAG_SECURE_PROTOCOL_TLS_1_2
48
+ #ifndef WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2
49
49
  # define WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 0x00000800
50
50
  #endif
51
51
 
52
+ #ifndef WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3
53
+ # define WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 0x00002000
54
+ #endif
55
+
52
56
  #ifndef HTTP_STATUS_PERMANENT_REDIRECT
53
57
  # define HTTP_STATUS_PERMANENT_REDIRECT 308
54
58
  #endif
@@ -743,7 +747,8 @@ static int winhttp_connect(
743
747
  DWORD protocols =
744
748
  WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 |
745
749
  WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 |
746
- WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2;
750
+ WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 |
751
+ WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3;
747
752
 
748
753
  t->session = NULL;
749
754
  t->connection = NULL;
@@ -788,14 +793,20 @@ static int winhttp_connect(
788
793
  }
789
794
 
790
795
  /*
791
- * Do a best-effort attempt to enable TLS 1.2 but allow this to
792
- * fail; if TLS 1.2 support is not available for some reason,
796
+ * Do a best-effort attempt to enable TLS 1.3 and 1.2 but allow this to
797
+ * fail; if TLS 1.2 or 1.3 support is not available for some reason,
793
798
  * ignore the failure (it will keep the default protocols).
794
799
  */
795
- WinHttpSetOption(t->session,
800
+ if (WinHttpSetOption(t->session,
796
801
  WINHTTP_OPTION_SECURE_PROTOCOLS,
797
802
  &protocols,
798
- sizeof(protocols));
803
+ sizeof(protocols)) == FALSE) {
804
+ protocols &= ~WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3;
805
+ WinHttpSetOption(t->session,
806
+ WINHTTP_OPTION_SECURE_PROTOCOLS,
807
+ &protocols,
808
+ sizeof(protocols));
809
+ }
799
810
 
800
811
  if (!WinHttpSetTimeouts(t->session, default_timeout, default_connect_timeout, default_timeout, default_timeout)) {
801
812
  git_error_set(GIT_ERROR_OS, "failed to set timeouts for WinHTTP");
@@ -62,11 +62,23 @@ GIT_INLINE(int) p_fsync(int fd)
62
62
  #define p_snprintf snprintf
63
63
  #define p_mkstemp(p) mkstemp(p)
64
64
  #define p_chdir(p) chdir(p)
65
- #define p_chmod(p,m) chmod(p, m)
66
65
  #define p_rmdir(p) rmdir(p)
67
66
  #define p_access(p,m) access(p,m)
68
67
  #define p_ftruncate(fd, sz) ftruncate(fd, sz)
69
68
 
69
+ /*
70
+ * Pre-Android 5 did not implement a virtual filesystem atop FAT
71
+ * partitions for Unix permissions, which causes chmod to fail. However,
72
+ * Unix permissions have no effect on Android anyway as file permissions
73
+ * are not actually managed this way, so treating it as a no-op across
74
+ * all Android is safe.
75
+ */
76
+ #ifdef __ANDROID__
77
+ # define p_chmod(p,m) 0
78
+ #else
79
+ # define p_chmod(p,m) chmod(p, m)
80
+ #endif
81
+
70
82
  /* see win32/posix.h for explanation about why this exists */
71
83
  #define p_lstat_posixly(p,b) lstat(p,b)
72
84
 
@@ -22,52 +22,6 @@
22
22
  # include <Shlwapi.h>
23
23
  #endif
24
24
 
25
- void git_strarray_free(git_strarray *array)
26
- {
27
- size_t i;
28
-
29
- if (array == NULL)
30
- return;
31
-
32
- for (i = 0; i < array->count; ++i)
33
- git__free(array->strings[i]);
34
-
35
- git__free(array->strings);
36
-
37
- memset(array, 0, sizeof(*array));
38
- }
39
-
40
- int git_strarray_copy(git_strarray *tgt, const git_strarray *src)
41
- {
42
- size_t i;
43
-
44
- assert(tgt && src);
45
-
46
- memset(tgt, 0, sizeof(*tgt));
47
-
48
- if (!src->count)
49
- return 0;
50
-
51
- tgt->strings = git__calloc(src->count, sizeof(char *));
52
- GIT_ERROR_CHECK_ALLOC(tgt->strings);
53
-
54
- for (i = 0; i < src->count; ++i) {
55
- if (!src->strings[i])
56
- continue;
57
-
58
- tgt->strings[tgt->count] = git__strdup(src->strings[i]);
59
- if (!tgt->strings[tgt->count]) {
60
- git_strarray_free(tgt);
61
- memset(tgt, 0, sizeof(*tgt));
62
- return -1;
63
- }
64
-
65
- tgt->count++;
66
- }
67
-
68
- return 0;
69
- }
70
-
71
25
  int git__strntol64(int64_t *result, const char *nptr, size_t nptr_len, const char **endptr, int base)
72
26
  {
73
27
  const char *p;
@@ -424,35 +378,48 @@ void git__hexdump(const char *buffer, size_t len)
424
378
  last_line = (len % LINE_WIDTH);
425
379
 
426
380
  for (i = 0; i < line_count; ++i) {
381
+ printf("%08" PRIxZ " ", (i * LINE_WIDTH));
382
+
427
383
  line = buffer + (i * LINE_WIDTH);
428
- for (j = 0; j < LINE_WIDTH; ++j, ++line)
429
- printf("%02X ", (unsigned char)*line & 0xFF);
384
+ for (j = 0; j < LINE_WIDTH; ++j, ++line) {
385
+ printf("%02x ", (unsigned char)*line & 0xFF);
386
+
387
+ if (j == (LINE_WIDTH / 2))
388
+ printf(" ");
389
+ }
430
390
 
431
- printf("| ");
391
+ printf(" |");
432
392
 
433
393
  line = buffer + (i * LINE_WIDTH);
434
394
  for (j = 0; j < LINE_WIDTH; ++j, ++line)
435
395
  printf("%c", (*line >= 32 && *line <= 126) ? *line : '.');
436
396
 
437
- printf("\n");
397
+ printf("|\n");
438
398
  }
439
399
 
440
400
  if (last_line > 0) {
401
+ printf("%08" PRIxZ " ", (line_count * LINE_WIDTH));
441
402
 
442
403
  line = buffer + (line_count * LINE_WIDTH);
443
- for (j = 0; j < last_line; ++j, ++line)
444
- printf("%02X ", (unsigned char)*line & 0xFF);
404
+ for (j = 0; j < last_line; ++j, ++line) {
405
+ printf("%02x ", (unsigned char)*line & 0xFF);
406
+
407
+ if (j == (LINE_WIDTH / 2))
408
+ printf(" ");
409
+ }
445
410
 
411
+ if (j < (LINE_WIDTH / 2))
412
+ printf(" ");
446
413
  for (j = 0; j < (LINE_WIDTH - last_line); ++j)
447
- printf(" ");
414
+ printf(" ");
448
415
 
449
- printf("| ");
416
+ printf(" |");
450
417
 
451
418
  line = buffer + (line_count * LINE_WIDTH);
452
419
  for (j = 0; j < last_line; ++j, ++line)
453
420
  printf("%c", (*line >= 32 && *line <= 126) ? *line : '.');
454
421
 
455
- printf("\n");
422
+ printf("|\n");
456
423
  }
457
424
 
458
425
  printf("\n");
@@ -810,7 +777,7 @@ static const int8_t utf8proc_utf8class[256] = {
810
777
  4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0
811
778
  };
812
779
 
813
- int git__utf8_charlen(const uint8_t *str, size_t str_len)
780
+ static int util_utf8_charlen(const uint8_t *str, size_t str_len)
814
781
  {
815
782
  size_t length, i;
816
783
 
@@ -835,7 +802,7 @@ int git__utf8_iterate(const uint8_t *str, int str_len, int32_t *dst)
835
802
  int32_t uc = -1;
836
803
 
837
804
  *dst = -1;
838
- length = git__utf8_charlen(str, str_len);
805
+ length = util_utf8_charlen(str, str_len);
839
806
  if (length < 0)
840
807
  return -1;
841
808
 
@@ -872,7 +839,7 @@ size_t git__utf8_valid_buf_length(const uint8_t *str, size_t str_len)
872
839
  size_t offset = 0;
873
840
 
874
841
  while (offset < str_len) {
875
- int length = git__utf8_charlen(str + offset, str_len - offset);
842
+ int length = util_utf8_charlen(str + offset, str_len - offset);
876
843
 
877
844
  if (length < 0)
878
845
  break;
@@ -186,10 +186,10 @@ typedef void (*git_refcount_freeptr)(void *r);
186
186
  }
187
187
 
188
188
  #define GIT_REFCOUNT_OWN(r, o) { \
189
- (r)->rc.owner = o; \
189
+ (void)git__swap((r)->rc.owner, o); \
190
190
  }
191
191
 
192
- #define GIT_REFCOUNT_OWNER(r) ((r)->rc.owner)
192
+ #define GIT_REFCOUNT_OWNER(r) git__load((r)->rc.owner)
193
193
 
194
194
  #define GIT_REFCOUNT_VAL(r) git_atomic_get((r)->rc.refcount)
195
195
 
@@ -2,14 +2,29 @@
2
2
  #include "../../include/git2/version.h"
3
3
 
4
4
  #ifndef LIBGIT2_FILENAME
5
- # define LIBGIT2_FILENAME "git2"
5
+ # ifdef __GNUC__
6
+ # define LIBGIT2_FILENAME git2
7
+ # else
8
+ # define LIBGIT2_FILENAME "git2"
9
+ # endif
6
10
  #endif
7
11
 
8
12
  #ifndef LIBGIT2_COMMENTS
9
13
  # define LIBGIT2_COMMENTS "For more information visit http://libgit2.github.com/"
10
14
  #endif
11
15
 
16
+ #ifdef __GNUC__
17
+ # define _STR(x) #x
18
+ # define STR(x) _STR(x)
19
+ #else
20
+ # define STR(x) x
21
+ #endif
22
+
23
+ #ifdef __GNUC__
24
+ VS_VERSION_INFO VERSIONINFO
25
+ #else
12
26
  VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
27
+ #endif
13
28
  FILEVERSION LIBGIT2_VER_MAJOR,LIBGIT2_VER_MINOR,LIBGIT2_VER_REVISION,LIBGIT2_VER_PATCH
14
29
  PRODUCTVERSION LIBGIT2_VER_MAJOR,LIBGIT2_VER_MINOR,LIBGIT2_VER_REVISION,LIBGIT2_VER_PATCH
15
30
  FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
@@ -29,9 +44,9 @@ BEGIN
29
44
  BEGIN
30
45
  VALUE "FileDescription", "libgit2 - the Git linkable library\0"
31
46
  VALUE "FileVersion", LIBGIT2_VERSION "\0"
32
- VALUE "InternalName", LIBGIT2_FILENAME ".dll\0"
47
+ VALUE "InternalName", STR(LIBGIT2_FILENAME) ".dll\0"
33
48
  VALUE "LegalCopyright", "Copyright (C) the libgit2 contributors. All rights reserved.\0"
34
- VALUE "OriginalFilename", LIBGIT2_FILENAME ".dll\0"
49
+ VALUE "OriginalFilename", STR(LIBGIT2_FILENAME) ".dll\0"
35
50
  VALUE "ProductName", "libgit2\0"
36
51
  VALUE "ProductVersion", LIBGIT2_VERSION "\0"
37
52
  VALUE "Comments", LIBGIT2_COMMENTS "\0"
@@ -151,7 +151,7 @@ int git_win32_path_canonicalize(git_win32_path path)
151
151
  return (int)(to - path);
152
152
  }
153
153
 
154
- int git_win32_path__cwd(wchar_t *out, size_t len)
154
+ static int win32_path_cwd(wchar_t *out, size_t len)
155
155
  {
156
156
  int cwd_len;
157
157
 
@@ -241,7 +241,7 @@ int git_win32_path_from_utf8(git_win32_path out, const char *src)
241
241
  else {
242
242
  int cwd_len;
243
243
 
244
- if ((cwd_len = git_win32_path__cwd(dest, MAX_PATH)) < 0)
244
+ if ((cwd_len = win32_path_cwd(dest, MAX_PATH)) < 0)
245
245
  goto on_error;
246
246
 
247
247
  dest[cwd_len++] = L'\\';
@@ -271,11 +271,13 @@ int git_worktree_add_options_init(git_worktree_add_options *opts,
271
271
  return 0;
272
272
  }
273
273
 
274
+ #ifndef GIT_DEPRECATE_HARD
274
275
  int git_worktree_add_init_options(git_worktree_add_options *opts,
275
276
  unsigned int version)
276
277
  {
277
278
  return git_worktree_add_options_init(opts, version);
278
279
  }
280
+ #endif
279
281
 
280
282
  int git_worktree_add(git_worktree **out, git_repository *repo,
281
283
  const char *name, const char *worktree,
@@ -506,11 +508,13 @@ int git_worktree_prune_options_init(
506
508
  return 0;
507
509
  }
508
510
 
511
+ #ifndef GIT_DEPRECATE_HARD
509
512
  int git_worktree_prune_init_options(git_worktree_prune_options *opts,
510
513
  unsigned int version)
511
514
  {
512
515
  return git_worktree_prune_options_init(opts, version);
513
516
  }
517
+ #endif
514
518
 
515
519
  int git_worktree_is_prunable(git_worktree *wt,
516
520
  git_worktree_prune_options *opts)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rugged
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chacon
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-06-24 00:00:00.000000000 Z
12
+ date: 2020-10-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake-compiler
@@ -123,27 +123,25 @@ files:
123
123
  - vendor/libgit2/AUTHORS
124
124
  - vendor/libgit2/CMakeLists.txt
125
125
  - vendor/libgit2/COPYING
126
- - vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake
127
- - vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in
128
- - vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake
129
- - vendor/libgit2/cmake/Modules/EnableWarnings.cmake
130
- - vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake
131
- - vendor/libgit2/cmake/Modules/FindGSSAPI.cmake
132
- - vendor/libgit2/cmake/Modules/FindGSSFramework.cmake
133
- - vendor/libgit2/cmake/Modules/FindHTTP_Parser.cmake
134
- - vendor/libgit2/cmake/Modules/FindIconv.cmake
135
- - vendor/libgit2/cmake/Modules/FindPCRE.cmake
136
- - vendor/libgit2/cmake/Modules/FindPCRE2.cmake
137
- - vendor/libgit2/cmake/Modules/FindPkgLibraries.cmake
138
- - vendor/libgit2/cmake/Modules/FindSecurity.cmake
139
- - vendor/libgit2/cmake/Modules/FindStatNsec.cmake
140
- - vendor/libgit2/cmake/Modules/FindmbedTLS.cmake
141
- - vendor/libgit2/cmake/Modules/IdeSplitSources.cmake
142
- - vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake
143
- - vendor/libgit2/cmake/Modules/SanitizeBool.cmake
144
- - vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake
145
- - vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake
146
- - vendor/libgit2/cmake/Modules/SelectHashes.cmake
126
+ - vendor/libgit2/cmake/AddCFlagIfSupported.cmake
127
+ - vendor/libgit2/cmake/EnableWarnings.cmake
128
+ - vendor/libgit2/cmake/FindCoreFoundation.cmake
129
+ - vendor/libgit2/cmake/FindGSSAPI.cmake
130
+ - vendor/libgit2/cmake/FindGSSFramework.cmake
131
+ - vendor/libgit2/cmake/FindHTTP_Parser.cmake
132
+ - vendor/libgit2/cmake/FindIconv.cmake
133
+ - vendor/libgit2/cmake/FindPCRE.cmake
134
+ - vendor/libgit2/cmake/FindPCRE2.cmake
135
+ - vendor/libgit2/cmake/FindPkgLibraries.cmake
136
+ - vendor/libgit2/cmake/FindSecurity.cmake
137
+ - vendor/libgit2/cmake/FindStatNsec.cmake
138
+ - vendor/libgit2/cmake/FindmbedTLS.cmake
139
+ - vendor/libgit2/cmake/IdeSplitSources.cmake
140
+ - vendor/libgit2/cmake/PkgBuildConfig.cmake
141
+ - vendor/libgit2/cmake/SanitizeBool.cmake
142
+ - vendor/libgit2/cmake/SelectGSSAPI.cmake
143
+ - vendor/libgit2/cmake/SelectHTTPSBackend.cmake
144
+ - vendor/libgit2/cmake/SelectHashes.cmake
147
145
  - vendor/libgit2/deps/http-parser/CMakeLists.txt
148
146
  - vendor/libgit2/deps/http-parser/COPYING
149
147
  - vendor/libgit2/deps/http-parser/http_parser.c
@@ -168,6 +166,7 @@ files:
168
166
  - vendor/libgit2/deps/ntlmclient/util.h
169
167
  - vendor/libgit2/deps/pcre/CMakeLists.txt
170
168
  - vendor/libgit2/deps/pcre/COPYING
169
+ - vendor/libgit2/deps/pcre/LICENCE
171
170
  - vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS
172
171
  - vendor/libgit2/deps/pcre/cmake/FindEditline.cmake
173
172
  - vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake
@@ -328,6 +327,7 @@ files:
328
327
  - vendor/libgit2/src/apply.c
329
328
  - vendor/libgit2/src/apply.h
330
329
  - vendor/libgit2/src/array.h
330
+ - vendor/libgit2/src/assert_safe.h
331
331
  - vendor/libgit2/src/attr.c
332
332
  - vendor/libgit2/src/attr.h
333
333
  - vendor/libgit2/src/attr_file.c
@@ -451,6 +451,8 @@ files:
451
451
  - vendor/libgit2/src/merge_file.c
452
452
  - vendor/libgit2/src/message.c
453
453
  - vendor/libgit2/src/message.h
454
+ - vendor/libgit2/src/midx.c
455
+ - vendor/libgit2/src/midx.h
454
456
  - vendor/libgit2/src/mwindow.c
455
457
  - vendor/libgit2/src/mwindow.h
456
458
  - vendor/libgit2/src/net.c
@@ -507,7 +509,6 @@ files:
507
509
  - vendor/libgit2/src/refdb.c
508
510
  - vendor/libgit2/src/refdb.h
509
511
  - vendor/libgit2/src/refdb_fs.c
510
- - vendor/libgit2/src/refdb_fs.h
511
512
  - vendor/libgit2/src/reflog.c
512
513
  - vendor/libgit2/src/reflog.h
513
514
  - vendor/libgit2/src/refs.c
@@ -534,6 +535,7 @@ files:
534
535
  - vendor/libgit2/src/stash.c
535
536
  - vendor/libgit2/src/status.c
536
537
  - vendor/libgit2/src/status.h
538
+ - vendor/libgit2/src/strarray.c
537
539
  - vendor/libgit2/src/stream.h
538
540
  - vendor/libgit2/src/streams/mbedtls.c
539
541
  - vendor/libgit2/src/streams/mbedtls.h
@@ -674,7 +676,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
674
676
  - !ruby/object:Gem::Version
675
677
  version: '0'
676
678
  requirements: []
677
- rubygems_version: 3.0.3
679
+ rubygems_version: 3.1.2
678
680
  signing_key:
679
681
  specification_version: 4
680
682
  summary: Rugged is a Ruby binding to the libgit2 linkable library