From 8ebe4577609d7ed19654cafaecfb739148fd3d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Fri, 20 Mar 2015 14:30:28 +0100 Subject: [PATCH] Version 14.98.4 --- css/swad_desktop.css | 1 + css/swad_mobile.css | 1 + swad_changelog.h | 3 ++- swad_mark.c | 11 +++++---- swad_string.c | 57 ++++++++++++++++++++++++++++++++------------ 5 files changed, 53 insertions(+), 20 deletions(-) diff --git a/css/swad_desktop.css b/css/swad_desktop.css index 8b67fc200..05e742ea7 100644 --- a/css/swad_desktop.css +++ b/css/swad_desktop.css @@ -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 **********************************/ diff --git a/css/swad_mobile.css b/css/swad_mobile.css index 95f46c32a..e0f9f343c 100644 --- a/css/swad_mobile.css +++ b/css/swad_mobile.css @@ -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 **********************************/ diff --git a/swad_changelog.h b/swad_changelog.h index edd6ffe2e..b4f342cda 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -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) diff --git a/swad_mark.c b/swad_mark.c index 233458abe..16eefc762 100644 --- a/swad_mark.c +++ b/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 diff --git a/swad_string.c b/swad_string.c index b405897d9..bdb75dd7b 100644 --- a/swad_string.c +++ b/swad_string.c @@ -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
or
*/ 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
or
*/ 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;