Changeset 000098 in git for Singular/ipprint.cc
- Timestamp:
- Jun 29, 2011, 12:40:24 PM (12 years ago)
- Branches:
- (u'spielwiese', '8d54773d6c9e2f1d2593a28bc68b7eeab54ed529')
- Children:
- 3a8c5fe234a64598138a3f2f2cd5c5c2636d4442
- Parents:
- 7959ec93769d80d56f9893f174493c33cfc6a5b1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/ipprint.cc
r7959ec9 r000098 217 217 BOOLEAN jjPRINT(leftv res, leftv u) 218 218 { 219 SPrintStart(); 220 BOOLEAN bo=FALSE; 219 221 switch(u->Typ()) 220 222 { 221 223 case INTVEC_CMD: 222 return ipPrint_INTVEC(u); 224 bo=ipPrint_INTVEC(u); 225 break; 223 226 224 227 case INTMAT_CMD: 225 return ipPrint_INTMAT(u); 228 bo=ipPrint_INTMAT(u); 229 break; 226 230 227 231 case MATRIX_CMD: 228 return ipPrint_MA(u); 232 bo=ipPrint_MA(u); 233 break; 229 234 230 235 case IDEAL_CMD: … … 234 239 PrintLn(); 235 240 omFree(s); 236 return FALSE;241 break; 237 242 } 238 243 … … 242 247 ipPrint_MA0(m, u->Name()); 243 248 idDelete((ideal *) &m); 244 return FALSE;249 break; 245 250 } 246 251 247 252 case VECTOR_CMD: 248 return ipPrint_V(u); 253 bo=ipPrint_V(u); 254 break; 249 255 250 256 default: 251 257 u->Print(); 252 return FALSE; 253 } 258 break; 259 } 260 char *s=SPrintEnd(); 261 if (u->next==NULL) 262 { 263 int l=strlen(s); 264 if (s[l-1]=='\n') s[l-1]='\0'; 265 } 266 res->data=(void*)s; 267 return bo; 254 268 } 255 269 … … 276 290 h->next=NULL; 277 291 if (jjPRINT(res, h)) return TRUE; 292 PrintS((char*)res->data); 293 omFree(res->data); 294 PrintLn(); 278 295 h->next=hh; 279 296 h=hh; … … 333 350 if ((u->Typ()==INTMAT_CMD)&&(strcmp((char *)v->Data(),"betti")==0)) 334 351 { 335 ipPrintBetti(u);336 res->data = NULL;337 res->rtyp = NONE;338 return FALSE;339 }340 /* ======================== end betti ================================= */341 342 char* ns = omStrDup((char*) v->Data());343 int dim = 1;344 if (strlen(ns) == 3 && ns[1] == '2')345 {346 dim = 2;347 ns[1] = ns[2];348 ns[2] = '\0';349 }350 if (strcmp(ns,"%l") == 0)351 {352 res->data = (char*) u->String(NULL, TRUE, dim);353 if (dim == 2)354 {355 char* ns = (char*) omAlloc(strlen((char*) res->data) + 2);356 strcpy(ns, (char*) res->data);357 omFree(res->data);358 strcat(ns, "\n");359 res->data = ns;360 }361 }362 else if (strcmp(ns,"%t") == 0)363 {364 SPrintStart();365 type_cmd(u);366 res->data = SPrintEnd();367 if (dim != 2)368 ((char*)res->data)[strlen((char*)res->data) -1] = '\0';369 }370 else if (strcmp(ns,"%;") == 0)371 {372 SPrintStart();373 u->Print();374 if (dim == 2) PrintLn();375 res->data = SPrintEnd();376 }377 else if (strcmp(ns,"%p") == 0)378 {379 SPrintStart();380 iiExprArith1(res, u, PRINT_CMD);381 if (dim == 2) PrintLn();382 res->data = SPrintEnd();383 }384 else if (strcmp(ns,"%b") == 0 && (u->Typ()==INTMAT_CMD))385 {386 352 SPrintStart(); 387 353 ipPrintBetti(u); 388 if (dim == 2) PrintLn(); 389 res->data = SPrintEnd(); 354 char *s = SPrintEnd(); 355 s[strlen(s)]='\0'; 356 res->data=s; 390 357 } 391 358 else 392 { 393 res->data = u->String(NULL, FALSE, dim); 394 if (dim == 2) 395 { 396 char* ns = (char*) omAlloc(strlen((char*) res->data) + 2); 397 strcpy(ns, (char*) res->data); 398 omFree(res->data); 399 strcat(ns, "\n"); 400 res->data = ns; 401 } 402 } 403 404 omFree(ns); 405 res->rtyp = STRING_CMD; 406 return FALSE; 407 } 359 /* ======================== end betti ================================= */ 360 { 361 char* ns = omStrDup((char*) v->Data()); 362 int dim = 1; 363 if (strlen(ns) == 3 && ns[1] == '2') 364 { 365 dim = 2; 366 ns[1] = ns[2]; 367 ns[2] = '\0'; 368 } 369 if (strcmp(ns,"%l") == 0) 370 { 371 res->data = (char*) u->String(NULL, TRUE, dim); 372 if (dim == 2) 373 { 374 char* ns = (char*) omAlloc(strlen((char*) res->data) + 2); 375 strcpy(ns, (char*) res->data); 376 omFree(res->data); 377 strcat(ns, "\n"); 378 res->data = ns; 379 } 380 } 381 else if (strcmp(ns,"%t") == 0) 382 { 383 SPrintStart(); 384 type_cmd(u); 385 res->data = SPrintEnd(); 386 if (dim != 2) 387 ((char*)res->data)[strlen((char*)res->data) -1] = '\0'; 388 } 389 else if (strcmp(ns,"%;") == 0) 390 { 391 SPrintStart(); 392 u->Print(); 393 if (dim == 2) PrintLn(); 394 res->data = SPrintEnd(); 395 } 396 else if (strcmp(ns,"%p") == 0) 397 { 398 iiExprArith1(res, u, PRINT_CMD); 399 } 400 else if (strcmp(ns,"%b") == 0 && (u->Typ()==INTMAT_CMD)) 401 { 402 SPrintStart(); 403 ipPrintBetti(u); 404 if (dim == 2) PrintLn(); 405 res->data = SPrintEnd(); 406 } 407 else 408 { 409 res->data = u->String(NULL, FALSE, dim); 410 if (dim == 2) 411 { 412 char* ns = (char*) omAlloc(strlen((char*) res->data) + 2); 413 strcpy(ns, (char*) res->data); 414 omFree(res->data); 415 strcat(ns, "\n"); 416 res->data = ns; 417 } 418 } 419 omFree(ns); 420 } 421 return FALSE; 422 }
Note: See TracChangeset
for help on using the changeset viewer.