From 266cb4e32e76796b703241b0f513edf6c8187e02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Tue, 7 Mar 2017 11:03:05 +0100 Subject: [PATCH] Version 16.150 --- swad_account.c | 2 +- swad_centre.c | 56 +++++++++---------- swad_centre.h | 15 ++++-- swad_changelog.h | 3 +- swad_chat.c | 129 +++++++++++++++++++++++--------------------- swad_connected.c | 4 +- swad_constant.h | 11 ++-- swad_country.c | 84 ++++++++++++++--------------- swad_country.h | 7 ++- swad_course.c | 78 +++++++++++++-------------- swad_course.h | 17 +++--- swad_cryptography.c | 2 +- swad_degree.c | 40 +++++++------- swad_degree.h | 11 ++-- swad_degree_type.c | 18 +++---- swad_degree_type.h | 9 ++-- swad_department.c | 36 ++++++------- swad_department.h | 11 ++-- swad_exam.c | 14 ++--- swad_exam.h | 2 +- swad_file.h | 4 +- swad_file_browser.c | 4 +- swad_file_browser.h | 5 +- swad_global.h | 14 ++--- swad_group.c | 36 ++++++------- swad_group.h | 15 +++--- swad_image.c | 4 +- swad_mail.c | 20 +++---- swad_message.c | 6 +-- swad_parameter.c | 2 +- swad_parameter.h | 2 +- swad_plugin.c | 21 ++++---- swad_plugin.h | 2 +- swad_record.c | 8 +-- swad_search.c | 60 ++++++++++----------- swad_search.h | 13 +++-- swad_session.c | 2 +- swad_statistic.c | 2 +- swad_string.c | 4 +- swad_string.h | 3 +- swad_timetable.c | 2 +- swad_user.c | 4 +- swad_user.h | 15 +++--- swad_web_service.c | 44 +++++++-------- 44 files changed, 439 insertions(+), 402 deletions(-) diff --git a/swad_account.c b/swad_account.c index bf79f4e0..a542ba0a 100644 --- a/swad_account.c +++ b/swad_account.c @@ -375,7 +375,7 @@ static void Acc_ShowFormRequestNewAccountWithParams (const char *NewNicknameWith "", The_ClassForm[Gbl.Prefs.Theme], Txt_Email, - Usr_MAX_BYTES_USR_EMAIL, + Usr_MAX_CHARS_USR_EMAIL, Txt_HELP_email, NewEmail); diff --git a/swad_centre.c b/swad_centre.c index 28fedbd3..6dda6d65 100644 --- a/swad_centre.c +++ b/swad_centre.c @@ -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,""); } @@ -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,""); } @@ -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\" />" "", - Ctr_MAX_LENGTH_CENTRE_SHRT_NAME,Ctr->ShrtName); + Ctr_MAX_CHARS_CENTRE_SHRT_NAME,Ctr->ShrtName); /***** Centre full name *****/ fprintf (Gbl.F.Out,"" @@ -2452,7 +2452,7 @@ static void Ctr_PutFormToCreateCentre (void) " class=\"INPUT_FULL_NAME\"" " required=\"required\" />" "", - Ctr_MAX_LENGTH_CENTRE_FULL_NAME,Ctr->FullName); + Ctr_MAX_CHARS_CENTRE_FULL_NAME,Ctr->FullName); /***** Centre WWW *****/ fprintf (Gbl.F.Out,"" @@ -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 *****/ diff --git a/swad_centre.h b/swad_centre.h index 4883ec0c..96409ab3 100644 --- a/swad_centre.h +++ b/swad_centre.h @@ -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 diff --git a/swad_changelog.h b/swad_changelog.h index 2b104631..6154ca89 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -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) diff --git a/swad_chat.c b/swad_chat.c index 588af333..bf2427b8 100644 --- a/swad_chat.c +++ b/swad_chat.c @@ -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,"
  • "); 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", ListRoomCodes); fprintf (Gbl.F.Out,"\n", - ListRoomShortNames); + ListRoomShrtNames); fprintf (Gbl.F.Out,"\n", ListRoomFullNames); diff --git a/swad_connected.c b/swad_connected.c index b9a60158..6636a596 100644 --- a/swad_connected.c +++ b/swad_connected.c @@ -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" "", diff --git a/swad_constant.h b/swad_constant.h index 02510a6c..b7e5e0fb 100644 --- a/swad_constant.h +++ b/swad_constant.h @@ -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 ********************************/ diff --git a/swad_country.c b/swad_country.c index f247f050..bcf06d82 100644 --- a/swad_country.c +++ b/swad_country.c @@ -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,"", - Cty_MAX_BYTES_COUNTRY_NAME, + Cty_MAX_CHARS_COUNTRY_NAME, Cty->Name[Lan],Gbl.Form.Id); Act_FormEnd (); fprintf (Gbl.F.Out,""); @@ -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\" />" "", 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)", diff --git a/swad_country.h b/swad_country.h index 139b2aca..3ec2ede4 100644 --- a/swad_country.h +++ b/swad_country.h @@ -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 diff --git a/swad_course.c b/swad_course.c index 9cf3c351..704e3166 100644 --- a/swad_course.c +++ b/swad_course.c @@ -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\" />" "", - 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\" />" "", - Crs_MAX_LENGTH_COURSE_SHRT_NAME,Crs->ShrtName); + Crs_MAX_CHARS_COURSE_SHRT_NAME,Crs->ShrtName); /***** Course full name *****/ fprintf (Gbl.F.Out,"" @@ -1693,7 +1691,7 @@ static void Crs_PutFormToCreateCourse (void) " class=\"INPUT_FULL_NAME\"" " required=\"required\" />" "", - 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,"" @@ -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 diff --git a/swad_course.h b/swad_course.h index 83d569fd..dd7a1721 100644 --- a/swad_course.h +++ b/swad_course.h @@ -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 diff --git a/swad_cryptography.c b/swad_cryptography.c index 964496ab..3fc2a045 100644 --- a/swad_cryptography.c +++ b/swad_cryptography.c @@ -146,7 +146,7 @@ void Cry_EncryptSHA512Base64 (const char *PlainText, void Cry_CreateUniqueNameEncrypted (char UniqueNameEncrypted[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]) { static unsigned NumCall = 0; // When this function is called several times in the same execution of the program, each time a new name is created - char UniqueNamePlain[Cns_MAX_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", diff --git a/swad_degree.c b/swad_degree.c index de142b61..525dc8a1 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -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\" />" "", - Deg_MAX_LENGTH_DEGREE_SHRT_NAME,Deg->ShrtName); + Deg_MAX_CHARS_DEGREE_SHRT_NAME,Deg->ShrtName); /***** Degree full name *****/ fprintf (Gbl.F.Out,"" @@ -997,7 +997,7 @@ static void Deg_PutFormToCreateDegree (void) " class=\"INPUT_FULL_NAME\"" " required=\"required\" />" "", - Deg_MAX_LENGTH_DEGREE_FULL_NAME,Deg->FullName); + Deg_MAX_CHARS_DEGREE_FULL_NAME,Deg->FullName); /***** Degree type *****/ fprintf (Gbl.F.Out,"" @@ -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 diff --git a/swad_degree.h b/swad_degree.h index cfbc738e..3470a38c 100644 --- a/swad_degree.h +++ b/swad_degree.h @@ -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 }; diff --git a/swad_degree_type.c b/swad_degree_type.c index e38b4368..c1ab97e7 100644 --- a/swad_degree_type.c +++ b/swad_degree_type.c @@ -311,7 +311,7 @@ static void DT_ListDegreeTypesForEdition (void) fprintf (Gbl.F.Out,"", - 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\" />" "", - 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 (); } diff --git a/swad_degree_type.h b/swad_degree_type.h index ad92c947..3f66c0c6 100644 --- a/swad_degree_type.h +++ b/swad_degree_type.h @@ -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 }; /*****************************************************************************/ diff --git a/swad_department.c b/swad_department.c index 940aa605..cfe5ad5d 100644 --- a/swad_department.c +++ b/swad_department.c @@ -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,""); @@ -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,""); @@ -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\" />" "", - Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME,Dpt->ShrtName); + Dpt_MAX_CHARS_DEPARTMENT_SHRT_NAME,Dpt->ShrtName); /***** Department full name *****/ fprintf (Gbl.F.Out,"" @@ -939,7 +939,7 @@ static void Dpt_PutFormToCreateDepartment (void) " class=\"INPUT_FULL_NAME\"" " required=\"required\" />" "", - Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME,Dpt->FullName); + Dpt_MAX_CHARS_DEPARTMENT_FULL_NAME,Dpt->FullName); /***** Department WWW *****/ fprintf (Gbl.F.Out,"" @@ -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); diff --git a/swad_department.h b/swad_department.h index 90013759..678b2153 100644 --- a/swad_department.h +++ b/swad_department.h @@ -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; }; diff --git a/swad_exam.c b/swad_exam.c index c07069b7..7eb8977a 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -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,"", - Cns_MAX_LENGTH_STRING,Gbl.ExamAnns.ExaDat.CrsFullName); + Cns_MAX_CHARS_STRING,Gbl.ExamAnns.ExaDat.CrsFullName); } else fprintf (Gbl.F.Out,"%s", @@ -1189,7 +1189,7 @@ static void Exa_ShowExamAnnouncement (Exa_TypeViewExamAnnouncement_t TypeViewExa fprintf (Gbl.F.Out,"", - 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,"" @@ -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."); diff --git a/swad_exam.h b/swad_exam.h index 0753f990..e3a6c767 100644 --- a/swad_exam.h +++ b/swad_exam.h @@ -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; diff --git a/swad_file.h b/swad_file.h index b0289f65..cddab19b 100644 --- a/swad_file.h +++ b/swad_file.h @@ -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" diff --git a/swad_file_browser.c b/swad_file_browser.c index 09e54fad..51a4cebe 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -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; diff --git a/swad_file_browser.h b/swad_file_browser.h index 866f2e18..c31cb8d9 100644 --- a/swad_file_browser.h +++ b/swad_file_browser.h @@ -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" diff --git a/swad_global.h b/swad_global.h index f1fe06f1..313c8854 100644 --- a/swad_global.h +++ b/swad_global.h @@ -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) diff --git a/swad_group.c b/swad_group.c index adcd1113..1f4acf35 100644 --- a/swad_group.c +++ b/swad_group.c @@ -1114,7 +1114,7 @@ static void Grp_ListGroupTypesForEdition (void) fprintf (Gbl.F.Out,"", - 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,"", - 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,""); @@ -2084,7 +2084,7 @@ static void Grp_PutFormToCreateGroupType (void) " size=\"12\" maxlength=\"%u\" value=\"%s\"" " required=\"required\" />" "", - 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,"" @@ -2228,7 +2228,7 @@ static void Grp_PutFormToCreateGroup (void) " size=\"40\" maxlength=\"%u\" value=\"%s\"" " required=\"required\" />" "", - 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,"" @@ -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 (); } diff --git a/swad_group.h b/swad_group.h index 77994eff..aa6f46be 100644 --- a/swad_group.h +++ b/swad_group.h @@ -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? diff --git a/swad_image.c b/swad_image.c index 0a1e88db..41f4d6b4 100644 --- a/swad_image.c +++ b/swad_image.c @@ -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 */ diff --git a/swad_mail.c b/swad_mail.c index 9312138f..aeaba2e3 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -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) "" "", - 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 diff --git a/swad_message.c b/swad_message.c index f2ad5b9b..c8ee1193 100644 --- a/swad_message.c +++ b/swad_message.c @@ -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++; } } diff --git a/swad_parameter.c b/swad_parameter.c index 56bc640c..0e5c2421 100644 --- a/swad_parameter.c +++ b/swad_parameter.c @@ -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 *****/ diff --git a/swad_parameter.h b/swad_parameter.h index bfe31e88..efb8b016 100644 --- a/swad_parameter.h +++ b/swad_parameter.h @@ -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 { diff --git a/swad_plugin.c b/swad_plugin.c index ba911cb9..7c89a7bb 100644 --- a/swad_plugin.c +++ b/swad_plugin.c @@ -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,"", - Cns_MAX_LENGTH_IP,Plg->IP,Gbl.Form.Id); + Cns_MAX_CHARS_IP,Plg->IP, + Gbl.Form.Id); Act_FormEnd (); fprintf (Gbl.F.Out,"" ""); @@ -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\" />" "" "", - 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)" diff --git a/swad_plugin.h b/swad_plugin.h index 23e35a9e..15d44e4a 100644 --- a/swad_plugin.h +++ b/swad_plugin.h @@ -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]; }; /*****************************************************************************/ diff --git a/swad_record.c b/swad_record.c index 8267fc01..b321eb71 100644 --- a/swad_record.c +++ b/swad_record.c @@ -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 (); diff --git a/swad_search.c b/swad_search.c index 69ed7979..89df9f18 100644 --- a/swad_search.c +++ b/swad_search.c @@ -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…\"", @@ -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); } } diff --git a/swad_search.h b/swad_search.h index 83d1bc6a..d415808f 100644 --- a/swad_search.h +++ b/swad_search.h @@ -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); diff --git a/swad_session.c b/swad_session.c index d304a4c2..dcda062d 100644 --- a/swad_session.c +++ b/swad_session.c @@ -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; diff --git a/swad_statistic.c b/swad_statistic.c index a7051454..9f9fcbb5 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -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'; } diff --git a/swad_string.c b/swad_string.c index d818874a..2cacc3ec 100644 --- a/swad_string.c +++ b/swad_string.c @@ -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 *****/ diff --git a/swad_string.h b/swad_string.h index 6706f659..bff5c48a 100644 --- a/swad_string.h +++ b/swad_string.h @@ -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) /*****************************************************************************/ diff --git a/swad_timetable.c b/swad_timetable.c index aa51ad2b..6f97dab3 100644 --- a/swad_timetable.c +++ b/swad_timetable.c @@ -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 /*****************************************************************************/ diff --git a/swad_user.c b/swad_user.c index fef2443b..67f5af9c 100644 --- a/swad_user.c +++ b/swad_user.c @@ -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."); } diff --git a/swad_user.h b/swad_user.h index bbc95cdd..2d77452c 100644 --- a/swad_user.h +++ b/swad_user.h @@ -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 + '
    ' + 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 diff --git a/swad_web_service.c b/swad_web_service.c index e76fb2cb..eed6bc32 100644 --- a/swad_web_service.c +++ b/swad_web_service.c @@ -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 */