mirror of https://github.com/acanas/swad-core.git
Version19.56
This commit is contained in:
parent
6708c63500
commit
e7b1f94c02
36
swad_API.c
36
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 *****/
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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 ();
|
||||
|
||||
|
|
|
@ -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 ********************************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -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 ();
|
||||
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
14
swad_game.c
14
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++;
|
||||
|
|
40
swad_group.c
40
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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
|
10
swad_mark.c
10
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 *****/
|
||||
|
|
|
@ -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 *****/
|
||||
|
|
|
@ -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 *****/
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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 *****/
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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';
|
||||
|
|
59
swad_test.c
59
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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue