diff --git a/swad_API.c b/swad_API.c index aca2bdc8..7ee3b369 100644 --- a/swad_API.c +++ b/swad_API.c @@ -1900,7 +1900,7 @@ int swad__sendMyGroups (struct soap *soap, int ReturnCode; struct ListCodGrps LstGrpsIWant; const char *Ptr; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; unsigned NumGrp; MYSQL_RES *mysql_res; MYSQL_ROW row; @@ -1954,7 +1954,7 @@ int swad__sendMyGroups (struct soap *soap, for (NumGrp = 0, Ptr = myGroups; *Ptr; NumGrp++) - Str_GetNextStringUntilComma (&Ptr,LongStr,1 + 10); + Str_GetNextStringUntilComma (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); LstGrpsIWant.NumGrps = NumGrp; if (LstGrpsIWant.NumGrps) // If I have selected groups... @@ -1967,7 +1967,7 @@ int swad__sendMyGroups (struct soap *soap, NumGrp++) { /* Find next string in text until comma (leading and trailing spaces are removed) */ - Str_GetNextStringUntilComma (&Ptr,LongStr,1 + 10); + Str_GetNextStringUntilComma (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); LstGrpsIWant.GrpCods[NumGrp] = Str_ConvertStrCodToLongCod (LongStr); } } @@ -2286,7 +2286,7 @@ static void API_GetListGrpsInAttendanceEventFromDB (long AttCod,char **ListGroup long NumGrps; long NumGrp; long GrpCod; - char GrpCodStr[10 + 1]; + char GrpCodStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; size_t Length; /***** Get list of groups *****/ @@ -2508,14 +2508,14 @@ int swad__removeAttendanceEvent (struct soap *soap, static void API_GetLstGrpsSel (const char *Groups) { const char *Ptr; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; unsigned NumGrp; /***** Count number of groups *****/ for (Ptr = Groups, NumGrp = 0; *Ptr; NumGrp++) - Str_GetNextStringUntilComma (&Ptr,LongStr,1 + 10); + Str_GetNextStringUntilComma (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); Gbl.Crs.Grps.LstGrpsSel.NumGrps = NumGrp; /***** Create a list of groups selected *****/ @@ -2531,7 +2531,7 @@ static void API_GetLstGrpsSel (const char *Groups) *Ptr; ) { - Str_GetNextStringUntilComma (&Ptr,LongStr,1 + 10); + Str_GetNextStringUntilComma (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); Gbl.Crs.Grps.LstGrpsSel.GrpCods[NumGrp] = Str_ConvertStrCodToLongCod (LongStr); if (Grp_CheckIfGroupBelongsToCourse (Gbl.Crs.Grps.LstGrpsSel.GrpCods[NumGrp],Gbl.Hierarchy.Crs.CrsCod)) NumGrp++; @@ -2737,11 +2737,11 @@ int swad__sendAttendanceUsers (struct soap *soap, int ReturnCode; struct AttendanceEvent Att; const char *Ptr; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; struct UsrData UsrDat; unsigned NumCodsInList; char *SubQueryAllUsrs = NULL; - char SubQueryOneUsr[1 + 1 + 10 + 1]; + char SubQueryOneUsr[1 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; size_t Length = 0; // Initialized to avoid warning /***** Initializations *****/ @@ -2790,10 +2790,10 @@ int swad__sendAttendanceUsers (struct soap *soap, *Ptr; NumCodsInList++) /* Find next string in text until comma (leading and trailing spaces are removed) */ - Str_GetNextStringUntilComma (&Ptr,LongStr,1 + 10); + Str_GetNextStringUntilComma (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); /* Allocate subquery used to mark not present users as absent */ - Length = 256 + NumCodsInList * (1 + 1 + 10 + 1) - 1; + Length = 256 + NumCodsInList * (1 + Cns_MAX_DECIMAL_DIGITS_LONG + 1) - 1; if ((SubQueryAllUsrs = (char *) malloc (Length + 1)) == NULL) return soap_receiver_fault (Gbl.soap, "Not enough memory", @@ -2806,7 +2806,7 @@ int swad__sendAttendanceUsers (struct soap *soap, ) { /* Find next string in text until comma (leading and trailing spaces are removed) */ - Str_GetNextStringUntilComma (&Ptr,LongStr,1 + 10); + Str_GetNextStringUntilComma (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); if ((UsrDat.UsrCod = Str_ConvertStrCodToLongCod (LongStr)) > 0) if (Usr_ChkIfUsrCodExists (UsrDat.UsrCod)) // The user must belong to course, @@ -3159,7 +3159,7 @@ int swad__markNotificationsAsRead (struct soap *soap, { int ReturnCode; const char *Ptr; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; unsigned NumNtf; unsigned NumNtfsMarkedAsRead = 0; long NtfCod; @@ -3192,7 +3192,7 @@ int swad__markNotificationsAsRead (struct soap *soap, NumNtf++) { /* Find next string in text until comma (leading and trailing spaces are removed) */ - Str_GetNextStringUntilComma (&Ptr,LongStr,1 + 10); + Str_GetNextStringUntilComma (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); if ((NtfCod = Str_ConvertStrCodToLongCod (LongStr)) > 0) { /***** Mark notification as read in the database *****/ @@ -4097,9 +4097,9 @@ int swad__getTrivialQuestion (struct soap *soap, extern const char *Tst_StrAnswerTypesXML[Tst_NUM_ANS_TYPES]; int ReturnCode; const char *Ptr; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; char DegreesStr[API_MAX_BYTES_DEGREES_STR + 1]; - char DegStr[ 1 + 1 + 1 + 10 + 1 + 1]; + char DegStr[ 1 + 1 + Cns_MAX_DECIMAL_DIGITS_LONG + 1 + 1]; // DegStr=", ' - number ' \0" long DegCod; bool FirstDegree = true; @@ -4137,7 +4137,7 @@ int swad__getTrivialQuestion (struct soap *soap, while (*Ptr) { /* Find next string in text until comma (leading and trailing spaces are removed) */ - Str_GetNextStringUntilComma (&Ptr,LongStr,1 + 10); + Str_GetNextStringUntilComma (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); /* Check if degree code from string is a valid code */ if (sscanf (LongStr,"%ld",&DegCod) == 1) // Degree code @@ -4496,7 +4496,7 @@ static void API_GetListGrpsInGameFromDB (long GamCod,char **ListGroups) long NumGrps; long NumGrp; long GrpCod; - char GrpCodStr[10 + 1]; + char GrpCodStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; size_t Length; /***** Get list of groups *****/ diff --git a/swad_ID.c b/swad_ID.c index d6bf3bfd..c8f75633 100644 --- a/swad_ID.c +++ b/swad_ID.c @@ -510,7 +510,7 @@ void ID_ShowFormChangeMyID (bool IShouldFillInID) { extern const char *Hlp_PROFILE_Account; extern const char *Txt_ID; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Start section *****/ HTM_SECTION_Begin (ID_ID_SECTION_ID); @@ -542,7 +542,7 @@ void ID_ShowFormChangeOtherUsrID (void) { extern const char *Hlp_PROFILE_Account; extern const char *Txt_ID; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Start section *****/ HTM_SECTION_Begin (ID_ID_SECTION_ID); diff --git a/swad_attendance.c b/swad_attendance.c index 2b759032..0f677af4 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -2209,6 +2209,7 @@ static void Att_PutParamsCodGrps (long AttCod) MaxLengthGrpCods = NumGrps * (1 + 20) - 1; if ((GrpCods = (char *) malloc (MaxLengthGrpCods + 1)) == NULL) Lay_NotEnoughMemoryExit (); + GrpCods[0] = '\0'; /* Get groups */ for (NumGrp = 0; @@ -2245,7 +2246,7 @@ void Att_RegisterMeAsStdInAttEvent (void) extern const char *Txt_Your_comment_has_been_updated; struct AttendanceEvent Att; bool Present; - char CommentParamName[10 + 10 + 1]; + char CommentParamName[10 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; char CommentStd[Cns_MAX_BYTES_TEXT + 1]; char CommentTch[Cns_MAX_BYTES_TEXT + 1]; @@ -2307,7 +2308,7 @@ void Att_RegisterStudentsInAttEvent (void) unsigned NumStdsPresent; unsigned NumStdsAbsent; struct UsrData UsrData; - char CommentParamName[10 + 10 + 1]; + char CommentParamName[10 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; char CommentStd[Cns_MAX_BYTES_TEXT + 1]; char CommentTch[Cns_MAX_BYTES_TEXT + 1]; @@ -2439,7 +2440,7 @@ static void Att_GetNumStdsTotalWhoAreInAttEvent (struct AttendanceEvent *Att) static unsigned Att_GetNumStdsFromAListWhoAreInAttEvent (long AttCod,long LstSelectedUsrCods[],unsigned NumUsrsInList) { char *SubQueryAllUsrs = NULL; - char SubQueryOneUsr[1 + 1 + 10 + 1]; + char SubQueryOneUsr[1 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; unsigned NumUsr; unsigned NumStdsInAttEvent = 0; size_t MaxLength; @@ -2447,7 +2448,7 @@ static unsigned Att_GetNumStdsFromAListWhoAreInAttEvent (long AttCod,long LstSel if (NumUsrsInList) { /***** Allocate space for subquery *****/ - MaxLength = 256 + NumUsrsInList * (1 + 1 + 10); + MaxLength = 256 + NumUsrsInList * (1 + Cns_MAX_DECIMAL_DIGITS_LONG); if ((SubQueryAllUsrs = (char *) malloc (MaxLength + 1)) == NULL) Lay_NotEnoughMemoryExit (); SubQueryAllUsrs[0] = '\0'; @@ -2893,7 +2894,7 @@ static void Att_GetListSelectedAttCods (char **StrAttCodsSelected) unsigned NumAttEvent; const char *Ptr; long AttCod; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; MYSQL_RES *mysql_res; MYSQL_ROW row; unsigned NumGrpsInThisEvent; @@ -2902,7 +2903,7 @@ static void Att_GetListSelectedAttCods (char **StrAttCodsSelected) unsigned NumGrpSel; /***** Allocate memory for list of attendance events selected *****/ - MaxSizeListAttCodsSelected = Gbl.AttEvents.Num * (1 + 10 + 1); + MaxSizeListAttCodsSelected = Gbl.AttEvents.Num * (Cns_MAX_DECIMAL_DIGITS_LONG + 1); if ((*StrAttCodsSelected = (char *) malloc (MaxSizeListAttCodsSelected + 1)) == NULL) Lay_NotEnoughMemoryExit (); @@ -2924,7 +2925,7 @@ static void Att_GetListSelectedAttCods (char **StrAttCodsSelected) ) { /* Get next attendance event selected */ - Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,1 + 10); + Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); AttCod = Str_ConvertStrCodToLongCod (LongStr); /* Set each event in *StrAttCodsSelected as selected */ @@ -3293,7 +3294,7 @@ static void Att_WriteTableHeadSeveralAttEvents (void) extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_Attendance; unsigned NumAttEvent; - char StrNumAttEvent[10 + 1]; + char StrNumAttEvent[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; HTM_TR_Begin (NULL); diff --git a/swad_changelog.h b/swad_changelog.h index fb08cd35..1baae8a3 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -490,7 +490,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.55.4 (2019-11-07)" +#define Log_PLATFORM_VERSION "SWAD 19.56 (2019-11-08)" #define CSS_FILE "swad19.47.css" #define JS_FILE "swad19.39.js" /* @@ -498,6 +498,8 @@ ps2pdf source.ps destination.pdf // TODO: Impedir la creación y edición de proyectos si no son editables. // TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia) + Version 19.56: Nov 08, 2019 Fixed bug in groups. + New constants for sizes of numerical strings. (246104 lines) Version 19.55.4: Nov 07, 2019 Fixed bugs in dates. (246072 lines) Version 19.55.3: Nov 07, 2019 Fixed bug in form to edit user's web/social networks. (246071 lines) Version 19.55.2: Nov 07, 2019 Fixed bug creating user's record. diff --git a/swad_classroom.c b/swad_classroom.c index c28b7579..e2a7b053 100644 --- a/swad_classroom.c +++ b/swad_classroom.c @@ -75,7 +75,7 @@ static void Cla_RenameClassroom (Cns_ShrtOrFullName_t ShrtOrFullName); static bool Cla_CheckIfClassroomNameExists (const char *FieldName,const char *Name,long ClaCod); static void Cla_UpdateClaNameDB (long ClaCod,const char *FieldName,const char *NewClaName); -static void Cla_WriteCapacity (char Str[10 + 1],unsigned Capacity); +static void Cla_WriteCapacity (char Str[Cns_MAX_DECIMAL_DIGITS_UINT + 1],unsigned Capacity); static void Cla_PutFormToCreateClassroom (void); static void Cla_PutHeadClassrooms (void); @@ -100,7 +100,7 @@ void Cla_SeeClassrooms (void) Cla_Order_t Order; unsigned NumCla; unsigned RowEvenOdd; - char StrCapacity[10 + 1]; + char StrCapacity[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Trivial check *****/ if (Gbl.Hierarchy.Ctr.CtrCod <= 0) // No centre selected @@ -469,7 +469,7 @@ static void Cla_ListClassroomsForEdition (void) { unsigned NumCla; struct Classroom *Cla; - char StrCapacity[10 + 1]; + char StrCapacity[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Write heading *****/ HTM_TABLE_BeginWidePadding (2); @@ -520,7 +520,7 @@ static void Cla_ListClassroomsForEdition (void) Frm_StartForm (ActChgClaMaxStd); Cla_PutParamClaCod (Cla->ClaCod); Cla_WriteCapacity (StrCapacity,Cla->Capacity); - HTM_INPUT_TEXT ("Capacity",10,StrCapacity,true, + HTM_INPUT_TEXT ("Capacity",Cns_MAX_DECIMAL_DIGITS_UINT,StrCapacity,true, "size=\"3\""); Frm_EndForm (); HTM_TD_End (); @@ -803,10 +803,10 @@ void Cla_ChangeCapacity (void) /****************** Write seating capacity of a classroom ********************/ /*****************************************************************************/ -static void Cla_WriteCapacity (char Str[10 + 1],unsigned Capacity) +static void Cla_WriteCapacity (char Str[Cns_MAX_DECIMAL_DIGITS_UINT + 1],unsigned Capacity) { if (Capacity <= Cla_MAX_CAPACITY) - snprintf (Str,10 + 1, + snprintf (Str,Cns_MAX_DECIMAL_DIGITS_UINT + 1, "%u", Capacity); else @@ -881,7 +881,7 @@ static void Cla_PutFormToCreateClassroom (void) { extern const char *Txt_New_classroom; extern const char *Txt_Create_classroom; - char StrCapacity[10 + 1]; + char StrCapacity[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Begin form *****/ Frm_StartForm (ActNewCla); @@ -918,7 +918,7 @@ static void Cla_PutFormToCreateClassroom (void) /***** Seating capacity *****/ HTM_TD_Begin ("class=\"LM\""); Cla_WriteCapacity (StrCapacity,Cla_EditingCla->Capacity); - HTM_INPUT_TEXT ("Capacity",10,StrCapacity,false, + HTM_INPUT_TEXT ("Capacity",Cns_MAX_DECIMAL_DIGITS_UINT,StrCapacity,false, "size=\"3\""); HTM_TD_End (); diff --git a/swad_constant.h b/swad_constant.h index 4ae34f0a..81ffea55 100644 --- a/swad_constant.h +++ b/swad_constant.h @@ -56,6 +56,43 @@ #define Cns_BYTES_SESSION_ID Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 +/* +The maximum number of decimal digits d of an integer of b bits +(signed or unsigned) matches the number of digits of the number 2^b. + +In the case of signed numbers, an extra character must be added for the sign. +The number of decimal digits of a number X can be calculated as log_10(X), rounded up. + +Therefore, log_10(2^b) = b * log_10(2) = b * 0.301029995663981 + +If s is the size in bytes of a certain type of integer, +given by the sizeof operator, its size b in bits will be b = (s * 8). + +The maximum number of decimal digits will be (s * 8) * 0.301029995663981, rounded up. +Rounding up will consist of truncating (converting to an integer), and adding 1. + +Unfortunately, the use of floating point may cause problems +when evaluating the expressions as constants. It's necessary to modify them, +for example by multiplying by 2 ^ 11 and dividing by 2 ^ 8, +so that all calculations should be performed by the preprocessor with integers. +*/ + +#define LOG2_x_2_11 616 // log10(2) * 2^11 + +#define Cns_MAX_DECIMAL_DIGITS_UCHAR (((sizeof (unsigned char ) * LOG2_x_2_11) >> 8) + 1) +#define Cns_MAX_DECIMAL_DIGITS_USHORT (((sizeof (unsigned short ) * LOG2_x_2_11) >> 8) + 1) +#define Cns_MAX_DECIMAL_DIGITS_UINT (((sizeof (unsigned int ) * LOG2_x_2_11) >> 8) + 1) +#define Cns_MAX_DECIMAL_DIGITS_ULONG (((sizeof (unsigned long ) * LOG2_x_2_11) >> 8) + 1) +#define Cns_MAX_DECIMAL_DIGITS_ULONGLONG (((sizeof (unsigned long long) * LOG2_x_2_11) >> 8) + 1) +#define Cns_MAX_DECIMAL_DIGITS_UINT128 (((sizeof (unsigned __int128 ) * LOG2_x_2_11) >> 8) + 1) + +#define Cns_MAX_DECIMAL_DIGITS_CHAR (1 + Cns_MAX_DECIMAL_DIGITS_UCHAR ) +#define Cns_MAX_DECIMAL_DIGITS_SHORT (1 + Cns_MAX_DECIMAL_DIGITS_USHORT ) +#define Cns_MAX_DECIMAL_DIGITS_INT (1 + Cns_MAX_DECIMAL_DIGITS_UINT ) +#define Cns_MAX_DECIMAL_DIGITS_LONG (1 + Cns_MAX_DECIMAL_DIGITS_ULONG ) +#define Cns_MAX_DECIMAL_DIGITS_LONGLONG (1 + Cns_MAX_DECIMAL_DIGITS_ULONGLONG) +#define Cns_MAX_DECIMAL_DIGITS_INT128 (1 + Cns_MAX_DECIMAL_DIGITS_UINT128 ) + /*****************************************************************************/ /******************************* Public types ********************************/ /*****************************************************************************/ diff --git a/swad_country.c b/swad_country.c index 991f44a8..1dc91c72 100644 --- a/swad_country.c +++ b/swad_country.c @@ -2026,7 +2026,7 @@ static void Cty_PutFormToCreateCountry (void) extern const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES]; extern const char *Txt_Create_country; Lan_Language_t Lan; - char StrCtyCod[20 + 1]; + char StrCtyCod[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; char StrName[32]; /***** Begin form *****/ @@ -2053,7 +2053,7 @@ static void Cty_PutFormToCreateCountry (void) Cty_EditingCty->CtyCod); else StrCtyCod[0] = '\0'; - HTM_INPUT_TEXT ("OthCtyCod",10,StrCtyCod,false, + HTM_INPUT_TEXT ("OthCtyCod",3,StrCtyCod,false, "size=\"3\" required=\"required\""); HTM_TD_End (); diff --git a/swad_cryptography.c b/swad_cryptography.c index da7fdbbe..63c22d02 100644 --- a/swad_cryptography.c +++ b/swad_cryptography.c @@ -146,7 +146,7 @@ void Cry_EncryptSHA512Base64 (const char *PlainText, void Cry_CreateUniqueNameEncrypted (char UniqueNameEncrypted[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]) { static unsigned NumCall = 0; // When this function is called several times in the same execution of the program, each time a new name is created - char UniqueNamePlain[Cns_MAX_BYTES_IP + 1 + 10 + 1 + 10 + 1 + 10 + 1]; + char UniqueNamePlain[Cns_MAX_BYTES_IP + Cns_MAX_DECIMAL_DIGITS_LONG + Cns_MAX_DECIMAL_DIGITS_LONG + Cns_MAX_DECIMAL_DIGITS_UINT + 1]; NumCall++; snprintf (UniqueNamePlain,sizeof (UniqueNamePlain), diff --git a/swad_date.c b/swad_date.c index 9770b0bd..a0ac734c 100644 --- a/swad_date.c +++ b/swad_date.c @@ -778,7 +778,7 @@ void Dat_GetBrowserTimeZone (char BrowserTimeZone[Dat_MAX_BYTES_TIME_ZONE + 1]) MYSQL_RES *mysql_res; MYSQL_ROW row; bool TZNameIsUsable = false; - char IntStr[1 + 10 + 1]; + char IntStr[Cns_MAX_DECIMAL_DIGITS_INT + 1]; int ClientUTCMinusLocal; // Time difference between UTC time and client local time, in minutes /***** 1. Get client time zone name *****/ @@ -814,7 +814,7 @@ void Dat_GetBrowserTimeZone (char BrowserTimeZone[Dat_MAX_BYTES_TIME_ZONE + 1]) // We get client TZ difference using JavaScript getTimezoneOffset() method // getTimezoneOffset() returns UTC-time - browser-local-time, in minutes. // For example, if browser time zone is GMT+2, -120 will be returned. - Par_GetParToText ("BrowserTZDiff",IntStr,1 + 10); + Par_GetParToText ("BrowserTZDiff",IntStr,Cns_MAX_DECIMAL_DIGITS_INT); if (sscanf (IntStr,"%d",&ClientUTCMinusLocal) != 1) ClientUTCMinusLocal = 0; diff --git a/swad_figure.c b/swad_figure.c index 0a6cd3be..5b41eda9 100644 --- a/swad_figure.c +++ b/swad_figure.c @@ -2535,9 +2535,9 @@ static void Fig_WriteRowStatsFileBrowsers1 (const char *NameOfFileZones, Brw_FileBrowser_t FileZone, struct Fig_SizeOfFileZones *SizeOfFileZones) { - char StrNumCrss[10 + 1]; - char StrNumGrps[10 + 1]; - char StrNumUsrs[10 + 1]; + char StrNumCrss[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; + char StrNumGrps[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; + char StrNumUsrs[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char FileSizeStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1]; char *Class = (FileZone == Brw_UNKNOWN) ? "DAT_N_LINE_TOP" : "DAT"; @@ -2546,7 +2546,7 @@ static void Fig_WriteRowStatsFileBrowsers1 (const char *NameOfFileZones, if (SizeOfFileZones->NumCrss == -1) // Not applicable Str_Copy (StrNumCrss,"-", - 10); + Cns_MAX_DECIMAL_DIGITS_UINT); else snprintf (StrNumCrss,sizeof (StrNumCrss), "%d", @@ -2554,7 +2554,7 @@ static void Fig_WriteRowStatsFileBrowsers1 (const char *NameOfFileZones, if (SizeOfFileZones->NumGrps == -1) // Not applicable Str_Copy (StrNumGrps,"-", - 10); + Cns_MAX_DECIMAL_DIGITS_UINT); else snprintf (StrNumGrps,sizeof (StrNumGrps), "%d", @@ -2562,7 +2562,7 @@ static void Fig_WriteRowStatsFileBrowsers1 (const char *NameOfFileZones, if (SizeOfFileZones->NumUsrs == -1) // Not applicable Str_Copy (StrNumUsrs,"-", - 10); + Cns_MAX_DECIMAL_DIGITS_UINT); else snprintf (StrNumUsrs,sizeof (StrNumUsrs), "%d", @@ -2609,8 +2609,8 @@ static void Fig_WriteRowStatsFileBrowsers2 (const char *NameOfFileZones, Brw_FileBrowser_t FileZone, struct Fig_SizeOfFileZones *SizeOfFileZones) { - char StrNumFoldersPerCrs[10 + 1]; - char StrNumFilesPerCrs[10 + 1]; + char StrNumFoldersPerCrs[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; + char StrNumFilesPerCrs[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char FileSizePerCrsStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1]; char *Class = (FileZone == Brw_UNKNOWN) ? "DAT_N_LINE_TOP" : "DAT"; @@ -2618,9 +2618,9 @@ static void Fig_WriteRowStatsFileBrowsers2 (const char *NameOfFileZones, if (SizeOfFileZones->NumCrss == -1) // Not applicable { Str_Copy (StrNumFoldersPerCrs,"-", - 10); + Cns_MAX_DECIMAL_DIGITS_UINT); Str_Copy (StrNumFilesPerCrs,"-", - 10); + Cns_MAX_DECIMAL_DIGITS_UINT); Str_Copy (FileSizePerCrsStr,"-", Fil_MAX_BYTES_FILE_SIZE_STRING); } @@ -2667,8 +2667,8 @@ static void Fig_WriteRowStatsFileBrowsers3 (const char *NameOfFileZones, Brw_FileBrowser_t FileZone, struct Fig_SizeOfFileZones *SizeOfFileZones) { - char StrNumFoldersPerUsr[10 + 1]; - char StrNumFilesPerUsr[10 + 1]; + char StrNumFoldersPerUsr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; + char StrNumFilesPerUsr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char FileSizePerUsrStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1]; char *Class = (FileZone == Brw_UNKNOWN) ? "DAT_N_LINE_TOP" : "DAT"; @@ -2676,9 +2676,9 @@ static void Fig_WriteRowStatsFileBrowsers3 (const char *NameOfFileZones, if (SizeOfFileZones->NumUsrs == -1) // Not applicable { Str_Copy (StrNumFoldersPerUsr,"-", - 10); + Cns_MAX_DECIMAL_DIGITS_UINT); Str_Copy (StrNumFilesPerUsr,"-", - 10); + Cns_MAX_DECIMAL_DIGITS_UINT); Str_Copy (FileSizePerUsrStr,"-", Fil_MAX_BYTES_FILE_SIZE_STRING); } diff --git a/swad_game.c b/swad_game.c index 9bf546e4..f7f60339 100644 --- a/swad_game.c +++ b/swad_game.c @@ -56,7 +56,7 @@ extern struct Globals Gbl; #define Gam_MAX_CHARS_ANSWER (1024 - 1) // 1023 #define Gam_MAX_BYTES_ANSWER ((Gam_MAX_CHARS_ANSWER + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 16383 -#define Gam_MAX_BYTES_LIST_ANSWER_TYPES (10 + (Gam_NUM_ANS_TYPES - 1) * (1 + 10)) +// #define Gam_MAX_BYTES_LIST_ANSWER_TYPES (Gam_NUM_ANS_TYPES * (Cns_MAX_DECIMAL_DIGITS_UINT + 1)) const char *Gam_StrAnswerTypesDB[Gam_NUM_ANS_TYPES] = { @@ -67,7 +67,7 @@ const char *Gam_StrAnswerTypesDB[Gam_NUM_ANS_TYPES] = #define Gam_MAX_ANSWERS_PER_QUESTION 10 #define Gam_MAX_SELECTED_QUESTIONS 1000 -#define Gam_MAX_BYTES_LIST_SELECTED_QUESTIONS (Gam_MAX_SELECTED_QUESTIONS * (1 + 10 + 1)) +#define Gam_MAX_BYTES_LIST_SELECTED_QUESTIONS (Gam_MAX_SELECTED_QUESTIONS * (Cns_MAX_DECIMAL_DIGITS_LONG + 1)) /*****************************************************************************/ /******************************* Private types *******************************/ @@ -1631,7 +1631,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (long GamCod,unsigned NumQsts, MYSQL_ROW row; unsigned QstInd; unsigned MaxQstInd; - char StrQstInd[10 + 1]; + char StrQstInd[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Get maximum question index *****/ MaxQstInd = Gam_GetMaxQuestionIndexInGame (GamCod); @@ -1819,7 +1819,7 @@ void Gam_AddTstQuestionsToGame (void) extern const char *Txt_No_questions_have_been_added; struct Game Game; const char *Ptr; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; long QstCod; unsigned MaxQstInd; @@ -1846,7 +1846,7 @@ void Gam_AddTstQuestionsToGame (void) while (*Ptr) { /* Get next code */ - Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,1 + 10); + Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); if (sscanf (LongStr,"%ld",&QstCod) != 1) Lay_ShowErrorAndExit ("Wrong question code."); @@ -1913,14 +1913,14 @@ static unsigned Gam_CountNumQuestionsInList (void) { const char *Ptr; unsigned NumQuestions = 0; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; long QstCod; /***** Go over the list Gbl.Test.ListAnsTypes counting the number of types of answer *****/ Ptr = Gbl.Games.ListQuestions; while (*Ptr) { - Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,1 + 10); + Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); if (sscanf (LongStr,"%ld",&QstCod) != 1) Lay_ShowErrorAndExit ("Wrong question code."); NumQuestions++; diff --git a/swad_group.c b/swad_group.c index 30105a03..43db67f4 100644 --- a/swad_group.c +++ b/swad_group.c @@ -151,7 +151,7 @@ static void Grp_PutParamRemGrp (void); static void Grp_RemoveGroupTypeCompletely (void); static void Grp_RemoveGroupCompletely (void); -static void Grp_WriteMaxStds (char Str[10 + 1],unsigned MaxStudents); +static void Grp_WriteMaxStds (char Str[Cns_MAX_DECIMAL_DIGITS_UINT + 1],unsigned MaxStudents); static long Grp_GetParamGrpTypCod (void); static long Grp_GetParamGrpCod (void); static void Grp_PutParamGrpTypCod (long GrpTypCod); @@ -476,7 +476,7 @@ void Grp_PutParamsCodGrps (void) unsigned NumGrpSel; size_t MaxLengthGrpCods; char *GrpCods; - char GrpCod[20 + 1]; + char GrpCod[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Write the boolean parameter that indicates if all the groups must be listed *****/ Par_PutHiddenParamChar ("AllGroups", @@ -527,7 +527,7 @@ void Grp_GetParCodsSeveralGrpsToShowUsrs (void) /***** Get parameter with list of groups selected *****/ Grp_GetParCodsSeveralGrps (); - if (Gbl.Crs.Grps.NumGrps && // This course has groups and... + if (Gbl.Crs.Grps.NumGrps && // This course has groups and... !Gbl.Crs.Grps.LstGrpsSel.NumGrps) // ...I haven't selected any group { /***** I I haven't selected any group, show by default the groups I belong to *****/ @@ -566,9 +566,9 @@ void Grp_GetParCodsSeveralGrps (void) { char *ParamLstCodGrps; const char *Ptr; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; unsigned NumGrp; - unsigned long MaxSizeLstGrpCods = ((1 + 10 + 1) * Gbl.Crs.Grps.NumGrps) - 1; + unsigned long MaxSizeLstGrpCods = ((Cns_MAX_DECIMAL_DIGITS_LONG + 1) * Gbl.Crs.Grps.NumGrps) - 1; /***** Reset number of groups selected *****/ Gbl.Crs.Grps.LstGrpsSel.NumGrps = 0; @@ -588,7 +588,7 @@ void Grp_GetParCodsSeveralGrps (void) for (Ptr = ParamLstCodGrps, NumGrp = 0; *Ptr; NumGrp++) - Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,1 + 10); + Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); Gbl.Crs.Grps.LstGrpsSel.NumGrps = NumGrp; if (Gbl.Crs.Grps.LstGrpsSel.NumGrps) // If I have selected groups... @@ -600,7 +600,7 @@ void Grp_GetParCodsSeveralGrps (void) *Ptr; NumGrp++) { - Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,1 + 10); + Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); Gbl.Crs.Grps.LstGrpsSel.GrpCods[NumGrp] = Str_ConvertStrCodToLongCod (LongStr); } } @@ -1473,7 +1473,7 @@ static void Grp_ListGroupsForEdition (void) struct GroupType *GrpTypAux; struct Group *Grp; Rol_Role_t Role; - char StrMaxStudents[10 + 1]; + char StrMaxStudents[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Write heading *****/ HTM_TABLE_BeginWidePadding (2); @@ -1612,7 +1612,7 @@ static void Grp_ListGroupsForEdition (void) Frm_StartFormAnchor (ActChgMaxStdGrp,Grp_GROUPS_SECTION_ID); Grp_PutParamGrpCod (Grp->GrpCod); Grp_WriteMaxStds (StrMaxStudents,Grp->MaxStudents); - HTM_INPUT_TEXT ("MaxStudents",10,StrMaxStudents,true, + HTM_INPUT_TEXT ("MaxStudents",Cns_MAX_DECIMAL_DIGITS_UINT,StrMaxStudents,true, "size=\"3\""); Frm_EndForm (); HTM_TD_End (); @@ -2370,7 +2370,7 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight) extern const char *Txt_Group_X_closed; int Vacant; Rol_Role_t Role; - char StrMaxStudents[10 + 1]; + char StrMaxStudents[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Write icon to show if group is open or closed *****/ snprintf (Gbl.Title,sizeof (Gbl.Title), @@ -2564,7 +2564,7 @@ static void Grp_PutFormToCreateGroup (void) unsigned NumGrpTyp; unsigned NumCla; Rol_Role_t Role; - char StrMaxStudents[10 + 1]; + char StrMaxStudents[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Begin form *****/ HTM_SECTION_Begin (Grp_NEW_GROUP_SECTION_ID); @@ -2657,7 +2657,7 @@ static void Grp_PutFormToCreateGroup (void) /***** Maximum number of students *****/ HTM_TD_Begin ("class=\"CM\""); Grp_WriteMaxStds (StrMaxStudents,Gbl.Crs.Grps.MaxStudents); - HTM_INPUT_TEXT ("MaxStudents",10,StrMaxStudents,false, + HTM_INPUT_TEXT ("MaxStudents",Cns_MAX_DECIMAL_DIGITS_UINT,StrMaxStudents,false, "size=\"3\""); HTM_TD_End (); @@ -4614,10 +4614,10 @@ void Grp_ChangeMaxStdsGrp (void) /************* Write the maximum number of students in a group ***************/ /*****************************************************************************/ -static void Grp_WriteMaxStds (char Str[10 + 1],unsigned MaxStudents) +static void Grp_WriteMaxStds (char Str[Cns_MAX_DECIMAL_DIGITS_UINT + 1],unsigned MaxStudents) { if (MaxStudents <= Grp_MAX_STUDENTS_IN_A_GROUP) - snprintf (Str,10 + 1, + snprintf (Str,Cns_MAX_DECIMAL_DIGITS_UINT + 1, "%u", MaxStudents); else @@ -4842,8 +4842,8 @@ void Grp_PutParamGrpCod (long GrpCod) void Grp_GetLstCodsGrpWanted (struct ListCodGrps *LstGrpsWanted) { unsigned NumGrpTyp; - char Param[8 + 10 + 1]; - char LongStr[1 + 10 + 1]; + char Param[6 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; + char LongStr[1 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; char **LstStrCodGrps; const char *Ptr; unsigned NumGrpWanted; @@ -4859,7 +4859,7 @@ void Grp_GetLstCodsGrpWanted (struct ListCodGrps *LstGrpsWanted) NumGrpTyp++) { /***** Allocate memory for the list of group codes of this type *****/ - if ((LstStrCodGrps[NumGrpTyp] = (char *) malloc ((size_t) ((1 + 10 + 1) * + if ((LstStrCodGrps[NumGrpTyp] = (char *) malloc ((size_t) ((Cns_MAX_DECIMAL_DIGITS_LONG + 1) * Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps))) == NULL) Lay_NotEnoughMemoryExit (); @@ -4868,14 +4868,14 @@ void Grp_GetLstCodsGrpWanted (struct ListCodGrps *LstGrpsWanted) "GrpCod%ld", Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod); Par_GetParMultiToText (Param,LstStrCodGrps[NumGrpTyp], - ((1 + 10 + 1) * Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) - 1); + ((Cns_MAX_DECIMAL_DIGITS_LONG + 1) * Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) - 1); if (LstStrCodGrps[NumGrpTyp][0]) { /***** Count the number of groups selected of this type of LstCodGrps[NumGrpTyp] *****/ for (Ptr = LstStrCodGrps[NumGrpTyp], NumGrpWanted = 0; *Ptr; NumGrpWanted++) - Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,1 + 10); + Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); /***** Add the number of groups selected of this type to the number of groups selected total *****/ LstGrpsWanted->NumGrps += NumGrpWanted; @@ -4899,7 +4899,7 @@ void Grp_GetLstCodsGrpWanted (struct ListCodGrps *LstGrpsWanted) *Ptr; NumGrpWanted++) { - Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,1 + 10); + Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); LstGrpsWanted->GrpCods[NumGrpWanted] = Str_ConvertStrCodToLongCod (LongStr); } /* Free memory used by the list of group codes of this type */ diff --git a/swad_indicator.c b/swad_indicator.c index 86b2d2f3..e0753ca5 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -297,7 +297,7 @@ static void Ind_GetParamNumIndicators (void) { unsigned Ind; const char *Ptr; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; long Indicator; /***** Get parameter multiple with list of indicators selected *****/ @@ -318,7 +318,7 @@ static void Ind_GetParamNumIndicators (void) ) { /* Get next indicator selected */ - Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,1 + 10); + Par_GetNextStrUntilSeparParamMult (&Ptr,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); Indicator = Str_ConvertStrCodToLongCod (LongStr); /* Set each indicator in list StrIndicatorsSelected as selected */ diff --git a/swad_mail.c b/swad_mail.c index b37e789d..47999923 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -1142,7 +1142,7 @@ void Mai_ShowFormChangeMyEmail (bool IMustFillInEmail,bool IShouldConfirmEmail) { extern const char *Hlp_PROFILE_Account; extern const char *Txt_Email; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Start section *****/ HTM_SECTION_Begin (Mai_EMAIL_SECTION_ID); @@ -1174,7 +1174,7 @@ void Mai_ShowFormChangeOtherUsrEmail (void) { extern const char *Hlp_PROFILE_Account; extern const char *Txt_Email; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Start section *****/ HTM_SECTION_Begin (Mai_EMAIL_SECTION_ID); diff --git a/swad_mark.c b/swad_mark.c index 34fee70f..758285b4 100644 --- a/swad_mark.c +++ b/swad_mark.c @@ -112,7 +112,7 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (void) extern const char *Txt_TABLE_Header; extern const char *Txt_TABLE_Footer; struct MarksProperties Marks; - char StrHeadOrFoot[10 + 1]; + char StrHeadOrFoot[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; if (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER) HTM_TD_ColouredEmpty (2); @@ -133,7 +133,7 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (void) snprintf (StrHeadOrFoot,sizeof (StrHeadOrFoot), "%u", Marks.Header); - HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_HEADER],5,StrHeadOrFoot,true, + HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_HEADER],Cns_MAX_DECIMAL_DIGITS_UINT,StrHeadOrFoot,true, "size=\"1\" class=\"LST_EDIT_ROWS COLOR%u\"", Gbl.RowEvenOdd); HTM_LABEL_End (); @@ -152,7 +152,7 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (void) snprintf (StrHeadOrFoot,sizeof (StrHeadOrFoot), "%u", Marks.Footer); - HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_FOOTER],5,StrHeadOrFoot,true, + HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_FOOTER],Cns_MAX_DECIMAL_DIGITS_UINT,StrHeadOrFoot,true, "size=\"1\" class=\"LST_EDIT_ROWS COLOR%u\"", Gbl.RowEvenOdd); HTM_LABEL_End (); @@ -240,7 +240,7 @@ static void Mrk_ChangeNumRowsHeaderOrFooter (Brw_HeadOrFoot_t HeaderOrFooter) { extern const Brw_FileBrowser_t Brw_FileBrowserForDB_files[Brw_NUM_TYPES_FILE_BROWSER]; extern const char *Txt_The_number_of_rows_is_now_X; - char UnsignedStr[10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; long Cod; unsigned NumRows; @@ -248,7 +248,7 @@ static void Mrk_ChangeNumRowsHeaderOrFooter (Brw_HeadOrFoot_t HeaderOrFooter) Brw_GetParAndInitFileBrowser (); /***** Get the number of rows of the header or footer of the table of marks *****/ - Par_GetParToText (Mrk_HeadOrFootStr[HeaderOrFooter],UnsignedStr,10); + Par_GetParToText (Mrk_HeadOrFootStr[HeaderOrFooter],UnsignedStr,Cns_MAX_DECIMAL_DIGITS_UINT); if (sscanf (UnsignedStr,"%u",&NumRows) == 1) { /***** Update properties of marks in the database *****/ diff --git a/swad_match.c b/swad_match.c index dbdb0f3b..9bd82b30 100644 --- a/swad_match.c +++ b/swad_match.c @@ -1471,7 +1471,7 @@ static void Mch_ReorderAnswer (long MchCod,unsigned QstInd, unsigned NumAns; long LongNum; unsigned AnsInd; - char StrOneAnswer[10 + 1]; + char StrOneAnswer[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char StrAnswersOneQst[Tst_MAX_BYTES_ANSWERS_ONE_QST + 1]; /***** Initialize list of answers to empty string *****/ diff --git a/swad_network.c b/swad_network.c index 87d874fe..1a0bcd1a 100644 --- a/swad_network.c +++ b/swad_network.c @@ -272,7 +272,7 @@ void Net_ShowFormMyWebsAndSocialNets (void) MYSQL_ROW row; Net_WebsAndSocialNetworks_t NumURL; char URL[Cns_MAX_BYTES_WWW + 1]; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; char StrName[32]; /***** Start section *****/ diff --git a/swad_nickname.c b/swad_nickname.c index 3d6d017b..16a9e5ae 100644 --- a/swad_nickname.c +++ b/swad_nickname.c @@ -227,7 +227,7 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its extern const char *Txt_Save_changes; MYSQL_RES *mysql_res; MYSQL_ROW row; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; unsigned NumNicks; unsigned NumNick; Act_Action_t NextAction; diff --git a/swad_notice.c b/swad_notice.c index f1b77fda..7caa4cf5 100644 --- a/swad_notice.c +++ b/swad_notice.c @@ -359,7 +359,7 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing,long HighlightNotCod) extern const char *Txt_No_notices; MYSQL_RES *mysql_res; MYSQL_ROW row; - char StrWidth[10 + 2 + 1]; + char StrWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; char PathRelRSSFile[PATH_MAX + 1]; long NotCod; unsigned long NumNot; diff --git a/swad_parameter.c b/swad_parameter.c index 28692505..adfd2799 100644 --- a/swad_parameter.c +++ b/swad_parameter.c @@ -82,7 +82,7 @@ bool Par_GetQueryString (void) { char Method[Par_MAX_BYTES_METHOD + 1]; char ContentType[Par_MAX_BYTES_CONTENT_TYPE + 1]; - char UnsignedLongStr[10 + 1]; + char UnsignedLongStr[Cns_MAX_DECIMAL_DIGITS_ULONG + 1]; unsigned long UnsignedLong; Str_Copy (Method,getenv ("REQUEST_METHOD"), @@ -112,7 +112,7 @@ bool Par_GetQueryString (void) if (getenv ("CONTENT_LENGTH")) { Str_Copy (UnsignedLongStr,getenv ("CONTENT_LENGTH"), - 10); + Cns_MAX_DECIMAL_DIGITS_ULONG); if (sscanf (UnsignedLongStr,"%lu",&UnsignedLong) != 1) return false; Gbl.Params.ContentLength = (size_t) UnsignedLong; @@ -665,7 +665,7 @@ void Par_GetMainParameters (void) long ActCod; char Nickname[Nck_MAX_BYTES_NICKNAME_FROM_FORM + 1]; char URL[PATH_MAX + 1]; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Reset codes of country, institution, centre, degree and course *****/ Gbl.Hierarchy.Cty.CtyCod = @@ -815,7 +815,7 @@ void Par_GetMainParameters (void) } /***** Get country if exists (from menu) *****/ - Par_GetParToText ("cty",LongStr,1 + 10); + Par_GetParToText ("cty",LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); if (LongStr[0]) // Parameter "cty" available { Gbl.Hierarchy.Cty.CtyCod = Str_ConvertStrCodToLongCod (LongStr); @@ -826,7 +826,7 @@ void Par_GetMainParameters (void) } /***** Get institution if exists (from menu) *****/ - Par_GetParToText ("ins",LongStr,1 + 10); + Par_GetParToText ("ins",LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); if (LongStr[0]) // Parameter "ins" available { Gbl.Hierarchy.Ins.InsCod = Str_ConvertStrCodToLongCod (LongStr); @@ -836,7 +836,7 @@ void Par_GetMainParameters (void) } /***** Get centre if exists (from menu) *****/ - Par_GetParToText ("ctr",LongStr,1 + 10); + Par_GetParToText ("ctr",LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); if (LongStr[0]) // Parameter "ctr" available { Gbl.Hierarchy.Ctr.CtrCod = Str_ConvertStrCodToLongCod (LongStr); @@ -845,7 +845,7 @@ void Par_GetMainParameters (void) } /***** Get numerical degree code if exists (from menu) *****/ - Par_GetParToText ("deg",LongStr,1 + 10); + Par_GetParToText ("deg",LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); if (LongStr[0]) // Parameter "deg" available { Gbl.Hierarchy.Deg.DegCod = Str_ConvertStrCodToLongCod (LongStr); @@ -853,7 +853,7 @@ void Par_GetMainParameters (void) } /***** Get numerical course code if exists (from menu) *****/ - Par_GetParToText ("crs",LongStr,1 + 10); + Par_GetParToText ("crs",LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); if (LongStr[0]) // Parameter "crs" available Gbl.Hierarchy.Crs.CrsCod = Str_ConvertStrCodToLongCod (LongStr); // Overwrite CrsCod from session @@ -892,11 +892,11 @@ unsigned long Par_GetParToUnsignedLong (const char *ParamName, unsigned long Max, unsigned long Default) { - char UnsignedLongStr[20 + 1]; + char UnsignedLongStr[Cns_MAX_DECIMAL_DIGITS_ULONG + 1]; unsigned long UnsignedLongNum; /***** Get parameter with unsigned number *****/ - Par_GetParToText (ParamName,UnsignedLongStr,10); + Par_GetParToText (ParamName,UnsignedLongStr,Cns_MAX_DECIMAL_DIGITS_ULONG); if (sscanf (UnsignedLongStr,"%lu",&UnsignedLongNum) == 1) if (UnsignedLongNum >= Min && UnsignedLongNum <= Max) return UnsignedLongNum; @@ -910,10 +910,10 @@ unsigned long Par_GetParToUnsignedLong (const char *ParamName, long Par_GetParToLong (const char *ParamName) { - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Get parameter with long number *****/ - Par_GetParToText (ParamName,LongStr,1 + 10); + Par_GetParToText (ParamName,LongStr,Cns_MAX_DECIMAL_DIGITS_LONG); return Str_ConvertStrCodToLongCod (LongStr); } diff --git a/swad_password.c b/swad_password.c index 20f618d1..97af409a 100644 --- a/swad_password.c +++ b/swad_password.c @@ -648,7 +648,7 @@ void Pwd_ShowFormChgMyPwd (void) extern const char *Txt_Current_password; extern const char *Txt_Change_password; extern const char *Txt_Set_password; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; bool IHaveAPasswordInDB = (bool) Gbl.Usrs.Me.UsrDat.Password[0]; /***** Start section *****/ diff --git a/swad_record.c b/swad_record.c index 16b2162f..4bb27b4c 100644 --- a/swad_record.c +++ b/swad_record.c @@ -287,7 +287,7 @@ void Rec_ListFieldsRecordsForEdition (void) unsigned NumField; Rec_VisibilityRecordFields_t Vis; unsigned VisUnsigned; - char StrNumLines[10 + 1]; + char StrNumLines[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Write heading *****/ Rec_WriteHeadingRecordFields (); @@ -324,7 +324,7 @@ void Rec_ListFieldsRecordsForEdition (void) snprintf (StrNumLines,sizeof (StrNumLines), "%u", Gbl.Crs.Records.LstFields.Lst[NumField].NumLines); - HTM_INPUT_TEXT ("NumLines",2,StrNumLines,true, + HTM_INPUT_TEXT ("NumLines",Cns_MAX_DECIMAL_DIGITS_UINT,StrNumLines,true, "size=\"2\""); Frm_EndForm (); HTM_TD_End (); @@ -363,7 +363,7 @@ void Rec_ShowFormCreateRecordField (void) extern const char *Txt_Create_record_field; Rec_VisibilityRecordFields_t Vis; unsigned VisUnsigned; - char StrNumLines[10 + 1]; + char StrNumLines[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Begin form *****/ Frm_StartForm (ActNewFie); @@ -392,7 +392,7 @@ void Rec_ShowFormCreateRecordField (void) snprintf (StrNumLines,sizeof (StrNumLines), "%u", Gbl.Crs.Records.Field.NumLines); - HTM_INPUT_TEXT ("NumLines",2,StrNumLines,false, + HTM_INPUT_TEXT ("NumLines",Cns_MAX_DECIMAL_DIGITS_UINT,StrNumLines,false, "size=\"2\" required=\"required\""); HTM_TD_End (); @@ -491,15 +491,15 @@ void Rec_ReceiveFormField (void) unsigned Rec_ConvertToNumLinesField (const char *StrNumLines) { - int NumLines; + unsigned NumLines; - if (sscanf (StrNumLines,"%d",&NumLines) != 1) + if (sscanf (StrNumLines,"%u",&NumLines) != 1) return Rec_DEF_LINES_IN_EDITION_FIELD; else if (NumLines < Rec_MIN_LINES_IN_EDITION_FIELD) return Rec_MIN_LINES_IN_EDITION_FIELD; else if (NumLines > Rec_MAX_LINES_IN_EDITION_FIELD) return Rec_MAX_LINES_IN_EDITION_FIELD; - return (unsigned) NumLines; + return NumLines; } /*****************************************************************************/ @@ -1285,7 +1285,7 @@ static void Rec_ShowRecordOneTchCrs (void) { extern const char *Hlp_USERS_Teachers_timetable; extern const char *Txt_TIMETABLE_TYPES[TT_NUM_TIMETABLE_TYPES]; - char Width[10 + 2 + 1]; + char Width[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; bool ShowOfficeHours; /***** Width for office hours *****/ @@ -1370,7 +1370,7 @@ static void Rec_ListRecordsTchs (Rec_SharedRecordViewType_t TypeOfView) struct UsrData UsrDat; char RecordSectionId[32]; bool ShowOfficeHours; - char Width[10 + 2 + 1]; + char Width[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Get list of selected users if not already got *****/ Usr_GetListsSelectedUsrsCods (); @@ -1667,7 +1667,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, NULL, // Rec_CRS_PRINT_SEVERAL_RECORDS // Rec_CRS_RECORD_PRINT }; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; bool ItsMe; bool ICanEdit = false; unsigned NumField; @@ -1890,7 +1890,7 @@ unsigned long Rec_GetFieldFromCrsRecord (long UsrCod,long FieldCod,MYSQL_RES **m void Rec_GetFieldsCrsRecordFromForm (void) { unsigned NumField; - char FieldParamName[5 + 10 + 1]; + char FieldParamName[5 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; for (NumField = 0; NumField < Gbl.Crs.Records.LstFields.Num; @@ -2171,7 +2171,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView, NULL, // Rol_INS_ADM NULL, // Rol_SYS_ADM }; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; const char *ClassForm = "REC_DAT"; bool ItsMe; bool IAmLoggedAsTeacherOrSysAdm; @@ -3981,7 +3981,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) unsigned NumCty; unsigned NumIns; unsigned NumCtr; - char StrRecordWidth[10 + 1]; + char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Start section *****/ HTM_SECTION_Begin (Rec_MY_INS_CTR_DPT_ID); diff --git a/swad_role.c b/swad_role.c index 1756c9b5..a7dca315 100644 --- a/swad_role.c +++ b/swad_role.c @@ -580,7 +580,7 @@ unsigned Rol_GetSelectedRoles (void) { char StrRoles[Rol_NUM_ROLES * (10 + 1)]; const char *Ptr; - char UnsignedStr[10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; Rol_Role_t Role; unsigned Roles; @@ -596,7 +596,7 @@ unsigned Rol_GetSelectedRoles (void) for (Ptr = StrRoles; *Ptr;) { - Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,10); + Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,Cns_MAX_DECIMAL_DIGITS_UINT); Role = Rol_ConvertUnsignedStrToRole (UnsignedStr); if (Role != Rol_UNK) Roles |= (1 << Role); diff --git a/swad_survey.c b/swad_survey.c index bfb643ee..a15c2c47 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -58,7 +58,7 @@ extern struct Globals Gbl; #define Svy_MAX_CHARS_ANSWER (1024 - 1) // 1023 #define Svy_MAX_BYTES_ANSWER ((Svy_MAX_CHARS_ANSWER + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 16383 -#define Svy_MAX_BYTES_LIST_ANSWER_TYPES (10 + (Svy_NUM_ANS_TYPES - 1) * (1 + 10)) +#define Svy_MAX_BYTES_LIST_ANSWER_TYPES (Svy_NUM_ANS_TYPES * (Cns_MAX_DECIMAL_DIGITS_UINT + 1)) const char *Svy_StrAnswerTypesDB[Svy_NUM_ANS_TYPES] = { @@ -3688,9 +3688,9 @@ static void Svy_ReceiveAndStoreUserAnswersToASurvey (long SvyCod) unsigned NumQsts; long QstCod; char ParamName[3 + 10 + 6 + 1]; - char StrAnswersIndexes[Svy_MAX_ANSWERS_PER_QUESTION * (10 + 1)]; + char StrAnswersIndexes[Svy_MAX_ANSWERS_PER_QUESTION * (Cns_MAX_DECIMAL_DIGITS_UINT + 1)]; const char *Ptr; - char UnsignedStr[10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; unsigned AnsInd; /***** Get questions of this survey from database *****/ @@ -3720,11 +3720,11 @@ static void Svy_ReceiveAndStoreUserAnswersToASurvey (long SvyCod) (unsigned) QstCod); // Lay_ShowAlert (Lay_INFO,ParamName); Par_GetParMultiToText (ParamName,StrAnswersIndexes, - Svy_MAX_ANSWERS_PER_QUESTION * (10 + 1)); + Svy_MAX_ANSWERS_PER_QUESTION * (Cns_MAX_DECIMAL_DIGITS_UINT + 1)); Ptr = StrAnswersIndexes; while (*Ptr) { - Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,10); + Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,Cns_MAX_DECIMAL_DIGITS_UINT); if (sscanf (UnsignedStr,"%u",&AnsInd) == 1) // Parameter exists ==> user has checked this answer // ==> store it in database diff --git a/swad_syllabus.c b/swad_syllabus.c index aff603d1..314a05a2 100644 --- a/swad_syllabus.c +++ b/swad_syllabus.c @@ -942,7 +942,7 @@ static void Syl_PutParamNumItem (void) static void Syl_WriteNumItem (char *StrDst,FILE *FileTgt,int Level,int *CodItem) { int N; - char InStr[1 + 10 + 1]; + char InStr[Cns_MAX_DECIMAL_DIGITS_INT + 1]; if (StrDst) StrDst[0] = '\0'; diff --git a/swad_test.c b/swad_test.c index 59462462..2c3fbe4e 100644 --- a/swad_test.c +++ b/swad_test.c @@ -593,7 +593,7 @@ void Tst_AssessTest (void) static void Tst_GetQuestionsAndAnswersFromForm (void) { unsigned NumQst; - char StrQstIndOrAns[3 + 10 + 1]; // "Qstxx...x", "Indxx...x" or "Ansxx...x" + char StrQstIndOrAns[3 + Cns_MAX_DECIMAL_DIGITS_UINT + 1]; // "Qstxx...x", "Indxx...x" or "Ansxx...x" /***** Get questions and answers *****/ for (NumQst = 0; @@ -1885,7 +1885,7 @@ static void Tst_ShowFormConfigTst (void) extern const char *Txt_Save_changes; Tst_Pluggable_t Pluggable; Tst_Feedback_t Feedback; - char StrMinTimeNxtTstPerQst[20 + 1]; + char StrMinTimeNxtTstPerQst[Cns_MAX_DECIMAL_DIGITS_ULONG + 1]; /***** Read test configuration from database *****/ Tst_GetConfigTstFromDB (); @@ -1957,7 +1957,7 @@ static void Tst_ShowFormConfigTst (void) snprintf (StrMinTimeNxtTstPerQst,sizeof (StrMinTimeNxtTstPerQst), "%lu", Gbl.Test.Config.MinTimeNxtTstPerQst); - HTM_INPUT_TEXT ("MinTimeNxtTstPerQst",7,StrMinTimeNxtTstPerQst,false, + HTM_INPUT_TEXT ("MinTimeNxtTstPerQst",Cns_MAX_DECIMAL_DIGITS_ULONG,StrMinTimeNxtTstPerQst,false, "size=\"7\" required=\"required\""); HTM_TD_End (); @@ -2006,7 +2006,7 @@ static void Tst_ShowFormConfigTst (void) static void Tst_PutInputFieldNumQst (const char *Field,const char *Label, unsigned Value) { - char StrValue[10 + 1]; + char StrValue[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; HTM_TR_Begin (NULL); @@ -2020,7 +2020,7 @@ static void Tst_PutInputFieldNumQst (const char *Field,const char *Label, snprintf (StrValue,sizeof (StrValue), "%u", Value); - HTM_INPUT_TEXT (Field,3,StrValue,false, + HTM_INPUT_TEXT (Field,Cns_MAX_DECIMAL_DIGITS_UINT,StrValue,false, "size=\"3\" required=\"required\""); HTM_TD_End (); @@ -2307,7 +2307,7 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols) extern const char *Txt_TST_STR_ANSWER_TYPES[Tst_NUM_ANS_TYPES]; Tst_AnswerType_t AnsType; bool Checked; - char UnsignedStr[10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; const char *Ptr; HTM_TR_Begin (NULL); @@ -2348,7 +2348,7 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols) Ptr = Gbl.Test.ListAnsTypes; while (*Ptr) { - Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,10); + Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,Cns_MAX_DECIMAL_DIGITS_UINT); if (Tst_ConvertFromUnsignedStrToAnsTyp (UnsignedStr) == AnsType) { Checked = true; @@ -2453,10 +2453,10 @@ static unsigned long Tst_GetQuestions (MYSQL_RES **mysql_res) unsigned NumItemInList; const char *Ptr; char TagText[Tst_MAX_BYTES_TAG + 1]; - char LongStr[1 + 10 + 1]; - char UnsignedStr[10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; Tst_AnswerType_t AnsType; - char CrsCodStr[1 + 10 + 1]; + char CrsCodStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Allocate space for query *****/ if ((Query = (char *) malloc (Tst_MAX_BYTES_QUERY_TEST + 1)) == NULL) @@ -2621,9 +2621,9 @@ static unsigned long Tst_GetQuestionsForTest (MYSQL_RES **mysql_res) unsigned NumItemInList; const char *Ptr; char TagText[Tst_MAX_BYTES_TAG + 1]; - char UnsignedStr[10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; Tst_AnswerType_t AnsType; - char StrNumQsts[10 + 1]; + char StrNumQsts[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Allocate space for query *****/ if ((Query = (char *) malloc (Tst_MAX_BYTES_QUERY_TEST + 1)) == NULL) @@ -3980,14 +3980,14 @@ void Tst_GetIndexesFromStr (const char StrIndexesOneQst[Tst_MAX_BYTES_INDEXES_ON { unsigned NumOpt; const char *Ptr; - char StrOneIndex[10 + 1]; + char StrOneIndex[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Get indexes from string *****/ for (NumOpt = 0, Ptr = StrIndexesOneQst; NumOpt < Tst_MAX_OPTIONS_PER_QUESTION && *Ptr; NumOpt++) { - Par_GetNextStrUntilSeparParamMult (&Ptr,StrOneIndex,10); + Par_GetNextStrUntilSeparParamMult (&Ptr,StrOneIndex,Cns_MAX_DECIMAL_DIGITS_UINT); if (sscanf (StrOneIndex,"%u",&(Indexes[NumOpt])) != 1) Lay_ShowErrorAndExit ("Wrong index of answer."); @@ -4012,7 +4012,7 @@ void Tst_GetAnswersFromStr (const char StrAnswersOneQst[Tst_MAX_BYTES_ANSWERS_ON { unsigned NumOpt; const char *Ptr; - char StrOneAnswer[10 + 1]; + char StrOneAnswer[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; unsigned AnsUsr; /***** Initialize all answers to false *****/ @@ -4026,7 +4026,7 @@ void Tst_GetAnswersFromStr (const char StrAnswersOneQst[Tst_MAX_BYTES_ANSWERS_ON NumOpt < Tst_MAX_OPTIONS_PER_QUESTION && *Ptr; NumOpt++) { - Par_GetNextStrUntilSeparParamMult (&Ptr,StrOneAnswer,10); + Par_GetNextStrUntilSeparParamMult (&Ptr,StrOneAnswer,Cns_MAX_DECIMAL_DIGITS_UINT); if (sscanf (StrOneAnswer,"%u",&AnsUsr) != 1) Lay_ShowErrorAndExit ("Bad user's answer."); @@ -4837,7 +4837,7 @@ static bool Tst_GetParamsTst (Tst_ActionToDoWithQuestions_t ActionToDoWithQuesti extern const char *Txt_You_must_select_one_ore_more_types_of_answer; extern const char *Txt_The_number_of_questions_must_be_in_the_interval_X; bool Error = false; - char UnsignedStr[10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; unsigned UnsignedNum; /***** Tags *****/ @@ -4903,7 +4903,7 @@ static bool Tst_GetParamsTst (Tst_ActionToDoWithQuestions_t ActionToDoWithQuesti Dat_GetIniEndDatesFromForm (); /* Get ordering criteria */ - Par_GetParMultiToText ("Order",UnsignedStr,10); + Par_GetParMultiToText ("Order",UnsignedStr,Cns_MAX_DECIMAL_DIGITS_UINT); if (sscanf (UnsignedStr,"%u",&UnsignedNum) == 1) Gbl.Test.SelectedOrder = (Tst_QuestionsOrder_t) ((UnsignedNum < Tst_NUM_TYPES_ORDER_QST) ? UnsignedNum : 0); @@ -4992,13 +4992,13 @@ static int Tst_CountNumAnswerTypesInList (void) { const char *Ptr; int NumAnsTypes = 0; - char UnsignedStr[10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Go over the list Gbl.Test.ListAnsTypes counting the number of types of answer *****/ Ptr = Gbl.Test.ListAnsTypes; while (*Ptr) { - Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,10); + Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,Cns_MAX_DECIMAL_DIGITS_UINT); Tst_ConvertFromUnsignedStrToAnsTyp (UnsignedStr); NumAnsTypes++; } @@ -5087,8 +5087,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], bool OptionsDisabled; bool AnswerHasContent; bool DisplayRightColumn; - char StrTagTxt[6 + 10 + 1]; - char StrInteger[20 + 1]; + char StrTagTxt[6 + Cns_MAX_DECIMAL_DIGITS_UINT + 1]; + char StrInteger[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Begin box *****/ if (Gbl.Test.QstCod > 0) // The question already has assigned a code @@ -5269,7 +5269,7 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], snprintf (StrInteger,sizeof (StrInteger), "%ld", Gbl.Test.Answer.Integer); - HTM_INPUT_TEXT ("AnsInt",11,StrInteger,false, + HTM_INPUT_TEXT ("AnsInt",Cns_MAX_DECIMAL_DIGITS_LONG,StrInteger,false, "size=\"11\" required=\"required\"%s", Gbl.Test.AnswerType == Tst_ANS_INT ? "" : " disabled=\"disabled\""); @@ -5907,10 +5907,10 @@ static void Tst_GetQstFromForm (char *Stem,char *Feedback) unsigned NumTag; unsigned NumTagRead; unsigned NumOpt; - char UnsignedStr[10 + 1]; - char TagStr[6 + 10 + 1]; - char AnsStr[6 + 10 + 1]; - char FbStr[5 + 10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; + char TagStr[6 + Cns_MAX_DECIMAL_DIGITS_UINT + 1]; + char AnsStr[6 + Cns_MAX_DECIMAL_DIGITS_UINT + 1]; + char FbStr[5 + Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char StrMultiAns[Tst_MAX_BYTES_ANSWERS_ONE_QST + 1]; char TF[1 + 1]; // (T)rue or (F)alse const char *Ptr; @@ -5978,7 +5978,8 @@ static void Tst_GetQstFromForm (char *Stem,char *Feedback) /* Abort on error */ Ale_ShowAlertsAndExit (); - Par_GetParToText ("AnsInt",Gbl.Test.Answer.Options[0].Text,1 + 10); + Par_GetParToText ("AnsInt",Gbl.Test.Answer.Options[0].Text, + Cns_MAX_DECIMAL_DIGITS_LONG); break; case Tst_ANS_FLOAT: if (!Tst_AllocateTextChoiceAnswer (0)) @@ -6063,7 +6064,7 @@ static void Tst_GetQstFromForm (char *Stem,char *Feedback) Ptr = StrMultiAns; while (*Ptr) { - Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,10); + Par_GetNextStrUntilSeparParamMult (&Ptr,UnsignedStr,Cns_MAX_DECIMAL_DIGITS_UINT); if (sscanf (UnsignedStr,"%u",&NumCorrectAns) != 1) Lay_ShowErrorAndExit ("Wrong selected answer."); if (NumCorrectAns >= Tst_MAX_OPTIONS_PER_QUESTION) diff --git a/swad_test.h b/swad_test.h index 8e80aee9..ba1e6a50 100644 --- a/swad_test.h +++ b/swad_test.h @@ -98,7 +98,7 @@ struct Tst_Config }; #define Tst_NUM_ANS_TYPES 6 -#define Tst_MAX_BYTES_LIST_ANSWER_TYPES (10 + (Tst_NUM_ANS_TYPES - 1) * (1 + 10)) +#define Tst_MAX_BYTES_LIST_ANSWER_TYPES (Tst_NUM_ANS_TYPES * (Cns_MAX_DECIMAL_DIGITS_UINT + 1)) typedef enum { Tst_ANS_INT = 0, diff --git a/swad_timeline.c b/swad_timeline.c index 107dd3b1..6f0bbdcd 100644 --- a/swad_timeline.c +++ b/swad_timeline.c @@ -2918,7 +2918,7 @@ static void TL_PutFormToSeeAllSharersNote (const struct TL_Note *SocNot, TL_HowMany_t HowMany) { extern const char *Txt_View_all_USERS; - char ParamCod[6 + 1 + 10 + 1]; + char ParamCod[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; switch (HowMany) { @@ -2937,7 +2937,7 @@ static void TL_PutFormToSeeAllSharersNote (const struct TL_Note *SocNot, static void TL_PutFormToShaNote (const struct TL_Note *SocNot) { extern const char *Txt_Share; - char ParamCod[6 + 1 + 10 + 1]; + char ParamCod[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Form and icon to mark note as favourite *****/ sprintf (ParamCod,"NotCod=%ld",SocNot->NotCod); @@ -2948,7 +2948,7 @@ static void TL_PutFormToShaNote (const struct TL_Note *SocNot) static void TL_PutFormToUnsNote (const struct TL_Note *SocNot) { extern const char *Txt_TIMELINE_NOTE_Shared; - char ParamCod[6 + 1 + 10 + 1]; + char ParamCod[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Form and icon to mark note as favourite *****/ sprintf (ParamCod,"NotCod=%ld",SocNot->NotCod); @@ -2964,7 +2964,7 @@ static void TL_PutFormToSeeAllFaversNote (const struct TL_Note *SocNot, TL_HowMany_t HowMany) { extern const char *Txt_View_all_USERS; - char ParamCod[6 + 1 + 10 + 1]; + char ParamCod[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; switch (HowMany) { @@ -2983,7 +2983,7 @@ static void TL_PutFormToSeeAllFaversNote (const struct TL_Note *SocNot, static void TL_PutFormToFavNote (const struct TL_Note *SocNot) { extern const char *Txt_Mark_as_favourite; - char ParamCod[6 + 1 + 10 + 1]; + char ParamCod[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Form and icon to mark note as favourite *****/ sprintf (ParamCod,"NotCod=%ld",SocNot->NotCod); @@ -2994,7 +2994,7 @@ static void TL_PutFormToFavNote (const struct TL_Note *SocNot) static void TL_PutFormToUnfNote (const struct TL_Note *SocNot) { extern const char *Txt_TIMELINE_NOTE_Favourite; - char ParamCod[6 + 1 + 10 + 1]; + char ParamCod[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Form and icon to unfav (remove mark as favourite) note *****/ sprintf (ParamCod,"NotCod=%ld",SocNot->NotCod); @@ -3010,7 +3010,7 @@ static void TL_PutFormToSeeAllFaversComment (const struct TL_Comment *SocCom, TL_HowMany_t HowMany) { extern const char *Txt_View_all_USERS; - char ParamCod[6 + 1 + 10 + 1]; + char ParamCod[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; switch (HowMany) { @@ -3029,7 +3029,7 @@ static void TL_PutFormToSeeAllFaversComment (const struct TL_Comment *SocCom, static void TL_PutFormToFavComment (const struct TL_Comment *SocCom) { extern const char *Txt_Mark_as_favourite; - char ParamCod[6 + 1 + 10 + 1]; + char ParamCod[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Form and icon to mark comment as favourite *****/ sprintf (ParamCod,"PubCod=%ld",SocCom->PubCod); @@ -3040,7 +3040,7 @@ static void TL_PutFormToFavComment (const struct TL_Comment *SocCom) static void TL_PutFormToUnfComment (const struct TL_Comment *SocCom) { extern const char *Txt_TIMELINE_NOTE_Favourite; - char ParamCod[6 + 1 + 10 + 1]; + char ParamCod[7 + Cns_MAX_DECIMAL_DIGITS_LONG + 1]; /***** Form and icon to unfav (remove mark as favourite) comment *****/ sprintf (ParamCod,"PubCod=%ld",SocCom->PubCod); diff --git a/swad_user.c b/swad_user.c index 786767f6..bbe41483 100644 --- a/swad_user.c +++ b/swad_user.c @@ -1103,12 +1103,12 @@ unsigned Usr_GetNumCrssOfUsrWithARoleNotAccepted (long UsrCod,Rol_Role_t Role) /****** Get number of users with some given roles in courses of a user *******/ /*****************************************************************************/ -#define Usr_MAX_BYTES_ROLES_STR (Rol_NUM_ROLES * (10 + 1)) +#define Usr_MAX_BYTES_ROLES_STR (Rol_NUM_ROLES * (Cns_MAX_DECIMAL_DIGITS_UINT + 1)) unsigned Usr_GetNumUsrsInCrssOfAUsr (long UsrCod,Rol_Role_t UsrRole, unsigned OthersRoles) { Rol_Role_t Role; - char UnsignedStr[10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char OthersRolesStr[Usr_MAX_BYTES_ROLES_STR + 1]; char SubQueryRole[64]; unsigned NumUsrs; @@ -4427,7 +4427,7 @@ static void Usr_BuildQueryToGetUsrsLstCrs (char **Query,Rol_Role_t Role) { unsigned NumPositiveCods = 0; unsigned NumNegativeCods = 0; - char LongStr[1 + 10 + 1]; + char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; unsigned NumGrpSel; long GrpCod; unsigned NumGrpTyp; @@ -9052,7 +9052,7 @@ unsigned Usr_GetTotalNumberOfUsersInPlatform (void) unsigned Usr_GetTotalNumberOfUsersInCourses (Hie_Level_t Scope,unsigned Roles) { - char UnsignedStr[10 + 1]; + char UnsignedStr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char SubQueryRoles[Usr_MAX_BYTES_SUBQUERY_ROLES + 1]; bool AnyUserInCourses; Rol_Role_t Role;