@@ -32,7 +32,7 @@ static int sety(struct card *card, time_t now);
32
32
static int setn (struct card * card , time_t now );
33
33
static void preset (struct card * card , time_t now ,
34
34
time_t * prev , time_t * next , time_t * diff );
35
- char * indent (char * s , char * buf , int n );
35
+ int pindent (char * s );
36
36
37
37
int learn (char * filename , int now , struct learnopt * opt )
38
38
{
@@ -146,16 +146,15 @@ static int exemod(struct card *card, time_t now)
146
146
147
147
static int recall (struct card * card , time_t now )
148
148
{
149
- char in [BUFSIZ ], ques [VALSZ ], answ [VALSZ ], buf [ VALSZ ] ;
149
+ char in [BUFSIZ ], ques [VALSZ ], answ [VALSZ ];
150
150
151
151
if (learnopt -> any )
152
152
putchar ('\n' );
153
- indent ( normval (getques (card ), buf , VALSZ ), ques , VALSZ );
154
- indent ( normval (getansw (card ), buf , VALSZ ), answ , VALSZ );
153
+ normval (getques (card ), ques , VALSZ );
154
+ normval (getansw (card ), answ , VALSZ );
155
155
puts ("Q:\n" );
156
- printf ("%s\n" , ques );
157
- if (ques [strlen (ques ) - 1 ] != '\n' )
158
- putchar ('\n' );
156
+ pindent (ques );
157
+ puts ("\n" );
159
158
fflush (stdout );
160
159
CHECK :
161
160
fputs ("Press <ENTER> to check the answer.\n" , stdout );
@@ -169,9 +168,8 @@ static int recall(struct card *card, time_t now)
169
168
if (strcmp (in , "\n" ))
170
169
goto CHECK ;
171
170
puts ("A:\n" );
172
- printf ("%s\n" , answ );
173
- if (answ [strlen (answ ) - 1 ] != '\n' )
174
- putchar ('\n' );
171
+ pindent (answ );
172
+ puts ("\n" );
175
173
fflush (stdout );
176
174
QUERY :
177
175
fputs ("Do you recall? (y/n/s)\n" , stdout );
@@ -245,18 +243,14 @@ static void preset(struct card *card, time_t now,
245
243
* diff = DAY ;
246
244
}
247
245
248
- char * indent (char * s , char * buf , int n )
246
+ int pindent (char * s )
249
247
{
250
- char * sp , * bp ;
248
+ char * sp ;
251
249
252
- for (sp = s , bp = buf ; * sp && bp < & buf [ n ] ; sp ++ ) {
250
+ for (sp = s ; * sp ; sp ++ ) {
253
251
if (sp == s || sp [-1 ] == '\n' )
254
- * bp ++ = '\t' ;
255
- if (bp < & buf [n ])
256
- * bp ++ = * sp ;
252
+ putchar ('\t' );
253
+ putchar (* sp );
257
254
}
258
- if (bp >= & buf [n ])
259
- return NULL ;
260
- * bp = '\0' ;
261
- return buf ;
255
+ return sp - s ;
262
256
}
0 commit comments