[A68-RECUTILS][COMMITTED] rec-rset.a68: add "rec rset num records" and "rec rset num comments"
Jose E. Marchesi
jemarch@gnu.org
Sat Apr 5 14:50:47 GMT 2025
---
src/rec-rset.a68 | 14 ++++++++++++++
utils/recsel.a68 | 4 +---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/src/rec-rset.a68 b/src/rec-rset.a68
index 4b5162a..0aff4eb 100644
--- a/src/rec-rset.a68
+++ b/src/rec-rset.a68
@@ -37,3 +37,17 @@ PROC rec rset new = REF REC_RSET:
PROC rec rset gate = (REC_MSET_DATA d) BOOL:
(d | (REC_RECORD): TRUE, (REC_CMNT): TRUE | FALSE);
+
+# Get the number of records in a given record set. #
+
+PROC rec rset num records = (REC_RSET rset) INT:
+ (rec mset count (mset OF rset,
+ (REC_MSET_DATA d) BOOL:
+ (d | (REC_RECORD): TRUE | FALSE)));
+
+# Get the number of comments in a given record set. #
+
+PROC rec rset num comments = (REC_RSET rset) INT:
+ (rec mset count (mset OF rset,
+ (REC_MSET_DATA d) BOOL:
+ (d | (REC_CMNT): TRUE | FALSE)));
diff --git a/utils/recsel.a68 b/utils/recsel.a68
index 54e911b..ae11d26 100644
--- a/utils/recsel.a68
+++ b/utils/recsel.a68
@@ -105,9 +105,7 @@ Special options:\n\
(INT pos, REC_MSET_DATA data) VOID:
CASE data
IN (REC_RSET rset):
- num records +:= rec mset count (mset OF rset,
- (REC_MSET_DATA d) BOOL:
- (d | (REC_RECORD): TRUE | FALSE))
+ num records +:= rec rset num records (rset)
ESAC);
fputs (stdout, itoa (num records) + "\n")
ELSE # Emit the resulting record set #
--
2.30.2
More information about the Algol68
mailing list