mirror of
https://github.com/acanas/swad-core.git
synced 2024-09-22 00:00:40 +02:00
Version 14.98.4
This commit is contained in:
parent
08438a8d06
commit
8ebe457760
|
@ -265,6 +265,7 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;}
|
|||
.ICON28x28 {width:28px; height:28px; vertical-align:middle;}
|
||||
.ICON32x32 {width:32px; height:32px; vertical-align:middle;}
|
||||
.ICON32x32B {width:32px; height:32px; vertical-align:middle; display:block;}
|
||||
.ICON48x48 {width:48px; height:48px; vertical-align:middle;}
|
||||
.ICON64x64 {width:64px; height:64px; vertical-align:middle;}
|
||||
|
||||
/********************************* Frame 10 **********************************/
|
||||
|
|
|
@ -229,6 +229,7 @@ p {margin:0;}
|
|||
.ICON16x16B {width:16px; height:16px; vertical-align:middle; display:block;}
|
||||
.ICON32x32 {width:32px; height:32px; vertical-align:middle;}
|
||||
.ICON32x32B {width:32px; height:32px; vertical-align:middle; display:block;}
|
||||
.ICON48x48 {width:48px; height:48px; vertical-align:middle;}
|
||||
.ICON64x64 {width:64px; height:64px; vertical-align:middle;}
|
||||
|
||||
/********************************* Frame 10 **********************************/
|
||||
|
|
|
@ -103,11 +103,12 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 14.98.3 (2015/03/19)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 14.98.4 (2015/03/20)"
|
||||
|
||||
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
||||
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
|
||||
/*
|
||||
Version 14.98.4: Mar 20, 2015 Fixed bugs in marks. (183430 lines)
|
||||
Version 14.98.3: Mar 19, 2015 Changes in user's profile to speedup page generation. (183397 lines)
|
||||
Version 14.98.2: Mar 19, 2015 Fixed bug in record related to follow/unfollow. (183366 lines)
|
||||
Version 14.98.1: Mar 19, 2015 Changes in lists of following and followers. (183360 lines)
|
||||
|
|
11
swad_mark.c
11
swad_mark.c
|
@ -419,10 +419,13 @@ static bool Mrk_CheckIfCellContainsOnlyIDs (const char *CellContent)
|
|||
// Users' IDs are always stored internally in capitals and without leading zeros
|
||||
Str_RemoveLeadingZeros (UsrIDFromTable);
|
||||
Str_ConvertToUpperText (UsrIDFromTable);
|
||||
if (ID_CheckIfUsrIDIsValid (UsrIDFromTable))
|
||||
UsrIDFound = true;
|
||||
else
|
||||
StuffNotUsrIDFound = true;
|
||||
if (UsrIDFromTable[0]) // Something found
|
||||
{
|
||||
if (ID_CheckIfUsrIDIsValid (UsrIDFromTable))
|
||||
UsrIDFound = true;
|
||||
else
|
||||
StuffNotUsrIDFound = true;
|
||||
}
|
||||
}
|
||||
|
||||
/***** Check if only user's IDs
|
||||
|
|
|
@ -442,7 +442,7 @@ void Str_ConvertToTitleType (char *Str)
|
|||
{
|
||||
Ch = *Ptr;
|
||||
if (isspace ((int) Ch) ||
|
||||
Ch == '\xA0' ||
|
||||
Ch == '\xA0' || // Unicode translation for
|
||||
Ch == '-' ||
|
||||
Ch == '(' ||
|
||||
Ch == ')' ||
|
||||
|
@ -461,7 +461,8 @@ void Str_ConvertToTitleType (char *Str)
|
|||
for (Ptr2 = Ptr, LengthStr = 0;
|
||||
*Ptr2;
|
||||
Ptr2++, LengthStr++)
|
||||
if (isspace ((int) *Ptr2) || *Ptr2 == '\xA0')
|
||||
if (isspace ((int) *Ptr2) ||
|
||||
*Ptr2 == '\xA0') // Unicode translation for
|
||||
break;
|
||||
if (LengthStr == 1)
|
||||
{
|
||||
|
@ -1069,7 +1070,8 @@ void Str_RemoveLeadingSpacesHTML (char *Str)
|
|||
Ptr++)
|
||||
{
|
||||
/* If it's space ==> continue in the loop */
|
||||
if (isspace ((int) *Ptr) || *Ptr == '\xA0') // Microsoft Excel uses A0 also as space!
|
||||
if (isspace ((int) *Ptr) ||
|
||||
*Ptr == '\xA0') // Unicode translation for
|
||||
continue;
|
||||
/* Check forward if it's a <br> or <br /> */
|
||||
if (*Ptr == '<')
|
||||
|
@ -1191,7 +1193,8 @@ void Str_RemoveTrailingSpacesHTML (char *Str)
|
|||
Ptr--)
|
||||
{
|
||||
/* If it's space ==> continue in the loop */
|
||||
if (isspace ((int) *Ptr) || *Ptr == '\xA0') // Microsoft Excel uses A0 also as space!
|
||||
if (isspace ((int) *Ptr) ||
|
||||
*Ptr == '\xA0') // Unicode translation for
|
||||
continue;
|
||||
/* Check backward if it's <br> or <br /> */
|
||||
if (*Ptr == '>')
|
||||
|
@ -1727,7 +1730,8 @@ char *Str_GetCellFromHTMLTableSkipComments (FILE *FileSrc,char *Str,int MaxLengt
|
|||
}
|
||||
|
||||
/***** Skip spaces *****/
|
||||
if (isspace (Ch) || Ch == 0xA0) // Microsoft Excel uses A0 also as space!
|
||||
if (isspace (Ch) ||
|
||||
Ch == 0xA0) // Unicode translation for
|
||||
SpaceFound = true;
|
||||
|
||||
if (SpaceFound)
|
||||
|
@ -1780,10 +1784,13 @@ void Str_GetNextStringUntilSpace (const char **StrSrc,char *StrDst,size_t MaxLen
|
|||
if ((Ch = (int) **StrSrc) != 0)
|
||||
(*StrSrc)++;
|
||||
}
|
||||
while (isspace (Ch));
|
||||
while (isspace (Ch) ||
|
||||
Ch == 0xA0); // Unicode translation for
|
||||
|
||||
/***** Copy string while non-space characters *****/
|
||||
while (Ch && !isspace (Ch))
|
||||
while (Ch &&
|
||||
!(isspace (Ch) ||
|
||||
Ch == 0xA0)) // Unicode translation for
|
||||
{
|
||||
if (i < MaxLength)
|
||||
StrDst[i++] = (char) Ch;
|
||||
|
@ -1809,10 +1816,17 @@ void Str_GetNextStringUntilSeparator (const char **StrSrc,char *StrDst,size_t Ma
|
|||
if ((Ch = (int) **StrSrc) != 0)
|
||||
(*StrSrc)++;
|
||||
}
|
||||
while (isspace (Ch) || Ch == (int) ',' || Ch == (int) ';');
|
||||
while (isspace (Ch) ||
|
||||
Ch == 0xA0 || // Unicode translation for
|
||||
Ch == (int) ',' ||
|
||||
Ch == (int) ';');
|
||||
|
||||
/***** Copy string while no separator found *****/
|
||||
while (Ch && !(isspace (Ch) || Ch == (int) ',' || Ch == (int) ';'))
|
||||
while (Ch &&
|
||||
!(isspace (Ch) ||
|
||||
Ch == 0xA0 || // Unicode translation for
|
||||
Ch == (int) ',' ||
|
||||
Ch == (int) ';'))
|
||||
{
|
||||
if (i < MaxLength)
|
||||
StrDst[i++] = (char) Ch;
|
||||
|
@ -1834,10 +1848,18 @@ void Str_GetNextStringFromFileUntilSeparator (FILE *FileSrc,char *StrDst)
|
|||
/***** Skip separators *****/
|
||||
do
|
||||
Ch = fgetc (FileSrc);
|
||||
while (Ch != EOF && (isspace (Ch) || Ch == (int) ',' || Ch == (int) ';')); // Skip spaces, puntuación, etc.
|
||||
while (Ch != EOF &&
|
||||
(isspace (Ch) ||
|
||||
Ch == 0xA0 || // Unicode translation for
|
||||
Ch == (int) ',' ||
|
||||
Ch == (int) ';')); // Skip spaces, puntuación, etc.
|
||||
|
||||
/***** Copy string while no separator found *****/
|
||||
while (Ch != EOF && !(isspace (Ch) || Ch == (int) ',' || Ch == (int) ';'))
|
||||
while (Ch != EOF &&
|
||||
!(isspace (Ch) ||
|
||||
Ch == 0xA0 || // Unicode translation for
|
||||
Ch == (int) ',' ||
|
||||
Ch == (int) ';'))
|
||||
{
|
||||
if (i < ID_MAX_LENGTH_USR_ID)
|
||||
StrDst[i++] = (char) Ch;
|
||||
|
@ -1861,7 +1883,9 @@ void Str_GetNextStringUntilComma (const char **StrSrc,char *StrDst,size_t MaxLen
|
|||
|
||||
/***** Skip leading spaces and ',' *****/
|
||||
Ch = (int) **StrSrc;
|
||||
while (isspace (Ch) || Ch == (int) ',' || Ch == 0xA0) // Microsoft Excel uses A0 also as space!
|
||||
while (isspace (Ch) ||
|
||||
Ch == 0xA0 || // Unicode translation for
|
||||
Ch == (int) ',')
|
||||
{
|
||||
(*StrSrc)++;
|
||||
Ch = (int) **StrSrc;
|
||||
|
@ -1884,7 +1908,8 @@ void Str_GetNextStringUntilComma (const char **StrSrc,char *StrDst,size_t MaxLen
|
|||
for (Ptr--;
|
||||
Ptr >= *StrSrc;
|
||||
Ptr--)
|
||||
if (!(isspace ((int) *Ptr) || *Ptr == '\xA0')) // Microsoft Excel uses A0 also as space!
|
||||
if (!(isspace ((int) *Ptr) ||
|
||||
*Ptr == '\xA0')) // Unicode translation for
|
||||
break;
|
||||
*(Ptr+1) = '\0';
|
||||
}
|
||||
|
@ -1941,7 +1966,8 @@ void Str_ReplaceSeveralSpacesForOne (char *Str)
|
|||
/***** Do the replacing *****/
|
||||
for (PtrDst = PtrSrc = Str;
|
||||
*PtrSrc;)
|
||||
if (isspace ((int) *PtrSrc) || *PtrSrc == '\xA0') // If character is printable in english ==> is OK; else ==> convert to code (Microsoft Excel uses A0 also as space!)
|
||||
if (isspace ((int) *PtrSrc) ||
|
||||
*PtrSrc == '\xA0') // Unicode translation for
|
||||
{
|
||||
if (!PreviousWasSpace)
|
||||
*PtrDst++ = ' ';
|
||||
|
@ -2130,7 +2156,8 @@ void Str_SkipSpacesInFile (FILE *FileSrc)
|
|||
int Ch;
|
||||
|
||||
while ((Ch = fgetc (FileSrc)) != EOF)
|
||||
if (!isspace (Ch))
|
||||
if (!(isspace (Ch) ||
|
||||
Ch == 0xA0)) // Unicode translation for
|
||||
{
|
||||
fseek (FileSrc,-1L,SEEK_CUR);
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue
Block a user