Version 16.150

This commit is contained in:
Antonio Cañas Vargas 2017-03-07 11:03:05 +01:00
parent c596d53b72
commit 266cb4e32e
44 changed files with 439 additions and 402 deletions

View File

@ -375,7 +375,7 @@ static void Acc_ShowFormRequestNewAccountWithParams (const char *NewNicknameWith
"</tr>",
The_ClassForm[Gbl.Prefs.Theme],
Txt_Email,
Usr_MAX_BYTES_USR_EMAIL,
Usr_MAX_CHARS_USR_EMAIL,
Txt_HELP_email,
NewEmail);

View File

@ -436,7 +436,7 @@ static void Ctr_Configuration (bool PrintView)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_FULL_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Ctr_MAX_LENGTH_CENTRE_FULL_NAME,
Ctr_MAX_CHARS_CENTRE_FULL_NAME,
Gbl.CurrentCtr.Ctr.FullName,
Gbl.Form.Id);
Act_FormEnd ();
@ -465,7 +465,7 @@ static void Ctr_Configuration (bool PrintView)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_SHORT_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME,
Ctr_MAX_CHARS_CENTRE_SHRT_NAME,
Gbl.CurrentCtr.Ctr.ShrtName,
Gbl.Form.Id);
Act_FormEnd ();
@ -1036,11 +1036,11 @@ void Ctr_GetListCentres (long InsCod)
/* Get the short name of the centre (row[5]) */
Str_Copy (Ctr->ShrtName,row[5],
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME);
Ctr_MAX_BYTES_CENTRE_SHRT_NAME);
/* Get the full name of the centre (row[6]) */
Str_Copy (Ctr->FullName,row[6],
Ctr_MAX_LENGTH_CENTRE_FULL_NAME);
Ctr_MAX_BYTES_CENTRE_FULL_NAME);
/* Get the URL of the centre (row[7]) */
Str_Copy (Ctr->WWW,row[7],
@ -1134,11 +1134,11 @@ bool Ctr_GetDataOfCentreByCod (struct Centre *Ctr)
/* Get the short name of the centre (row[4]) */
Str_Copy (Ctr->ShrtName,row[4],
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME);
Ctr_MAX_BYTES_CENTRE_SHRT_NAME);
/* Get the full name of the centre (row[5]) */
Str_Copy (Ctr->FullName,row[5],
Ctr_MAX_LENGTH_CENTRE_FULL_NAME);
Ctr_MAX_BYTES_CENTRE_FULL_NAME);
/* Get the URL of the centre (row[6]) */
Str_Copy (Ctr->WWW,row[6],
@ -1221,7 +1221,7 @@ void Ctr_GetShortNameOfCentreByCod (struct Centre *Ctr)
row = mysql_fetch_row (mysql_res);
Str_Copy (Ctr->ShrtName,row[0],
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME);
Ctr_MAX_BYTES_CENTRE_SHRT_NAME);
}
/***** Free structure that stores the query result *****/
@ -1470,7 +1470,7 @@ static void Ctr_ListCentresForEdition (void)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_SHORT_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME,Ctr->ShrtName,Gbl.Form.Id);
Ctr_MAX_CHARS_CENTRE_SHRT_NAME,Ctr->ShrtName,Gbl.Form.Id);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>");
}
@ -1488,7 +1488,7 @@ static void Ctr_ListCentresForEdition (void)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_FULL_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Ctr_MAX_LENGTH_CENTRE_FULL_NAME,Ctr->FullName,Gbl.Form.Id);
Ctr_MAX_CHARS_CENTRE_FULL_NAME,Ctr->FullName,Gbl.Form.Id);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>");
}
@ -1884,32 +1884,32 @@ static void Ctr_RenameCentre (struct Centre *Ctr,Cns_ShrtOrFullName_t ShrtOrFull
extern const char *Txt_The_centre_X_already_exists;
extern const char *Txt_The_centre_X_has_been_renamed_as_Y;
extern const char *Txt_The_name_of_the_centre_X_has_not_changed;
char Query[128 + Ctr_MAX_LENGTH_CENTRE_FULL_NAME];
char Query[128 + Ctr_MAX_BYTES_CENTRE_FULL_NAME];
const char *ParamName = NULL; // Initialized to avoid warning
const char *FieldName = NULL; // Initialized to avoid warning
unsigned MaxLength = 0; // Initialized to avoid warning
unsigned NaxBytes = 0; // Initialized to avoid warning
char *CurrentCtrName = NULL; // Initialized to avoid warning
char NewCtrName[Ctr_MAX_LENGTH_CENTRE_FULL_NAME + 1];
char NewCtrName[Ctr_MAX_BYTES_CENTRE_FULL_NAME + 1];
switch (ShrtOrFullName)
{
case Cns_SHRT_NAME:
ParamName = "ShortName";
FieldName = "ShortName";
MaxLength = Ctr_MAX_LENGTH_CENTRE_SHRT_NAME;
NaxBytes = Ctr_MAX_BYTES_CENTRE_SHRT_NAME;
CurrentCtrName = Ctr->ShrtName;
break;
case Cns_FULL_NAME:
ParamName = "FullName";
FieldName = "FullName";
MaxLength = Ctr_MAX_LENGTH_CENTRE_FULL_NAME;
NaxBytes = Ctr_MAX_BYTES_CENTRE_FULL_NAME;
CurrentCtrName = Ctr->FullName;
break;
}
/***** Get parameters from form *****/
/* Get the new name for the centre */
Par_GetParToText (ParamName,NewCtrName,MaxLength);
Par_GetParToText (ParamName,NewCtrName,NaxBytes);
/***** Get from the database the old names of the centre *****/
Ctr_GetDataOfCentreByCod (Ctr);
@ -1946,7 +1946,7 @@ static void Ctr_RenameCentre (struct Centre *Ctr,Cns_ShrtOrFullName_t ShrtOrFull
/* Change current centre name in order to display it properly */
Str_Copy (CurrentCtrName,NewCtrName,
MaxLength);
NaxBytes);
}
}
else // The same name
@ -1961,7 +1961,7 @@ static void Ctr_RenameCentre (struct Centre *Ctr,Cns_ShrtOrFullName_t ShrtOrFull
static bool Ctr_CheckIfCtrNameExistsInIns (const char *FieldName,const char *Name,long CtrCod,long InsCod)
{
char Query[256 + Ctr_MAX_LENGTH_CENTRE_FULL_NAME];
char Query[256 + Ctr_MAX_BYTES_CENTRE_FULL_NAME];
/***** Get number of centres with a name from database *****/
sprintf (Query,"SELECT COUNT(*) FROM centres"
@ -2283,8 +2283,8 @@ void Ctr_ReceivePhoto (void)
return;
}
LengthExtension = strlen (PtrExtension);
if (LengthExtension < Fil_MIN_LENGTH_FILE_EXTENSION ||
LengthExtension > Fil_MAX_LENGTH_FILE_EXTENSION)
if (LengthExtension < Fil_MIN_BYTES_FILE_EXTENSION ||
LengthExtension > Fil_MAX_BYTES_FILE_EXTENSION)
{
Lay_ShowAlert (Lay_WARNING,Txt_Wrong_file_type);
return;
@ -2355,12 +2355,12 @@ void Ctr_ReceivePhoto (void)
void Ctr_ChangeCtrPhotoAttribution (void)
{
char Query[256 + Ctr_MAX_LENGTH_PHOTO_ATTRIBUTION];
char NewPhotoAttribution[Ctr_MAX_LENGTH_PHOTO_ATTRIBUTION + 1];
char Query[256 + Ctr_MAX_BYTES_PHOTO_ATTRIBUTION];
char NewPhotoAttribution[Ctr_MAX_BYTES_PHOTO_ATTRIBUTION + 1];
/***** Get parameters from form *****/
/* Get the new photo attribution for the centre */
Par_GetParToText ("Attribution",NewPhotoAttribution,Ctr_MAX_LENGTH_PHOTO_ATTRIBUTION);
Par_GetParToText ("Attribution",NewPhotoAttribution,Ctr_MAX_BYTES_PHOTO_ATTRIBUTION);
/***** Update the table changing old attribution by new attribution *****/
sprintf (Query,"UPDATE centres SET PhotoAttribution='%s'"
@ -2443,7 +2443,7 @@ static void Ctr_PutFormToCreateCentre (void)
" class=\"INPUT_SHORT_NAME\""
" required=\"required\" />"
"</td>",
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME,Ctr->ShrtName);
Ctr_MAX_CHARS_CENTRE_SHRT_NAME,Ctr->ShrtName);
/***** Centre full name *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
@ -2452,7 +2452,7 @@ static void Ctr_PutFormToCreateCentre (void)
" class=\"INPUT_FULL_NAME\""
" required=\"required\" />"
"</td>",
Ctr_MAX_LENGTH_CENTRE_FULL_NAME,Ctr->FullName);
Ctr_MAX_CHARS_CENTRE_FULL_NAME,Ctr->FullName);
/***** Centre WWW *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
@ -2671,10 +2671,10 @@ static void Ctr_RecFormRequestOrCreateCtr (unsigned Status)
Lay_ShowAlert (Lay_ERROR,"Wrong place.");
/* Get centre short name */
Par_GetParToText ("ShortName",Ctr->ShrtName,Ctr_MAX_LENGTH_CENTRE_SHRT_NAME);
Par_GetParToText ("ShortName",Ctr->ShrtName,Ctr_MAX_BYTES_CENTRE_SHRT_NAME);
/* Get centre full name */
Par_GetParToText ("FullName",Ctr->FullName,Ctr_MAX_LENGTH_CENTRE_FULL_NAME);
Par_GetParToText ("FullName",Ctr->FullName,Ctr_MAX_BYTES_CENTRE_FULL_NAME);
/* Get centre WWW */
Par_GetParToText ("WWW",Ctr->WWW,Cns_MAX_BYTES_WWW);
@ -2723,8 +2723,8 @@ static void Ctr_CreateCentre (struct Centre *Ctr,unsigned Status)
{
extern const char *Txt_Created_new_centre_X;
char Query[512 +
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME +
Ctr_MAX_LENGTH_CENTRE_FULL_NAME +
Ctr_MAX_BYTES_CENTRE_SHRT_NAME +
Ctr_MAX_BYTES_CENTRE_FULL_NAME +
Cns_MAX_BYTES_WWW];
/***** Create a new centre *****/

View File

@ -57,9 +57,14 @@ typedef enum
#define Ctr_MAX_CENTRES_PER_USR 10 // Used in list of my centres
#define Ctr_MAX_LENGTH_CENTRE_SHRT_NAME 32
#define Ctr_MAX_LENGTH_CENTRE_FULL_NAME 127
#define Ctr_MAX_LENGTH_PHOTO_ATTRIBUTION (4 * 1024)
#define Ctr_MAX_CHARS_CENTRE_SHRT_NAME 32
#define Ctr_MAX_BYTES_CENTRE_SHRT_NAME (Ctr_MAX_CHARS_CENTRE_SHRT_NAME * Str_MAX_BYTES_PER_CHAR)
#define Ctr_MAX_CHARS_CENTRE_FULL_NAME (128 - 1)
#define Ctr_MAX_BYTES_CENTRE_FULL_NAME (Ctr_MAX_CHARS_CENTRE_FULL_NAME * Str_MAX_BYTES_PER_CHAR)
#define Ctr_MAX_CHARS_PHOTO_ATTRIBUTION 512
#define Ctr_MAX_BYTES_PHOTO_ATTRIBUTION (Ctr_MAX_CHARS_PHOTO_ATTRIBUTION * Str_MAX_BYTES_PER_CHAR)
struct Centre
{
@ -68,8 +73,8 @@ struct Centre
long PlcCod; // Place code
Ctr_Status_t Status; // Centre status
long RequesterUsrCod; // User code of the person who requested the creation of this centre
char ShrtName[Ctr_MAX_LENGTH_CENTRE_SHRT_NAME + 1];
char FullName[Ctr_MAX_LENGTH_CENTRE_FULL_NAME + 1];
char ShrtName[Ctr_MAX_BYTES_CENTRE_SHRT_NAME + 1];
char FullName[Ctr_MAX_BYTES_CENTRE_FULL_NAME + 1];
char WWW[Cns_MAX_BYTES_WWW + 1];
unsigned NumUsrsWhoClaimToBelongToCtr; // Number of users who claim to belong in this centre
struct ListDegrees Degs; // List of degrees in this centre

View File

@ -204,13 +204,14 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.149 (2017-03-07)"
#define Log_PLATFORM_VERSION "SWAD 16.150 (2017-03-07)"
#define CSS_FILE "swad16.147.css"
#define JS_FILE "swad16.144.js"
// Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/*
Version 16.150: Mar 07, 2017 Code refactoring related to number of chars and bytes. (216409 lines)
Version 16.149: Mar 07, 2017 Code refactoring related to number of chars and bytes. (216385 lines)
Version 16.148: Mar 06, 2017 Code refactoring in notifications. (216393 lines)
Version 16.147.11:Mar 06, 2017 Changes in names of zipped files. (216388 lines)

View File

@ -51,15 +51,20 @@ extern struct Globals Gbl;
#define Cht_CHAT_MAX_LEVELS 3
#define MAX_LENGTH_ROOM_CODE 16 // Maximum length of the code of a chat room
#define MAX_LENGTH_ROOM_SHRT_NAME 128 // Maximum length of the short name of a chat room
#define MAX_LENGTH_ROOM_FULL_NAME 256 // Maximum length of the full name of a chat room
#define Cht_MAX_CHARS_ROOM_CODE 16 // Maximum number of chars of the code of a chat room
#define Cht_MAX_BYTES_ROOM_CODE Cht_MAX_CHARS_ROOM_CODE
#define Cht_MAX_CHARS_ROOM_SHRT_NAME (128 - 1) // Maximum number of chars of the short name of a chat room
#define Cht_MAX_BYTES_ROOM_SHRT_NAME (Cht_MAX_CHARS_ROOM_SHRT_NAME * Str_MAX_BYTES_PER_CHAR)
#define Cht_MAX_CHARS_ROOM_FULL_NAME (256 - 1) // Maximum number of chars of the full name of a chat room
#define Cht_MAX_BYTES_ROOM_FULL_NAME (Cht_MAX_CHARS_ROOM_FULL_NAME * Str_MAX_BYTES_PER_CHAR)
/*****************************************************************************/
/***************************** Private prototypes ****************************/
/*****************************************************************************/
static void Cht_WriteLinkToChat1 (const char *RoomCode,const char *RoomShortName,const char *RoomFullName,
static void Cht_WriteLinkToChat1 (const char *RoomCode,const char *RoomShrtName,const char *RoomFullName,
unsigned Level,bool IsLastItemInLevel[1 + Cht_CHAT_MAX_LEVELS]);
static void Cht_WriteLinkToChat2 (const char *RoomCode,const char *RoomFullName);
static unsigned Cht_GetNumUsrsInChatRoom (const char *RoomCode);
@ -108,9 +113,9 @@ void Cht_ShowListOfAvailableChatRooms (void)
MYSQL_ROW row;
unsigned long NumRow;
unsigned long NumRows;
char ThisRoomCode [MAX_LENGTH_ROOM_CODE + 1];
char ThisRoomShrtName[MAX_LENGTH_ROOM_SHRT_NAME + 1];
char ThisRoomFullName[MAX_LENGTH_ROOM_FULL_NAME + 1];
char ThisRoomCode [Cht_MAX_BYTES_ROOM_CODE + 1];
char ThisRoomShrtName[Cht_MAX_BYTES_ROOM_SHRT_NAME + 1];
char ThisRoomFullName[Cht_MAX_BYTES_ROOM_FULL_NAME + 1];
/***** Fill the list with the degrees I belong to *****/
Usr_GetMyDegrees ();
@ -294,7 +299,7 @@ void Cht_ShowListOfChatRoomsWithUsrs (void)
/******************** Write title and link to a chat room ********************/
/*****************************************************************************/
static void Cht_WriteLinkToChat1 (const char *RoomCode,const char *RoomShortName,const char *RoomFullName,
static void Cht_WriteLinkToChat1 (const char *RoomCode,const char *RoomShrtName,const char *RoomFullName,
unsigned Level,bool IsLastItemInLevel[1 + Cht_CHAT_MAX_LEVELS])
{
extern const char *The_ClassForm[The_NUM_THEMES];
@ -302,7 +307,7 @@ static void Cht_WriteLinkToChat1 (const char *RoomCode,const char *RoomShortName
fprintf (Gbl.F.Out,"<li style=\"height:25px;\">");
Lay_IndentDependingOnLevel (Level,IsLastItemInLevel);
Act_FormStart (ActCht);
Cht_WriteParamsRoomCodeAndNames (RoomCode,RoomShortName,RoomFullName);
Cht_WriteParamsRoomCodeAndNames (RoomCode,RoomShrtName,RoomFullName);
Act_LinkFormSubmit (RoomFullName,The_ClassForm[Gbl.Prefs.Theme],NULL);
}
@ -332,10 +337,10 @@ static void Cht_WriteLinkToChat2 (const char *RoomCode,const char *RoomFullName)
/*** Write parameters with code and names (short and full) of a chat room ****/
/*****************************************************************************/
void Cht_WriteParamsRoomCodeAndNames (const char *RoomCode,const char *RoomShortName,const char *RoomFullName)
void Cht_WriteParamsRoomCodeAndNames (const char *RoomCode,const char *RoomShrtName,const char *RoomFullName)
{
Par_PutHiddenParamString ("RoomCode",RoomCode);
Par_PutHiddenParamString ("RoomShortName",RoomShortName);
Par_PutHiddenParamString ("RoomShrtName",RoomShrtName);
Par_PutHiddenParamString ("RoomFullName",RoomFullName);
}
@ -372,9 +377,9 @@ static unsigned Cht_GetNumUsrsInChatRoom (const char *RoomCode)
/******************************* Enter a chat room ***************************/
/*****************************************************************************/
#define Cht_MAX_LENGTH_ROOM_CODES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * MAX_LENGTH_ROOM_CODE)
#define Cht_MAX_LENGTH_ROOM_SHRT_NAMES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * MAX_LENGTH_ROOM_SHRT_NAME)
#define Cht_MAX_LENGTH_ROOM_FULL_NAMES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * MAX_LENGTH_ROOM_FULL_NAME)
#define Cht_MAX_BYTES_ROOM_CODES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * Cht_MAX_BYTES_ROOM_CODE)
#define Cht_MAX_BYTES_ROOM_SHRT_NAMES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * Cht_MAX_BYTES_ROOM_SHRT_NAME)
#define Cht_MAX_BYTES_ROOM_FULL_NAMES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * Cht_MAX_BYTES_ROOM_FULL_NAME)
void Cht_OpenChatWindow (void)
{
@ -386,30 +391,30 @@ void Cht_OpenChatWindow (void)
extern const char *Txt_Teachers_ABBREVIATION;
extern const char *Txt_Degree;
extern const char *Txt_Course;
char RoomCode [MAX_LENGTH_ROOM_CODE + 1];
char RoomShortName[MAX_LENGTH_ROOM_SHRT_NAME + 1];
char RoomFullName [MAX_LENGTH_ROOM_FULL_NAME + 1];
char RoomCode[Cht_MAX_BYTES_ROOM_CODE + 1];
char RoomShrtName[Cht_MAX_BYTES_ROOM_SHRT_NAME + 1];
char RoomFullName [Cht_MAX_BYTES_ROOM_FULL_NAME + 1];
char UsrName[Usr_MAX_BYTES_FULL_NAME + 1];
unsigned NumMyDeg;
unsigned NumMyCrs;
struct Degree Deg;
struct Course Crs;
char ThisRoomCode [MAX_LENGTH_ROOM_CODE + 1];
char ThisRoomShortName[MAX_LENGTH_ROOM_SHRT_NAME + 1];
char ThisRoomFullName [MAX_LENGTH_ROOM_FULL_NAME + 1];
char ListRoomCodes [Cht_MAX_LENGTH_ROOM_CODES + 1];
char ListRoomShortNames[Cht_MAX_LENGTH_ROOM_SHRT_NAMES + 1];
char ListRoomFullNames [Cht_MAX_LENGTH_ROOM_FULL_NAMES + 1];
char ThisRoomCode[Cht_MAX_BYTES_ROOM_CODE + 1];
char ThisRoomShortName[Cht_MAX_BYTES_ROOM_SHRT_NAME + 1];
char ThisRoomFullName [Cht_MAX_BYTES_ROOM_FULL_NAME + 1];
char ListRoomCodes [Cht_MAX_BYTES_ROOM_CODES + 1];
char ListRoomShrtNames[Cht_MAX_BYTES_ROOM_SHRT_NAMES + 1];
char ListRoomFullNames [Cht_MAX_BYTES_ROOM_FULL_NAMES + 1];
FILE *FileChat;
/***** Get the code and the nombre of the room *****/
Par_GetParToText ("RoomCode",RoomCode,MAX_LENGTH_ROOM_CODE);
Par_GetParToText ("RoomCode",RoomCode,Cht_MAX_BYTES_ROOM_CODE);
Par_GetParToText ("RoomShortName",RoomShortName,MAX_LENGTH_ROOM_SHRT_NAME);
Par_GetParToText ("RoomShrtName",RoomShrtName,Cht_MAX_BYTES_ROOM_SHRT_NAME);
Par_GetParToText ("RoomFullName",RoomFullName,MAX_LENGTH_ROOM_FULL_NAME);
Par_GetParToText ("RoomFullName",RoomFullName,Cht_MAX_BYTES_ROOM_FULL_NAME);
if (!RoomCode[0] || !RoomShortName[0] || !RoomFullName[0])
if (!RoomCode[0] || !RoomShrtName[0] || !RoomFullName[0])
Lay_ShowErrorAndExit ("Wrong code or name of chat room.");
if (strcspn (RoomCode," \t\n\r") != strlen (RoomCode)) // If RoomCode contiene espacios
Lay_ShowErrorAndExit ("Wrong code of chat room.");
@ -435,56 +440,56 @@ void Cht_OpenChatWindow (void)
/***** Build the lists of available rooms *****/
sprintf (ListRoomCodes,"#%s",RoomCode);
Str_Copy (ListRoomShortNames,RoomShortName,
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
Str_Copy (ListRoomShrtNames,RoomShrtName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
Str_Copy (ListRoomFullNames ,RoomFullName,
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
Cht_MAX_BYTES_ROOM_FULL_NAMES);
if (strcmp (RoomCode,"GBL_USR"))
{
Str_Concat (ListRoomCodes,"|#GBL_USR",
Cht_MAX_LENGTH_ROOM_CODES);
Cht_MAX_BYTES_ROOM_CODES);
sprintf (RoomShortName,"|%s",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL]);
Str_Concat (ListRoomShortNames,RoomShortName,
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
sprintf (RoomShrtName,"|%s",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL]);
Str_Concat (ListRoomShrtNames,RoomShrtName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (RoomFullName,"|%s (%s)",
Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
Str_Concat (ListRoomFullNames,RoomFullName,
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
Cht_MAX_BYTES_ROOM_FULL_NAMES);
}
if (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT)
if (strcmp (RoomCode,"GBL_STD"))
{
Str_Concat (ListRoomCodes,"|#GBL_STD",
Cht_MAX_LENGTH_ROOM_CODES);
Cht_MAX_BYTES_ROOM_CODES);
sprintf (RoomShortName,"|%s",Txt_Students_ABBREVIATION);
Str_Concat (ListRoomShortNames,RoomShortName,
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
sprintf (RoomShrtName,"|%s",Txt_Students_ABBREVIATION);
Str_Concat (ListRoomShrtNames,RoomShrtName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (RoomFullName,"|%s (%s)",Txt_General,
Txt_ROLES_PLURAL_abc[Rol_STUDENT][Usr_SEX_ALL]);
Str_Concat (ListRoomFullNames,RoomFullName,
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
Cht_MAX_BYTES_ROOM_FULL_NAMES);
}
if (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER)
if (strcmp (RoomCode,"GBL_TCH"))
{
Str_Concat (ListRoomCodes,"|#GBL_TCH",
Cht_MAX_LENGTH_ROOM_CODES);
Cht_MAX_BYTES_ROOM_CODES);
sprintf (RoomShortName,"|%s",Txt_Teachers_ABBREVIATION);
Str_Concat (ListRoomShortNames,RoomShortName,
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
sprintf (RoomShrtName,"|%s",Txt_Teachers_ABBREVIATION);
Str_Concat (ListRoomShrtNames,RoomShrtName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (RoomFullName,"|%s (%s)",
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TEACHER][Usr_SEX_ALL]);
Str_Concat (ListRoomFullNames,RoomFullName,
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
Cht_MAX_BYTES_ROOM_FULL_NAMES);
}
for (NumMyDeg = 0;
@ -495,25 +500,25 @@ void Cht_OpenChatWindow (void)
if (strcmp (RoomCode,ThisRoomCode))
{
Str_Concat (ListRoomCodes,"|#",
Cht_MAX_LENGTH_ROOM_CODES);
Cht_MAX_BYTES_ROOM_CODES);
Str_Concat (ListRoomCodes,ThisRoomCode,
Cht_MAX_LENGTH_ROOM_CODES);
Cht_MAX_BYTES_ROOM_CODES);
/* Get data of this degree */
Deg.DegCod = Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod;
Deg_GetDataOfDegreeByCod (&Deg);
sprintf (ThisRoomShortName,"%s",Deg.ShrtName);
Str_Concat (ListRoomShortNames,"|",
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
Str_Concat (ListRoomShortNames,ThisRoomShortName,
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
Str_Concat (ListRoomShrtNames,"|",
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (ThisRoomFullName,"%s %s",Txt_Degree,Deg.ShrtName);
Str_Concat (ListRoomFullNames,"|",
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
Cht_MAX_BYTES_ROOM_FULL_NAMES);
Str_Concat (ListRoomFullNames,ThisRoomFullName,
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
Cht_MAX_BYTES_ROOM_FULL_NAMES);
}
}
@ -525,25 +530,25 @@ void Cht_OpenChatWindow (void)
if (strcmp (RoomCode,ThisRoomCode))
{
Str_Concat (ListRoomCodes,"|#",
Cht_MAX_LENGTH_ROOM_CODES);
Cht_MAX_BYTES_ROOM_CODES);
Str_Concat (ListRoomCodes,ThisRoomCode,
Cht_MAX_LENGTH_ROOM_CODES);
Cht_MAX_BYTES_ROOM_CODES);
/* Get data of this course */
Crs.CrsCod = Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod;
Crs_GetDataOfCourseByCod (&Crs);
sprintf (ThisRoomShortName,"%s",Crs.ShrtName);
Str_Concat (ListRoomShortNames,"|",
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
Str_Concat (ListRoomShortNames,ThisRoomShortName,
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
Str_Concat (ListRoomShrtNames,"|",
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (ThisRoomFullName,"%s %s",Txt_Course,Crs.ShrtName);
Str_Concat (ListRoomFullNames,"|",
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
Cht_MAX_BYTES_ROOM_FULL_NAMES);
Str_Concat (ListRoomFullNames,ThisRoomFullName,
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
Cht_MAX_BYTES_ROOM_FULL_NAMES);
}
}
@ -579,7 +584,7 @@ void Cht_OpenChatWindow (void)
fprintf (Gbl.F.Out,"\n<param name=\"channel_name\" value=\"%s\">",
ListRoomCodes);
fprintf (Gbl.F.Out,"\n<param name=\"tab\" value=\"%s\">",
ListRoomShortNames);
ListRoomShrtNames);
fprintf (Gbl.F.Out,"\n<param name=\"topic\" value=\"%s\">",
ListRoomFullNames);

View File

@ -497,7 +497,7 @@ void Con_ShowConnectedUsrsBelongingToCurrentCrs (void)
{
extern const char *Txt_Connected_users;
extern const char *Txt_from;
char CourseName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1];
char CourseName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1];
struct ConnectedUsrs Usrs;
if (Gbl.CurrentCrs.Crs.CrsCod <= 0) // There is no course selected
@ -513,7 +513,7 @@ void Con_ShowConnectedUsrsBelongingToCurrentCrs (void)
// is dynamically updated via AJAX
Act_LinkFormSubmitUnique (Txt_Connected_users,"CONNECTED_TXT");
Str_Copy (CourseName,Gbl.CurrentCrs.Crs.ShrtName,
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
Crs_MAX_BYTES_COURSE_SHRT_NAME);
Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_UNKNOWN,&Usrs);
fprintf (Gbl.F.Out,"%u %s %s"
"</a>",

View File

@ -36,10 +36,11 @@
#define Cns_MAX_CHARS_WWW (256 - 1) // Max. number of chars of a URL
#define Cns_MAX_BYTES_WWW Cns_MAX_CHARS_WWW
#define Cns_MAX_LENGTH_IP (16 - 1) // Max. bytes of an IP address
#define Cns_MAX_CHARS_IP (16 - 1) // Max. number of chars of an IP address
#define Cns_MAX_BYTES_IP Cns_MAX_CHARS_IP
#define Cns_MAX_LENGTH_DATE (4 + 1 + 2 + 1 + 2)
#define Cns_MAX_BYTES_DATE 19 // Examples: "20030614143857", "14/06/2003 14:38:57"
#define Cns_MAX_CHARS_DATE (4 + 1 + 2 + 1 + 2)
#define Cns_MAX_BYTES_DATE Cns_MAX_CHARS_DATE
#define Cns_MAX_CHARS_SUBJECT (256 - 1)
#define Cns_MAX_BYTES_SUBJECT (Cns_MAX_CHARS_SUBJECT * Str_MAX_BYTES_PER_CHAR)
@ -50,8 +51,8 @@
#define Cns_MAX_BYTES_TEXT ( 64 * 1024 - 1) // Used for medium texts
#define Cns_MAX_BYTES_LONG_TEXT (256 * 1024 - 1) // Used for big contents
#define Cns_MAX_LENGTH_STRING (128 - 1)
#define Cns_MAX_BYTES_STRING (128 - 1)
#define Cns_MAX_CHARS_STRING (128 - 1)
#define Cns_MAX_BYTES_STRING (Cns_MAX_CHARS_STRING * Str_MAX_BYTES_PER_CHAR)
/*****************************************************************************/
/******************************* Public types ********************************/

View File

@ -973,18 +973,18 @@ void Cty_EditCountries (void)
/************************** List all the countries ***************************/
/*****************************************************************************/
#define Cty_MAX_LENGTH_SUBQUERY_CTYS ((1 + Txt_NUM_LANGUAGES) * 32)
#define Cty_MAX_BYTES_SUBQUERY_CTYS ((1 + Txt_NUM_LANGUAGES) * 32)
void Cty_GetListCountries (Cty_GetExtraData_t GetExtraData)
{
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
char StrField[32];
char SubQueryNam1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char SubQueryNam2[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char SubQueryWWW1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char SubQueryWWW2[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char SubQueryNam1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char SubQueryNam2[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char SubQueryWWW1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char SubQueryWWW2[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char OrderBySubQuery[256];
char Query[1024 + Cty_MAX_LENGTH_SUBQUERY_CTYS * 4];
char Query[1024 + Cty_MAX_BYTES_SUBQUERY_CTYS * 4];
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned long NumRows;
@ -1013,20 +1013,20 @@ void Cty_GetListCountries (Cty_GetExtraData_t GetExtraData)
sprintf (StrField,"countries.Name_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam1,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"Name_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam2,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"countries.WWW_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW1,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"WWW_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW2,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
}
switch (Gbl.Ctys.SelectedOrder)
@ -1245,11 +1245,11 @@ bool Cty_GetDataOfCountryByCod (struct Country *Cty,Cty_GetExtraData_t GetExtraD
extern const char *Txt_Another_country;
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
char StrField[32];
char SubQueryNam1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char SubQueryNam2[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char SubQueryWWW1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char SubQueryWWW2[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char Query[1024 + Cty_MAX_LENGTH_SUBQUERY_CTYS * 4];
char SubQueryNam1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char SubQueryNam2[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char SubQueryWWW1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char SubQueryWWW2[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char Query[1024 + Cty_MAX_BYTES_SUBQUERY_CTYS * 4];
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned long NumRows;
@ -1309,17 +1309,17 @@ bool Cty_GetDataOfCountryByCod (struct Country *Cty,Cty_GetExtraData_t GetExtraD
{
sprintf (StrField,"countries.Name_%s,",Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam1,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"Name_%s,",Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam2,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"countries.WWW_%s,",Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW1,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"WWW_%s,",Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW2,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
}
sprintf (Query,"(SELECT countries.Alpha2,%s%sCOUNT(*) AS NumUsrs"
" FROM countries,usr_data"
@ -1604,7 +1604,7 @@ static void Cty_ListCountriesForEdition (void)
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"Name\""
" size=\"15\" maxlength=\"%u\" value=\"%s\""
" onchange=\"document.getElementById('%s').submit();\" />",
Cty_MAX_BYTES_COUNTRY_NAME,
Cty_MAX_CHARS_COUNTRY_NAME,
Cty->Name[Lan],Gbl.Form.Id);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>");
@ -1882,12 +1882,12 @@ void Cty_ChangeCtyWWW (void)
void Cty_ChangeCtyMapAttribution (void)
{
char Query[256 + Cty_MAX_LENGTH_MAP_ATTRIBUTION];
char NewMapAttribution[Cty_MAX_LENGTH_MAP_ATTRIBUTION + 1];
char Query[256 + Cty_MAX_BYTES_MAP_ATTRIBUTION];
char NewMapAttribution[Cty_MAX_BYTES_MAP_ATTRIBUTION + 1];
/***** Get parameters from form *****/
/* Get the new map attribution for the country */
Par_GetParToText ("Attribution",NewMapAttribution,Cty_MAX_LENGTH_MAP_ATTRIBUTION);
Par_GetParToText ("Attribution",NewMapAttribution,Cty_MAX_BYTES_MAP_ATTRIBUTION);
/***** Update the table changing old attribution by new attribution *****/
sprintf (Query,"UPDATE countries SET MapAttribution='%s'"
@ -1983,7 +1983,7 @@ static void Cty_PutFormToCreateCountry (void)
" required=\"required\" />"
"</td>",
Txt_STR_LANG_ID[Lan],
Cty_MAX_BYTES_COUNTRY_NAME,
Cty_MAX_CHARS_COUNTRY_NAME,
Cty->Name[Lan]);
/* WWW */
@ -2155,8 +2155,8 @@ void Cty_RecFormNewCountry (void)
/**************************** Create a new country ***************************/
/*****************************************************************************/
#define Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME ((1 + Txt_NUM_LANGUAGES) * Cty_MAX_BYTES_COUNTRY_NAME)
#define Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW ((1 + Txt_NUM_LANGUAGES) * Cns_MAX_BYTES_WWW)
#define Cty_MAX_BYTES_SUBQUERY_CTYS_NAME ((1 + Txt_NUM_LANGUAGES) * Cty_MAX_BYTES_COUNTRY_NAME)
#define Cty_MAX_BYTES_SUBQUERY_CTYS_WWW ((1 + Txt_NUM_LANGUAGES) * Cns_MAX_BYTES_WWW)
static void Cty_CreateCountry (struct Country *Cty)
{
@ -2164,15 +2164,15 @@ static void Cty_CreateCountry (struct Country *Cty)
extern const char *Txt_Created_new_country_X;
Txt_Language_t Lan;
char StrField[32];
char SubQueryNam1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char SubQueryNam2[Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME + 1];
char SubQueryWWW1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
char SubQueryWWW2[Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW + 1];
char SubQueryNam1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char SubQueryNam2[Cty_MAX_BYTES_SUBQUERY_CTYS_NAME + 1];
char SubQueryWWW1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
char SubQueryWWW2[Cty_MAX_BYTES_SUBQUERY_CTYS_WWW + 1];
char Query[1024 +
Cty_MAX_LENGTH_SUBQUERY_CTYS +
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME +
Cty_MAX_LENGTH_SUBQUERY_CTYS +
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW];
Cty_MAX_BYTES_SUBQUERY_CTYS +
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME +
Cty_MAX_BYTES_SUBQUERY_CTYS +
Cty_MAX_BYTES_SUBQUERY_CTYS_WWW];
/***** Create a new country *****/
SubQueryNam1[0] = '\0';
@ -2185,25 +2185,25 @@ static void Cty_CreateCountry (struct Country *Cty)
{
sprintf (StrField,",Name_%s",Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam1,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
Str_Concat (SubQueryNam2,",'",
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME);
Str_Concat (SubQueryNam2,Cty->Name[Lan],
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME);
Str_Concat (SubQueryNam2,"'",
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME);
sprintf (StrField,",WWW_%s",Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW1,StrField,
Cty_MAX_LENGTH_SUBQUERY_CTYS);
Cty_MAX_BYTES_SUBQUERY_CTYS);
Str_Concat (SubQueryWWW2,",'",
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
Cty_MAX_BYTES_SUBQUERY_CTYS_WWW);
Str_Concat (SubQueryWWW2,Cty->WWW[Lan],
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
Cty_MAX_BYTES_SUBQUERY_CTYS_WWW);
Str_Concat (SubQueryWWW2,"'",
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
Cty_MAX_BYTES_SUBQUERY_CTYS_WWW);
}
sprintf (Query,"INSERT INTO countries (CtyCod,Alpha2%s%s)"
" VALUES ('%03ld','%s'%s%s)",

View File

@ -37,8 +37,11 @@
/************************** Public types and constants ***********************/
/*****************************************************************************/
#define Cty_MAX_BYTES_COUNTRY_NAME 255
#define Cty_MAX_LENGTH_MAP_ATTRIBUTION (4 * 1024)
#define Cty_MAX_CHARS_COUNTRY_NAME (128 - 1)
#define Cty_MAX_BYTES_COUNTRY_NAME (Cty_MAX_CHARS_COUNTRY_NAME * Str_MAX_BYTES_PER_CHAR)
#define Cty_MAX_CHARS_MAP_ATTRIBUTION 512
#define Cty_MAX_BYTES_MAP_ATTRIBUTION (Cty_MAX_CHARS_MAP_ATTRIBUTION * Str_MAX_BYTES_PER_CHAR)
#define Cty_MAX_COUNTRS_PER_USR 10 // Used in list of my countries

View File

@ -67,8 +67,6 @@ extern struct Globals Gbl;
/**************************** Private constants ******************************/
/*****************************************************************************/
#define Crs_MAX_LENGTH_FULL_NAME_COURSE_ON_LIST_OF_MY_COURSES 60
/*****************************************************************************/
/**************************** Private prototypes *****************************/
/*****************************************************************************/
@ -106,8 +104,8 @@ static void Crs_UpdateCrsDegDB (long CrsCod,long DegCod);
static void Crs_UpdateCrsYear (struct Course *Crs,unsigned NewYear);
static void Crs_GetShortNamesByCod (long CrsCod,
char CrsShortName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1],
char DegShortName[Deg_MAX_LENGTH_DEGREE_SHRT_NAME + 1]);
char CrsShortName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1],
char DegShortName[Deg_MAX_BYTES_DEGREE_SHRT_NAME + 1]);
static void Crs_EmptyCourseCompletely (long CrsCod);
@ -278,7 +276,7 @@ static void Crs_Configuration (bool PrintView)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_FULL_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Crs_MAX_LENGTH_COURSE_FULL_NAME,
Crs_MAX_CHARS_COURSE_FULL_NAME,
Gbl.CurrentCrs.Crs.FullName,
Gbl.Form.Id);
Act_FormEnd ();
@ -307,7 +305,7 @@ static void Crs_Configuration (bool PrintView)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_SHORT_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Crs_MAX_LENGTH_COURSE_SHRT_NAME,
Crs_MAX_CHARS_COURSE_SHRT_NAME,
Gbl.CurrentCrs.Crs.ShrtName,
Gbl.Form.Id);
Act_FormEnd ();
@ -366,8 +364,8 @@ static void Crs_Configuration (bool PrintView)
" id=\"InsCrsCod\" name=\"InsCrsCod\""
" size=\"%u\" maxlength=\"%u\" value=\"%s\""
" onchange=\"document.getElementById('%s').submit();\" />",
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
Gbl.CurrentCrs.Crs.InstitutionalCrsCod,
Gbl.Form.Id);
Act_FormEnd ();
@ -1068,8 +1066,8 @@ void Crs_WriteSelectorMyCourses (void)
long CrsCod;
long DegCod;
long LastDegCod;
char CrsShortName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1];
char DegShortName[Deg_MAX_LENGTH_DEGREE_SHRT_NAME + 1];
char CrsShortName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1];
char DegShortName[Deg_MAX_BYTES_DEGREE_SHRT_NAME + 1];
/***** Fill the list with the courses I belong to, if not filled *****/
if (Gbl.Usrs.Me.Logged)
@ -1437,7 +1435,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_INS_CODE\""
" onchange=\"document.getElementById('%s').submit();\" />",
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
Crs->InstitutionalCrsCod,
Gbl.Form.Id);
Act_FormEnd ();
@ -1481,7 +1479,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_SHORT_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Crs_MAX_LENGTH_COURSE_SHRT_NAME,Crs->ShrtName,
Crs_MAX_CHARS_COURSE_SHRT_NAME,Crs->ShrtName,
Gbl.Form.Id);
Act_FormEnd ();
}
@ -1499,7 +1497,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_FULL_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Crs_MAX_LENGTH_COURSE_FULL_NAME,Crs->FullName,
Crs_MAX_CHARS_COURSE_FULL_NAME,Crs->FullName,
Gbl.Form.Id);
Act_FormEnd ();
}
@ -1660,7 +1658,7 @@ static void Crs_PutFormToCreateCourse (void)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_INS_CODE\" />"
"</td>",
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
Crs->InstitutionalCrsCod);
/***** Year *****/
@ -1684,7 +1682,7 @@ static void Crs_PutFormToCreateCourse (void)
" class=\"INPUT_SHORT_NAME\""
" required=\"required\" />"
"</td>",
Crs_MAX_LENGTH_COURSE_SHRT_NAME,Crs->ShrtName);
Crs_MAX_CHARS_COURSE_SHRT_NAME,Crs->ShrtName);
/***** Course full name *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
@ -1693,7 +1691,7 @@ static void Crs_PutFormToCreateCourse (void)
" class=\"INPUT_FULL_NAME\""
" required=\"required\" />"
"</td>",
Crs_MAX_LENGTH_COURSE_FULL_NAME,Crs->FullName);
Crs_MAX_CHARS_COURSE_FULL_NAME,Crs->FullName);
/***** Current number of teachers in this course *****/
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
@ -1916,17 +1914,17 @@ static void Crs_GetParamsNewCourse (struct Course *Crs)
/***** Get parameters of the course from form *****/
/* Get institutional code */
Par_GetParToText ("InsCrsCod",Crs->InstitutionalCrsCod,Crs_LENGTH_INSTITUTIONAL_CRS_COD);
Par_GetParToText ("InsCrsCod",Crs->InstitutionalCrsCod,Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
/* Get year */
Par_GetParToText ("OthCrsYear",YearStr,2);
Crs->Year = Deg_ConvStrToYear (YearStr);
/* Get course short name */
Par_GetParToText ("ShortName",Crs->ShrtName,Crs_MAX_LENGTH_COURSE_SHRT_NAME);
Par_GetParToText ("ShortName",Crs->ShrtName,Crs_MAX_BYTES_COURSE_SHRT_NAME);
/* Get course full name */
Par_GetParToText ("FullName",Crs->FullName,Crs_MAX_LENGTH_COURSE_FULL_NAME);
Par_GetParToText ("FullName",Crs->FullName,Crs_MAX_BYTES_COURSE_FULL_NAME);
}
/*****************************************************************************/
@ -1954,8 +1952,8 @@ static void Crs_CreateCourse (struct Course *Crs,unsigned Status)
{
extern const char *Txt_Created_new_course_X;
char Query[512 +
Crs_MAX_LENGTH_COURSE_SHRT_NAME +
Crs_MAX_LENGTH_COURSE_FULL_NAME];
Crs_MAX_BYTES_COURSE_SHRT_NAME +
Crs_MAX_BYTES_COURSE_FULL_NAME];
/***** Insert new course into pending requests *****/
sprintf (Query,"INSERT INTO courses (DegCod,Year,InsCrsCod,"
@ -2076,7 +2074,7 @@ static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row)
/***** Get institutional course code (row[3]) *****/
Str_Copy (Crs->InstitutionalCrsCod,row[3],
Crs_LENGTH_INSTITUTIONAL_CRS_COD);
Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
/***** Get course status (row[4]) *****/
if (sscanf (row[4],"%u",&(Crs->Status)) != 1)
@ -2087,11 +2085,11 @@ static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row)
/***** Get the short name of the course (row[6]) *****/
Str_Copy (Crs->ShrtName,row[6],
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
Crs_MAX_BYTES_COURSE_SHRT_NAME);
/***** Get the full name of the course (row[7]) *****/
Str_Copy (Crs->FullName,row[7],
Crs_MAX_LENGTH_COURSE_FULL_NAME);
Crs_MAX_BYTES_COURSE_FULL_NAME);
/***** Get number of teachers *****/
Crs->NumTchs = Usr_GetNumUsrsInCrs (Rol_TEACHER,Crs->CrsCod);
@ -2108,8 +2106,8 @@ static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row)
/*****************************************************************************/
static void Crs_GetShortNamesByCod (long CrsCod,
char CrsShortName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1],
char DegShortName[Deg_MAX_LENGTH_DEGREE_SHRT_NAME + 1])
char CrsShortName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1],
char DegShortName[Deg_MAX_BYTES_DEGREE_SHRT_NAME + 1])
{
char Query[512];
MYSQL_RES *mysql_res;
@ -2131,9 +2129,9 @@ static void Crs_GetShortNamesByCod (long CrsCod,
row = mysql_fetch_row (mysql_res);
Str_Copy (CrsShortName,row[0],
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
Crs_MAX_BYTES_COURSE_SHRT_NAME);
Str_Copy (DegShortName,row[1],
Deg_MAX_LENGTH_DEGREE_SHRT_NAME);
Deg_MAX_BYTES_DEGREE_SHRT_NAME);
}
/***** Free structure that stores the query result *****/
@ -2300,10 +2298,10 @@ void Crs_ChangeInsCrsCodInConfig (void)
extern const char *Txt_The_institutional_code_of_the_course_X_has_changed_to_Y;
extern const char *Txt_The_institutional_code_of_the_course_X_has_not_changed;
extern const char *Txt_You_dont_have_permission_to_edit_this_course;
char NewInstitutionalCrsCod[Crs_LENGTH_INSTITUTIONAL_CRS_COD + 1];
char NewInstitutionalCrsCod[Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD + 1];
/***** Get institutional code from form *****/
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_LENGTH_INSTITUTIONAL_CRS_COD);
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
/***** Change the institutional course code *****/
if (strcmp (NewInstitutionalCrsCod,Gbl.CurrentCrs.Crs.InstitutionalCrsCod))
@ -2327,7 +2325,7 @@ void Crs_ChangeInsCrsCod (void)
extern const char *Txt_The_institutional_code_of_the_course_X_has_changed_to_Y;
extern const char *Txt_The_institutional_code_of_the_course_X_has_not_changed;
extern const char *Txt_You_dont_have_permission_to_edit_this_course;
char NewInstitutionalCrsCod[Crs_LENGTH_INSTITUTIONAL_CRS_COD + 1];
char NewInstitutionalCrsCod[Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD + 1];
struct Course *Crs;
Crs = &Gbl.Degs.EditingCrs;
@ -2337,7 +2335,7 @@ void Crs_ChangeInsCrsCod (void)
Crs->CrsCod = Crs_GetAndCheckParamOtherCrsCod ();
/* Get institutional code */
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_LENGTH_INSTITUTIONAL_CRS_COD);
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
/* Get data of the course */
Crs_GetDataOfCourseByCod (Crs);
@ -2600,7 +2598,7 @@ void Crs_UpdateInstitutionalCrsCod (struct Course *Crs,const char *NewInstitutio
/***** Copy institutional course code *****/
Str_Copy (Crs->InstitutionalCrsCod,NewInstitutionalCrsCod,
Crs_LENGTH_INSTITUTIONAL_CRS_COD);
Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
}
/*****************************************************************************/
@ -2644,32 +2642,32 @@ static void Crs_RenameCourse (struct Course *Crs,Cns_ShrtOrFullName_t ShrtOrFull
extern const char *Txt_The_name_of_the_course_X_has_changed_to_Y;
extern const char *Txt_The_name_of_the_course_X_has_not_changed;
extern const char *Txt_You_dont_have_permission_to_edit_this_course;
char Query[128 + Crs_MAX_LENGTH_COURSE_FULL_NAME];
char Query[128 + Crs_MAX_BYTES_COURSE_FULL_NAME];
const char *ParamName = NULL; // Initialized to avoid warning
const char *FieldName = NULL; // Initialized to avoid warning
unsigned MaxLength = 0; // Initialized to avoid warning
unsigned MaxBytes = 0; // Initialized to avoid warning
char *CurrentCrsName = NULL; // Initialized to avoid warning
char NewCrsName[Crs_MAX_LENGTH_COURSE_FULL_NAME + 1];
char NewCrsName[Crs_MAX_BYTES_COURSE_FULL_NAME + 1];
switch (ShrtOrFullName)
{
case Cns_SHRT_NAME:
ParamName = "ShortName";
FieldName = "ShortName";
MaxLength = Crs_MAX_LENGTH_COURSE_SHRT_NAME;
MaxBytes = Crs_MAX_BYTES_COURSE_SHRT_NAME;
CurrentCrsName = Crs->ShrtName;
break;
case Cns_FULL_NAME:
ParamName = "FullName";
FieldName = "FullName";
MaxLength = Crs_MAX_LENGTH_COURSE_FULL_NAME;
MaxBytes = Crs_MAX_BYTES_COURSE_FULL_NAME;
CurrentCrsName = Crs->FullName;
break;
}
/***** Get parameters from form *****/
/* Get the new name for the course */
Par_GetParToText (ParamName,NewCrsName,MaxLength);
Par_GetParToText (ParamName,NewCrsName,MaxBytes);
/***** Get from the database the data of the degree *****/
Crs_GetDataOfCourseByCod (Crs);
@ -2709,7 +2707,7 @@ static void Crs_RenameCourse (struct Course *Crs,Cns_ShrtOrFullName_t ShrtOrFull
/* Change current course name in order to display it properly */
Str_Copy (CurrentCrsName,NewCrsName,
MaxLength);
MaxBytes);
}
}
else // The same name

View File

@ -39,9 +39,14 @@
#define Crs_MAX_COURSES_PER_USR 100 // Used in list of my courses and list of distinct courses in sent or received messages
#define Crs_LENGTH_INSTITUTIONAL_CRS_COD 7
#define Crs_MAX_LENGTH_COURSE_SHRT_NAME 32
#define Crs_MAX_LENGTH_COURSE_FULL_NAME (128 - 1)
#define Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD 8
#define Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD (Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD * Str_MAX_BYTES_PER_CHAR)
#define Crs_MAX_CHARS_COURSE_SHRT_NAME 32
#define Crs_MAX_BYTES_COURSE_SHRT_NAME (Crs_MAX_CHARS_COURSE_SHRT_NAME * Str_MAX_BYTES_PER_CHAR)
#define Crs_MAX_CHARS_COURSE_FULL_NAME (128 - 1)
#define Crs_MAX_BYTES_COURSE_FULL_NAME (Crs_MAX_CHARS_COURSE_FULL_NAME * Str_MAX_BYTES_PER_CHAR)
#define Crs_MIN_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_CRSS 6
#define Crs_DEF_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_CRSS 12
@ -79,13 +84,13 @@ typedef enum
struct Course
{
long CrsCod;
char InstitutionalCrsCod[Crs_LENGTH_INSTITUTIONAL_CRS_COD + 1]; // Institutional code of the course
char InstitutionalCrsCod[Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD + 1]; // Institutional code of the course
long DegCod;
unsigned Year; // Year: 0 (optatives), 1, 2, 3...
Crs_Status_t Status; // Course status
long RequesterUsrCod; // User code of the person who requested the creation of this course
char ShrtName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1]; // Short name of course
char FullName[Crs_MAX_LENGTH_COURSE_FULL_NAME + 1]; // Full name of course
char ShrtName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1]; // Short name of course
char FullName[Crs_MAX_BYTES_COURSE_FULL_NAME + 1]; // Full name of course
unsigned NumUsrs; // Number of users (students + teachers)
unsigned NumTchs; // Number of teachers
unsigned NumStds; // Number of students

View File

@ -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_LENGTH_IP + 1 + 10 + 1 + 10 + 1 + 10 + 1];
char UniqueNamePlain[Cns_MAX_BYTES_IP + 1 + 10 + 1 + 10 + 1 + 10 + 1];
NumCall++;
sprintf (UniqueNamePlain,"%s-%lx-%x-%x",

View File

@ -392,7 +392,7 @@ static void Deg_Configuration (bool PrintView)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_FULL_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Deg_MAX_LENGTH_DEGREE_FULL_NAME,
Deg_MAX_CHARS_DEGREE_FULL_NAME,
Gbl.CurrentDeg.Deg.FullName,
Gbl.Form.Id);
Act_FormEnd ();
@ -422,7 +422,7 @@ static void Deg_Configuration (bool PrintView)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_SHORT_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Deg_MAX_LENGTH_DEGREE_SHRT_NAME,
Deg_MAX_CHARS_DEGREE_SHRT_NAME,
Gbl.CurrentDeg.Deg.ShrtName,
Gbl.Form.Id);
Act_FormEnd ();
@ -748,7 +748,7 @@ static void Deg_ListDegreesForEdition (void)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_SHORT_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Deg_MAX_LENGTH_DEGREE_SHRT_NAME,Deg->ShrtName,Gbl.Form.Id);
Deg_MAX_CHARS_DEGREE_SHRT_NAME,Deg->ShrtName,Gbl.Form.Id);
Act_FormEnd ();
}
else
@ -765,7 +765,7 @@ static void Deg_ListDegreesForEdition (void)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_FULL_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Deg_MAX_LENGTH_DEGREE_FULL_NAME,Deg->FullName,Gbl.Form.Id);
Deg_MAX_CHARS_DEGREE_FULL_NAME,Deg->FullName,Gbl.Form.Id);
Act_FormEnd ();
}
else
@ -988,7 +988,7 @@ static void Deg_PutFormToCreateDegree (void)
" class=\"INPUT_SHORT_NAME\""
" required=\"required\" />"
"</td>",
Deg_MAX_LENGTH_DEGREE_SHRT_NAME,Deg->ShrtName);
Deg_MAX_CHARS_DEGREE_SHRT_NAME,Deg->ShrtName);
/***** Degree full name *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
@ -997,7 +997,7 @@ static void Deg_PutFormToCreateDegree (void)
" class=\"INPUT_FULL_NAME\""
" required=\"required\" />"
"</td>",
Deg_MAX_LENGTH_DEGREE_FULL_NAME,Deg->FullName);
Deg_MAX_CHARS_DEGREE_FULL_NAME,Deg->FullName);
/***** Degree type *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
@ -1164,8 +1164,8 @@ static void Deg_CreateDegree (struct Degree *Deg,unsigned Status)
{
extern const char *Txt_Created_new_degree_X;
char Query[512 +
Deg_MAX_LENGTH_DEGREE_SHRT_NAME +
Deg_MAX_LENGTH_DEGREE_FULL_NAME +
Deg_MAX_BYTES_DEGREE_SHRT_NAME +
Deg_MAX_BYTES_DEGREE_FULL_NAME +
Cns_MAX_BYTES_WWW];
/***** Create a new degree *****/
@ -1541,10 +1541,10 @@ static void Deg_RecFormRequestOrCreateDeg (unsigned Status)
Deg->CtrCod = Gbl.CurrentCtr.Ctr.CtrCod;
/* Get degree short name */
Par_GetParToText ("ShortName",Deg->ShrtName,Deg_MAX_LENGTH_DEGREE_SHRT_NAME);
Par_GetParToText ("ShortName",Deg->ShrtName,Deg_MAX_BYTES_DEGREE_SHRT_NAME);
/* Get degree full name */
Par_GetParToText ("FullName",Deg->FullName,Deg_MAX_LENGTH_DEGREE_FULL_NAME);
Par_GetParToText ("FullName",Deg->FullName,Deg_MAX_BYTES_DEGREE_FULL_NAME);
/* Get degree type */
if ((Deg->DegTypCod = DT_GetParamOtherDegTypCod ()) <= 0)
@ -1728,11 +1728,11 @@ static void Deg_GetDataOfDegreeFromRow (struct Degree *Deg,MYSQL_ROW row)
/***** Get degree short name (row[5]) *****/
Str_Copy (Deg->ShrtName,row[5],
Deg_MAX_LENGTH_DEGREE_SHRT_NAME);
Deg_MAX_BYTES_DEGREE_SHRT_NAME);
/***** Get degree full name (row[6]) *****/
Str_Copy (Deg->FullName,row[6],
Deg_MAX_LENGTH_DEGREE_FULL_NAME);
Deg_MAX_BYTES_DEGREE_FULL_NAME);
/***** Get WWW (row[7]) *****/
Str_Copy (Deg->WWW,row[7],
@ -1762,7 +1762,7 @@ void Deg_GetShortNameOfDegreeByCod (struct Degree *Deg)
row = mysql_fetch_row (mysql_res);
Str_Copy (Deg->ShrtName,row[0],
Deg_MAX_LENGTH_DEGREE_SHRT_NAME);
Deg_MAX_BYTES_DEGREE_SHRT_NAME);
}
/***** Free structure that stores the query result *****/
@ -1939,32 +1939,32 @@ static void Deg_RenameDegree (struct Degree *Deg,Cns_ShrtOrFullName_t ShrtOrFull
extern const char *Txt_The_degree_X_already_exists;
extern const char *Txt_The_name_of_the_degree_X_has_changed_to_Y;
extern const char *Txt_The_name_of_the_degree_X_has_not_changed;
char Query[512 + Deg_MAX_LENGTH_DEGREE_FULL_NAME];
char Query[512 + Deg_MAX_BYTES_DEGREE_FULL_NAME];
const char *ParamName = NULL; // Initialized to avoid warning
const char *FieldName = NULL; // Initialized to avoid warning
unsigned MaxLength = 0; // Initialized to avoid warning
unsigned MaxBytes = 0; // Initialized to avoid warning
char *CurrentDegName = NULL; // Initialized to avoid warning
char NewDegName[Deg_MAX_LENGTH_DEGREE_FULL_NAME + 1];
char NewDegName[Deg_MAX_BYTES_DEGREE_FULL_NAME + 1];
switch (ShrtOrFullName)
{
case Cns_SHRT_NAME:
ParamName = "ShortName";
FieldName = "ShortName";
MaxLength = Deg_MAX_LENGTH_DEGREE_SHRT_NAME;
MaxBytes = Deg_MAX_BYTES_DEGREE_SHRT_NAME;
CurrentDegName = Deg->ShrtName;
break;
case Cns_FULL_NAME:
ParamName = "FullName";
FieldName = "FullName";
MaxLength = Deg_MAX_LENGTH_DEGREE_FULL_NAME;
MaxBytes = Deg_MAX_BYTES_DEGREE_FULL_NAME;
CurrentDegName = Deg->FullName;
break;
}
/***** Get parameters from form *****/
/* Get the new name for the degree */
Par_GetParToText (ParamName,NewDegName,MaxLength);
Par_GetParToText (ParamName,NewDegName,MaxBytes);
/***** Get data of degree *****/
Deg_GetDataOfDegreeByCod (Deg);
@ -2001,7 +2001,7 @@ static void Deg_RenameDegree (struct Degree *Deg,Cns_ShrtOrFullName_t ShrtOrFull
/* Change current degree name in order to display it properly */
Str_Copy (CurrentDegName,NewDegName,
MaxLength);
MaxBytes);
}
}
else // The same name

View File

@ -40,8 +40,11 @@
#define Deg_MAX_DEGREES_PER_USR 20 // Used in list of my degrees
#define Deg_MAX_LENGTH_DEGREE_SHRT_NAME 32
#define Deg_MAX_LENGTH_DEGREE_FULL_NAME (128 - 1)
#define Deg_MAX_CHARS_DEGREE_SHRT_NAME 32
#define Deg_MAX_BYTES_DEGREE_SHRT_NAME (Deg_MAX_CHARS_DEGREE_SHRT_NAME * Str_MAX_BYTES_PER_CHAR)
#define Deg_MAX_CHARS_DEGREE_FULL_NAME (128 - 1)
#define Deg_MAX_BYTES_DEGREE_FULL_NAME (Deg_MAX_CHARS_DEGREE_FULL_NAME * Str_MAX_BYTES_PER_CHAR)
/*****************************************************************************/
/******************************* Public types ********************************/
@ -73,8 +76,8 @@ struct Degree
long CtrCod; // Centre code
Deg_Status_t Status; // Degree status
long RequesterUsrCod; // User code of the person who requested the creation of this degree
char ShrtName[Deg_MAX_LENGTH_DEGREE_SHRT_NAME + 1]; // Short name of degree
char FullName[Deg_MAX_LENGTH_DEGREE_FULL_NAME + 1]; // Full name of degree
char ShrtName[Deg_MAX_BYTES_DEGREE_SHRT_NAME + 1]; // Short name of degree
char FullName[Deg_MAX_BYTES_DEGREE_FULL_NAME + 1]; // Full name of degree
char WWW[Cns_MAX_BYTES_WWW + 1];
struct Course *LstCrss; // List of courses in this degree
};

View File

@ -311,7 +311,7 @@ static void DT_ListDegreeTypesForEdition (void)
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"DegTypName\""
" size=\"25\" maxlength=\"%u\" value=\"%s\""
" onchange=\"document.getElementById('%s').submit();\" />",
Deg_MAX_LENGTH_DEGREE_TYPE_NAME,
Deg_MAX_CHARS_DEGREE_TYPE_NAME,
Gbl.Degs.DegTypes.Lst[NumDegTyp].DegTypName,
Gbl.Form.Id);
Act_FormEnd ();
@ -361,7 +361,7 @@ static void DT_PutFormToCreateDegreeType (void)
" size=\"25\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
"</td>",
Deg_MAX_LENGTH_DEGREE_TYPE_NAME,Gbl.Degs.EditingDegTyp.DegTypName);
Deg_MAX_CHARS_DEGREE_TYPE_NAME,Gbl.Degs.EditingDegTyp.DegTypName);
/***** Send button and end frame *****/
Lay_EndRoundFrameTableWithButton (Lay_CREATE_BUTTON,Txt_Create_type_of_degree);
@ -426,7 +426,7 @@ static void DT_PutHeadDegreeTypesForEdition (void)
static void DT_CreateDegreeType (struct DegreeType *DegTyp)
{
extern const char *Txt_Created_new_type_of_degree_X;
char Query[128 + Deg_MAX_LENGTH_DEGREE_TYPE_NAME];
char Query[128 + Deg_MAX_BYTES_DEGREE_TYPE_NAME];
/***** Create a new degree type *****/
sprintf (Query,"INSERT INTO deg_types SET DegTypName='%s'",
@ -482,7 +482,7 @@ void DT_GetListDegreeTypes (void)
/* Get degree type name (row[1]) */
Str_Copy (Gbl.Degs.DegTypes.Lst[NumRow].DegTypName,row[1],
Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
Deg_MAX_BYTES_DEGREE_TYPE_NAME);
/* Number of degrees of this type (row[2]) */
if (sscanf (row[2],"%u",&Gbl.Degs.DegTypes.Lst[NumRow].NumDegs) != 1)
@ -523,7 +523,7 @@ void DT_RecFormNewDegreeType (void)
/***** Get parameters from form *****/
/* Get the name of degree type */
Par_GetParToText ("DegTypName",DegTyp->DegTypName,Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
Par_GetParToText ("DegTypName",DegTyp->DegTypName,Deg_MAX_BYTES_DEGREE_TYPE_NAME);
if (DegTyp->DegTypName[0]) // If there's a degree type name
{
@ -648,7 +648,7 @@ bool DT_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp)
/* Get the name of the degree type (row[0]) */
Str_Copy (DegTyp->DegTypName,row[0],
Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
Deg_MAX_BYTES_DEGREE_TYPE_NAME);
/* Count number of degrees of this type */
DegTyp->NumDegs = DT_CountNumDegsOfType (DegTyp->DegTypCod);
@ -725,7 +725,7 @@ void DT_RenameDegreeType (void)
extern const char *Txt_The_name_of_the_type_of_degree_X_has_not_changed;
struct DegreeType *DegTyp;
char Query[1024];
char NewNameDegTyp[Deg_MAX_LENGTH_DEGREE_TYPE_NAME + 1];
char NewNameDegTyp[Deg_MAX_BYTES_DEGREE_TYPE_NAME + 1];
DegTyp = &Gbl.Degs.EditingDegTyp;
@ -735,7 +735,7 @@ void DT_RenameDegreeType (void)
Lay_ShowErrorAndExit ("Code of type of degree is missing.");
/* Get the new name for the degree type */
Par_GetParToText ("DegTypName",NewNameDegTyp,Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
Par_GetParToText ("DegTypName",NewNameDegTyp,Deg_MAX_BYTES_DEGREE_TYPE_NAME);
/***** Get from the database the old name of the degree type *****/
if (!DT_GetDataOfDegreeTypeByCod (DegTyp))
@ -784,7 +784,7 @@ void DT_RenameDegreeType (void)
/***** Show the form again *****/
Str_Copy (DegTyp->DegTypName,NewNameDegTyp,
Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
Deg_MAX_BYTES_DEGREE_TYPE_NAME);
DT_ReqEditDegreeTypes ();
}

View File

@ -31,7 +31,8 @@
/***************************** Public constants ******************************/
/*****************************************************************************/
#define Deg_MAX_LENGTH_DEGREE_TYPE_NAME 32
#define Deg_MAX_CHARS_DEGREE_TYPE_NAME 32
#define Deg_MAX_BYTES_DEGREE_TYPE_NAME (Deg_MAX_CHARS_DEGREE_TYPE_NAME * Str_MAX_BYTES_PER_CHAR)
/*****************************************************************************/
/******************************* Public types ********************************/
@ -39,9 +40,9 @@
struct DegreeType
{
long DegTypCod; // Degree type code
char DegTypName[Deg_MAX_LENGTH_DEGREE_TYPE_NAME + 1]; // Degree type name
unsigned NumDegs; // Number of degrees of this type
long DegTypCod; // Degree type code
char DegTypName[Deg_MAX_BYTES_DEGREE_TYPE_NAME + 1]; // Degree type name
unsigned NumDegs; // Number of degrees of this type
};
/*****************************************************************************/

View File

@ -349,11 +349,11 @@ void Dpt_GetListDepartments (long InsCod)
/* Get the short name of the department (row[2]) */
Str_Copy (Dpt->ShrtName,row[2],
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME);
Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME);
/* Get the full name of the department (row[3]) */
Str_Copy (Dpt->FullName,row[3],
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME);
Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME);
/* Get the URL of the department (row[4]) */
Str_Copy (Dpt->WWW,row[4],
@ -392,9 +392,9 @@ void Dpt_GetDataOfDepartmentByCod (struct Department *Dpt)
if (Dpt->DptCod == 0)
{
Str_Copy (Dpt->ShrtName,Txt_Another_department,
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME);
Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME);
Str_Copy (Dpt->FullName,Txt_Another_department,
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME);
Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME);
}
else if (Dpt->DptCod > 0)
{
@ -427,11 +427,11 @@ void Dpt_GetDataOfDepartmentByCod (struct Department *Dpt)
/* Get the short name of the department (row[1]) */
Str_Copy (Dpt->ShrtName,row[1],
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME);
Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME);
/* Get the full name of the department (row[2]) */
Str_Copy (Dpt->FullName,row[2],
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME);
Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME);
/* Get the URL of the department (row[3]) */
Str_Copy (Dpt->WWW,row[3],
@ -559,7 +559,7 @@ static void Dpt_ListDepartmentsForEdition (void)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_SHORT_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME,Dpt->ShrtName,Gbl.Form.Id);
Dpt_MAX_CHARS_DEPARTMENT_SHRT_NAME,Dpt->ShrtName,Gbl.Form.Id);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>");
@ -571,7 +571,7 @@ static void Dpt_ListDepartmentsForEdition (void)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_FULL_NAME\""
" onchange=\"document.getElementById('%s').submit();\" />",
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME,Dpt->FullName,Gbl.Form.Id);
Dpt_MAX_CHARS_DEPARTMENT_FULL_NAME,Dpt->FullName,Gbl.Form.Id);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>");
@ -718,9 +718,9 @@ static void Dpt_RenameDepartment (Cns_ShrtOrFullName_t ShrtOrFullName)
struct Department *Dpt;
const char *ParamName = NULL; // Initialized to avoid warning
const char *FieldName = NULL; // Initialized to avoid warning
size_t MaxLength = 0; // Initialized to avoid warning
size_t MaxBytes = 0; // Initialized to avoid warning
char *CurrentDptName = NULL; // Initialized to avoid warning
char NewDptName[Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME + 1];
char NewDptName[Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME + 1];
Dpt = &Gbl.Dpts.EditingDpt;
switch (ShrtOrFullName)
@ -728,13 +728,13 @@ static void Dpt_RenameDepartment (Cns_ShrtOrFullName_t ShrtOrFullName)
case Cns_SHRT_NAME:
ParamName = "ShortName";
FieldName = "ShortName";
MaxLength = Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME;
MaxBytes = Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME;
CurrentDptName = Dpt->ShrtName;
break;
case Cns_FULL_NAME:
ParamName = "FullName";
FieldName = "FullName";
MaxLength = Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME;
MaxBytes = Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME;
CurrentDptName = Dpt->FullName;
break;
}
@ -745,7 +745,7 @@ static void Dpt_RenameDepartment (Cns_ShrtOrFullName_t ShrtOrFullName)
Lay_ShowErrorAndExit ("Code of department is missing.");
/* Get the new name for the department */
Par_GetParToText (ParamName,NewDptName,MaxLength);
Par_GetParToText (ParamName,NewDptName,MaxBytes);
/***** Get from the database the old names of the department *****/
Dpt_GetDataOfDepartmentByCod (Dpt);
@ -792,7 +792,7 @@ static void Dpt_RenameDepartment (Cns_ShrtOrFullName_t ShrtOrFullName)
/***** Show the form again *****/
Str_Copy (CurrentDptName,NewDptName,
MaxLength);
MaxBytes);
Dpt_EditDepartments ();
}
@ -930,7 +930,7 @@ static void Dpt_PutFormToCreateDepartment (void)
" class=\"INPUT_SHORT_NAME\""
" required=\"required\" />"
"</td>",
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME,Dpt->ShrtName);
Dpt_MAX_CHARS_DEPARTMENT_SHRT_NAME,Dpt->ShrtName);
/***** Department full name *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -939,7 +939,7 @@ static void Dpt_PutFormToCreateDepartment (void)
" class=\"INPUT_FULL_NAME\""
" required=\"required\" />"
"</td>",
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME,Dpt->FullName);
Dpt_MAX_CHARS_DEPARTMENT_FULL_NAME,Dpt->FullName);
/***** Department WWW *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -1019,10 +1019,10 @@ void Dpt_RecFormNewDpt (void)
Dpt->InsCod = Ins_GetAndCheckParamOtherInsCod ();
/* Get department short name */
Par_GetParToText ("ShortName",Dpt->ShrtName,Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME);
Par_GetParToText ("ShortName",Dpt->ShrtName,Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME);
/* Get department full name */
Par_GetParToText ("FullName",Dpt->FullName,Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME);
Par_GetParToText ("FullName",Dpt->FullName,Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME);
/* Get department WWW */
Par_GetParToText ("WWW",Dpt->WWW,Cns_MAX_BYTES_WWW);

View File

@ -31,15 +31,18 @@
/************************** Public types and constants ***********************/
/*****************************************************************************/
#define Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME 32
#define Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME (256 - 1)
#define Dpt_MAX_CHARS_DEPARTMENT_SHRT_NAME 32
#define Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME (Dpt_MAX_CHARS_DEPARTMENT_SHRT_NAME * Str_MAX_BYTES_PER_CHAR)
#define Dpt_MAX_CHARS_DEPARTMENT_FULL_NAME (128 - 1)
#define Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME (Dpt_MAX_CHARS_DEPARTMENT_FULL_NAME * Str_MAX_BYTES_PER_CHAR)
struct Department
{
long DptCod;
long InsCod;
char ShrtName[Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME + 1];
char FullName[Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME + 1];
char ShrtName[Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME + 1];
char FullName[Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME + 1];
char WWW[Cns_MAX_BYTES_WWW + 1];
unsigned NumTchs;
};

View File

@ -126,7 +126,7 @@ static long Exa_GetParamsExamAnnouncement (void)
// If the parameter is not present or is empty, initialize the string to the full name of the current course
if (!Gbl.ExamAnns.ExaDat.CrsFullName[0])
Str_Copy (Gbl.ExamAnns.ExaDat.CrsFullName,Gbl.CurrentCrs.Crs.FullName,
Crs_MAX_LENGTH_COURSE_FULL_NAME);
Crs_MAX_BYTES_COURSE_FULL_NAME);
/***** Get the year *****/
Gbl.ExamAnns.ExaDat.Year = (unsigned)
@ -926,7 +926,7 @@ static void Exa_GetDataExamAnnouncementFromDB (void)
/* Name of the course (row[2]) */
Str_Copy (Gbl.ExamAnns.ExaDat.CrsFullName,row[2],
Crs_MAX_LENGTH_COURSE_FULL_NAME);
Crs_MAX_BYTES_COURSE_FULL_NAME);
/* Year (row[3]) */
if (sscanf (row[3],"%u",&Gbl.ExamAnns.ExaDat.Year) != 1)
@ -1020,7 +1020,7 @@ static void Exa_ShowExamAnnouncement (Exa_TypeViewExamAnnouncement_t TypeViewExa
const char *StyleForm = "CONV_NEG";
const char *StyleNormal = "CONV";
struct Instit Ins;
char StrExamDate[Cns_MAX_LENGTH_DATE + 1];
char StrExamDate[Cns_MAX_BYTES_DATE + 1];
unsigned Year,Hour,Minute;
const char *ClassExaAnnouncement[Exa_NUM_VIEWS][Exa_NUM_STATUS] =
{
@ -1136,7 +1136,7 @@ static void Exa_ShowExamAnnouncement (Exa_TypeViewExamAnnouncement_t TypeViewExa
{
fprintf (Gbl.F.Out,"<input type=\"text\" id=\"CrsName\" name=\"CrsName\""
" size=\"30\" maxlength=\"%u\" value=\"%s\" />",
Cns_MAX_LENGTH_STRING,Gbl.ExamAnns.ExaDat.CrsFullName);
Cns_MAX_CHARS_STRING,Gbl.ExamAnns.ExaDat.CrsFullName);
}
else
fprintf (Gbl.F.Out,"<strong>%s</strong>",
@ -1189,7 +1189,7 @@ static void Exa_ShowExamAnnouncement (Exa_TypeViewExamAnnouncement_t TypeViewExa
fprintf (Gbl.F.Out,"<input type=\"text\""
" id=\"ExamSession\" name=\"ExamSession\""
" size=\"30\" maxlength=\"%u\" value=\"%s\" />",
Cns_MAX_LENGTH_STRING,Gbl.ExamAnns.ExaDat.Session);
Cns_MAX_CHARS_STRING,Gbl.ExamAnns.ExaDat.Session);
else
fprintf (Gbl.F.Out,"%s",Gbl.ExamAnns.ExaDat.Session);
fprintf (Gbl.F.Out,"</td>"
@ -1611,7 +1611,7 @@ void Exa_GetSummaryAndContentExamAnnouncement (char SummaryStr[Cns_MAX_BYTES_SUM
long ExaCod,bool GetContent)
{
extern const char *Txt_hours_ABBREVIATION;
char CrsNameAndDate[Crs_MAX_LENGTH_COURSE_FULL_NAME + (2 + Cns_MAX_LENGTH_DATE + 6) + 1];
char CrsNameAndDate[Crs_MAX_BYTES_COURSE_FULL_NAME + (2 + Cns_MAX_BYTES_DATE + 6) + 1];
/***** Initializations *****/
Gbl.ExamAnns.ExaDat.ExaCod = ExaCod;
@ -1669,7 +1669,7 @@ static void Exa_GetNotifContentExamAnnouncement (char **ContentStr)
struct Course Crs;
struct Degree Deg;
struct Instit Ins;
char StrExamDate[Cns_MAX_LENGTH_DATE + 1];
char StrExamDate[Cns_MAX_BYTES_DATE + 1];
if ((*ContentStr = (char *) malloc (Cns_MAX_BYTES_TEXT * 8)) == NULL)
Lay_ShowErrorAndExit ("Error allocating memory for notification content.");

View File

@ -58,7 +58,7 @@ struct ExamData
long ExaCod;
long CrsCod;
Exa_ExamAnnouncementStatus_t Status;
char CrsFullName[Crs_MAX_LENGTH_COURSE_FULL_NAME + 1];
char CrsFullName[Crs_MAX_BYTES_COURSE_FULL_NAME + 1];
unsigned Year; // Number of year (0 (N.A.), 1, 2, 3, 4, 5, 6) in the degree
char Session[Cns_MAX_BYTES_STRING + 1]; // Exam session is june, september, etc.
struct Date CallDate;

View File

@ -35,8 +35,8 @@
/************************** Public types and constants ***********************/
/*****************************************************************************/
#define Fil_MIN_LENGTH_FILE_EXTENSION 1
#define Fil_MAX_LENGTH_FILE_EXTENSION 5
#define Fil_MIN_BYTES_FILE_EXTENSION 1
#define Fil_MAX_BYTES_FILE_EXTENSION 5
#define Fil_NAME_OF_PARAM_FILENAME_ORG "file"

View File

@ -2383,9 +2383,9 @@ static void Brw_GetDataCurrentGrp (void)
{
Gbl.CurrentCrs.Grps.GrpTyp.GrpTypCod = GrpDat.GrpTypCod;
Str_Copy (Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName,GrpDat.GrpTypName,
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Grp_MAX_BYTES_GROUP_TYPE_NAME);
Str_Copy (Gbl.CurrentCrs.Grps.GrpName,GrpDat.GrpName,
Grp_MAX_LENGTH_GROUP_NAME);
Grp_MAX_BYTES_GROUP_NAME);
Gbl.CurrentCrs.Grps.MaxStudents = GrpDat.MaxStudents;
Gbl.CurrentCrs.Grps.Open = GrpDat.Open;
Gbl.CurrentCrs.Grps.FileZones = GrpDat.FileZones;

View File

@ -136,9 +136,10 @@ struct FileMetadata
#define Brw_MAX_DIR_LEVELS 10 // Maximum number of subdirectory levels in file browsers
#define Brw_MAX_BYTES_MIME_TYPE (256 - 1) // Maximum length of "image/jpeg", "text/html", etc.
#define Brw_MAX_BYTES_MIME_TYPE (128 - 1) // Maximum size in bytes of "image/jpeg", "text/html", etc.
#define Brw_MAX_LENGTH_LICENSE (256 - 1)
#define Brw_MAX_CHARS_LICENSE (128 - 1)
#define Brw_MAX_BYTES_LICENSE (Brw_MAX_CHARS_LICENSE * Str_MAX_BYTES_PER_CHAR)
#define Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS "doc"
#define Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED_FILES "sha"

View File

@ -115,8 +115,8 @@ struct Globals
Act_CONT_DATA (if CONTENT_TYPE==multipart/form-data) */
struct
{
char StrWithoutCRLF[Par_MAX_LENGTH_BOUNDARY_WITH_CR_LF + 1];
char StrWithCRLF [Par_MAX_LENGTH_BOUNDARY_WITH_CR_LF + 1];
char StrWithoutCRLF[Par_MAX_BYTES_BOUNDARY_WITH_CR_LF + 1];
char StrWithCRLF [Par_MAX_BYTES_BOUNDARY_WITH_CR_LF + 1];
size_t LengthWithoutCRLF;
size_t LengthWithCRLF;
} Boundary;
@ -145,7 +145,7 @@ struct Globals
long TimeGenerationInMicroseconds;
long TimeSendInMicroseconds;
char IP[Cns_MAX_LENGTH_IP + 1];
char IP[Cns_MAX_BYTES_IP + 1];
char UniqueNameEncrypted[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]; // Used for session id, temporary directory names, etc.
struct
@ -266,7 +266,7 @@ struct Globals
struct
{
Sch_WhatToSearch_t WhatToSearch;
char Str[Sch_MAX_LENGTH_STRING_TO_FIND + 1];
char Str[Sch_MAX_BYTES_STRING_TO_FIND + 1];
bool LogSearch;
} Search;
struct
@ -456,7 +456,7 @@ struct Globals
struct GroupTypes GrpTypes;
struct GroupType GrpTyp;
long GrpCod;
char GrpName[Grp_MAX_LENGTH_GROUP_NAME + 1];
char GrpName[Grp_MAX_BYTES_GROUP_NAME + 1];
unsigned MaxStudents;
bool Open;
bool FileZones;
@ -600,10 +600,10 @@ struct Globals
struct
{
long CrsCod;
char ShrtName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1];
char ShrtName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1];
} Courses[Crs_MAX_COURSES_PER_USR]; // Distinct courses in my messages sent or received
long FilterCrsCod; // Show only messages sent from this course code
char FilterCrsShrtName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1];
char FilterCrsShrtName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1];
char FilterFromTo[Usr_MAX_LENGTH_USR_NAME_OR_SURNAME * 3 + 1]; // Show only messages from/to these users
char FilterContent[Msg_MAX_LENGTH_FILTER_CONTENT + 1]; // Show only messages that match this content
bool ShowOnlyUnreadMsgs; // Show only unread messages (this option is applicable only for received messages)

View File

@ -1114,7 +1114,7 @@ static void Grp_ListGroupTypesForEdition (void)
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"GrpTypName\""
" size=\"12\" maxlength=\"%u\" value=\"%s\""
" onchange=\"document.getElementById('%s').submit();\" />",
Grp_MAX_LENGTH_GROUP_TYPE_NAME,
Grp_MAX_CHARS_GROUP_TYPE_NAME,
Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypName,
Gbl.Form.Id);
Act_FormEnd ();
@ -1359,7 +1359,7 @@ static void Grp_ListGroupsForEdition (void)
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"GrpName\""
" size=\"40\" maxlength=\"%u\" value=\"%s\""
" onchange=\"document.getElementById('%s').submit();\" />",
Grp_MAX_LENGTH_GROUP_NAME,Grp->GrpName,Gbl.Form.Id);
Grp_MAX_CHARS_GROUP_NAME,Grp->GrpName,Gbl.Form.Id);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>");
@ -2084,7 +2084,7 @@ static void Grp_PutFormToCreateGroupType (void)
" size=\"12\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
"</td>",
Grp_MAX_LENGTH_GROUP_TYPE_NAME,Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName);
Grp_MAX_CHARS_GROUP_TYPE_NAME,Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName);
/***** Is it mandatory to register in any groups of this type? *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -2228,7 +2228,7 @@ static void Grp_PutFormToCreateGroup (void)
" size=\"40\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
"</td>",
Grp_MAX_LENGTH_GROUP_NAME,Gbl.CurrentCrs.Grps.GrpName);
Grp_MAX_CHARS_GROUP_NAME,Gbl.CurrentCrs.Grps.GrpName);
/***** Maximum number of students *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -2332,7 +2332,7 @@ void Grp_GetListGrpTypesInThisCrs (Grp_WhichGroupTypes_t WhichGroupTypes)
/* Get group type name (row[1]) */
Str_Copy (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumRow].GrpTypName,row[1],
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Grp_MAX_BYTES_GROUP_TYPE_NAME);
/* Is it mandatory to register in any groups of this type? (row[2]) */
Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumRow].MandatoryEnrollment = (row[2][0] == 'Y');
@ -2463,7 +2463,7 @@ void Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_WhichGroupTypes_t WhichGroupTypes)
/* Get group name (row[1]) */
Str_Copy (Grp->GrpName,row[1],
Grp_MAX_LENGTH_GROUP_NAME);
Grp_MAX_BYTES_GROUP_NAME);
/* Get max number of students of group (row[2]) and number of current students */
Grp->MaxStudents = Grp_ConvertToNumMaxStdsGrp (row[2]);
@ -2592,7 +2592,7 @@ static void Grp_GetDataOfGroupTypeByCod (struct GroupType *GrpTyp)
/***** Get some data of group type *****/
row = mysql_fetch_row (mysql_res);
Str_Copy (GrpTyp->GrpTypName,row[0],
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Grp_MAX_BYTES_GROUP_TYPE_NAME);
GrpTyp->MandatoryEnrollment = (row[1][0] == 'Y');
GrpTyp->MultipleEnrollment = (row[2][0] == 'Y');
GrpTyp->MustBeOpened = (row[3][0] == 'Y');
@ -2679,14 +2679,14 @@ void Grp_GetDataOfGroupByCod (struct GroupData *GrpDat)
/* Get the name of the group type (row[2]) */
Str_Copy (GrpDat->GrpTypName,row[2],
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Grp_MAX_BYTES_GROUP_TYPE_NAME);
/* Get whether a student may be in one or multiple groups (row[3]) */
GrpDat->MultipleEnrollment = (row[3][0] == 'Y');
/* Get the name of the group (row[4]) */
Str_Copy (GrpDat->GrpName,row[4],
Grp_MAX_LENGTH_GROUP_NAME);
Grp_MAX_BYTES_GROUP_NAME);
/* Get maximum number of students (row[5]) */
GrpDat->MaxStudents = Grp_ConvertToNumMaxStdsGrp (row[5]);
@ -3050,7 +3050,7 @@ void Grp_GetNamesGrpsStdBelongsTo (long GrpTypCod,long UsrCod,char *GroupNames)
MYSQL_ROW row;
unsigned long NumRow;
unsigned long NumRows;
size_t MaxLength = (Grp_MAX_LENGTH_GROUP_NAME + 2) * Gbl.CurrentCrs.Grps.GrpTypes.NumGrpsTotal;
size_t MaxLength = (Grp_MAX_BYTES_GROUP_NAME + 2) * Gbl.CurrentCrs.Grps.GrpTypes.NumGrpsTotal;
/***** Get the names of groups which a user belongs to, from database *****/
sprintf (Query,"SELECT crs_grp.GrpName FROM crs_grp,crs_grp_usr"
@ -3094,7 +3094,7 @@ void Grp_RecFormNewGrpTyp (void)
/***** Get parameters from form *****/
/* Get the name of group type */
Par_GetParToText ("GrpTypName",Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName,
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Grp_MAX_BYTES_GROUP_TYPE_NAME);
/* Get whether it is mandatory to regisrer in any group of this type */
Gbl.CurrentCrs.Grps.GrpTyp.MandatoryEnrollment = Par_GetParToBool ("MandatoryEnrollment");
@ -3156,7 +3156,7 @@ void Grp_RecFormNewGrp (void)
{
/* Get group name */
Par_GetParToText ("GrpName",Gbl.CurrentCrs.Grps.GrpName,
Grp_MAX_LENGTH_GROUP_NAME);
Grp_MAX_BYTES_GROUP_NAME);
/* Get maximum number of students */
Gbl.CurrentCrs.Grps.MaxStudents = (unsigned)
@ -3931,7 +3931,7 @@ void Grp_RenameGroupType (void)
extern const char *Txt_The_type_of_group_X_has_been_renamed_as_Y;
extern const char *Txt_The_name_of_the_type_of_group_X_has_not_changed;
char Query[1024];
char NewNameGrpTyp[Grp_MAX_LENGTH_GROUP_TYPE_NAME + 1];
char NewNameGrpTyp[Grp_MAX_BYTES_GROUP_TYPE_NAME + 1];
/***** Get parameters from form *****/
/* Get the code of the group type */
@ -3939,7 +3939,7 @@ void Grp_RenameGroupType (void)
Lay_ShowErrorAndExit ("Code of type of group is missing.");
/* Get the new name for the group type */
Par_GetParToText ("GrpTypName",NewNameGrpTyp,Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Par_GetParToText ("GrpTypName",NewNameGrpTyp,Grp_MAX_BYTES_GROUP_TYPE_NAME);
/***** Get from the database the old name of the group type *****/
Grp_GetDataOfGroupTypeByCod (&Gbl.CurrentCrs.Grps.GrpTyp);
@ -3989,7 +3989,7 @@ void Grp_RenameGroupType (void)
/***** Show the form again *****/
Str_Copy (Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName,NewNameGrpTyp,
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Grp_MAX_BYTES_GROUP_TYPE_NAME);
Grp_ReqEditGroups ();
}
@ -4005,7 +4005,7 @@ void Grp_RenameGroup (void)
extern const char *Txt_The_name_of_the_group_X_has_not_changed;
struct GroupData GrpDat;
char Query[512];
char NewNameGrp[Grp_MAX_LENGTH_GROUP_NAME + 1];
char NewNameGrp[Grp_MAX_BYTES_GROUP_NAME + 1];
/***** Get parameters from form *****/
/* Get the code of the group */
@ -4013,7 +4013,7 @@ void Grp_RenameGroup (void)
Lay_ShowErrorAndExit ("Code of group is missing.");
/* Get the new name for the group */
Par_GetParToText ("GrpName",NewNameGrp,Grp_MAX_LENGTH_GROUP_NAME);
Par_GetParToText ("GrpName",NewNameGrp,Grp_MAX_BYTES_GROUP_NAME);
/***** Get from the database the type and the old name of the group *****/
GrpDat.GrpCod = Gbl.CurrentCrs.Grps.GrpCod;
@ -4061,7 +4061,7 @@ void Grp_RenameGroup (void)
/***** Show the form again *****/
Str_Copy (Gbl.CurrentCrs.Grps.GrpName,NewNameGrp,
Grp_MAX_LENGTH_GROUP_NAME);
Grp_MAX_BYTES_GROUP_NAME);
Grp_ReqEditGroups ();
}

View File

@ -34,8 +34,11 @@
/***************************** Public constants ******************************/
/*****************************************************************************/
#define Grp_MAX_LENGTH_GROUP_TYPE_NAME (256 - 1)
#define Grp_MAX_LENGTH_GROUP_NAME (256 - 1)
#define Grp_MAX_CHARS_GROUP_TYPE_NAME (128 - 1)
#define Grp_MAX_BYTES_GROUP_TYPE_NAME (Grp_MAX_CHARS_GROUP_TYPE_NAME * Str_MAX_BYTES_PER_CHAR)
#define Grp_MAX_CHARS_GROUP_NAME (128 - 1)
#define Grp_MAX_BYTES_GROUP_NAME (Grp_MAX_CHARS_GROUP_NAME * Str_MAX_BYTES_PER_CHAR)
#define Grp_MAX_STUDENTS_IN_A_GROUP 10000 // If max of students in a group is greater than this, it is considered infinite
#define Grp_NUM_STUDENTS_NOT_LIMITED INT_MAX // This number can be stored in database as an integer...
@ -57,8 +60,8 @@ struct GroupData
long GrpCod;
long GrpTypCod;
long CrsCod;
char GrpTypName[Grp_MAX_LENGTH_GROUP_TYPE_NAME + 1];
char GrpName[Grp_MAX_LENGTH_GROUP_NAME + 1];
char GrpTypName[Grp_MAX_BYTES_GROUP_TYPE_NAME + 1];
char GrpName[Grp_MAX_BYTES_GROUP_NAME + 1];
unsigned MaxStudents;
int Vacant;
bool Open; // Group is open?
@ -69,7 +72,7 @@ struct GroupData
struct Group
{
long GrpCod; // Code of group
char GrpName[Grp_MAX_LENGTH_GROUP_NAME + 1]; // Name of group
char GrpName[Grp_MAX_BYTES_GROUP_NAME + 1]; // Name of group
unsigned MaxStudents;
unsigned NumStudents; // Number of students in the group
bool Open; // Group is open?
@ -80,7 +83,7 @@ struct Group
struct GroupType
{
long GrpTypCod; // Code of type of group
char GrpTypName[Grp_MAX_LENGTH_GROUP_TYPE_NAME + 1]; // Name of type of group
char GrpTypName[Grp_MAX_BYTES_GROUP_TYPE_NAME + 1]; // Name of type of group
bool MandatoryEnrollment; // Enrollment is mandatory?
bool MultipleEnrollment; // Enrollment is multiple?
bool MustBeOpened; // Groups must be opened?

View File

@ -411,8 +411,8 @@ void Img_GetAndProcessImageFileFromForm (struct Image *Image,const char *ParamFi
return;
LengthExtension = strlen (PtrExtension);
if (LengthExtension < Fil_MIN_LENGTH_FILE_EXTENSION ||
LengthExtension > Fil_MAX_LENGTH_FILE_EXTENSION)
if (LengthExtension < Fil_MIN_BYTES_FILE_EXTENSION ||
LengthExtension > Fil_MAX_BYTES_FILE_EXTENSION)
return;
/* Check if the file type is image/ or application/octet-stream */

View File

@ -67,8 +67,8 @@ extern struct Globals Gbl;
static void Mai_GetParamMaiOrder (void);
static void Mai_PutIconToEditMailDomains (void);
static void Mai_GetListMailDomainsAllowedForNotif (void);
static void Mai_GetMailBox (const char *Email,char MailBox[Usr_MAX_BYTES_USR_EMAIL + 1]);
static bool Mai_CheckIfMailDomainIsAllowedForNotif (const char *MailDomain);
static void Mai_GetMailDomain (const char *Email,char MailDomain[Mai_MAX_LENGTH_MAIL_DOMAIN + 1]);
static bool Mai_CheckIfMailDomainIsAllowedForNotif (const char MailDomain[Mai_MAX_LENGTH_MAIL_DOMAIN + 1]);
static void Mai_ListMailDomainsForEdition (void);
static void Mai_PutParamMaiCod (long MaiCod);
@ -317,14 +317,14 @@ static void Mai_GetListMailDomainsAllowedForNotif (void)
bool Mai_CheckIfUsrCanReceiveEmailNotif (const struct UsrData *UsrDat)
{
char MailDomain[Usr_MAX_BYTES_USR_EMAIL + 1];
char MailDomain[Mai_MAX_LENGTH_MAIL_DOMAIN + 1];
/***** Check #1: is my email address confirmed? *****/
if (!UsrDat->EmailConfirmed)
return false;
/***** Check #2: if my mail domain allowed? *****/
Mai_GetMailBox (UsrDat->Email,MailDomain);
Mai_GetMailDomain (UsrDat->Email,MailDomain);
return Mai_CheckIfMailDomainIsAllowedForNotif (MailDomain);
}
@ -332,19 +332,19 @@ bool Mai_CheckIfUsrCanReceiveEmailNotif (const struct UsrData *UsrDat)
/********************** Get mailbox from email address ***********************/
/*****************************************************************************/
static void Mai_GetMailBox (const char *Email,char MailBox[Usr_MAX_BYTES_USR_EMAIL + 1])
static void Mai_GetMailDomain (const char *Email,char MailDomain[Mai_MAX_LENGTH_MAIL_DOMAIN + 1])
{
const char *Ptr;
MailBox[0] = '\0'; // Return empty mailbox on error
MailDomain[0] = '\0'; // Return empty mailbox on error
if ((Ptr = strchr (Email,(int) '@'))) // Find first '@' in address
if (Ptr != Email) // '@' is not the first character in Email
{
Ptr++; // Skip '@'
if (strchr (Ptr,(int) '@') == NULL) // No more '@' found
Str_Copy (MailBox,Ptr,
Usr_MAX_BYTES_USR_EMAIL);
Str_Copy (MailDomain,Ptr,
Mai_MAX_LENGTH_MAIL_DOMAIN);
}
}
@ -352,7 +352,7 @@ static void Mai_GetMailBox (const char *Email,char MailBox[Usr_MAX_BYTES_USR_EMA
/************ Check if a mail domain is allowed for notifications ************/
/*****************************************************************************/
static bool Mai_CheckIfMailDomainIsAllowedForNotif (const char *MailDomain)
static bool Mai_CheckIfMailDomainIsAllowedForNotif (const char MailDomain[Mai_MAX_LENGTH_MAIL_DOMAIN + 1])
{
char Query[512];
@ -1310,7 +1310,7 @@ void Mai_ShowFormChangeUsrEmail (const struct UsrData *UsrDat,bool ItsMe)
"<input type=\"email\" id=\"NewEmail\" name=\"NewEmail\""
" size=\"18\" maxlength=\"%u\" value=\"%s\" />"
"</div>",
Usr_MAX_BYTES_USR_EMAIL,
Usr_MAX_CHARS_USR_EMAIL,
Gbl.Usrs.Me.UsrDat.Email);
Lay_PutCreateButtonInline (NumEmails ? Txt_Change_email : // User already has an email address
Txt_Save); // User has no email address yet

View File

@ -1013,11 +1013,11 @@ void Msg_GetParamMsgsCrsCod (void)
Crs_GetDataOfCourseByCod (&Crs);
Str_Copy (Gbl.Msg.FilterCrsShrtName,Crs.ShrtName,
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
Crs_MAX_BYTES_COURSE_SHRT_NAME);
}
else
Str_Copy (Gbl.Msg.FilterCrsShrtName,Txt_any_course,
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
Crs_MAX_BYTES_COURSE_SHRT_NAME);
}
/*****************************************************************************/
@ -2512,7 +2512,7 @@ void Msg_GetDistinctCoursesInMyMessages (void)
{
Gbl.Msg.Courses[Gbl.Msg.NumCourses].CrsCod = Crs.CrsCod;
Str_Copy (Gbl.Msg.Courses[Gbl.Msg.NumCourses].ShrtName,Crs.ShrtName,
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
Crs_MAX_BYTES_COURSE_SHRT_NAME);
Gbl.Msg.NumCourses++;
}
}

View File

@ -174,7 +174,7 @@ static void Par_GetBoundary (void)
PtrToBoundary = strstr (getenv ("CONTENT_TYPE"),"boundary=") + strlen ("boundary=");
/***** Check that boundary string is not too long *****/
if (2 + 2 + strlen (PtrToBoundary) > Par_MAX_LENGTH_BOUNDARY_WITH_CR_LF)
if (2 + 2 + strlen (PtrToBoundary) > Par_MAX_BYTES_BOUNDARY_WITH_CR_LF)
Lay_ShowErrorAndExit ("Delimiter string too long.");
/***** Create boundary strings *****/

View File

@ -34,7 +34,7 @@
/************************** Public types and constants ***********************/
/*****************************************************************************/
#define Par_MAX_LENGTH_BOUNDARY_WITH_CR_LF 100
#define Par_MAX_BYTES_BOUNDARY_WITH_CR_LF (128 - 1)
struct StartLength
{

View File

@ -248,7 +248,7 @@ static void Plg_GetListPlugins (void)
/* Get the IP of the plugin (row[6]) */
Str_Copy (Plg->IP,row[6],
Cns_MAX_LENGTH_IP);
Cns_MAX_BYTES_IP);
}
}
else
@ -315,7 +315,7 @@ bool Plg_GetDataOfPluginByCod (struct Plugin *Plg)
/* Get the IP of the plugin (row[5]) */
Str_Copy (Plg->IP,row[5],
Cns_MAX_LENGTH_IP);
Cns_MAX_BYTES_IP);
}
else
PluginFound = false;
@ -452,7 +452,8 @@ static void Plg_ListPluginsForEdition (void)
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"IP\""
" size=\"10\" maxlength=\"%u\" value=\"%s\""
" onchange=\"document.getElementById('%s').submit();\" />",
Cns_MAX_LENGTH_IP,Plg->IP,Gbl.Form.Id);
Cns_MAX_CHARS_IP,Plg->IP,
Gbl.Form.Id);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
@ -785,8 +786,8 @@ void Plg_ChangePlgIP (void)
extern const char *Txt_The_new_IP_address_is_X;
extern const char *Txt_You_can_not_leave_the_IP_address_empty;
struct Plugin *Plg;
char Query[256 + Cns_MAX_LENGTH_IP];
char NewIP[Cns_MAX_LENGTH_IP + 1];
char Query[256 + Cns_MAX_BYTES_IP];
char NewIP[Cns_MAX_BYTES_IP + 1];
Plg = &Gbl.Plugins.EditingPlg;
@ -796,7 +797,7 @@ void Plg_ChangePlgIP (void)
Lay_ShowErrorAndExit ("Code of plugin is missing.");
/* Get the new IP for the plugin */
Par_GetParToText ("IP",NewIP,Cns_MAX_LENGTH_IP);
Par_GetParToText ("IP",NewIP,Cns_MAX_BYTES_IP);
/***** Check if new IP is empty *****/
if (NewIP[0])
@ -816,7 +817,7 @@ void Plg_ChangePlgIP (void)
/***** Show the form again *****/
Str_Copy (Plg->IP,NewIP,
Cns_MAX_LENGTH_IP);
Cns_MAX_BYTES_IP);
Plg_EditPlugins ();
}
@ -919,7 +920,7 @@ static void Plg_PutFormToCreatePlugin (void)
" required=\"required\" />"
"</td>"
"</tr>",
Cns_MAX_LENGTH_IP,Plg->IP);
Cns_MAX_CHARS_IP,Plg->IP);
/***** Send button and end frame *****/
Lay_EndRoundFrameTableWithButton (Lay_CREATE_BUTTON,Txt_Create_plugin);
@ -1006,7 +1007,7 @@ void Plg_RecFormNewPlg (void)
Par_GetParToText ("URL",Plg->URL,Cns_MAX_BYTES_WWW);
/* Get plugin IP address */
Par_GetParToText ("IP",Plg->IP,Cns_MAX_LENGTH_IP);
Par_GetParToText ("IP",Plg->IP,Cns_MAX_BYTES_IP);
if (Plg->Name[0]) // If there's a plugin name
{
@ -1044,7 +1045,7 @@ static void Plg_CreatePlugin (struct Plugin *Plg)
Plg_MAX_LENGTH_PLUGIN_LOGO +
Plg_MAX_LENGTH_PLUGIN_APP_KEY +
Cns_MAX_BYTES_WWW +
Cns_MAX_LENGTH_IP];
Cns_MAX_BYTES_IP];
/***** Create a new plugin *****/
sprintf (Query,"INSERT INTO plugins (Name,Description,Logo,AppKey,URL,IP)"

View File

@ -48,7 +48,7 @@ struct Plugin
char Logo[Plg_MAX_LENGTH_PLUGIN_LOGO + 1];
char AppKey[Plg_MAX_LENGTH_PLUGIN_APP_KEY + 1];
char URL[Cns_MAX_BYTES_WWW + 1];
char IP[Cns_MAX_LENGTH_IP + 1];
char IP[Cns_MAX_BYTES_IP + 1];
};
/*****************************************************************************/

View File

@ -3124,7 +3124,7 @@ static void Rec_ShowOriginPlace (struct UsrData *UsrDat,
" id=\"OriginPlace\" name=\"OriginPlace\""
" maxlength=\"%u\" value=\"%s\""
" class=\"REC_C2_BOT_INPUT\" />",
Cns_MAX_LENGTH_STRING,
Cns_MAX_CHARS_STRING,
UsrDat->OriginPlace);
else if (UsrDat->OriginPlace[0])
fprintf (Gbl.F.Out,"%s",UsrDat->OriginPlace);
@ -3189,7 +3189,7 @@ static void Rec_ShowLocalAddress (struct UsrData *UsrDat,
" id=\"LocalAddress\" name=\"LocalAddress\""
" maxlength=\"%u\" value=\"%s\""
" class=\"REC_C2_BOT_INPUT\" />",
Cns_MAX_LENGTH_STRING,
Cns_MAX_CHARS_STRING,
UsrDat->LocalAddress);
else if (UsrDat->LocalAddress[0])
fprintf (Gbl.F.Out,"%s",UsrDat->LocalAddress);
@ -3259,7 +3259,7 @@ static void Rec_ShowFamilyAddress (struct UsrData *UsrDat,
" id=\"FamilyAddress\" name=\"FamilyAddress\""
" maxlength=\"%u\" value=\"%s\""
" class=\"REC_C2_BOT_INPUT\" />",
Cns_MAX_LENGTH_STRING,
Cns_MAX_CHARS_STRING,
UsrDat->FamilyAddress);
else if (UsrDat->FamilyAddress[0])
fprintf (Gbl.F.Out,"%s",UsrDat->FamilyAddress);
@ -3912,7 +3912,7 @@ void Rec_ShowFormMyInsCtrDpt (void)
" maxlength=\"%u\" value=\"%s\""
" style=\"width:500px;\""
" onchange=\"document.getElementById('%s').submit();\" />",
Cns_MAX_LENGTH_STRING,
Cns_MAX_CHARS_STRING,
Gbl.Usrs.Me.UsrDat.Tch.Office,
Gbl.Form.Id);
Act_FormEnd ();

View File

@ -355,7 +355,7 @@ void Sch_PutInputStringToSearch (const char *IdInputText)
fprintf (Gbl.F.Out," id=\"%s\"",IdInputText);
fprintf (Gbl.F.Out," type=\"search\" name=\"Search\""
" size=\"18\" maxlength=\"%u\" value=\"%s\"",
Sch_MAX_LENGTH_STRING_TO_FIND,
Sch_MAX_CHARS_STRING_TO_FIND,
Gbl.Search.Str);
if (!Gbl.Search.Str[0])
fprintf (Gbl.F.Out," placeholder=\"%s&hellip;\"",
@ -655,8 +655,8 @@ static void Sch_SearchInDB (void)
static unsigned Sch_SearchCountriesInDB (const char *RangeQuery)
{
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_LENGTH_SEARCH_QUERY * 2];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_BYTES_SEARCH_QUERY * 2];
char FieldName[4+1+2+1]; // Example: Name_en
/***** Check scope *****/
@ -693,8 +693,8 @@ static unsigned Sch_SearchCountriesInDB (const char *RangeQuery)
static unsigned Sch_SearchInstitutionsInDB (const char *RangeQuery)
{
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_LENGTH_SEARCH_QUERY * 2];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_BYTES_SEARCH_QUERY * 2];
/***** Check scope *****/
if (Gbl.Scope.Current != Sco_SCOPE_CTR &&
@ -727,8 +727,8 @@ static unsigned Sch_SearchInstitutionsInDB (const char *RangeQuery)
static unsigned Sch_SearchCentresInDB (const char *RangeQuery)
{
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_LENGTH_SEARCH_QUERY * 2];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_BYTES_SEARCH_QUERY * 2];
/***** Check scope *****/
if (Gbl.Scope.Current != Sco_SCOPE_DEG &&
@ -760,8 +760,8 @@ static unsigned Sch_SearchCentresInDB (const char *RangeQuery)
static unsigned Sch_SearchDegreesInDB (const char *RangeQuery)
{
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_LENGTH_SEARCH_QUERY * 2];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_BYTES_SEARCH_QUERY * 2];
/***** Check scope *****/
if (Gbl.Scope.Current != Sco_SCOPE_CRS)
@ -793,8 +793,8 @@ static unsigned Sch_SearchDegreesInDB (const char *RangeQuery)
static unsigned Sch_SearchCoursesInDB (const char *RangeQuery)
{
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_LENGTH_SEARCH_QUERY * 2];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
char Query[1024 + Sch_MAX_BYTES_SEARCH_QUERY * 2];
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_COURSES))
@ -828,7 +828,7 @@ static unsigned Sch_SearchUsrsInDB (Rol_Role_t Role)
{
extern const char *Txt_The_search_text_must_be_longer;
static bool WarningMessageWritten = false;
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
/***** Split user string into words *****/
if (Sch_BuildSearchQuery (SearchQuery,
@ -856,8 +856,8 @@ static unsigned Sch_SearchOpenDocumentsInDB (const char *RangeQuery)
{
extern const char *Txt_open_document;
extern const char *Txt_open_documents;
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char Query[(512 + Sch_MAX_LENGTH_SEARCH_QUERY) * 4];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
char Query[(512 + Sch_MAX_BYTES_SEARCH_QUERY) * 4];
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_OPEN_DOCUMENTS))
@ -968,8 +968,8 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
{
extern const char *Txt_document_in_my_courses;
extern const char *Txt_documents_in_my_courses;
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char Query[(1024 + Sch_MAX_LENGTH_SEARCH_QUERY) * 2];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
char Query[(1024 + Sch_MAX_BYTES_SEARCH_QUERY) * 2];
unsigned NumDocs;
/***** Check user's permission *****/
@ -1096,8 +1096,8 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
{
extern const char *Txt_document_from_me;
extern const char *Txt_documents_from_me;
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char Query[(512 + Sch_MAX_LENGTH_SEARCH_QUERY) * 5];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
char Query[(512 + Sch_MAX_BYTES_SEARCH_QUERY) * 5];
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_MY_DOCUMENTS))
@ -1246,7 +1246,7 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
// Returns true if a valid search query is built
// Returns false when no valid search query
bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1],
bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1],
const char *FieldName,
const char *CharSet,const char *Collate)
{
@ -1256,7 +1256,7 @@ bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1],
size_t LengthWord;
size_t LengthTotal = 0;
size_t MaxLengthWord = 0;
char SearchWords[Sch_MAX_WORDS_IN_SEARCH][Sch_MAX_LENGTH_SEARCH_WORD + 1];
char SearchWords[Sch_MAX_WORDS_IN_SEARCH][Sch_MAX_BYTES_SEARCH_WORD + 1];
bool SearchWordIsValid = true;
if (Gbl.Search.Str[0])
@ -1268,7 +1268,7 @@ bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1],
NumWords++)
{
/* Get next word */
Str_GetNextStringUntilSpace (&Ptr,SearchWords[NumWords],Sch_MAX_LENGTH_SEARCH_WORD);
Str_GetNextStringUntilSpace (&Ptr,SearchWords[NumWords],Sch_MAX_BYTES_SEARCH_WORD);
/* Is this word valid? */
switch (Gbl.Search.WhatToSearch)
@ -1298,29 +1298,29 @@ bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1],
if (LengthWord > MaxLengthWord)
MaxLengthWord = LengthWord;
if (strlen (SearchQuery) + LengthWord + 512 >
Sch_MAX_LENGTH_SEARCH_QUERY) // Prevent string overflow
Sch_MAX_BYTES_SEARCH_QUERY) // Prevent string overflow
break;
if (NumWords)
Str_Concat (SearchQuery," AND ",
Sch_MAX_LENGTH_SEARCH_QUERY);
Sch_MAX_BYTES_SEARCH_QUERY);
Str_Concat (SearchQuery,FieldName,
Sch_MAX_LENGTH_SEARCH_QUERY);
Sch_MAX_BYTES_SEARCH_QUERY);
Str_Concat (SearchQuery," LIKE ",
Sch_MAX_LENGTH_SEARCH_QUERY);
Sch_MAX_BYTES_SEARCH_QUERY);
if (CharSet)
if (CharSet[0])
Str_Concat (SearchQuery,CharSet,
Sch_MAX_LENGTH_SEARCH_QUERY);
Sch_MAX_BYTES_SEARCH_QUERY);
Str_Concat (SearchQuery,"'%",
Sch_MAX_LENGTH_SEARCH_QUERY);
Sch_MAX_BYTES_SEARCH_QUERY);
Str_Concat (SearchQuery,SearchWords[NumWords],
Sch_MAX_LENGTH_SEARCH_QUERY);
Sch_MAX_BYTES_SEARCH_QUERY);
Str_Concat (SearchQuery,"%'",
Sch_MAX_LENGTH_SEARCH_QUERY);
Sch_MAX_BYTES_SEARCH_QUERY);
if (Collate)
if (Collate[0])
Str_Concat (SearchQuery,Collate,
Sch_MAX_LENGTH_SEARCH_QUERY);
Sch_MAX_BYTES_SEARCH_QUERY);
}
}

View File

@ -31,10 +31,15 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Sch_MAX_LENGTH_STRING_TO_FIND 255
#define Sch_MAX_CHARS_STRING_TO_FIND (128 - 1)
#define Sch_MAX_BYTES_STRING_TO_FIND (Sch_MAX_CHARS_STRING_TO_FIND * Str_MAX_BYTES_PER_CHAR)
#define Sch_MAX_WORDS_IN_SEARCH 10
#define Sch_MAX_LENGTH_SEARCH_WORD 255
#define Sch_MAX_LENGTH_SEARCH_QUERY (Sch_MAX_WORDS_IN_SEARCH*Sch_MAX_LENGTH_SEARCH_WORD)
#define Sch_MAX_CHARS_SEARCH_WORD (128 - 1)
#define Sch_MAX_BYTES_SEARCH_WORD (Sch_MAX_CHARS_SEARCH_WORD * Str_MAX_BYTES_PER_CHAR)
#define Sch_MAX_BYTES_SEARCH_QUERY (Sch_MAX_WORDS_IN_SEARCH * Sch_MAX_BYTES_SEARCH_WORD)
/*****************************************************************************/
/******************************** Public types *******************************/
@ -84,7 +89,7 @@ void Sch_CtrSearch (void);
void Sch_DegSearch (void);
void Sch_CrsSearch (void);
bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1],
bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1],
const char *FieldName,
const char *CharSet,const char *Collate);

View File

@ -322,7 +322,7 @@ bool Ses_GetSessionData (void)
/* Get search string (row[9]) */
Str_Copy (Gbl.Search.Str,row[9],
Sch_MAX_LENGTH_STRING_TO_FIND);
Sch_MAX_BYTES_STRING_TO_FIND);
}
Result = true;

View File

@ -256,7 +256,7 @@ void Sta_GetRemoteAddr (void)
{
if (getenv ("REMOTE_ADDR"))
Str_Copy (Gbl.IP,getenv ("REMOTE_ADDR"),
Cns_MAX_LENGTH_IP);
Cns_MAX_BYTES_IP);
else
Gbl.IP[0] = '\0';
}

View File

@ -2457,8 +2457,8 @@ bool Str_FileIs (const char *FileName,const char *Extension)
size_t LengthExtension = strlen (Extension);
/***** Check length of extension. Extension valid are, for example "zip", "html", "mhtml" *****/
if (LengthExtension < Fil_MIN_LENGTH_FILE_EXTENSION ||
LengthExtension > Fil_MAX_LENGTH_FILE_EXTENSION)
if (LengthExtension < Fil_MIN_BYTES_FILE_EXTENSION ||
LengthExtension > Fil_MAX_BYTES_FILE_EXTENSION)
return false;
/***** Check the extension *****/

View File

@ -36,7 +36,8 @@
/*****************************************************************************/
#define Str_LENGTH_STR_HEX 3 // Length of the string #XX
#define Str_MAX_LENGTH_SPEC_CHAR_HTML 8 // Length of the string &#DDDDD;
#define Str_MAX_LENGTH_SPEC_CHAR_HTML 8 // Length of the string &#ddddd;
#define Str_MAX_BYTES_PER_CHAR 8 // max (Str_LENGTH_STR_HEX,Str_MAX_LENGTH_SPEC_CHAR_HTML)
/*****************************************************************************/

View File

@ -62,7 +62,7 @@ extern struct Globals Gbl;
#define TT_PERCENT_WIDTH_OF_AN_HOUR_COLUMN ((100 - TT_PERCENT_WIDTH_OF_ALL_DAYS - TT_PERCENT_WIDTH_OF_A_SEPARATION_COLUMN * 2) / 2) // Width (%) of the separation columns
#define TT_MAX_BYTES_STR_CLASS_TYPE 256
#define TT_MAX_BYTES_STR_DURATION ((2 + 1 + 2 + 1 + 1) * Str_LENGTH_STR_HEX) // "hh:mm h"
#define TT_MAX_BYTES_STR_DURATION (2 + 1 + 2 + 1 + 1) // "hh:mm h"
#define TT_MAX_LENGTH_PLACE 32
/*****************************************************************************/

View File

@ -5896,7 +5896,7 @@ static void Usr_ListMainDataStds (bool PutCheckBoxToSelectUsr)
if (Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs)
{
/***** Allocate memory for the string with the list of group names where student belongs to *****/
if ((GroupNames = (char *) malloc ((Grp_MAX_LENGTH_GROUP_NAME + 3) *
if ((GroupNames = (char *) malloc ((Grp_MAX_BYTES_GROUP_NAME + 3) *
Gbl.CurrentCrs.Grps.GrpTypes.NumGrpsTotal)) == NULL)
Lay_ShowErrorAndExit ("Not enough memory to store names of groups.");
@ -6231,7 +6231,7 @@ void Usr_ListAllDataStds (void)
/***** Allocate memory for the string with the list of group names where student belongs to *****/
if (Gbl.Scope.Current == Sco_SCOPE_CRS)
{
Length = (Grp_MAX_LENGTH_GROUP_NAME + 2) * Gbl.CurrentCrs.Grps.GrpTypes.NumGrpsTotal;
Length = (Grp_MAX_BYTES_GROUP_NAME + 2) * Gbl.CurrentCrs.Grps.GrpTypes.NumGrpsTotal;
if ((GroupNames = (char *) malloc (Length + 1)) == NULL)
Lay_ShowErrorAndExit ("Not enough memory to store names of groups.");
}

View File

@ -53,9 +53,6 @@
#define Usr_DEF_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_USRS 12
#define Usr_MAX_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_USRS 60
#define Usr_MAX_LENGTH_USR_LOGIN (128 - 1) // @nick, email or ID
#define Usr_MAX_BYTES_USR_LOGIN (128 - 1)
#define Usr_MAX_LENGTH_USR_NAME_OR_SURNAME 32
#define Usr_MAX_BYTES_NAME 32
@ -65,7 +62,11 @@
// Surname1 +' '+ Surname2 + ','+' ' + FirstName
// Surname1 +' '+ Surname2 + '<br />' + FirstName
#define Usr_MAX_BYTES_USR_EMAIL (128 - 1)
#define Usr_MAX_CHARS_USR_EMAIL (128 - 1)
#define Usr_MAX_BYTES_USR_EMAIL Usr_MAX_CHARS_USR_EMAIL
#define Usr_MAX_LENGTH_USR_LOGIN (128 - 1) // @nick, email or ID
#define Usr_MAX_BYTES_USR_LOGIN (128 - 1)
#define Usr_BIRTHDAY_STR_DB_LENGTH (4 + 1 + 2 + 1 + 2) // "'%04u-%02u-%02u'"
@ -146,11 +147,11 @@ struct UsrData
long CtyCod; // Country
char OriginPlace [Cns_MAX_BYTES_STRING + 1];
struct Date Birthday;
char StrBirthday [Cns_MAX_LENGTH_DATE + 1];
char StrBirthday [Cns_MAX_BYTES_DATE + 1];
char LocalAddress [Cns_MAX_BYTES_STRING + 1];
char LocalPhone [Usr_MAX_BYTES_PHONE + 1];
char LocalPhone [Usr_MAX_BYTES_PHONE + 1];
char FamilyAddress [Cns_MAX_BYTES_STRING + 1];
char FamilyPhone [Usr_MAX_BYTES_PHONE + 1];
char FamilyPhone [Usr_MAX_BYTES_PHONE + 1];
char *Comments;
long InsCtyCod; // Country of the institution
long InsCod; // Institution

View File

@ -955,8 +955,8 @@ int swad__loginBySessionKey (struct soap *soap,
loginBySessionKeyOut->userSurname2 = (char *) soap_malloc (Gbl.soap,Usr_MAX_BYTES_NAME + 1);
loginBySessionKeyOut->userPhoto = (char *) soap_malloc (Gbl.soap,Cns_MAX_BYTES_WWW + 1);
loginBySessionKeyOut->userBirthday = (char *) soap_malloc (Gbl.soap,Dat_LENGTH_YYYYMMDD + 1);
loginBySessionKeyOut->degreeName = (char *) soap_malloc (Gbl.soap,Deg_MAX_LENGTH_DEGREE_FULL_NAME + 1);
loginBySessionKeyOut->courseName = (char *) soap_malloc (Gbl.soap,Crs_MAX_LENGTH_COURSE_FULL_NAME + 1);
loginBySessionKeyOut->degreeName = (char *) soap_malloc (Gbl.soap,Deg_MAX_BYTES_DEGREE_FULL_NAME + 1);
loginBySessionKeyOut->courseName = (char *) soap_malloc (Gbl.soap,Crs_MAX_BYTES_COURSE_FULL_NAME + 1);
/***** Default values returned on error *****/
loginBySessionKeyOut->userCode = -1;
@ -1001,7 +1001,7 @@ int swad__loginBySessionKey (struct soap *soap,
Crs_GetDataOfCourseByCod (&Gbl.CurrentCrs.Crs);
loginBySessionKeyOut->courseCode = (int) Gbl.CurrentCrs.Crs.CrsCod;
Str_Copy (loginBySessionKeyOut->courseName,Gbl.CurrentCrs.Crs.FullName,
Crs_MAX_LENGTH_COURSE_FULL_NAME);
Crs_MAX_BYTES_COURSE_FULL_NAME);
/***** Get user code (row[0]) *****/
Gbl.Usrs.Me.UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
@ -1012,7 +1012,7 @@ int swad__loginBySessionKey (struct soap *soap,
Deg_GetDataOfDegreeByCod (&Gbl.CurrentDeg.Deg);
loginBySessionKeyOut->degreeCode = (int) Gbl.CurrentDeg.Deg.DegCod;
Str_Copy (loginBySessionKeyOut->degreeName,Gbl.CurrentDeg.Deg.FullName,
Deg_MAX_LENGTH_DEGREE_FULL_NAME);
Deg_MAX_BYTES_DEGREE_FULL_NAME);
}
else
UsrFound = false;
@ -1225,14 +1225,14 @@ int swad__getCourses (struct soap *soap,
getCoursesOut->coursesArray.__ptr[NumRow].courseCode = (int) Str_ConvertStrCodToLongCod (row[0]);
/* Get course short name (row[1]) */
getCoursesOut->coursesArray.__ptr[NumRow].courseShortName = (char *) soap_malloc (Gbl.soap,Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1);
getCoursesOut->coursesArray.__ptr[NumRow].courseShortName = (char *) soap_malloc (Gbl.soap,Crs_MAX_BYTES_COURSE_SHRT_NAME + 1);
Str_Copy (getCoursesOut->coursesArray.__ptr[NumRow].courseShortName,row[1],
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
Crs_MAX_BYTES_COURSE_SHRT_NAME);
/* Get course full name (row[2]) */
getCoursesOut->coursesArray.__ptr[NumRow].courseFullName = (char *) soap_malloc (Gbl.soap,Crs_MAX_LENGTH_COURSE_FULL_NAME + 1);
getCoursesOut->coursesArray.__ptr[NumRow].courseFullName = (char *) soap_malloc (Gbl.soap,Crs_MAX_BYTES_COURSE_FULL_NAME + 1);
Str_Copy (getCoursesOut->coursesArray.__ptr[NumRow].courseFullName,row[2],
Crs_MAX_LENGTH_COURSE_FULL_NAME);
Crs_MAX_BYTES_COURSE_FULL_NAME);
/* Get role (row[3]) */
if (sscanf (row[3],"%u",&Role) != 1) // Role in this course
@ -1459,7 +1459,7 @@ int swad__findUsers (struct soap *soap,
struct swad__getUsersOutput *getUsersOut) // output
{
int ReturnCode;
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1];
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
Rol_Role_t Role;
bool FilterTooShort = false;
@ -1515,7 +1515,7 @@ int swad__findUsers (struct soap *soap,
/***** Query users beloging to course or group from database *****/
Str_Copy (Gbl.Search.Str,filter,
Sch_MAX_LENGTH_STRING_TO_FIND);
Sch_MAX_BYTES_STRING_TO_FIND);
if (Gbl.Search.Str[0]) // Search some users
{
@ -1686,9 +1686,9 @@ int swad__getGroupTypes (struct soap *soap,
getGroupTypesOut->groupTypesArray.__ptr[NumRow].groupTypeCode = (int) Str_ConvertStrCodToLongCod (row[0]);
/* Get group type name (row[1]) */
getGroupTypesOut->groupTypesArray.__ptr[NumRow].groupTypeName = (char *) soap_malloc (Gbl.soap,Grp_MAX_LENGTH_GROUP_TYPE_NAME + 1);
getGroupTypesOut->groupTypesArray.__ptr[NumRow].groupTypeName = (char *) soap_malloc (Gbl.soap,Grp_MAX_BYTES_GROUP_TYPE_NAME + 1);
Str_Copy (getGroupTypesOut->groupTypesArray.__ptr[NumRow].groupTypeName,row[1],
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Grp_MAX_BYTES_GROUP_TYPE_NAME);
/* Get whether enrollment is mandatory ('Y') or voluntary ('N') (row[2]) */
getGroupTypesOut->groupTypesArray.__ptr[NumRow].mandatory = (row[2][0] == 'Y') ? 1 :
@ -1797,18 +1797,18 @@ int swad__getGroups (struct soap *soap,
getGroupsOut->groupsArray.__ptr[NumRow].groupTypeCode = (int) Str_ConvertStrCodToLongCod (row[0]);
/* Get group type name (row[1]) */
getGroupsOut->groupsArray.__ptr[NumRow].groupTypeName = (char *) soap_malloc (Gbl.soap,Grp_MAX_LENGTH_GROUP_TYPE_NAME + 1);
getGroupsOut->groupsArray.__ptr[NumRow].groupTypeName = (char *) soap_malloc (Gbl.soap,Grp_MAX_BYTES_GROUP_TYPE_NAME + 1);
Str_Copy (getGroupsOut->groupsArray.__ptr[NumRow].groupTypeName,row[1],
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Grp_MAX_BYTES_GROUP_TYPE_NAME);
/* Get group code (row[2]) */
GrpCod = Str_ConvertStrCodToLongCod (row[2]);
getGroupsOut->groupsArray.__ptr[NumRow].groupCode = (int) GrpCod;
/* Get group name (row[3]) */
getGroupsOut->groupsArray.__ptr[NumRow].groupName = (char *) soap_malloc (Gbl.soap,Grp_MAX_LENGTH_GROUP_NAME + 1);
getGroupsOut->groupsArray.__ptr[NumRow].groupName = (char *) soap_malloc (Gbl.soap,Grp_MAX_BYTES_GROUP_NAME + 1);
Str_Copy (getGroupsOut->groupsArray.__ptr[NumRow].groupName,row[3],
Grp_MAX_LENGTH_GROUP_NAME);
Grp_MAX_BYTES_GROUP_NAME);
/* Get max number of students of group (row[4]) and number of current students */
MaxStudents = Grp_ConvertToNumMaxStdsGrp (row[4]);
@ -1958,18 +1958,18 @@ int swad__sendMyGroups (struct soap *soap,
SendMyGroupsOut->groupsArray.__ptr[NumRow].groupTypeCode = (int) Str_ConvertStrCodToLongCod (row[0]);
/* Get group type name (row[1]) */
SendMyGroupsOut->groupsArray.__ptr[NumRow].groupTypeName = (char *) soap_malloc (Gbl.soap,Grp_MAX_LENGTH_GROUP_TYPE_NAME + 1);
SendMyGroupsOut->groupsArray.__ptr[NumRow].groupTypeName = (char *) soap_malloc (Gbl.soap,Grp_MAX_BYTES_GROUP_TYPE_NAME + 1);
Str_Copy (SendMyGroupsOut->groupsArray.__ptr[NumRow].groupTypeName,row[1],
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
Grp_MAX_BYTES_GROUP_TYPE_NAME);
/* Get group code (row[2]) */
GrpCod = Str_ConvertStrCodToLongCod (row[2]);
SendMyGroupsOut->groupsArray.__ptr[NumRow].groupCode = (int) GrpCod;
/* Get group name (row[3]) */
SendMyGroupsOut->groupsArray.__ptr[NumRow].groupName = (char *) soap_malloc (Gbl.soap,Grp_MAX_LENGTH_GROUP_NAME + 1);
SendMyGroupsOut->groupsArray.__ptr[NumRow].groupName = (char *) soap_malloc (Gbl.soap,Grp_MAX_BYTES_GROUP_NAME + 1);
Str_Copy (SendMyGroupsOut->groupsArray.__ptr[NumRow].groupName,row[3],
Grp_MAX_LENGTH_GROUP_NAME);
Grp_MAX_BYTES_GROUP_NAME);
/* Get max number of students of group (row[4]) and number of current students */
MaxStudents = Grp_ConvertToNumMaxStdsGrp (row[4]);
@ -4535,7 +4535,7 @@ int swad__getFile (struct soap *soap,
/***** Allocate space for strings *****/
getFileOut->fileName = (char *) soap_malloc (Gbl.soap,NAME_MAX + 1);
getFileOut->URL = (char *) soap_malloc (Gbl.soap,Cns_MAX_BYTES_WWW + 1);
getFileOut->license = (char *) soap_malloc (Gbl.soap,Brw_MAX_LENGTH_LICENSE + 1);
getFileOut->license = (char *) soap_malloc (Gbl.soap,Brw_MAX_BYTES_LICENSE + 1);
getFileOut->publisherName = (char *) soap_malloc (Gbl.soap,Usr_MAX_BYTES_FULL_NAME + 1);
getFileOut->publisherPhoto = (char *) soap_malloc (Gbl.soap,Cns_MAX_BYTES_WWW + 1);
@ -4654,7 +4654,7 @@ int swad__getFile (struct soap *soap,
getFileOut->time = (int) FileMetadata.Time;
Str_Copy (getFileOut->license,Txt_LICENSES[FileMetadata.License],
Brw_MAX_LENGTH_LICENSE);
Brw_MAX_BYTES_LICENSE);
if ((Gbl.Usrs.Other.UsrDat.UsrCod = FileMetadata.PublisherUsrCod) > 0)
/* Get publisher's data */