summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrés <andmarti@gmail.com>2021-06-02 18:37:17 -0300
committerAndrés <andmarti@gmail.com>2021-06-02 18:37:17 -0300
commit619ded1af207f95fb8d93b0f120e0ad9d36daadf (patch)
tree67460b4eca1e75ca3b7952e1fe912e31c8eb841b /src
parentf94b16bfb779d6c5279628030dfe6f992518735d (diff)
Added test3 and test4
Diffstat (limited to 'src')
-rwxr-xr-xsrc/gram.y12
-rw-r--r--src/pipe.c4
-rw-r--r--src/pipe.h2
3 files changed, 13 insertions, 5 deletions
diff --git a/src/gram.y b/src/gram.y
index 1476e13..4eebd56 100755
--- a/src/gram.y
+++ b/src/gram.y
@@ -1116,9 +1116,19 @@ command:
//changed = 0;
}
| S_GETNUM var_or_range {
- getnum($2.left.vp->row, $2.left.vp->col, $2.right.vp->row, $2.right.vp->col, fdoutput);
+ struct roman * roman = session->cur_doc;
+ struct sheet * sh = roman->cur_sh;
+ getnum(sh, $2.left.vp->row, $2.left.vp->col, $2.right.vp->row, $2.right.vp->col, fdoutput);
}
+ | S_GETNUM '{' STRING '}' '!' var_or_range {
+ struct roman * roman = session->cur_doc;
+ struct sheet * sh;
+ if ((sh = search_sheet(roman, $3)) == NULL )
+ sh = roman->cur_sh;
+ getnum(sh, $6.left.vp->row, $6.left.vp->col, $6.right.vp->row, $6.right.vp->col, fdoutput);
+ scxfree($3);
+ }
| S_GETSTRING var_or_range { getstring($2.left.vp->row, $2.left.vp->col, $2.right.vp->row, $2.right.vp->col, fdoutput); }
| S_GETEXP var_or_range { getexp($2.left.vp->row, $2.left.vp->col, $2.right.vp->row, $2.right.vp->col, fdoutput); }
diff --git a/src/pipe.c b/src/pipe.c
index d78df59..034f3ba 100644
--- a/src/pipe.c
+++ b/src/pipe.c
@@ -69,9 +69,7 @@ extern struct session * session;
// FIXME - pass fd is not needed
*/
-void getnum(int r0, int c0, int rn, int cn, FILE * fd) {
- struct roman * roman = session->cur_doc;
- struct sheet * sh = roman->cur_sh;
+void getnum(struct sheet * sh, int r0, int c0, int rn, int cn, FILE * fd) {
struct ent ** pp;
struct ent * p;
int r, c;
diff --git a/src/pipe.h b/src/pipe.h
index 5f0c022..a5eb354 100644
--- a/src/pipe.h
+++ b/src/pipe.h
@@ -42,7 +42,7 @@
* \brief Header file for pipe.c
*/
-void getnum(int r0, int c0, int rn, int cn, FILE * fd);
+void getnum(struct sheet * sh, int r0, int c0, int rn, int cn, FILE * fd);
void getformat(int col, FILE * fd);
void getfmt(int r0, int c0, int rn, int cn, FILE * fd);
void getstring(int r0, int c0, int rn, int cn, FILE * fd);