bdb1 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,29 +1,5 @@
1
1
  #include <ruby.h>
2
2
 
3
- #ifndef StringValue
4
- #define StringValue(x,y) do { \
5
- if (TYPE(x) != T_STRING) x = rb_str_to_str(x); \
6
- } while(0)
7
- #endif
8
-
9
- #ifndef StringValuePtr
10
- #define StringValuePtr(x) STR2CSTR(x)
11
- #endif
12
-
13
- #ifndef SafeStringValue
14
- #define SafeStringValue(x) Check_SafeStr(x)
15
- #endif
16
-
17
- #ifndef RSTRING_PTR
18
- # define RSTRING_PTR(x_) RSTRING(x_)->ptr
19
- # define RSTRING_LEN(x_) RSTRING(x_)->len
20
- #endif
21
-
22
- #ifndef RARRAY_PTR
23
- # define RARRAY_PTR(x_) RARRAY(x_)->ptr
24
- # define RARRAY_LEN(x_) RARRAY(x_)->len
25
- #endif
26
-
27
3
  #ifdef COMPAT185
28
4
  #include <db_185.h>
29
5
  #else
@@ -140,12 +116,12 @@ extern VALUE bdb1_init _((int, VALUE *, VALUE));
140
116
  extern VALUE bdb1_put _((int, VALUE *, VALUE));
141
117
  extern VALUE bdb1_get _((int, VALUE *, VALUE));
142
118
  extern VALUE bdb1_del _((VALUE, VALUE));
143
- extern VALUE bdb1_test_load _((VALUE, DBT *, int));
119
+ extern VALUE bdb1_test_load _((VALUE, const DBT *, int));
144
120
  extern int bdb1_test_error _((int));
145
121
  extern VALUE bdb1_each_value _((VALUE));
146
122
  extern VALUE bdb1_each_eulav _((VALUE));
147
123
  extern VALUE bdb1_each_key _((VALUE));
148
- extern VALUE bdb1_index _((VALUE, VALUE));
124
+ extern VALUE bdb1_key _((VALUE, VALUE));
149
125
  extern VALUE bdb1_has_value _((VALUE, VALUE));
150
126
  extern VALUE bdb1_internal_value _((VALUE, VALUE, VALUE, int));
151
127
  extern VALUE bdb1_to_type _((VALUE, VALUE, VALUE));
@@ -4,15 +4,13 @@ static ID id_send;
4
4
  VALUE bdb1_cDelegate;
5
5
 
6
6
  void
7
- bdb1_deleg_free(delegst)
8
- struct deleg_class *delegst;
7
+ bdb1_deleg_free(struct deleg_class *delegst)
9
8
  {
10
9
  free(delegst);
11
10
  }
12
11
 
13
12
  void
14
- bdb1_deleg_mark(delegst)
15
- struct deleg_class *delegst;
13
+ bdb1_deleg_mark(struct deleg_class *delegst)
16
14
  {
17
15
  bdb1_DB *dbst;
18
16
 
@@ -26,28 +24,8 @@ bdb1_deleg_mark(delegst)
26
24
  if (delegst->obj) rb_gc_mark(delegst->obj);
27
25
  }
28
26
 
29
- #ifndef HAVE_RB_BLOCK_CALL
30
-
31
- static VALUE
32
- bdb1_deleg_each(tmp)
33
- VALUE *tmp;
34
- {
35
- return rb_funcall2(tmp[0], id_send, (int)tmp[1], (VALUE *)tmp[2]);
36
- }
37
-
38
27
  static VALUE
39
- bdb1_deleg_yield(i, res)
40
- VALUE i, res;
41
- {
42
- return rb_ary_push(res, rb_yield(i));
43
- }
44
-
45
- #endif
46
-
47
- static VALUE
48
- bdb1_deleg_missing(argc, argv, obj)
49
- int argc;
50
- VALUE *argv, obj;
28
+ bdb1_deleg_missing(int argc, VALUE *argv, VALUE obj)
51
29
  {
52
30
  struct deleg_class *delegst, *newst;
53
31
  bdb1_DB *dbst;
@@ -55,17 +33,7 @@ bdb1_deleg_missing(argc, argv, obj)
55
33
 
56
34
  Data_Get_Struct(obj, struct deleg_class, delegst);
57
35
  if (rb_block_given_p()) {
58
- #if HAVE_RB_BLOCK_CALL
59
36
  res = rb_block_call(delegst->obj, id_send, argc, argv, rb_yield, 0);
60
- #else
61
- VALUE tmp[3];
62
-
63
- tmp[0] = delegst->obj;
64
- tmp[1] = (VALUE)argc;
65
- tmp[2] = (VALUE)argv;
66
- res = rb_ary_new();
67
- rb_iterate(bdb1_deleg_each, (VALUE)tmp, bdb1_deleg_yield, res);
68
- #endif
69
37
  }
70
38
  else {
71
39
  res = rb_funcall2(delegst->obj, id_send, argc, argv);
@@ -99,29 +67,27 @@ bdb1_deleg_missing(argc, argv, obj)
99
67
  return res;
100
68
  }
101
69
 
102
- #define DELEG_0(id) \
103
- VALUE obj; \
70
+ #define DELEG_0(meth) \
104
71
  { \
105
72
  struct deleg_class *delegst; \
106
73
  Data_Get_Struct(obj, struct deleg_class, delegst); \
107
- return rb_funcall2(delegst->obj, id, 0, 0); \
74
+ return rb_funcall2(delegst->obj, rb_intern(meth), 0, 0); \
108
75
  }
109
76
 
110
- static VALUE bdb1_deleg_inspect(obj) DELEG_0(rb_intern("inspect"))
111
- static VALUE bdb1_deleg_to_s(obj) DELEG_0(rb_intern("to_s"))
112
- static VALUE bdb1_deleg_to_str(obj) DELEG_0(rb_intern("to_str"))
113
- static VALUE bdb1_deleg_to_a(obj) DELEG_0(rb_intern("to_a"))
114
- static VALUE bdb1_deleg_to_ary(obj) DELEG_0(rb_intern("to_ary"))
115
- static VALUE bdb1_deleg_to_i(obj) DELEG_0(rb_intern("to_i"))
116
- static VALUE bdb1_deleg_to_int(obj) DELEG_0(rb_intern("to_int"))
117
- static VALUE bdb1_deleg_to_f(obj) DELEG_0(rb_intern("to_f"))
118
- static VALUE bdb1_deleg_to_hash(obj) DELEG_0(rb_intern("to_hash"))
119
- static VALUE bdb1_deleg_to_io(obj) DELEG_0(rb_intern("to_io"))
120
- static VALUE bdb1_deleg_to_proc(obj) DELEG_0(rb_intern("to_proc"))
77
+ static VALUE bdb1_deleg_inspect(VALUE obj) DELEG_0("inspect")
78
+ static VALUE bdb1_deleg_to_s(VALUE obj) DELEG_0("to_s")
79
+ static VALUE bdb1_deleg_to_str(VALUE obj) DELEG_0("to_str")
80
+ static VALUE bdb1_deleg_to_a(VALUE obj) DELEG_0("to_a")
81
+ static VALUE bdb1_deleg_to_ary(VALUE obj) DELEG_0("to_ary")
82
+ static VALUE bdb1_deleg_to_i(VALUE obj) DELEG_0("to_i")
83
+ static VALUE bdb1_deleg_to_int(VALUE obj) DELEG_0("to_int")
84
+ static VALUE bdb1_deleg_to_f(VALUE obj) DELEG_0("to_f")
85
+ static VALUE bdb1_deleg_to_hash(VALUE obj) DELEG_0("to_hash")
86
+ static VALUE bdb1_deleg_to_io(VALUE obj) DELEG_0("to_io")
87
+ static VALUE bdb1_deleg_to_proc(VALUE obj) DELEG_0("to_proc")
121
88
 
122
89
  VALUE
123
- bdb1_deleg_to_orig(obj)
124
- VALUE obj;
90
+ bdb1_deleg_to_orig(VALUE obj)
125
91
  {
126
92
  struct deleg_class *delegst;
127
93
  Data_Get_Struct(obj, struct deleg_class, delegst);
@@ -129,15 +95,13 @@ bdb1_deleg_to_orig(obj)
129
95
  }
130
96
 
131
97
  static VALUE
132
- bdb1_deleg_orig(obj)
133
- VALUE obj;
98
+ bdb1_deleg_orig(VALUE obj)
134
99
  {
135
100
  return obj;
136
101
  }
137
102
 
138
103
  static VALUE
139
- bdb1_deleg_dump(obj, limit)
140
- VALUE obj, limit;
104
+ bdb1_deleg_dump(VALUE obj, VALUE limit)
141
105
  {
142
106
  struct deleg_class *delegst;
143
107
  bdb1_DB *dbst;
@@ -147,33 +111,49 @@ bdb1_deleg_dump(obj, limit)
147
111
  }
148
112
 
149
113
  static VALUE
150
- bdb1_deleg_load(obj, str)
151
- VALUE obj, str;
114
+ bdb1_deleg_load(VALUE obj, VALUE str)
152
115
  {
153
116
  bdb1_DB *dbst;
154
117
 
155
- if ((obj = rb_thread_local_aref(rb_thread_current(), bdb1_id_current_db)) == Qnil) {
118
+ if (NIL_P(obj = rb_thread_local_aref(rb_thread_current(), bdb1_id_current_db))) {
156
119
  rb_raise(bdb1_eFatal, "BUG : current_db not set");
157
120
  }
158
121
  Data_Get_Struct(obj, bdb1_DB, dbst);
159
122
  return rb_funcall(dbst->marshal, rb_intern("load"), 1, str);
160
123
  }
161
124
 
162
- void bdb1_init_delegator()
125
+ void
126
+ bdb1_init_delegator(void)
163
127
  {
164
128
  id_send = rb_intern("send");
165
129
  bdb1_cDelegate = rb_define_class_under(bdb1_mDb, "Delegate", rb_cObject);
166
130
  {
167
131
  VALUE ary, tmp = Qfalse;
168
- char *method;
169
132
  int i;
133
+ ID id_eq = rb_intern("=="),
134
+ id_eqq = rb_intern("==="),
135
+ id_match = rb_intern("=~"),
136
+ id_not = rb_intern("!"),
137
+ id_neq = rb_intern("!="),
138
+ id_notmatch = rb_intern("!~");
170
139
 
171
140
  ary = rb_class_instance_methods(1, &tmp, rb_mKernel);
172
141
  for (i = 0; i < RARRAY_LEN(ary); i++) {
173
- method = StringValuePtr(RARRAY_PTR(ary)[i]);
174
- if (!strcmp(method, "==") ||
175
- !strcmp(method, "===") || !strcmp(method, "=~")) continue;
176
- rb_undef_method(bdb1_cDelegate, method);
142
+ VALUE method = RARRAY_PTR(ary)[i];
143
+ VALUE mid;
144
+ if (!SYMBOL_P(method)) {
145
+ Check_Type(method, T_STRING);
146
+ mid = rb_intern(RSTRING_PTR(method));
147
+ }
148
+ else
149
+ mid = SYM2ID(method);
150
+ if (mid == id_eq ||
151
+ mid == id_eqq ||
152
+ mid == id_match ||
153
+ mid == id_not ||
154
+ mid == id_neq ||
155
+ mid == id_notmatch) continue;
156
+ rb_undef_method(bdb1_cDelegate, rb_id2name(mid));
177
157
  }
178
158
  }
179
159
  rb_define_method(bdb1_cDelegate, "method_missing", bdb1_deleg_missing, -1);
@@ -12,22 +12,4 @@ if enable_config("shared", true)
12
12
  $static = nil
13
13
  end
14
14
 
15
- %w[rb_frame_this_func rb_block_call].each do |f|
16
- have_func(f)
17
- end
18
-
19
- %w[insert values_at map select].each do |f|
20
- print "checking for Array\##{f}... "
21
- if [].respond_to?(f)
22
- puts "yes"
23
- $CFLAGS += " -DHAVE_RB_ARY_#{f.upcase}"
24
- else
25
- puts "no"
26
- end
27
- end
28
-
29
15
  create_makefile("bdb1")
30
-
31
- File.open("Makefile", "a") { |make|
32
- make.puts "test: $(DLLIB)"
33
- }
@@ -3,9 +3,7 @@
3
3
  static ID id_cmp;
4
4
 
5
5
  static VALUE
6
- bdb1_recnum_init(argc, argv, obj)
7
- int argc;
8
- VALUE *argv, obj;
6
+ bdb1_recnum_init(int argc, VALUE *argv, VALUE obj)
9
7
  {
10
8
  VALUE *nargv;
11
9
  VALUE array = rb_str_new2("array_base");
@@ -26,9 +24,7 @@ bdb1_recnum_init(argc, argv, obj)
26
24
  }
27
25
 
28
26
  static VALUE
29
- bdb1_sary_subseq(obj, beg, len)
30
- VALUE obj;
31
- long beg, len;
27
+ bdb1_sary_subseq(VALUE obj, long beg, long len)
32
28
  {
33
29
  VALUE ary2, a;
34
30
  bdb1_DB *dbst;
@@ -52,8 +48,7 @@ bdb1_sary_subseq(obj, beg, len)
52
48
  }
53
49
 
54
50
  static VALUE
55
- bdb1_sary_entry(obj, position)
56
- VALUE obj, position;
51
+ bdb1_sary_entry(VALUE obj, VALUE position)
57
52
  {
58
53
  bdb1_DB *dbst;
59
54
  long offset;
@@ -81,7 +76,7 @@ bdb1_sary_entry(obj, position)
81
76
  * Retrieves the +nth+ item from an array. Index starts from zero.
82
77
  * If index is the negative, counts backward from the end of the
83
78
  * array. The index of the last element is -1. Returns +nil+, if
84
- * the +nth+ element is not exist in the array.
79
+ * the +nth+ element does not exist in the array.
85
80
  *
86
81
  * * db[start..end]
87
82
  * Returns an array containing the objects from +start+ to +end+,
@@ -89,15 +84,13 @@ bdb1_sary_entry(obj, position)
89
84
  * array, it will be rounded to the length. If +start+ is out of an
90
85
  * array range , returns +nil+. And if +start+ is larger than end
91
86
  * with in array range, returns empty array ([]).
92
-
87
+ *
93
88
  * * db[start, length]
94
89
  * Returns an array containing +length+ items from +start+. Returns
95
90
  * +nil+ if +length+ is negative.
96
91
  */
97
92
  static VALUE
98
- bdb1_sary_aref(argc, argv, obj)
99
- int argc;
100
- VALUE *argv, obj;
93
+ bdb1_sary_aref(int argc, VALUE *argv, VALUE obj)
101
94
  {
102
95
  VALUE arg1, arg2;
103
96
  long beg, len;
@@ -133,9 +126,7 @@ bdb1_sary_aref(argc, argv, obj)
133
126
  }
134
127
 
135
128
  static VALUE
136
- bdb1_intern_shift_pop(obj, depart, len)
137
- VALUE obj;
138
- int depart, len;
129
+ bdb1_intern_shift_pop(VALUE obj, int depart, int len)
139
130
  {
140
131
  bdb1_DB *dbst;
141
132
  DBT key, data;
@@ -161,9 +152,7 @@ bdb1_intern_shift_pop(obj, depart, len)
161
152
  }
162
153
 
163
154
  static void
164
- bdb1_sary_replace(obj, beg, len, rpl)
165
- VALUE obj, rpl;
166
- long beg, len;
155
+ bdb1_sary_replace(VALUE obj, long beg, long len, VALUE rpl)
167
156
  {
168
157
  long i, j, rlen;
169
158
  VALUE tmp[2];
@@ -240,26 +229,23 @@ bdb1_sary_replace(obj, beg, len, rpl)
240
229
  *
241
230
  * Element assignment - with the following syntax:
242
231
  *
243
- * * db[nth]
232
+ * * db[nth] = val
244
233
  * Changes the +nth+ element of the array into +val+. If +nth+ is
245
234
  * larger than array length, the array shall be extended
246
235
  * automatically. Extended region shall be initialized by +nil+.
247
236
  *
248
- * * db[start..end]
237
+ * * db[start..end] = val
249
238
  * Replaces the items from +start+ to +end+ with +val+. If +val+ is
250
239
  * not an array, the type of +val+ will be converted into the Array
251
240
  * using +to_a+ method.
252
241
  *
253
- * * db[start, length]
242
+ * * db[start, length] = val
254
243
  * Replaces the +length+ items from +start+ with +val+. If +val+ is
255
244
  * not an array, the type of +val+ will be converted into the Array
256
245
  * using +to_a+.
257
246
  */
258
247
  static VALUE
259
- bdb1_sary_aset(argc, argv, obj)
260
- int argc;
261
- VALUE *argv;
262
- VALUE obj;
248
+ bdb1_sary_aset(int argc, VALUE *argv, VALUE obj)
263
249
  {
264
250
  long beg, len;
265
251
  bdb1_DB *dbst;
@@ -310,13 +296,8 @@ bdb1_sary_aset(argc, argv, obj)
310
296
  return argv[1];
311
297
  }
312
298
 
313
- #if HAVE_RB_ARY_INSERT
314
-
315
299
  static VALUE
316
- bdb1_sary_insert(argc, argv, obj)
317
- int argc;
318
- VALUE *argv;
319
- VALUE obj;
300
+ bdb1_sary_insert(int argc, VALUE *argv, VALUE obj)
320
301
  {
321
302
  long pos;
322
303
 
@@ -338,18 +319,14 @@ bdb1_sary_insert(argc, argv, obj)
338
319
  return obj;
339
320
  }
340
321
 
341
- #endif
342
-
343
322
  static VALUE
344
- bdb1_sary_at(obj, pos)
345
- VALUE obj, pos;
323
+ bdb1_sary_at(VALUE obj, VALUE pos)
346
324
  {
347
325
  return bdb1_sary_entry(obj, pos);
348
326
  }
349
327
 
350
328
  static VALUE
351
- bdb1_sary_first(obj)
352
- VALUE obj;
329
+ bdb1_sary_first(VALUE obj)
353
330
  {
354
331
  bdb1_DB *dbst;
355
332
  VALUE tmp;
@@ -360,8 +337,7 @@ bdb1_sary_first(obj)
360
337
  }
361
338
 
362
339
  static VALUE
363
- bdb1_sary_last(obj)
364
- VALUE obj;
340
+ bdb1_sary_last(VALUE obj)
365
341
  {
366
342
  bdb1_DB *dbst;
367
343
  VALUE tmp;
@@ -373,9 +349,7 @@ bdb1_sary_last(obj)
373
349
  }
374
350
 
375
351
  static VALUE
376
- bdb1_sary_fetch(argc, argv, obj)
377
- int argc;
378
- VALUE *argv, obj;
352
+ bdb1_sary_fetch(int argc, VALUE *argv, VALUE obj)
379
353
  {
380
354
  VALUE pos, ifnone;
381
355
  bdb1_DB *dbst;
@@ -397,8 +371,7 @@ bdb1_sary_fetch(argc, argv, obj)
397
371
 
398
372
 
399
373
  static VALUE
400
- bdb1_sary_concat(obj, y)
401
- VALUE obj, y;
374
+ bdb1_sary_concat(VALUE obj, VALUE y)
402
375
  {
403
376
  bdb1_DB *dbst;
404
377
  long i;
@@ -416,8 +389,7 @@ bdb1_sary_concat(obj, y)
416
389
  }
417
390
 
418
391
  static VALUE
419
- bdb1_sary_push(obj, y)
420
- VALUE obj, y;
392
+ bdb1_sary_push(VALUE obj, VALUE y)
421
393
  {
422
394
  bdb1_DB *dbst;
423
395
  VALUE tmp[2];
@@ -431,9 +403,7 @@ bdb1_sary_push(obj, y)
431
403
  }
432
404
 
433
405
  static VALUE
434
- bdb1_sary_push_m(argc, argv, obj)
435
- int argc;
436
- VALUE obj, *argv;
406
+ bdb1_sary_push_m(int argc, VALUE *argv, VALUE obj)
437
407
  {
438
408
  bdb1_DB *dbst;
439
409
  long i;
@@ -455,10 +425,7 @@ bdb1_sary_push_m(argc, argv, obj)
455
425
  }
456
426
 
457
427
  static VALUE
458
- bdb1_sary_s_create(argc, argv, obj)
459
- int argc;
460
- VALUE *argv;
461
- VALUE obj;
428
+ bdb1_sary_s_create(int argc, VALUE *argv, VALUE obj)
462
429
  {
463
430
  VALUE res;
464
431
  int i;
@@ -474,8 +441,7 @@ bdb1_sary_s_create(argc, argv, obj)
474
441
  }
475
442
 
476
443
  static VALUE
477
- bdb1_sary_shift(obj)
478
- VALUE obj;
444
+ bdb1_sary_shift(VALUE obj)
479
445
  {
480
446
  VALUE res;
481
447
  bdb1_DB *dbst;
@@ -487,8 +453,7 @@ bdb1_sary_shift(obj)
487
453
  }
488
454
 
489
455
  static VALUE
490
- bdb1_sary_pop(obj)
491
- VALUE obj;
456
+ bdb1_sary_pop(VALUE obj)
492
457
  {
493
458
  VALUE res;
494
459
  bdb1_DB *dbst;
@@ -500,10 +465,7 @@ bdb1_sary_pop(obj)
500
465
  }
501
466
 
502
467
  static VALUE
503
- bdb1_sary_unshift_m(argc, argv, obj)
504
- int argc;
505
- VALUE *argv;
506
- VALUE obj;
468
+ bdb1_sary_unshift_m(int argc, VALUE *argv, VALUE obj)
507
469
  {
508
470
  bdb1_DB *dbst;
509
471
  VALUE tmp[3];
@@ -526,8 +488,7 @@ bdb1_sary_unshift_m(argc, argv, obj)
526
488
  }
527
489
 
528
490
  static VALUE
529
- bdb1_sary_length(obj)
530
- VALUE obj;
491
+ bdb1_sary_length(VALUE obj)
531
492
  {
532
493
  bdb1_DB *dbst;
533
494
 
@@ -537,40 +498,35 @@ bdb1_sary_length(obj)
537
498
  }
538
499
 
539
500
  static VALUE
540
- bdb1_sary_empty_p(obj)
541
- VALUE obj;
501
+ bdb1_sary_empty_p(VALUE obj)
542
502
  {
543
503
  bdb1_DB *dbst;
544
504
 
545
505
  GetDB(obj, dbst);
546
506
  if (dbst->len < 0) rb_raise(bdb1_eFatal, "Invalid BDB::Recnum");
547
- return (dbst->len)?Qfalse:Qtrue;
507
+ return dbst->len == 0 ? Qtrue : Qfalse;
548
508
  }
549
509
 
550
510
  static VALUE
551
- bdb1_sary_rindex(obj, a)
552
- VALUE obj, a;
511
+ bdb1_sary_rindex(VALUE obj, VALUE a)
553
512
  {
554
513
  return bdb1_internal_value(obj, a, Qtrue, DB_PREV);
555
514
  }
556
515
 
557
516
  static VALUE
558
- bdb1_sary_to_a(obj)
559
- VALUE obj;
517
+ bdb1_sary_to_a(VALUE obj)
560
518
  {
561
519
  return bdb1_to_type(obj, rb_ary_new(), Qfalse);
562
520
  }
563
521
 
564
522
  static VALUE
565
- bdb1_sary_reverse_m(obj)
566
- VALUE obj;
523
+ bdb1_sary_reverse_m(VALUE obj)
567
524
  {
568
525
  return bdb1_to_type(obj, rb_ary_new(), Qnil);
569
526
  }
570
527
 
571
528
  static VALUE
572
- bdb1_sary_reverse_bang(obj)
573
- VALUE obj;
529
+ bdb1_sary_reverse_bang(VALUE obj)
574
530
  {
575
531
  long i, j;
576
532
  bdb1_DB *dbst;
@@ -596,15 +552,13 @@ bdb1_sary_reverse_bang(obj)
596
552
  }
597
553
 
598
554
  static VALUE
599
- bdb1_sary_collect_bang(obj)
600
- VALUE obj;
555
+ bdb1_sary_collect_bang(VALUE obj)
601
556
  {
602
557
  return bdb1_each_vc(obj, Qtrue, Qfalse);
603
558
  }
604
559
 
605
560
  static VALUE
606
- bdb1_sary_collect(obj)
607
- VALUE obj;
561
+ bdb1_sary_collect(VALUE obj)
608
562
  {
609
563
  if (!rb_block_given_p()) {
610
564
  return bdb1_sary_to_a(obj);
@@ -613,9 +567,7 @@ bdb1_sary_collect(obj)
613
567
  }
614
568
 
615
569
  static VALUE
616
- bdb1_sary_values_at(argc, argv, obj)
617
- int argc;
618
- VALUE *argv, obj;
570
+ bdb1_sary_values_at(int argc, VALUE *argv, VALUE obj)
619
571
  {
620
572
  VALUE result;
621
573
  long i;
@@ -628,60 +580,23 @@ bdb1_sary_values_at(argc, argv, obj)
628
580
  }
629
581
 
630
582
  static VALUE
631
- bdb1_sary_select(argc, argv, obj)
632
- int argc;
633
- VALUE *argv, obj;
583
+ bdb1_sary_select(VALUE obj)
634
584
  {
635
- VALUE result;
636
- long i;
637
-
638
585
  if (rb_block_given_p()) {
639
- if (argc > 0) {
640
- rb_raise(rb_eArgError, "wrong number arguments(%d for 0)", argc);
641
- }
642
586
  return bdb1_each_vc(obj, Qfalse, Qtrue);
643
587
  }
644
- #if HAVE_RB_ARY_VALUES_AT
645
- rb_warn("Recnum#%s is deprecated; use Recnum#values_at",
646
- #if HAVE_RB_FRAME_THIS_FUNC
647
- rb_id2name(rb_frame_this_func()));
648
- #else
649
- rb_id2name(rb_frame_last_func()));
650
- #endif
651
- #endif
652
- return bdb1_sary_values_at(argc, argv, obj);
653
- }
654
-
655
- static VALUE
656
- bdb1_sary_indexes(argc, argv, obj)
657
- int argc;
658
- VALUE obj, *argv;
659
- {
660
- VALUE indexes;
661
- int i;
662
-
663
- #if HAVE_RB_ARY_VALUES_AT
664
- rb_warn("Recnum#%s is deprecated; use Recnum#values_at",
665
- #if HAVE_RB_FRAME_THIS_FUNC
666
- rb_id2name(rb_frame_this_func()));
667
- #else
668
- rb_id2name(rb_frame_last_func()));
669
- #endif
670
- #endif
671
- return bdb1_sary_select(argc, argv, obj);
588
+ rb_raise(rb_eArgError, "block is not given");
672
589
  }
673
590
 
674
591
  static VALUE
675
- bdb1_sary_filter(obj)
676
- VALUE obj;
592
+ bdb1_sary_filter(VALUE obj)
677
593
  {
678
594
  rb_warn("BDB1::Recnum#filter is deprecated; use BDB1::Recnum#collect!");
679
595
  return bdb1_sary_collect_bang(obj);
680
596
  }
681
597
 
682
598
  static VALUE
683
- bdb1_sary_delete(obj, item)
684
- VALUE obj, item;
599
+ bdb1_sary_delete(VALUE obj, VALUE item)
685
600
  {
686
601
  bdb1_DB *dbst;
687
602
  long i1, i2;
@@ -710,8 +625,7 @@ bdb1_sary_delete(obj, item)
710
625
  }
711
626
 
712
627
  static VALUE
713
- bdb1_sary_delete_at_m(obj, a)
714
- VALUE obj, a;
628
+ bdb1_sary_delete_at_m(VALUE obj, VALUE a)
715
629
  {
716
630
  bdb1_DB *dbst;
717
631
  long pos;
@@ -732,8 +646,7 @@ bdb1_sary_delete_at_m(obj, a)
732
646
  }
733
647
 
734
648
  static VALUE
735
- bdb1_sary_reject_bang(obj)
736
- VALUE obj;
649
+ bdb1_sary_reject_bang(VALUE obj)
737
650
  {
738
651
  bdb1_DB *dbst;
739
652
  long i1, i2;
@@ -756,16 +669,14 @@ bdb1_sary_reject_bang(obj)
756
669
  }
757
670
 
758
671
  static VALUE
759
- bdb1_sary_delete_if(obj)
760
- VALUE obj;
672
+ bdb1_sary_delete_if(VALUE obj)
761
673
  {
762
674
  bdb1_sary_reject_bang(obj);
763
675
  return obj;
764
676
  }
765
677
 
766
678
  static VALUE
767
- bdb1_sary_replace_m(obj, obj2)
768
- VALUE obj, obj2;
679
+ bdb1_sary_replace_m(VALUE obj, VALUE obj2)
769
680
  {
770
681
  bdb1_DB *dbst;
771
682
 
@@ -776,8 +687,7 @@ bdb1_sary_replace_m(obj, obj2)
776
687
  }
777
688
 
778
689
  static VALUE
779
- bdb1_sary_clear(obj)
780
- VALUE obj;
690
+ bdb1_sary_clear(VALUE obj)
781
691
  {
782
692
  bdb1_DB *dbst;
783
693
  bdb1_clear(obj);
@@ -787,10 +697,7 @@ bdb1_sary_clear(obj)
787
697
  }
788
698
 
789
699
  static VALUE
790
- bdb1_sary_fill(argc, argv, obj)
791
- int argc;
792
- VALUE *argv;
793
- VALUE obj;
700
+ bdb1_sary_fill(int argc, VALUE *argv, VALUE obj)
794
701
  {
795
702
  VALUE item, arg1, arg2, tmp[2];
796
703
  long beg, len, i;
@@ -827,11 +734,11 @@ bdb1_sary_fill(argc, argv, obj)
827
734
  }
828
735
 
829
736
  static VALUE
830
- bdb1_sary_cmp(obj, obj2)
831
- VALUE obj, obj2;
737
+ bdb1_sary_cmp(VALUE obj, VALUE obj2)
832
738
  {
833
739
  bdb1_DB *dbst, *dbst2;
834
- VALUE a, a2, tmp, ary;
740
+ VALUE a, a2, tmp;
741
+ int ary;
835
742
  long i, len;
836
743
 
837
744
  if (obj == obj2) return INT2FIX(0);
@@ -842,14 +749,14 @@ bdb1_sary_cmp(obj, obj2)
842
749
  if (len > RARRAY_LEN(obj2)) {
843
750
  len = RARRAY_LEN(obj2);
844
751
  }
845
- ary = Qtrue;
752
+ ary = 1;
846
753
  }
847
754
  else {
848
755
  GetDB(obj2, dbst2);
849
756
  if (len > dbst2->len) {
850
757
  len = dbst2->len;
851
758
  }
852
- ary = Qfalse;
759
+ ary = 0;
853
760
  }
854
761
  for (i = 0; i < len; i++) {
855
762
  tmp = INT2NUM(i);
@@ -865,17 +772,14 @@ bdb1_sary_cmp(obj, obj2)
865
772
  return tmp;
866
773
  }
867
774
  }
868
- len = dbst->len - (ary?RARRAY_LEN(obj2):dbst2->len);
775
+ len = dbst->len - (ary ? RARRAY_LEN(obj2) : dbst2->len);
869
776
  if (len == 0) return INT2FIX(0);
870
777
  if (len > 0) return INT2FIX(1);
871
778
  return INT2FIX(-1);
872
779
  }
873
780
 
874
781
  static VALUE
875
- bdb1_sary_slice_bang(argc, argv, obj)
876
- int argc;
877
- VALUE *argv;
878
- VALUE obj;
782
+ bdb1_sary_slice_bang(int argc, VALUE *argv, VALUE obj)
879
783
  {
880
784
  VALUE arg1, arg2;
881
785
  long pos, len;
@@ -910,50 +814,43 @@ bdb1_sary_slice_bang(argc, argv, obj)
910
814
  }
911
815
 
912
816
  static VALUE
913
- bdb1_sary_plus(obj, y)
914
- VALUE obj, y;
817
+ bdb1_sary_plus(VALUE obj, VALUE y)
915
818
  {
916
819
  return rb_ary_plus(bdb1_sary_to_a(obj), y);
917
820
  }
918
821
 
919
822
  static VALUE
920
- bdb1_sary_times(obj, y)
921
- VALUE obj, y;
823
+ bdb1_sary_times(VALUE obj, VALUE y)
922
824
  {
923
825
  return rb_funcall(bdb1_sary_to_a(obj), rb_intern("*"), 1, y);
924
826
  }
925
827
 
926
828
  static VALUE
927
- bdb1_sary_diff(obj, y)
928
- VALUE obj, y;
829
+ bdb1_sary_diff(VALUE obj, VALUE y)
929
830
  {
930
831
  return rb_funcall(bdb1_sary_to_a(obj), rb_intern("-"), 1, y);
931
832
  }
932
833
 
933
834
  static VALUE
934
- bdb1_sary_and(obj, y)
935
- VALUE obj, y;
835
+ bdb1_sary_and(VALUE obj, VALUE y)
936
836
  {
937
837
  return rb_funcall(bdb1_sary_to_a(obj), rb_intern("&"), 1, y);
938
838
  }
939
839
 
940
840
  static VALUE
941
- bdb1_sary_or(obj, y)
942
- VALUE obj, y;
841
+ bdb1_sary_or(VALUE obj, VALUE y)
943
842
  {
944
843
  return rb_funcall(bdb1_sary_to_a(obj), rb_intern("|"), 1, y);
945
844
  }
946
845
 
947
846
  static VALUE
948
- bdb1_sary_compact(obj)
949
- VALUE obj;
847
+ bdb1_sary_compact(VALUE obj)
950
848
  {
951
849
  return rb_funcall(bdb1_sary_to_a(obj), rb_intern("compact"), 0, 0);
952
850
  }
953
851
 
954
852
  static VALUE
955
- bdb1_sary_compact_bang(obj)
956
- VALUE obj;
853
+ bdb1_sary_compact_bang(VALUE obj)
957
854
  {
958
855
  bdb1_DB *dbst;
959
856
  long i, j;
@@ -977,8 +874,7 @@ bdb1_sary_compact_bang(obj)
977
874
  }
978
875
 
979
876
  static VALUE
980
- bdb1_sary_nitems(obj)
981
- VALUE obj;
877
+ bdb1_sary_nitems(VALUE obj)
982
878
  {
983
879
  bdb1_DB *dbst;
984
880
  long i, j;
@@ -995,8 +891,7 @@ bdb1_sary_nitems(obj)
995
891
  }
996
892
 
997
893
  static VALUE
998
- bdb1_sary_each_index(obj)
999
- VALUE obj;
894
+ bdb1_sary_each_index(VALUE obj)
1000
895
  {
1001
896
  bdb1_DB *dbst;
1002
897
  long i;
@@ -1008,7 +903,8 @@ bdb1_sary_each_index(obj)
1008
903
  return obj;
1009
904
  }
1010
905
 
1011
- void bdb1_init_recnum()
906
+ void
907
+ bdb1_init_recnum(void)
1012
908
  {
1013
909
  id_cmp = rb_intern("<=>");
1014
910
  bdb1_cRecnum = rb_define_class_under(bdb1_mDb, "Recnum", bdb1_cCommon);
@@ -1027,32 +923,23 @@ void bdb1_init_recnum()
1027
923
  rb_define_method(bdb1_cRecnum, "pop", bdb1_sary_pop, 0);
1028
924
  rb_define_method(bdb1_cRecnum, "shift", bdb1_sary_shift, 0);
1029
925
  rb_define_method(bdb1_cRecnum, "unshift", bdb1_sary_unshift_m, -1);
1030
- #if HAVE_RB_ARY_INSERT
1031
926
  rb_define_method(bdb1_cRecnum, "insert", bdb1_sary_insert, -1);
1032
- #endif
1033
927
  rb_define_method(bdb1_cRecnum, "each", bdb1_each_value, 0);
1034
928
  rb_define_method(bdb1_cRecnum, "each_index", bdb1_sary_each_index, 0);
1035
929
  rb_define_method(bdb1_cRecnum, "reverse_each", bdb1_each_eulav, 0);
1036
930
  rb_define_method(bdb1_cRecnum, "length", bdb1_sary_length, 0);
1037
931
  rb_define_alias(bdb1_cRecnum, "size", "length");
1038
932
  rb_define_method(bdb1_cRecnum, "empty?", bdb1_sary_empty_p, 0);
1039
- rb_define_method(bdb1_cRecnum, "index", bdb1_index, 1);
933
+ rb_define_method(bdb1_cRecnum, "key", bdb1_key, 1);
934
+ rb_define_method(bdb1_cRecnum, "index", bdb1_key, 1);
1040
935
  rb_define_method(bdb1_cRecnum, "rindex", bdb1_sary_rindex, 1);
1041
- rb_define_method(bdb1_cRecnum, "indexes", bdb1_sary_indexes, -1);
1042
- rb_define_method(bdb1_cRecnum, "indices", bdb1_sary_indexes, -1);
1043
936
  rb_define_method(bdb1_cRecnum, "reverse", bdb1_sary_reverse_m, 0);
1044
937
  rb_define_method(bdb1_cRecnum, "reverse!", bdb1_sary_reverse_bang, 0);
1045
938
  rb_define_method(bdb1_cRecnum, "collect", bdb1_sary_collect, 0);
1046
939
  rb_define_method(bdb1_cRecnum, "collect!", bdb1_sary_collect_bang, 0);
1047
- #if HAVE_RB_ARY_MAP
1048
940
  rb_define_method(bdb1_cRecnum, "map", bdb1_sary_collect, 0);
1049
- #endif
1050
- #if HAVE_RB_ARY_VALUES_AT
1051
941
  rb_define_method(bdb1_cRecnum, "values_at", bdb1_sary_values_at, -1);
1052
- #endif
1053
- #if HAVE_RB_ARY_SELECT
1054
- rb_define_method(bdb1_cRecnum, "select", bdb1_sary_select, -1);
1055
- #endif
942
+ rb_define_method(bdb1_cRecnum, "select", bdb1_sary_select, 0);
1056
943
  rb_define_method(bdb1_cRecnum, "map!", bdb1_sary_collect_bang, 0);
1057
944
  rb_define_method(bdb1_cRecnum, "filter", bdb1_sary_filter, 0);
1058
945
  rb_define_method(bdb1_cRecnum, "delete", bdb1_sary_delete, 1);