Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1054)

Side by Side Diff: third_party/libxslt/libexslt/date.c

Issue 1848793005: Roll libxslt to 891681e3e948f31732229f53cb6db7215f740fc7 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/libxslt/libexslt/crypto.c ('k') | third_party/libxslt/libexslt/functions.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * date.c: Implementation of the EXSLT -- Dates and Times module 2 * date.c: Implementation of the EXSLT -- Dates and Times module
3 * 3 *
4 * References: 4 * References:
5 * http://www.exslt.org/date/date.html 5 * http://www.exslt.org/date/date.html
6 * 6 *
7 * See Copyright for the status of this software. 7 * See Copyright for the status of this software.
8 * 8 *
9 * Authors: 9 * Authors:
10 * Charlie Bozeman <cbozeman@HiWAAY.net> 10 * Charlie Bozeman <cbozeman@HiWAAY.net>
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 exsltDateValPtr ret; 660 exsltDateValPtr ret;
661 661
662 ret = (exsltDateValPtr) xmlMalloc(sizeof(exsltDateVal)); 662 ret = (exsltDateValPtr) xmlMalloc(sizeof(exsltDateVal));
663 if (ret == NULL) { 663 if (ret == NULL) {
664 xsltGenericError(xsltGenericErrorContext, 664 xsltGenericError(xsltGenericErrorContext,
665 "exsltDateCreateDate: out of memory\n"); 665 "exsltDateCreateDate: out of memory\n");
666 return (NULL); 666 return (NULL);
667 } 667 }
668 memset (ret, 0, sizeof(exsltDateVal)); 668 memset (ret, 0, sizeof(exsltDateVal));
669 669
670 if (type != XS_DURATION) {
671 ret->value.date.mon = 1;
672 ret->value.date.day = 1;
673 }
674
670 if (type != EXSLT_UNKNOWN) 675 if (type != EXSLT_UNKNOWN)
671 ret->type = type; 676 ret->type = type;
672 677
673 return ret; 678 return ret;
674 } 679 }
675 680
676 /** 681 /**
677 * exsltDateFreeDate: 682 * exsltDateFreeDate:
678 * @date: an #exsltDateValPtr 683 * @date: an #exsltDateValPtr
679 * 684 *
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
1388 if (dt == NULL) 1393 if (dt == NULL)
1389 return 1; 1394 return 1;
1390 1395
1391 if ((type & XS_TIME) != XS_TIME) { 1396 if ((type & XS_TIME) != XS_TIME) {
1392 dt->value.date.hour = 0; 1397 dt->value.date.hour = 0;
1393 dt->value.date.min = 0; 1398 dt->value.date.min = 0;
1394 dt->value.date.sec = 0.0; 1399 dt->value.date.sec = 0.0;
1395 } 1400 }
1396 1401
1397 if ((type & XS_GDAY) != XS_GDAY) 1402 if ((type & XS_GDAY) != XS_GDAY)
1398 dt->value.date.day = 0; 1403 dt->value.date.day = 1;
1399 1404
1400 if ((type & XS_GMONTH) != XS_GMONTH) 1405 if ((type & XS_GMONTH) != XS_GMONTH)
1401 dt->value.date.mon = 0; 1406 dt->value.date.mon = 1;
1402 1407
1403 if ((type & XS_GYEAR) != XS_GYEAR) 1408 if ((type & XS_GYEAR) != XS_GYEAR)
1404 dt->value.date.year = 0; 1409 dt->value.date.year = 0;
1405 1410
1406 dt->type = type; 1411 dt->type = type;
1407 1412
1408 return 0; 1413 return 0;
1409 } 1414 }
1410 1415
1411 /** 1416 /**
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1466 return NULL; 1471 return NULL;
1467 1472
1468 ret = exsltDateCreateDate(dt->type); 1473 ret = exsltDateCreateDate(dt->type);
1469 if (ret == NULL) 1474 if (ret == NULL)
1470 return NULL; 1475 return NULL;
1471 1476
1472 r = &(ret->value.date); 1477 r = &(ret->value.date);
1473 d = &(dt->value.date); 1478 d = &(dt->value.date);
1474 u = &(dur->value.dur); 1479 u = &(dur->value.dur);
1475 1480
1476 /* normalization */
1477 if (d->mon == 0)
1478 d->mon = 1;
1479
1480 /* normalize for time zone offset */ 1481 /* normalize for time zone offset */
1481 u->sec -= (d->tzo * 60); /* changed from + to - (bug 153000) */ 1482 u->sec -= (d->tzo * 60); /* changed from + to - (bug 153000) */
1482 d->tzo = 0; 1483 d->tzo = 0;
1483 1484
1484 /* normalization */
1485 if (d->day == 0)
1486 d->day = 1;
1487
1488 /* month */ 1485 /* month */
1489 carry = d->mon + u->mon; 1486 carry = d->mon + u->mon;
1490 r->mon = (unsigned int)MODULO_RANGE(carry, 1, 13); 1487 r->mon = (unsigned int)MODULO_RANGE(carry, 1, 13);
1491 carry = (long)FQUOTIENT_RANGE(carry, 1, 13); 1488 carry = (long)FQUOTIENT_RANGE(carry, 1, 13);
1492 1489
1493 /* year (may be modified later) */ 1490 /* year (may be modified later) */
1494 r->year = d->year + carry; 1491 r->year = d->year + carry;
1495 if (r->year == 0) { 1492 if (r->year == 0) {
1496 if (d->year > 0) 1493 if (d->year > 0)
1497 r->year--; 1494 r->year--;
(...skipping 2407 matching lines...) Expand 10 before | Expand all | Expand 10 after
3905 (const xmlChar *) EXSLT_DATE_NAMESPACE, 3902 (const xmlChar *) EXSLT_DATE_NAMESPACE,
3906 exsltDateWeekInYearFunction) 3903 exsltDateWeekInYearFunction)
3907 && !xmlXPathRegisterFuncNS(ctxt, 3904 && !xmlXPathRegisterFuncNS(ctxt,
3908 (const xmlChar *) "year", 3905 (const xmlChar *) "year",
3909 (const xmlChar *) EXSLT_DATE_NAMESPACE, 3906 (const xmlChar *) EXSLT_DATE_NAMESPACE,
3910 exsltDateYearFunction)) { 3907 exsltDateYearFunction)) {
3911 return 0; 3908 return 0;
3912 } 3909 }
3913 return -1; 3910 return -1;
3914 } 3911 }
OLDNEW
« no previous file with comments | « third_party/libxslt/libexslt/crypto.c ('k') | third_party/libxslt/libexslt/functions.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698