mirror of https://github.com/acanas/swad-core.git
Version 16.150
This commit is contained in:
parent
c596d53b72
commit
266cb4e32e
|
@ -375,7 +375,7 @@ static void Acc_ShowFormRequestNewAccountWithParams (const char *NewNicknameWith
|
|||
"</tr>",
|
||||
The_ClassForm[Gbl.Prefs.Theme],
|
||||
Txt_Email,
|
||||
Usr_MAX_BYTES_USR_EMAIL,
|
||||
Usr_MAX_CHARS_USR_EMAIL,
|
||||
Txt_HELP_email,
|
||||
NewEmail);
|
||||
|
||||
|
|
|
@ -436,7 +436,7 @@ static void Ctr_Configuration (bool PrintView)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_FULL_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Ctr_MAX_LENGTH_CENTRE_FULL_NAME,
|
||||
Ctr_MAX_CHARS_CENTRE_FULL_NAME,
|
||||
Gbl.CurrentCtr.Ctr.FullName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -465,7 +465,7 @@ static void Ctr_Configuration (bool PrintView)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_SHORT_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME,
|
||||
Ctr_MAX_CHARS_CENTRE_SHRT_NAME,
|
||||
Gbl.CurrentCtr.Ctr.ShrtName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -1036,11 +1036,11 @@ void Ctr_GetListCentres (long InsCod)
|
|||
|
||||
/* Get the short name of the centre (row[5]) */
|
||||
Str_Copy (Ctr->ShrtName,row[5],
|
||||
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME);
|
||||
Ctr_MAX_BYTES_CENTRE_SHRT_NAME);
|
||||
|
||||
/* Get the full name of the centre (row[6]) */
|
||||
Str_Copy (Ctr->FullName,row[6],
|
||||
Ctr_MAX_LENGTH_CENTRE_FULL_NAME);
|
||||
Ctr_MAX_BYTES_CENTRE_FULL_NAME);
|
||||
|
||||
/* Get the URL of the centre (row[7]) */
|
||||
Str_Copy (Ctr->WWW,row[7],
|
||||
|
@ -1134,11 +1134,11 @@ bool Ctr_GetDataOfCentreByCod (struct Centre *Ctr)
|
|||
|
||||
/* Get the short name of the centre (row[4]) */
|
||||
Str_Copy (Ctr->ShrtName,row[4],
|
||||
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME);
|
||||
Ctr_MAX_BYTES_CENTRE_SHRT_NAME);
|
||||
|
||||
/* Get the full name of the centre (row[5]) */
|
||||
Str_Copy (Ctr->FullName,row[5],
|
||||
Ctr_MAX_LENGTH_CENTRE_FULL_NAME);
|
||||
Ctr_MAX_BYTES_CENTRE_FULL_NAME);
|
||||
|
||||
/* Get the URL of the centre (row[6]) */
|
||||
Str_Copy (Ctr->WWW,row[6],
|
||||
|
@ -1221,7 +1221,7 @@ void Ctr_GetShortNameOfCentreByCod (struct Centre *Ctr)
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
|
||||
Str_Copy (Ctr->ShrtName,row[0],
|
||||
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME);
|
||||
Ctr_MAX_BYTES_CENTRE_SHRT_NAME);
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
|
@ -1470,7 +1470,7 @@ static void Ctr_ListCentresForEdition (void)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_SHORT_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME,Ctr->ShrtName,Gbl.Form.Id);
|
||||
Ctr_MAX_CHARS_CENTRE_SHRT_NAME,Ctr->ShrtName,Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
}
|
||||
|
@ -1488,7 +1488,7 @@ static void Ctr_ListCentresForEdition (void)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_FULL_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Ctr_MAX_LENGTH_CENTRE_FULL_NAME,Ctr->FullName,Gbl.Form.Id);
|
||||
Ctr_MAX_CHARS_CENTRE_FULL_NAME,Ctr->FullName,Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
}
|
||||
|
@ -1884,32 +1884,32 @@ static void Ctr_RenameCentre (struct Centre *Ctr,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
extern const char *Txt_The_centre_X_already_exists;
|
||||
extern const char *Txt_The_centre_X_has_been_renamed_as_Y;
|
||||
extern const char *Txt_The_name_of_the_centre_X_has_not_changed;
|
||||
char Query[128 + Ctr_MAX_LENGTH_CENTRE_FULL_NAME];
|
||||
char Query[128 + Ctr_MAX_BYTES_CENTRE_FULL_NAME];
|
||||
const char *ParamName = NULL; // Initialized to avoid warning
|
||||
const char *FieldName = NULL; // Initialized to avoid warning
|
||||
unsigned MaxLength = 0; // Initialized to avoid warning
|
||||
unsigned NaxBytes = 0; // Initialized to avoid warning
|
||||
char *CurrentCtrName = NULL; // Initialized to avoid warning
|
||||
char NewCtrName[Ctr_MAX_LENGTH_CENTRE_FULL_NAME + 1];
|
||||
char NewCtrName[Ctr_MAX_BYTES_CENTRE_FULL_NAME + 1];
|
||||
|
||||
switch (ShrtOrFullName)
|
||||
{
|
||||
case Cns_SHRT_NAME:
|
||||
ParamName = "ShortName";
|
||||
FieldName = "ShortName";
|
||||
MaxLength = Ctr_MAX_LENGTH_CENTRE_SHRT_NAME;
|
||||
NaxBytes = Ctr_MAX_BYTES_CENTRE_SHRT_NAME;
|
||||
CurrentCtrName = Ctr->ShrtName;
|
||||
break;
|
||||
case Cns_FULL_NAME:
|
||||
ParamName = "FullName";
|
||||
FieldName = "FullName";
|
||||
MaxLength = Ctr_MAX_LENGTH_CENTRE_FULL_NAME;
|
||||
NaxBytes = Ctr_MAX_BYTES_CENTRE_FULL_NAME;
|
||||
CurrentCtrName = Ctr->FullName;
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get the new name for the centre */
|
||||
Par_GetParToText (ParamName,NewCtrName,MaxLength);
|
||||
Par_GetParToText (ParamName,NewCtrName,NaxBytes);
|
||||
|
||||
/***** Get from the database the old names of the centre *****/
|
||||
Ctr_GetDataOfCentreByCod (Ctr);
|
||||
|
@ -1946,7 +1946,7 @@ static void Ctr_RenameCentre (struct Centre *Ctr,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
|
||||
/* Change current centre name in order to display it properly */
|
||||
Str_Copy (CurrentCtrName,NewCtrName,
|
||||
MaxLength);
|
||||
NaxBytes);
|
||||
}
|
||||
}
|
||||
else // The same name
|
||||
|
@ -1961,7 +1961,7 @@ static void Ctr_RenameCentre (struct Centre *Ctr,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
|
||||
static bool Ctr_CheckIfCtrNameExistsInIns (const char *FieldName,const char *Name,long CtrCod,long InsCod)
|
||||
{
|
||||
char Query[256 + Ctr_MAX_LENGTH_CENTRE_FULL_NAME];
|
||||
char Query[256 + Ctr_MAX_BYTES_CENTRE_FULL_NAME];
|
||||
|
||||
/***** Get number of centres with a name from database *****/
|
||||
sprintf (Query,"SELECT COUNT(*) FROM centres"
|
||||
|
@ -2283,8 +2283,8 @@ void Ctr_ReceivePhoto (void)
|
|||
return;
|
||||
}
|
||||
LengthExtension = strlen (PtrExtension);
|
||||
if (LengthExtension < Fil_MIN_LENGTH_FILE_EXTENSION ||
|
||||
LengthExtension > Fil_MAX_LENGTH_FILE_EXTENSION)
|
||||
if (LengthExtension < Fil_MIN_BYTES_FILE_EXTENSION ||
|
||||
LengthExtension > Fil_MAX_BYTES_FILE_EXTENSION)
|
||||
{
|
||||
Lay_ShowAlert (Lay_WARNING,Txt_Wrong_file_type);
|
||||
return;
|
||||
|
@ -2355,12 +2355,12 @@ void Ctr_ReceivePhoto (void)
|
|||
|
||||
void Ctr_ChangeCtrPhotoAttribution (void)
|
||||
{
|
||||
char Query[256 + Ctr_MAX_LENGTH_PHOTO_ATTRIBUTION];
|
||||
char NewPhotoAttribution[Ctr_MAX_LENGTH_PHOTO_ATTRIBUTION + 1];
|
||||
char Query[256 + Ctr_MAX_BYTES_PHOTO_ATTRIBUTION];
|
||||
char NewPhotoAttribution[Ctr_MAX_BYTES_PHOTO_ATTRIBUTION + 1];
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get the new photo attribution for the centre */
|
||||
Par_GetParToText ("Attribution",NewPhotoAttribution,Ctr_MAX_LENGTH_PHOTO_ATTRIBUTION);
|
||||
Par_GetParToText ("Attribution",NewPhotoAttribution,Ctr_MAX_BYTES_PHOTO_ATTRIBUTION);
|
||||
|
||||
/***** Update the table changing old attribution by new attribution *****/
|
||||
sprintf (Query,"UPDATE centres SET PhotoAttribution='%s'"
|
||||
|
@ -2443,7 +2443,7 @@ static void Ctr_PutFormToCreateCentre (void)
|
|||
" class=\"INPUT_SHORT_NAME\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME,Ctr->ShrtName);
|
||||
Ctr_MAX_CHARS_CENTRE_SHRT_NAME,Ctr->ShrtName);
|
||||
|
||||
/***** Centre full name *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||
|
@ -2452,7 +2452,7 @@ static void Ctr_PutFormToCreateCentre (void)
|
|||
" class=\"INPUT_FULL_NAME\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Ctr_MAX_LENGTH_CENTRE_FULL_NAME,Ctr->FullName);
|
||||
Ctr_MAX_CHARS_CENTRE_FULL_NAME,Ctr->FullName);
|
||||
|
||||
/***** Centre WWW *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||
|
@ -2671,10 +2671,10 @@ static void Ctr_RecFormRequestOrCreateCtr (unsigned Status)
|
|||
Lay_ShowAlert (Lay_ERROR,"Wrong place.");
|
||||
|
||||
/* Get centre short name */
|
||||
Par_GetParToText ("ShortName",Ctr->ShrtName,Ctr_MAX_LENGTH_CENTRE_SHRT_NAME);
|
||||
Par_GetParToText ("ShortName",Ctr->ShrtName,Ctr_MAX_BYTES_CENTRE_SHRT_NAME);
|
||||
|
||||
/* Get centre full name */
|
||||
Par_GetParToText ("FullName",Ctr->FullName,Ctr_MAX_LENGTH_CENTRE_FULL_NAME);
|
||||
Par_GetParToText ("FullName",Ctr->FullName,Ctr_MAX_BYTES_CENTRE_FULL_NAME);
|
||||
|
||||
/* Get centre WWW */
|
||||
Par_GetParToText ("WWW",Ctr->WWW,Cns_MAX_BYTES_WWW);
|
||||
|
@ -2723,8 +2723,8 @@ static void Ctr_CreateCentre (struct Centre *Ctr,unsigned Status)
|
|||
{
|
||||
extern const char *Txt_Created_new_centre_X;
|
||||
char Query[512 +
|
||||
Ctr_MAX_LENGTH_CENTRE_SHRT_NAME +
|
||||
Ctr_MAX_LENGTH_CENTRE_FULL_NAME +
|
||||
Ctr_MAX_BYTES_CENTRE_SHRT_NAME +
|
||||
Ctr_MAX_BYTES_CENTRE_FULL_NAME +
|
||||
Cns_MAX_BYTES_WWW];
|
||||
|
||||
/***** Create a new centre *****/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
129
swad_chat.c
129
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,"<li style=\"height:25px;\">");
|
||||
Lay_IndentDependingOnLevel (Level,IsLastItemInLevel);
|
||||
Act_FormStart (ActCht);
|
||||
Cht_WriteParamsRoomCodeAndNames (RoomCode,RoomShortName,RoomFullName);
|
||||
Cht_WriteParamsRoomCodeAndNames (RoomCode,RoomShrtName,RoomFullName);
|
||||
Act_LinkFormSubmit (RoomFullName,The_ClassForm[Gbl.Prefs.Theme],NULL);
|
||||
}
|
||||
|
||||
|
@ -332,10 +337,10 @@ static void Cht_WriteLinkToChat2 (const char *RoomCode,const char *RoomFullName)
|
|||
/*** Write parameters with code and names (short and full) of a chat room ****/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Cht_WriteParamsRoomCodeAndNames (const char *RoomCode,const char *RoomShortName,const char *RoomFullName)
|
||||
void Cht_WriteParamsRoomCodeAndNames (const char *RoomCode,const char *RoomShrtName,const char *RoomFullName)
|
||||
{
|
||||
Par_PutHiddenParamString ("RoomCode",RoomCode);
|
||||
Par_PutHiddenParamString ("RoomShortName",RoomShortName);
|
||||
Par_PutHiddenParamString ("RoomShrtName",RoomShrtName);
|
||||
Par_PutHiddenParamString ("RoomFullName",RoomFullName);
|
||||
}
|
||||
|
||||
|
@ -372,9 +377,9 @@ static unsigned Cht_GetNumUsrsInChatRoom (const char *RoomCode)
|
|||
/******************************* Enter a chat room ***************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Cht_MAX_LENGTH_ROOM_CODES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * MAX_LENGTH_ROOM_CODE)
|
||||
#define Cht_MAX_LENGTH_ROOM_SHRT_NAMES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * MAX_LENGTH_ROOM_SHRT_NAME)
|
||||
#define Cht_MAX_LENGTH_ROOM_FULL_NAMES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * MAX_LENGTH_ROOM_FULL_NAME)
|
||||
#define Cht_MAX_BYTES_ROOM_CODES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * Cht_MAX_BYTES_ROOM_CODE)
|
||||
#define Cht_MAX_BYTES_ROOM_SHRT_NAMES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * Cht_MAX_BYTES_ROOM_SHRT_NAME)
|
||||
#define Cht_MAX_BYTES_ROOM_FULL_NAMES ((2 + Deg_MAX_DEGREES_PER_USR + Crs_MAX_COURSES_PER_USR) * Cht_MAX_BYTES_ROOM_FULL_NAME)
|
||||
|
||||
void Cht_OpenChatWindow (void)
|
||||
{
|
||||
|
@ -386,30 +391,30 @@ void Cht_OpenChatWindow (void)
|
|||
extern const char *Txt_Teachers_ABBREVIATION;
|
||||
extern const char *Txt_Degree;
|
||||
extern const char *Txt_Course;
|
||||
char RoomCode [MAX_LENGTH_ROOM_CODE + 1];
|
||||
char RoomShortName[MAX_LENGTH_ROOM_SHRT_NAME + 1];
|
||||
char RoomFullName [MAX_LENGTH_ROOM_FULL_NAME + 1];
|
||||
char RoomCode[Cht_MAX_BYTES_ROOM_CODE + 1];
|
||||
char RoomShrtName[Cht_MAX_BYTES_ROOM_SHRT_NAME + 1];
|
||||
char RoomFullName [Cht_MAX_BYTES_ROOM_FULL_NAME + 1];
|
||||
char UsrName[Usr_MAX_BYTES_FULL_NAME + 1];
|
||||
unsigned NumMyDeg;
|
||||
unsigned NumMyCrs;
|
||||
struct Degree Deg;
|
||||
struct Course Crs;
|
||||
char ThisRoomCode [MAX_LENGTH_ROOM_CODE + 1];
|
||||
char ThisRoomShortName[MAX_LENGTH_ROOM_SHRT_NAME + 1];
|
||||
char ThisRoomFullName [MAX_LENGTH_ROOM_FULL_NAME + 1];
|
||||
char ListRoomCodes [Cht_MAX_LENGTH_ROOM_CODES + 1];
|
||||
char ListRoomShortNames[Cht_MAX_LENGTH_ROOM_SHRT_NAMES + 1];
|
||||
char ListRoomFullNames [Cht_MAX_LENGTH_ROOM_FULL_NAMES + 1];
|
||||
char ThisRoomCode[Cht_MAX_BYTES_ROOM_CODE + 1];
|
||||
char ThisRoomShortName[Cht_MAX_BYTES_ROOM_SHRT_NAME + 1];
|
||||
char ThisRoomFullName [Cht_MAX_BYTES_ROOM_FULL_NAME + 1];
|
||||
char ListRoomCodes [Cht_MAX_BYTES_ROOM_CODES + 1];
|
||||
char ListRoomShrtNames[Cht_MAX_BYTES_ROOM_SHRT_NAMES + 1];
|
||||
char ListRoomFullNames [Cht_MAX_BYTES_ROOM_FULL_NAMES + 1];
|
||||
FILE *FileChat;
|
||||
|
||||
/***** Get the code and the nombre of the room *****/
|
||||
Par_GetParToText ("RoomCode",RoomCode,MAX_LENGTH_ROOM_CODE);
|
||||
Par_GetParToText ("RoomCode",RoomCode,Cht_MAX_BYTES_ROOM_CODE);
|
||||
|
||||
Par_GetParToText ("RoomShortName",RoomShortName,MAX_LENGTH_ROOM_SHRT_NAME);
|
||||
Par_GetParToText ("RoomShrtName",RoomShrtName,Cht_MAX_BYTES_ROOM_SHRT_NAME);
|
||||
|
||||
Par_GetParToText ("RoomFullName",RoomFullName,MAX_LENGTH_ROOM_FULL_NAME);
|
||||
Par_GetParToText ("RoomFullName",RoomFullName,Cht_MAX_BYTES_ROOM_FULL_NAME);
|
||||
|
||||
if (!RoomCode[0] || !RoomShortName[0] || !RoomFullName[0])
|
||||
if (!RoomCode[0] || !RoomShrtName[0] || !RoomFullName[0])
|
||||
Lay_ShowErrorAndExit ("Wrong code or name of chat room.");
|
||||
if (strcspn (RoomCode," \t\n\r") != strlen (RoomCode)) // If RoomCode contiene espacios
|
||||
Lay_ShowErrorAndExit ("Wrong code of chat room.");
|
||||
|
@ -435,56 +440,56 @@ void Cht_OpenChatWindow (void)
|
|||
|
||||
/***** Build the lists of available rooms *****/
|
||||
sprintf (ListRoomCodes,"#%s",RoomCode);
|
||||
Str_Copy (ListRoomShortNames,RoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
Str_Copy (ListRoomShrtNames,RoomShrtName,
|
||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||
Str_Copy (ListRoomFullNames ,RoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||
|
||||
if (strcmp (RoomCode,"GBL_USR"))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#GBL_USR",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
Cht_MAX_BYTES_ROOM_CODES);
|
||||
|
||||
sprintf (RoomShortName,"|%s",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL]);
|
||||
Str_Concat (ListRoomShortNames,RoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
sprintf (RoomShrtName,"|%s",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL]);
|
||||
Str_Concat (ListRoomShrtNames,RoomShrtName,
|
||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (RoomFullName,"|%s (%s)",
|
||||
Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
|
||||
Str_Concat (ListRoomFullNames,RoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||
}
|
||||
|
||||
if (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT)
|
||||
if (strcmp (RoomCode,"GBL_STD"))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#GBL_STD",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
Cht_MAX_BYTES_ROOM_CODES);
|
||||
|
||||
sprintf (RoomShortName,"|%s",Txt_Students_ABBREVIATION);
|
||||
Str_Concat (ListRoomShortNames,RoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
sprintf (RoomShrtName,"|%s",Txt_Students_ABBREVIATION);
|
||||
Str_Concat (ListRoomShrtNames,RoomShrtName,
|
||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (RoomFullName,"|%s (%s)",Txt_General,
|
||||
Txt_ROLES_PLURAL_abc[Rol_STUDENT][Usr_SEX_ALL]);
|
||||
Str_Concat (ListRoomFullNames,RoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||
}
|
||||
|
||||
if (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER)
|
||||
if (strcmp (RoomCode,"GBL_TCH"))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#GBL_TCH",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
Cht_MAX_BYTES_ROOM_CODES);
|
||||
|
||||
sprintf (RoomShortName,"|%s",Txt_Teachers_ABBREVIATION);
|
||||
Str_Concat (ListRoomShortNames,RoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
sprintf (RoomShrtName,"|%s",Txt_Teachers_ABBREVIATION);
|
||||
Str_Concat (ListRoomShrtNames,RoomShrtName,
|
||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (RoomFullName,"|%s (%s)",
|
||||
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TEACHER][Usr_SEX_ALL]);
|
||||
Str_Concat (ListRoomFullNames,RoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||
}
|
||||
|
||||
for (NumMyDeg = 0;
|
||||
|
@ -495,25 +500,25 @@ void Cht_OpenChatWindow (void)
|
|||
if (strcmp (RoomCode,ThisRoomCode))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
Cht_MAX_BYTES_ROOM_CODES);
|
||||
Str_Concat (ListRoomCodes,ThisRoomCode,
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
Cht_MAX_BYTES_ROOM_CODES);
|
||||
|
||||
/* Get data of this degree */
|
||||
Deg.DegCod = Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
|
||||
sprintf (ThisRoomShortName,"%s",Deg.ShrtName);
|
||||
Str_Concat (ListRoomShortNames,"|",
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
Str_Concat (ListRoomShortNames,ThisRoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
Str_Concat (ListRoomShrtNames,"|",
|
||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
|
||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (ThisRoomFullName,"%s %s",Txt_Degree,Deg.ShrtName);
|
||||
Str_Concat (ListRoomFullNames,"|",
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||
Str_Concat (ListRoomFullNames,ThisRoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -525,25 +530,25 @@ void Cht_OpenChatWindow (void)
|
|||
if (strcmp (RoomCode,ThisRoomCode))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
Cht_MAX_BYTES_ROOM_CODES);
|
||||
Str_Concat (ListRoomCodes,ThisRoomCode,
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
Cht_MAX_BYTES_ROOM_CODES);
|
||||
|
||||
/* Get data of this course */
|
||||
Crs.CrsCod = Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
|
||||
sprintf (ThisRoomShortName,"%s",Crs.ShrtName);
|
||||
Str_Concat (ListRoomShortNames,"|",
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
Str_Concat (ListRoomShortNames,ThisRoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
Str_Concat (ListRoomShrtNames,"|",
|
||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
|
||||
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (ThisRoomFullName,"%s %s",Txt_Course,Crs.ShrtName);
|
||||
Str_Concat (ListRoomFullNames,"|",
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||
Str_Concat (ListRoomFullNames,ThisRoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Cht_MAX_BYTES_ROOM_FULL_NAMES);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -579,7 +584,7 @@ void Cht_OpenChatWindow (void)
|
|||
fprintf (Gbl.F.Out,"\n<param name=\"channel_name\" value=\"%s\">",
|
||||
ListRoomCodes);
|
||||
fprintf (Gbl.F.Out,"\n<param name=\"tab\" value=\"%s\">",
|
||||
ListRoomShortNames);
|
||||
ListRoomShrtNames);
|
||||
fprintf (Gbl.F.Out,"\n<param name=\"topic\" value=\"%s\">",
|
||||
ListRoomFullNames);
|
||||
|
||||
|
|
|
@ -497,7 +497,7 @@ void Con_ShowConnectedUsrsBelongingToCurrentCrs (void)
|
|||
{
|
||||
extern const char *Txt_Connected_users;
|
||||
extern const char *Txt_from;
|
||||
char CourseName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1];
|
||||
char CourseName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1];
|
||||
struct ConnectedUsrs Usrs;
|
||||
|
||||
if (Gbl.CurrentCrs.Crs.CrsCod <= 0) // There is no course selected
|
||||
|
@ -513,7 +513,7 @@ void Con_ShowConnectedUsrsBelongingToCurrentCrs (void)
|
|||
// is dynamically updated via AJAX
|
||||
Act_LinkFormSubmitUnique (Txt_Connected_users,"CONNECTED_TXT");
|
||||
Str_Copy (CourseName,Gbl.CurrentCrs.Crs.ShrtName,
|
||||
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
|
||||
Crs_MAX_BYTES_COURSE_SHRT_NAME);
|
||||
Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_UNKNOWN,&Usrs);
|
||||
fprintf (Gbl.F.Out,"%u %s %s"
|
||||
"</a>",
|
||||
|
|
|
@ -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 ********************************/
|
||||
|
|
|
@ -973,18 +973,18 @@ void Cty_EditCountries (void)
|
|||
/************************** List all the countries ***************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Cty_MAX_LENGTH_SUBQUERY_CTYS ((1 + Txt_NUM_LANGUAGES) * 32)
|
||||
#define Cty_MAX_BYTES_SUBQUERY_CTYS ((1 + Txt_NUM_LANGUAGES) * 32)
|
||||
|
||||
void Cty_GetListCountries (Cty_GetExtraData_t GetExtraData)
|
||||
{
|
||||
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
|
||||
char StrField[32];
|
||||
char SubQueryNam1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char SubQueryNam2[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW2[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char SubQueryNam1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char SubQueryNam2[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW2[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char OrderBySubQuery[256];
|
||||
char Query[1024 + Cty_MAX_LENGTH_SUBQUERY_CTYS * 4];
|
||||
char Query[1024 + Cty_MAX_BYTES_SUBQUERY_CTYS * 4];
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
unsigned long NumRows;
|
||||
|
@ -1013,20 +1013,20 @@ void Cty_GetListCountries (Cty_GetExtraData_t GetExtraData)
|
|||
sprintf (StrField,"countries.Name_%s,",
|
||||
Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
sprintf (StrField,"Name_%s,",
|
||||
Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam2,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
|
||||
sprintf (StrField,"countries.WWW_%s,",
|
||||
Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
sprintf (StrField,"WWW_%s,",
|
||||
Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW2,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
}
|
||||
|
||||
switch (Gbl.Ctys.SelectedOrder)
|
||||
|
@ -1245,11 +1245,11 @@ bool Cty_GetDataOfCountryByCod (struct Country *Cty,Cty_GetExtraData_t GetExtraD
|
|||
extern const char *Txt_Another_country;
|
||||
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
|
||||
char StrField[32];
|
||||
char SubQueryNam1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char SubQueryNam2[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW2[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char Query[1024 + Cty_MAX_LENGTH_SUBQUERY_CTYS * 4];
|
||||
char SubQueryNam1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char SubQueryNam2[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW2[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char Query[1024 + Cty_MAX_BYTES_SUBQUERY_CTYS * 4];
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
unsigned long NumRows;
|
||||
|
@ -1309,17 +1309,17 @@ bool Cty_GetDataOfCountryByCod (struct Country *Cty,Cty_GetExtraData_t GetExtraD
|
|||
{
|
||||
sprintf (StrField,"countries.Name_%s,",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
sprintf (StrField,"Name_%s,",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam2,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
|
||||
sprintf (StrField,"countries.WWW_%s,",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
sprintf (StrField,"WWW_%s,",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW2,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
}
|
||||
sprintf (Query,"(SELECT countries.Alpha2,%s%sCOUNT(*) AS NumUsrs"
|
||||
" FROM countries,usr_data"
|
||||
|
@ -1604,7 +1604,7 @@ static void Cty_ListCountriesForEdition (void)
|
|||
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"Name\""
|
||||
" size=\"15\" maxlength=\"%u\" value=\"%s\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Cty_MAX_BYTES_COUNTRY_NAME,
|
||||
Cty_MAX_CHARS_COUNTRY_NAME,
|
||||
Cty->Name[Lan],Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
@ -1882,12 +1882,12 @@ void Cty_ChangeCtyWWW (void)
|
|||
|
||||
void Cty_ChangeCtyMapAttribution (void)
|
||||
{
|
||||
char Query[256 + Cty_MAX_LENGTH_MAP_ATTRIBUTION];
|
||||
char NewMapAttribution[Cty_MAX_LENGTH_MAP_ATTRIBUTION + 1];
|
||||
char Query[256 + Cty_MAX_BYTES_MAP_ATTRIBUTION];
|
||||
char NewMapAttribution[Cty_MAX_BYTES_MAP_ATTRIBUTION + 1];
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get the new map attribution for the country */
|
||||
Par_GetParToText ("Attribution",NewMapAttribution,Cty_MAX_LENGTH_MAP_ATTRIBUTION);
|
||||
Par_GetParToText ("Attribution",NewMapAttribution,Cty_MAX_BYTES_MAP_ATTRIBUTION);
|
||||
|
||||
/***** Update the table changing old attribution by new attribution *****/
|
||||
sprintf (Query,"UPDATE countries SET MapAttribution='%s'"
|
||||
|
@ -1983,7 +1983,7 @@ static void Cty_PutFormToCreateCountry (void)
|
|||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Txt_STR_LANG_ID[Lan],
|
||||
Cty_MAX_BYTES_COUNTRY_NAME,
|
||||
Cty_MAX_CHARS_COUNTRY_NAME,
|
||||
Cty->Name[Lan]);
|
||||
|
||||
/* WWW */
|
||||
|
@ -2155,8 +2155,8 @@ void Cty_RecFormNewCountry (void)
|
|||
/**************************** Create a new country ***************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME ((1 + Txt_NUM_LANGUAGES) * Cty_MAX_BYTES_COUNTRY_NAME)
|
||||
#define Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW ((1 + Txt_NUM_LANGUAGES) * Cns_MAX_BYTES_WWW)
|
||||
#define Cty_MAX_BYTES_SUBQUERY_CTYS_NAME ((1 + Txt_NUM_LANGUAGES) * Cty_MAX_BYTES_COUNTRY_NAME)
|
||||
#define Cty_MAX_BYTES_SUBQUERY_CTYS_WWW ((1 + Txt_NUM_LANGUAGES) * Cns_MAX_BYTES_WWW)
|
||||
|
||||
static void Cty_CreateCountry (struct Country *Cty)
|
||||
{
|
||||
|
@ -2164,15 +2164,15 @@ static void Cty_CreateCountry (struct Country *Cty)
|
|||
extern const char *Txt_Created_new_country_X;
|
||||
Txt_Language_t Lan;
|
||||
char StrField[32];
|
||||
char SubQueryNam1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char SubQueryNam2[Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME + 1];
|
||||
char SubQueryWWW1[Cty_MAX_LENGTH_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW2[Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW + 1];
|
||||
char SubQueryNam1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char SubQueryNam2[Cty_MAX_BYTES_SUBQUERY_CTYS_NAME + 1];
|
||||
char SubQueryWWW1[Cty_MAX_BYTES_SUBQUERY_CTYS + 1];
|
||||
char SubQueryWWW2[Cty_MAX_BYTES_SUBQUERY_CTYS_WWW + 1];
|
||||
char Query[1024 +
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS +
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME +
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS +
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW];
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS +
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME +
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS +
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS_WWW];
|
||||
|
||||
/***** Create a new country *****/
|
||||
SubQueryNam1[0] = '\0';
|
||||
|
@ -2185,25 +2185,25 @@ static void Cty_CreateCountry (struct Country *Cty)
|
|||
{
|
||||
sprintf (StrField,",Name_%s",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
|
||||
Str_Concat (SubQueryNam2,",'",
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME);
|
||||
Str_Concat (SubQueryNam2,Cty->Name[Lan],
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME);
|
||||
Str_Concat (SubQueryNam2,"'",
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME);
|
||||
|
||||
sprintf (StrField,",WWW_%s",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS);
|
||||
|
||||
Str_Concat (SubQueryWWW2,",'",
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS_WWW);
|
||||
Str_Concat (SubQueryWWW2,Cty->WWW[Lan],
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS_WWW);
|
||||
Str_Concat (SubQueryWWW2,"'",
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
|
||||
Cty_MAX_BYTES_SUBQUERY_CTYS_WWW);
|
||||
}
|
||||
sprintf (Query,"INSERT INTO countries (CtyCod,Alpha2%s%s)"
|
||||
" VALUES ('%03ld','%s'%s%s)",
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -67,8 +67,6 @@ extern struct Globals Gbl;
|
|||
/**************************** Private constants ******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Crs_MAX_LENGTH_FULL_NAME_COURSE_ON_LIST_OF_MY_COURSES 60
|
||||
|
||||
/*****************************************************************************/
|
||||
/**************************** Private prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -106,8 +104,8 @@ static void Crs_UpdateCrsDegDB (long CrsCod,long DegCod);
|
|||
static void Crs_UpdateCrsYear (struct Course *Crs,unsigned NewYear);
|
||||
|
||||
static void Crs_GetShortNamesByCod (long CrsCod,
|
||||
char CrsShortName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1],
|
||||
char DegShortName[Deg_MAX_LENGTH_DEGREE_SHRT_NAME + 1]);
|
||||
char CrsShortName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1],
|
||||
char DegShortName[Deg_MAX_BYTES_DEGREE_SHRT_NAME + 1]);
|
||||
|
||||
static void Crs_EmptyCourseCompletely (long CrsCod);
|
||||
|
||||
|
@ -278,7 +276,7 @@ static void Crs_Configuration (bool PrintView)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_FULL_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Crs_MAX_LENGTH_COURSE_FULL_NAME,
|
||||
Crs_MAX_CHARS_COURSE_FULL_NAME,
|
||||
Gbl.CurrentCrs.Crs.FullName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -307,7 +305,7 @@ static void Crs_Configuration (bool PrintView)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_SHORT_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Crs_MAX_LENGTH_COURSE_SHRT_NAME,
|
||||
Crs_MAX_CHARS_COURSE_SHRT_NAME,
|
||||
Gbl.CurrentCrs.Crs.ShrtName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -366,8 +364,8 @@ static void Crs_Configuration (bool PrintView)
|
|||
" id=\"InsCrsCod\" name=\"InsCrsCod\""
|
||||
" size=\"%u\" maxlength=\"%u\" value=\"%s\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
|
||||
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
|
||||
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
|
||||
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
|
||||
Gbl.CurrentCrs.Crs.InstitutionalCrsCod,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -1068,8 +1066,8 @@ void Crs_WriteSelectorMyCourses (void)
|
|||
long CrsCod;
|
||||
long DegCod;
|
||||
long LastDegCod;
|
||||
char CrsShortName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1];
|
||||
char DegShortName[Deg_MAX_LENGTH_DEGREE_SHRT_NAME + 1];
|
||||
char CrsShortName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1];
|
||||
char DegShortName[Deg_MAX_BYTES_DEGREE_SHRT_NAME + 1];
|
||||
|
||||
/***** Fill the list with the courses I belong to, if not filled *****/
|
||||
if (Gbl.Usrs.Me.Logged)
|
||||
|
@ -1437,7 +1435,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_INS_CODE\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
|
||||
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
|
||||
Crs->InstitutionalCrsCod,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -1481,7 +1479,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_SHORT_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Crs_MAX_LENGTH_COURSE_SHRT_NAME,Crs->ShrtName,
|
||||
Crs_MAX_CHARS_COURSE_SHRT_NAME,Crs->ShrtName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
}
|
||||
|
@ -1499,7 +1497,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_FULL_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Crs_MAX_LENGTH_COURSE_FULL_NAME,Crs->FullName,
|
||||
Crs_MAX_CHARS_COURSE_FULL_NAME,Crs->FullName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
}
|
||||
|
@ -1660,7 +1658,7 @@ static void Crs_PutFormToCreateCourse (void)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_INS_CODE\" />"
|
||||
"</td>",
|
||||
Crs_LENGTH_INSTITUTIONAL_CRS_COD,
|
||||
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
|
||||
Crs->InstitutionalCrsCod);
|
||||
|
||||
/***** Year *****/
|
||||
|
@ -1684,7 +1682,7 @@ static void Crs_PutFormToCreateCourse (void)
|
|||
" class=\"INPUT_SHORT_NAME\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Crs_MAX_LENGTH_COURSE_SHRT_NAME,Crs->ShrtName);
|
||||
Crs_MAX_CHARS_COURSE_SHRT_NAME,Crs->ShrtName);
|
||||
|
||||
/***** Course full name *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||
|
@ -1693,7 +1691,7 @@ static void Crs_PutFormToCreateCourse (void)
|
|||
" class=\"INPUT_FULL_NAME\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Crs_MAX_LENGTH_COURSE_FULL_NAME,Crs->FullName);
|
||||
Crs_MAX_CHARS_COURSE_FULL_NAME,Crs->FullName);
|
||||
|
||||
/***** Current number of teachers in this course *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||
|
@ -1916,17 +1914,17 @@ static void Crs_GetParamsNewCourse (struct Course *Crs)
|
|||
|
||||
/***** Get parameters of the course from form *****/
|
||||
/* Get institutional code */
|
||||
Par_GetParToText ("InsCrsCod",Crs->InstitutionalCrsCod,Crs_LENGTH_INSTITUTIONAL_CRS_COD);
|
||||
Par_GetParToText ("InsCrsCod",Crs->InstitutionalCrsCod,Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
|
||||
|
||||
/* Get year */
|
||||
Par_GetParToText ("OthCrsYear",YearStr,2);
|
||||
Crs->Year = Deg_ConvStrToYear (YearStr);
|
||||
|
||||
/* Get course short name */
|
||||
Par_GetParToText ("ShortName",Crs->ShrtName,Crs_MAX_LENGTH_COURSE_SHRT_NAME);
|
||||
Par_GetParToText ("ShortName",Crs->ShrtName,Crs_MAX_BYTES_COURSE_SHRT_NAME);
|
||||
|
||||
/* Get course full name */
|
||||
Par_GetParToText ("FullName",Crs->FullName,Crs_MAX_LENGTH_COURSE_FULL_NAME);
|
||||
Par_GetParToText ("FullName",Crs->FullName,Crs_MAX_BYTES_COURSE_FULL_NAME);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1954,8 +1952,8 @@ static void Crs_CreateCourse (struct Course *Crs,unsigned Status)
|
|||
{
|
||||
extern const char *Txt_Created_new_course_X;
|
||||
char Query[512 +
|
||||
Crs_MAX_LENGTH_COURSE_SHRT_NAME +
|
||||
Crs_MAX_LENGTH_COURSE_FULL_NAME];
|
||||
Crs_MAX_BYTES_COURSE_SHRT_NAME +
|
||||
Crs_MAX_BYTES_COURSE_FULL_NAME];
|
||||
|
||||
/***** Insert new course into pending requests *****/
|
||||
sprintf (Query,"INSERT INTO courses (DegCod,Year,InsCrsCod,"
|
||||
|
@ -2076,7 +2074,7 @@ static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row)
|
|||
|
||||
/***** Get institutional course code (row[3]) *****/
|
||||
Str_Copy (Crs->InstitutionalCrsCod,row[3],
|
||||
Crs_LENGTH_INSTITUTIONAL_CRS_COD);
|
||||
Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
|
||||
|
||||
/***** Get course status (row[4]) *****/
|
||||
if (sscanf (row[4],"%u",&(Crs->Status)) != 1)
|
||||
|
@ -2087,11 +2085,11 @@ static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row)
|
|||
|
||||
/***** Get the short name of the course (row[6]) *****/
|
||||
Str_Copy (Crs->ShrtName,row[6],
|
||||
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
|
||||
Crs_MAX_BYTES_COURSE_SHRT_NAME);
|
||||
|
||||
/***** Get the full name of the course (row[7]) *****/
|
||||
Str_Copy (Crs->FullName,row[7],
|
||||
Crs_MAX_LENGTH_COURSE_FULL_NAME);
|
||||
Crs_MAX_BYTES_COURSE_FULL_NAME);
|
||||
|
||||
/***** Get number of teachers *****/
|
||||
Crs->NumTchs = Usr_GetNumUsrsInCrs (Rol_TEACHER,Crs->CrsCod);
|
||||
|
@ -2108,8 +2106,8 @@ static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row)
|
|||
/*****************************************************************************/
|
||||
|
||||
static void Crs_GetShortNamesByCod (long CrsCod,
|
||||
char CrsShortName[Crs_MAX_LENGTH_COURSE_SHRT_NAME + 1],
|
||||
char DegShortName[Deg_MAX_LENGTH_DEGREE_SHRT_NAME + 1])
|
||||
char CrsShortName[Crs_MAX_BYTES_COURSE_SHRT_NAME + 1],
|
||||
char DegShortName[Deg_MAX_BYTES_DEGREE_SHRT_NAME + 1])
|
||||
{
|
||||
char Query[512];
|
||||
MYSQL_RES *mysql_res;
|
||||
|
@ -2131,9 +2129,9 @@ static void Crs_GetShortNamesByCod (long CrsCod,
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
|
||||
Str_Copy (CrsShortName,row[0],
|
||||
Crs_MAX_LENGTH_COURSE_SHRT_NAME);
|
||||
Crs_MAX_BYTES_COURSE_SHRT_NAME);
|
||||
Str_Copy (DegShortName,row[1],
|
||||
Deg_MAX_LENGTH_DEGREE_SHRT_NAME);
|
||||
Deg_MAX_BYTES_DEGREE_SHRT_NAME);
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
|
@ -2300,10 +2298,10 @@ void Crs_ChangeInsCrsCodInConfig (void)
|
|||
extern const char *Txt_The_institutional_code_of_the_course_X_has_changed_to_Y;
|
||||
extern const char *Txt_The_institutional_code_of_the_course_X_has_not_changed;
|
||||
extern const char *Txt_You_dont_have_permission_to_edit_this_course;
|
||||
char NewInstitutionalCrsCod[Crs_LENGTH_INSTITUTIONAL_CRS_COD + 1];
|
||||
char NewInstitutionalCrsCod[Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD + 1];
|
||||
|
||||
/***** Get institutional code from form *****/
|
||||
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_LENGTH_INSTITUTIONAL_CRS_COD);
|
||||
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
|
||||
|
||||
/***** Change the institutional course code *****/
|
||||
if (strcmp (NewInstitutionalCrsCod,Gbl.CurrentCrs.Crs.InstitutionalCrsCod))
|
||||
|
@ -2327,7 +2325,7 @@ void Crs_ChangeInsCrsCod (void)
|
|||
extern const char *Txt_The_institutional_code_of_the_course_X_has_changed_to_Y;
|
||||
extern const char *Txt_The_institutional_code_of_the_course_X_has_not_changed;
|
||||
extern const char *Txt_You_dont_have_permission_to_edit_this_course;
|
||||
char NewInstitutionalCrsCod[Crs_LENGTH_INSTITUTIONAL_CRS_COD + 1];
|
||||
char NewInstitutionalCrsCod[Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD + 1];
|
||||
struct Course *Crs;
|
||||
|
||||
Crs = &Gbl.Degs.EditingCrs;
|
||||
|
@ -2337,7 +2335,7 @@ void Crs_ChangeInsCrsCod (void)
|
|||
Crs->CrsCod = Crs_GetAndCheckParamOtherCrsCod ();
|
||||
|
||||
/* Get institutional code */
|
||||
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_LENGTH_INSTITUTIONAL_CRS_COD);
|
||||
Par_GetParToText ("InsCrsCod",NewInstitutionalCrsCod,Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
|
||||
|
||||
/* Get data of the course */
|
||||
Crs_GetDataOfCourseByCod (Crs);
|
||||
|
@ -2600,7 +2598,7 @@ void Crs_UpdateInstitutionalCrsCod (struct Course *Crs,const char *NewInstitutio
|
|||
|
||||
/***** Copy institutional course code *****/
|
||||
Str_Copy (Crs->InstitutionalCrsCod,NewInstitutionalCrsCod,
|
||||
Crs_LENGTH_INSTITUTIONAL_CRS_COD);
|
||||
Crs_MAX_BYTES_INSTITUTIONAL_CRS_COD);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2644,32 +2642,32 @@ static void Crs_RenameCourse (struct Course *Crs,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
extern const char *Txt_The_name_of_the_course_X_has_changed_to_Y;
|
||||
extern const char *Txt_The_name_of_the_course_X_has_not_changed;
|
||||
extern const char *Txt_You_dont_have_permission_to_edit_this_course;
|
||||
char Query[128 + Crs_MAX_LENGTH_COURSE_FULL_NAME];
|
||||
char Query[128 + Crs_MAX_BYTES_COURSE_FULL_NAME];
|
||||
const char *ParamName = NULL; // Initialized to avoid warning
|
||||
const char *FieldName = NULL; // Initialized to avoid warning
|
||||
unsigned MaxLength = 0; // Initialized to avoid warning
|
||||
unsigned MaxBytes = 0; // Initialized to avoid warning
|
||||
char *CurrentCrsName = NULL; // Initialized to avoid warning
|
||||
char NewCrsName[Crs_MAX_LENGTH_COURSE_FULL_NAME + 1];
|
||||
char NewCrsName[Crs_MAX_BYTES_COURSE_FULL_NAME + 1];
|
||||
|
||||
switch (ShrtOrFullName)
|
||||
{
|
||||
case Cns_SHRT_NAME:
|
||||
ParamName = "ShortName";
|
||||
FieldName = "ShortName";
|
||||
MaxLength = Crs_MAX_LENGTH_COURSE_SHRT_NAME;
|
||||
MaxBytes = Crs_MAX_BYTES_COURSE_SHRT_NAME;
|
||||
CurrentCrsName = Crs->ShrtName;
|
||||
break;
|
||||
case Cns_FULL_NAME:
|
||||
ParamName = "FullName";
|
||||
FieldName = "FullName";
|
||||
MaxLength = Crs_MAX_LENGTH_COURSE_FULL_NAME;
|
||||
MaxBytes = Crs_MAX_BYTES_COURSE_FULL_NAME;
|
||||
CurrentCrsName = Crs->FullName;
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get the new name for the course */
|
||||
Par_GetParToText (ParamName,NewCrsName,MaxLength);
|
||||
Par_GetParToText (ParamName,NewCrsName,MaxBytes);
|
||||
|
||||
/***** Get from the database the data of the degree *****/
|
||||
Crs_GetDataOfCourseByCod (Crs);
|
||||
|
@ -2709,7 +2707,7 @@ static void Crs_RenameCourse (struct Course *Crs,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
|
||||
/* Change current course name in order to display it properly */
|
||||
Str_Copy (CurrentCrsName,NewCrsName,
|
||||
MaxLength);
|
||||
MaxBytes);
|
||||
}
|
||||
}
|
||||
else // The same name
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -392,7 +392,7 @@ static void Deg_Configuration (bool PrintView)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_FULL_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Deg_MAX_LENGTH_DEGREE_FULL_NAME,
|
||||
Deg_MAX_CHARS_DEGREE_FULL_NAME,
|
||||
Gbl.CurrentDeg.Deg.FullName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -422,7 +422,7 @@ static void Deg_Configuration (bool PrintView)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_SHORT_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Deg_MAX_LENGTH_DEGREE_SHRT_NAME,
|
||||
Deg_MAX_CHARS_DEGREE_SHRT_NAME,
|
||||
Gbl.CurrentDeg.Deg.ShrtName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -748,7 +748,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_SHORT_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Deg_MAX_LENGTH_DEGREE_SHRT_NAME,Deg->ShrtName,Gbl.Form.Id);
|
||||
Deg_MAX_CHARS_DEGREE_SHRT_NAME,Deg->ShrtName,Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
}
|
||||
else
|
||||
|
@ -765,7 +765,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_FULL_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Deg_MAX_LENGTH_DEGREE_FULL_NAME,Deg->FullName,Gbl.Form.Id);
|
||||
Deg_MAX_CHARS_DEGREE_FULL_NAME,Deg->FullName,Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
}
|
||||
else
|
||||
|
@ -988,7 +988,7 @@ static void Deg_PutFormToCreateDegree (void)
|
|||
" class=\"INPUT_SHORT_NAME\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Deg_MAX_LENGTH_DEGREE_SHRT_NAME,Deg->ShrtName);
|
||||
Deg_MAX_CHARS_DEGREE_SHRT_NAME,Deg->ShrtName);
|
||||
|
||||
/***** Degree full name *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||
|
@ -997,7 +997,7 @@ static void Deg_PutFormToCreateDegree (void)
|
|||
" class=\"INPUT_FULL_NAME\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Deg_MAX_LENGTH_DEGREE_FULL_NAME,Deg->FullName);
|
||||
Deg_MAX_CHARS_DEGREE_FULL_NAME,Deg->FullName);
|
||||
|
||||
/***** Degree type *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||
|
@ -1164,8 +1164,8 @@ static void Deg_CreateDegree (struct Degree *Deg,unsigned Status)
|
|||
{
|
||||
extern const char *Txt_Created_new_degree_X;
|
||||
char Query[512 +
|
||||
Deg_MAX_LENGTH_DEGREE_SHRT_NAME +
|
||||
Deg_MAX_LENGTH_DEGREE_FULL_NAME +
|
||||
Deg_MAX_BYTES_DEGREE_SHRT_NAME +
|
||||
Deg_MAX_BYTES_DEGREE_FULL_NAME +
|
||||
Cns_MAX_BYTES_WWW];
|
||||
|
||||
/***** Create a new degree *****/
|
||||
|
@ -1541,10 +1541,10 @@ static void Deg_RecFormRequestOrCreateDeg (unsigned Status)
|
|||
Deg->CtrCod = Gbl.CurrentCtr.Ctr.CtrCod;
|
||||
|
||||
/* Get degree short name */
|
||||
Par_GetParToText ("ShortName",Deg->ShrtName,Deg_MAX_LENGTH_DEGREE_SHRT_NAME);
|
||||
Par_GetParToText ("ShortName",Deg->ShrtName,Deg_MAX_BYTES_DEGREE_SHRT_NAME);
|
||||
|
||||
/* Get degree full name */
|
||||
Par_GetParToText ("FullName",Deg->FullName,Deg_MAX_LENGTH_DEGREE_FULL_NAME);
|
||||
Par_GetParToText ("FullName",Deg->FullName,Deg_MAX_BYTES_DEGREE_FULL_NAME);
|
||||
|
||||
/* Get degree type */
|
||||
if ((Deg->DegTypCod = DT_GetParamOtherDegTypCod ()) <= 0)
|
||||
|
@ -1728,11 +1728,11 @@ static void Deg_GetDataOfDegreeFromRow (struct Degree *Deg,MYSQL_ROW row)
|
|||
|
||||
/***** Get degree short name (row[5]) *****/
|
||||
Str_Copy (Deg->ShrtName,row[5],
|
||||
Deg_MAX_LENGTH_DEGREE_SHRT_NAME);
|
||||
Deg_MAX_BYTES_DEGREE_SHRT_NAME);
|
||||
|
||||
/***** Get degree full name (row[6]) *****/
|
||||
Str_Copy (Deg->FullName,row[6],
|
||||
Deg_MAX_LENGTH_DEGREE_FULL_NAME);
|
||||
Deg_MAX_BYTES_DEGREE_FULL_NAME);
|
||||
|
||||
/***** Get WWW (row[7]) *****/
|
||||
Str_Copy (Deg->WWW,row[7],
|
||||
|
@ -1762,7 +1762,7 @@ void Deg_GetShortNameOfDegreeByCod (struct Degree *Deg)
|
|||
row = mysql_fetch_row (mysql_res);
|
||||
|
||||
Str_Copy (Deg->ShrtName,row[0],
|
||||
Deg_MAX_LENGTH_DEGREE_SHRT_NAME);
|
||||
Deg_MAX_BYTES_DEGREE_SHRT_NAME);
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
|
@ -1939,32 +1939,32 @@ static void Deg_RenameDegree (struct Degree *Deg,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
extern const char *Txt_The_degree_X_already_exists;
|
||||
extern const char *Txt_The_name_of_the_degree_X_has_changed_to_Y;
|
||||
extern const char *Txt_The_name_of_the_degree_X_has_not_changed;
|
||||
char Query[512 + Deg_MAX_LENGTH_DEGREE_FULL_NAME];
|
||||
char Query[512 + Deg_MAX_BYTES_DEGREE_FULL_NAME];
|
||||
const char *ParamName = NULL; // Initialized to avoid warning
|
||||
const char *FieldName = NULL; // Initialized to avoid warning
|
||||
unsigned MaxLength = 0; // Initialized to avoid warning
|
||||
unsigned MaxBytes = 0; // Initialized to avoid warning
|
||||
char *CurrentDegName = NULL; // Initialized to avoid warning
|
||||
char NewDegName[Deg_MAX_LENGTH_DEGREE_FULL_NAME + 1];
|
||||
char NewDegName[Deg_MAX_BYTES_DEGREE_FULL_NAME + 1];
|
||||
|
||||
switch (ShrtOrFullName)
|
||||
{
|
||||
case Cns_SHRT_NAME:
|
||||
ParamName = "ShortName";
|
||||
FieldName = "ShortName";
|
||||
MaxLength = Deg_MAX_LENGTH_DEGREE_SHRT_NAME;
|
||||
MaxBytes = Deg_MAX_BYTES_DEGREE_SHRT_NAME;
|
||||
CurrentDegName = Deg->ShrtName;
|
||||
break;
|
||||
case Cns_FULL_NAME:
|
||||
ParamName = "FullName";
|
||||
FieldName = "FullName";
|
||||
MaxLength = Deg_MAX_LENGTH_DEGREE_FULL_NAME;
|
||||
MaxBytes = Deg_MAX_BYTES_DEGREE_FULL_NAME;
|
||||
CurrentDegName = Deg->FullName;
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get the new name for the degree */
|
||||
Par_GetParToText (ParamName,NewDegName,MaxLength);
|
||||
Par_GetParToText (ParamName,NewDegName,MaxBytes);
|
||||
|
||||
/***** Get data of degree *****/
|
||||
Deg_GetDataOfDegreeByCod (Deg);
|
||||
|
@ -2001,7 +2001,7 @@ static void Deg_RenameDegree (struct Degree *Deg,Cns_ShrtOrFullName_t ShrtOrFull
|
|||
|
||||
/* Change current degree name in order to display it properly */
|
||||
Str_Copy (CurrentDegName,NewDegName,
|
||||
MaxLength);
|
||||
MaxBytes);
|
||||
}
|
||||
}
|
||||
else // The same name
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -311,7 +311,7 @@ static void DT_ListDegreeTypesForEdition (void)
|
|||
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"DegTypName\""
|
||||
" size=\"25\" maxlength=\"%u\" value=\"%s\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Deg_MAX_LENGTH_DEGREE_TYPE_NAME,
|
||||
Deg_MAX_CHARS_DEGREE_TYPE_NAME,
|
||||
Gbl.Degs.DegTypes.Lst[NumDegTyp].DegTypName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -361,7 +361,7 @@ static void DT_PutFormToCreateDegreeType (void)
|
|||
" size=\"25\" maxlength=\"%u\" value=\"%s\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Deg_MAX_LENGTH_DEGREE_TYPE_NAME,Gbl.Degs.EditingDegTyp.DegTypName);
|
||||
Deg_MAX_CHARS_DEGREE_TYPE_NAME,Gbl.Degs.EditingDegTyp.DegTypName);
|
||||
|
||||
/***** Send button and end frame *****/
|
||||
Lay_EndRoundFrameTableWithButton (Lay_CREATE_BUTTON,Txt_Create_type_of_degree);
|
||||
|
@ -426,7 +426,7 @@ static void DT_PutHeadDegreeTypesForEdition (void)
|
|||
static void DT_CreateDegreeType (struct DegreeType *DegTyp)
|
||||
{
|
||||
extern const char *Txt_Created_new_type_of_degree_X;
|
||||
char Query[128 + Deg_MAX_LENGTH_DEGREE_TYPE_NAME];
|
||||
char Query[128 + Deg_MAX_BYTES_DEGREE_TYPE_NAME];
|
||||
|
||||
/***** Create a new degree type *****/
|
||||
sprintf (Query,"INSERT INTO deg_types SET DegTypName='%s'",
|
||||
|
@ -482,7 +482,7 @@ void DT_GetListDegreeTypes (void)
|
|||
|
||||
/* Get degree type name (row[1]) */
|
||||
Str_Copy (Gbl.Degs.DegTypes.Lst[NumRow].DegTypName,row[1],
|
||||
Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
|
||||
Deg_MAX_BYTES_DEGREE_TYPE_NAME);
|
||||
|
||||
/* Number of degrees of this type (row[2]) */
|
||||
if (sscanf (row[2],"%u",&Gbl.Degs.DegTypes.Lst[NumRow].NumDegs) != 1)
|
||||
|
@ -523,7 +523,7 @@ void DT_RecFormNewDegreeType (void)
|
|||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get the name of degree type */
|
||||
Par_GetParToText ("DegTypName",DegTyp->DegTypName,Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
|
||||
Par_GetParToText ("DegTypName",DegTyp->DegTypName,Deg_MAX_BYTES_DEGREE_TYPE_NAME);
|
||||
|
||||
if (DegTyp->DegTypName[0]) // If there's a degree type name
|
||||
{
|
||||
|
@ -648,7 +648,7 @@ bool DT_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp)
|
|||
|
||||
/* Get the name of the degree type (row[0]) */
|
||||
Str_Copy (DegTyp->DegTypName,row[0],
|
||||
Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
|
||||
Deg_MAX_BYTES_DEGREE_TYPE_NAME);
|
||||
|
||||
/* Count number of degrees of this type */
|
||||
DegTyp->NumDegs = DT_CountNumDegsOfType (DegTyp->DegTypCod);
|
||||
|
@ -725,7 +725,7 @@ void DT_RenameDegreeType (void)
|
|||
extern const char *Txt_The_name_of_the_type_of_degree_X_has_not_changed;
|
||||
struct DegreeType *DegTyp;
|
||||
char Query[1024];
|
||||
char NewNameDegTyp[Deg_MAX_LENGTH_DEGREE_TYPE_NAME + 1];
|
||||
char NewNameDegTyp[Deg_MAX_BYTES_DEGREE_TYPE_NAME + 1];
|
||||
|
||||
DegTyp = &Gbl.Degs.EditingDegTyp;
|
||||
|
||||
|
@ -735,7 +735,7 @@ void DT_RenameDegreeType (void)
|
|||
Lay_ShowErrorAndExit ("Code of type of degree is missing.");
|
||||
|
||||
/* Get the new name for the degree type */
|
||||
Par_GetParToText ("DegTypName",NewNameDegTyp,Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
|
||||
Par_GetParToText ("DegTypName",NewNameDegTyp,Deg_MAX_BYTES_DEGREE_TYPE_NAME);
|
||||
|
||||
/***** Get from the database the old name of the degree type *****/
|
||||
if (!DT_GetDataOfDegreeTypeByCod (DegTyp))
|
||||
|
@ -784,7 +784,7 @@ void DT_RenameDegreeType (void)
|
|||
|
||||
/***** Show the form again *****/
|
||||
Str_Copy (DegTyp->DegTypName,NewNameDegTyp,
|
||||
Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
|
||||
Deg_MAX_BYTES_DEGREE_TYPE_NAME);
|
||||
DT_ReqEditDegreeTypes ();
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -349,11 +349,11 @@ void Dpt_GetListDepartments (long InsCod)
|
|||
|
||||
/* Get the short name of the department (row[2]) */
|
||||
Str_Copy (Dpt->ShrtName,row[2],
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME);
|
||||
Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME);
|
||||
|
||||
/* Get the full name of the department (row[3]) */
|
||||
Str_Copy (Dpt->FullName,row[3],
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME);
|
||||
Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME);
|
||||
|
||||
/* Get the URL of the department (row[4]) */
|
||||
Str_Copy (Dpt->WWW,row[4],
|
||||
|
@ -392,9 +392,9 @@ void Dpt_GetDataOfDepartmentByCod (struct Department *Dpt)
|
|||
if (Dpt->DptCod == 0)
|
||||
{
|
||||
Str_Copy (Dpt->ShrtName,Txt_Another_department,
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME);
|
||||
Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME);
|
||||
Str_Copy (Dpt->FullName,Txt_Another_department,
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME);
|
||||
Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME);
|
||||
}
|
||||
else if (Dpt->DptCod > 0)
|
||||
{
|
||||
|
@ -427,11 +427,11 @@ void Dpt_GetDataOfDepartmentByCod (struct Department *Dpt)
|
|||
|
||||
/* Get the short name of the department (row[1]) */
|
||||
Str_Copy (Dpt->ShrtName,row[1],
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME);
|
||||
Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME);
|
||||
|
||||
/* Get the full name of the department (row[2]) */
|
||||
Str_Copy (Dpt->FullName,row[2],
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME);
|
||||
Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME);
|
||||
|
||||
/* Get the URL of the department (row[3]) */
|
||||
Str_Copy (Dpt->WWW,row[3],
|
||||
|
@ -559,7 +559,7 @@ static void Dpt_ListDepartmentsForEdition (void)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_SHORT_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME,Dpt->ShrtName,Gbl.Form.Id);
|
||||
Dpt_MAX_CHARS_DEPARTMENT_SHRT_NAME,Dpt->ShrtName,Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
|
@ -571,7 +571,7 @@ static void Dpt_ListDepartmentsForEdition (void)
|
|||
" maxlength=\"%u\" value=\"%s\""
|
||||
" class=\"INPUT_FULL_NAME\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME,Dpt->FullName,Gbl.Form.Id);
|
||||
Dpt_MAX_CHARS_DEPARTMENT_FULL_NAME,Dpt->FullName,Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
|
@ -718,9 +718,9 @@ static void Dpt_RenameDepartment (Cns_ShrtOrFullName_t ShrtOrFullName)
|
|||
struct Department *Dpt;
|
||||
const char *ParamName = NULL; // Initialized to avoid warning
|
||||
const char *FieldName = NULL; // Initialized to avoid warning
|
||||
size_t MaxLength = 0; // Initialized to avoid warning
|
||||
size_t MaxBytes = 0; // Initialized to avoid warning
|
||||
char *CurrentDptName = NULL; // Initialized to avoid warning
|
||||
char NewDptName[Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME + 1];
|
||||
char NewDptName[Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME + 1];
|
||||
|
||||
Dpt = &Gbl.Dpts.EditingDpt;
|
||||
switch (ShrtOrFullName)
|
||||
|
@ -728,13 +728,13 @@ static void Dpt_RenameDepartment (Cns_ShrtOrFullName_t ShrtOrFullName)
|
|||
case Cns_SHRT_NAME:
|
||||
ParamName = "ShortName";
|
||||
FieldName = "ShortName";
|
||||
MaxLength = Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME;
|
||||
MaxBytes = Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME;
|
||||
CurrentDptName = Dpt->ShrtName;
|
||||
break;
|
||||
case Cns_FULL_NAME:
|
||||
ParamName = "FullName";
|
||||
FieldName = "FullName";
|
||||
MaxLength = Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME;
|
||||
MaxBytes = Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME;
|
||||
CurrentDptName = Dpt->FullName;
|
||||
break;
|
||||
}
|
||||
|
@ -745,7 +745,7 @@ static void Dpt_RenameDepartment (Cns_ShrtOrFullName_t ShrtOrFullName)
|
|||
Lay_ShowErrorAndExit ("Code of department is missing.");
|
||||
|
||||
/* Get the new name for the department */
|
||||
Par_GetParToText (ParamName,NewDptName,MaxLength);
|
||||
Par_GetParToText (ParamName,NewDptName,MaxBytes);
|
||||
|
||||
/***** Get from the database the old names of the department *****/
|
||||
Dpt_GetDataOfDepartmentByCod (Dpt);
|
||||
|
@ -792,7 +792,7 @@ static void Dpt_RenameDepartment (Cns_ShrtOrFullName_t ShrtOrFullName)
|
|||
|
||||
/***** Show the form again *****/
|
||||
Str_Copy (CurrentDptName,NewDptName,
|
||||
MaxLength);
|
||||
MaxBytes);
|
||||
Dpt_EditDepartments ();
|
||||
}
|
||||
|
||||
|
@ -930,7 +930,7 @@ static void Dpt_PutFormToCreateDepartment (void)
|
|||
" class=\"INPUT_SHORT_NAME\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME,Dpt->ShrtName);
|
||||
Dpt_MAX_CHARS_DEPARTMENT_SHRT_NAME,Dpt->ShrtName);
|
||||
|
||||
/***** Department full name *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||
|
@ -939,7 +939,7 @@ static void Dpt_PutFormToCreateDepartment (void)
|
|||
" class=\"INPUT_FULL_NAME\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME,Dpt->FullName);
|
||||
Dpt_MAX_CHARS_DEPARTMENT_FULL_NAME,Dpt->FullName);
|
||||
|
||||
/***** Department WWW *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||
|
@ -1019,10 +1019,10 @@ void Dpt_RecFormNewDpt (void)
|
|||
Dpt->InsCod = Ins_GetAndCheckParamOtherInsCod ();
|
||||
|
||||
/* Get department short name */
|
||||
Par_GetParToText ("ShortName",Dpt->ShrtName,Dpt_MAX_LENGTH_DEPARTMENT_SHRT_NAME);
|
||||
Par_GetParToText ("ShortName",Dpt->ShrtName,Dpt_MAX_BYTES_DEPARTMENT_SHRT_NAME);
|
||||
|
||||
/* Get department full name */
|
||||
Par_GetParToText ("FullName",Dpt->FullName,Dpt_MAX_LENGTH_DEPARTMENT_FULL_NAME);
|
||||
Par_GetParToText ("FullName",Dpt->FullName,Dpt_MAX_BYTES_DEPARTMENT_FULL_NAME);
|
||||
|
||||
/* Get department WWW */
|
||||
Par_GetParToText ("WWW",Dpt->WWW,Cns_MAX_BYTES_WWW);
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
14
swad_exam.c
14
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,"<input type=\"text\" id=\"CrsName\" name=\"CrsName\""
|
||||
" size=\"30\" maxlength=\"%u\" value=\"%s\" />",
|
||||
Cns_MAX_LENGTH_STRING,Gbl.ExamAnns.ExaDat.CrsFullName);
|
||||
Cns_MAX_CHARS_STRING,Gbl.ExamAnns.ExaDat.CrsFullName);
|
||||
}
|
||||
else
|
||||
fprintf (Gbl.F.Out,"<strong>%s</strong>",
|
||||
|
@ -1189,7 +1189,7 @@ static void Exa_ShowExamAnnouncement (Exa_TypeViewExamAnnouncement_t TypeViewExa
|
|||
fprintf (Gbl.F.Out,"<input type=\"text\""
|
||||
" id=\"ExamSession\" name=\"ExamSession\""
|
||||
" size=\"30\" maxlength=\"%u\" value=\"%s\" />",
|
||||
Cns_MAX_LENGTH_STRING,Gbl.ExamAnns.ExaDat.Session);
|
||||
Cns_MAX_CHARS_STRING,Gbl.ExamAnns.ExaDat.Session);
|
||||
else
|
||||
fprintf (Gbl.F.Out,"%s",Gbl.ExamAnns.ExaDat.Session);
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
|
@ -1611,7 +1611,7 @@ void Exa_GetSummaryAndContentExamAnnouncement (char SummaryStr[Cns_MAX_BYTES_SUM
|
|||
long ExaCod,bool GetContent)
|
||||
{
|
||||
extern const char *Txt_hours_ABBREVIATION;
|
||||
char CrsNameAndDate[Crs_MAX_LENGTH_COURSE_FULL_NAME + (2 + Cns_MAX_LENGTH_DATE + 6) + 1];
|
||||
char CrsNameAndDate[Crs_MAX_BYTES_COURSE_FULL_NAME + (2 + Cns_MAX_BYTES_DATE + 6) + 1];
|
||||
|
||||
/***** Initializations *****/
|
||||
Gbl.ExamAnns.ExaDat.ExaCod = ExaCod;
|
||||
|
@ -1669,7 +1669,7 @@ static void Exa_GetNotifContentExamAnnouncement (char **ContentStr)
|
|||
struct Course Crs;
|
||||
struct Degree Deg;
|
||||
struct Instit Ins;
|
||||
char StrExamDate[Cns_MAX_LENGTH_DATE + 1];
|
||||
char StrExamDate[Cns_MAX_BYTES_DATE + 1];
|
||||
|
||||
if ((*ContentStr = (char *) malloc (Cns_MAX_BYTES_TEXT * 8)) == NULL)
|
||||
Lay_ShowErrorAndExit ("Error allocating memory for notification content.");
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
|
|
36
swad_group.c
36
swad_group.c
|
@ -1114,7 +1114,7 @@ static void Grp_ListGroupTypesForEdition (void)
|
|||
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"GrpTypName\""
|
||||
" size=\"12\" maxlength=\"%u\" value=\"%s\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Grp_MAX_LENGTH_GROUP_TYPE_NAME,
|
||||
Grp_MAX_CHARS_GROUP_TYPE_NAME,
|
||||
Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypName,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
|
@ -1359,7 +1359,7 @@ static void Grp_ListGroupsForEdition (void)
|
|||
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"GrpName\""
|
||||
" size=\"40\" maxlength=\"%u\" value=\"%s\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Grp_MAX_LENGTH_GROUP_NAME,Grp->GrpName,Gbl.Form.Id);
|
||||
Grp_MAX_CHARS_GROUP_NAME,Grp->GrpName,Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
|
@ -2084,7 +2084,7 @@ static void Grp_PutFormToCreateGroupType (void)
|
|||
" size=\"12\" maxlength=\"%u\" value=\"%s\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Grp_MAX_LENGTH_GROUP_TYPE_NAME,Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName);
|
||||
Grp_MAX_CHARS_GROUP_TYPE_NAME,Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName);
|
||||
|
||||
/***** Is it mandatory to register in any groups of this type? *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||
|
@ -2228,7 +2228,7 @@ static void Grp_PutFormToCreateGroup (void)
|
|||
" size=\"40\" maxlength=\"%u\" value=\"%s\""
|
||||
" required=\"required\" />"
|
||||
"</td>",
|
||||
Grp_MAX_LENGTH_GROUP_NAME,Gbl.CurrentCrs.Grps.GrpName);
|
||||
Grp_MAX_CHARS_GROUP_NAME,Gbl.CurrentCrs.Grps.GrpName);
|
||||
|
||||
/***** Maximum number of students *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||
|
@ -2332,7 +2332,7 @@ void Grp_GetListGrpTypesInThisCrs (Grp_WhichGroupTypes_t WhichGroupTypes)
|
|||
|
||||
/* Get group type name (row[1]) */
|
||||
Str_Copy (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumRow].GrpTypName,row[1],
|
||||
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
|
||||
Grp_MAX_BYTES_GROUP_TYPE_NAME);
|
||||
|
||||
/* Is it mandatory to register in any groups of this type? (row[2]) */
|
||||
Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumRow].MandatoryEnrollment = (row[2][0] == 'Y');
|
||||
|
@ -2463,7 +2463,7 @@ void Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_WhichGroupTypes_t WhichGroupTypes)
|
|||
|
||||
/* Get group name (row[1]) */
|
||||
Str_Copy (Grp->GrpName,row[1],
|
||||
Grp_MAX_LENGTH_GROUP_NAME);
|
||||
Grp_MAX_BYTES_GROUP_NAME);
|
||||
|
||||
/* Get max number of students of group (row[2]) and number of current students */
|
||||
Grp->MaxStudents = Grp_ConvertToNumMaxStdsGrp (row[2]);
|
||||
|
@ -2592,7 +2592,7 @@ static void Grp_GetDataOfGroupTypeByCod (struct GroupType *GrpTyp)
|
|||
/***** Get some data of group type *****/
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
Str_Copy (GrpTyp->GrpTypName,row[0],
|
||||
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
|
||||
Grp_MAX_BYTES_GROUP_TYPE_NAME);
|
||||
GrpTyp->MandatoryEnrollment = (row[1][0] == 'Y');
|
||||
GrpTyp->MultipleEnrollment = (row[2][0] == 'Y');
|
||||
GrpTyp->MustBeOpened = (row[3][0] == 'Y');
|
||||
|
@ -2679,14 +2679,14 @@ void Grp_GetDataOfGroupByCod (struct GroupData *GrpDat)
|
|||
|
||||
/* Get the name of the group type (row[2]) */
|
||||
Str_Copy (GrpDat->GrpTypName,row[2],
|
||||
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
|
||||
Grp_MAX_BYTES_GROUP_TYPE_NAME);
|
||||
|
||||
/* Get whether a student may be in one or multiple groups (row[3]) */
|
||||
GrpDat->MultipleEnrollment = (row[3][0] == 'Y');
|
||||
|
||||
/* Get the name of the group (row[4]) */
|
||||
Str_Copy (GrpDat->GrpName,row[4],
|
||||
Grp_MAX_LENGTH_GROUP_NAME);
|
||||
Grp_MAX_BYTES_GROUP_NAME);
|
||||
|
||||
/* Get maximum number of students (row[5]) */
|
||||
GrpDat->MaxStudents = Grp_ConvertToNumMaxStdsGrp (row[5]);
|
||||
|
@ -3050,7 +3050,7 @@ void Grp_GetNamesGrpsStdBelongsTo (long GrpTypCod,long UsrCod,char *GroupNames)
|
|||
MYSQL_ROW row;
|
||||
unsigned long NumRow;
|
||||
unsigned long NumRows;
|
||||
size_t MaxLength = (Grp_MAX_LENGTH_GROUP_NAME + 2) * Gbl.CurrentCrs.Grps.GrpTypes.NumGrpsTotal;
|
||||
size_t MaxLength = (Grp_MAX_BYTES_GROUP_NAME + 2) * Gbl.CurrentCrs.Grps.GrpTypes.NumGrpsTotal;
|
||||
|
||||
/***** Get the names of groups which a user belongs to, from database *****/
|
||||
sprintf (Query,"SELECT crs_grp.GrpName FROM crs_grp,crs_grp_usr"
|
||||
|
@ -3094,7 +3094,7 @@ void Grp_RecFormNewGrpTyp (void)
|
|||
/***** Get parameters from form *****/
|
||||
/* Get the name of group type */
|
||||
Par_GetParToText ("GrpTypName",Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName,
|
||||
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
|
||||
Grp_MAX_BYTES_GROUP_TYPE_NAME);
|
||||
|
||||
/* Get whether it is mandatory to regisrer in any group of this type */
|
||||
Gbl.CurrentCrs.Grps.GrpTyp.MandatoryEnrollment = Par_GetParToBool ("MandatoryEnrollment");
|
||||
|
@ -3156,7 +3156,7 @@ void Grp_RecFormNewGrp (void)
|
|||
{
|
||||
/* Get group name */
|
||||
Par_GetParToText ("GrpName",Gbl.CurrentCrs.Grps.GrpName,
|
||||
Grp_MAX_LENGTH_GROUP_NAME);
|
||||
Grp_MAX_BYTES_GROUP_NAME);
|
||||
|
||||
/* Get maximum number of students */
|
||||
Gbl.CurrentCrs.Grps.MaxStudents = (unsigned)
|
||||
|
@ -3931,7 +3931,7 @@ void Grp_RenameGroupType (void)
|
|||
extern const char *Txt_The_type_of_group_X_has_been_renamed_as_Y;
|
||||
extern const char *Txt_The_name_of_the_type_of_group_X_has_not_changed;
|
||||
char Query[1024];
|
||||
char NewNameGrpTyp[Grp_MAX_LENGTH_GROUP_TYPE_NAME + 1];
|
||||
char NewNameGrpTyp[Grp_MAX_BYTES_GROUP_TYPE_NAME + 1];
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get the code of the group type */
|
||||
|
@ -3939,7 +3939,7 @@ void Grp_RenameGroupType (void)
|
|||
Lay_ShowErrorAndExit ("Code of type of group is missing.");
|
||||
|
||||
/* Get the new name for the group type */
|
||||
Par_GetParToText ("GrpTypName",NewNameGrpTyp,Grp_MAX_LENGTH_GROUP_TYPE_NAME);
|
||||
Par_GetParToText ("GrpTypName",NewNameGrpTyp,Grp_MAX_BYTES_GROUP_TYPE_NAME);
|
||||
|
||||
/***** Get from the database the old name of the group type *****/
|
||||
Grp_GetDataOfGroupTypeByCod (&Gbl.CurrentCrs.Grps.GrpTyp);
|
||||
|
@ -3989,7 +3989,7 @@ void Grp_RenameGroupType (void)
|
|||
|
||||
/***** Show the form again *****/
|
||||
Str_Copy (Gbl.CurrentCrs.Grps.GrpTyp.GrpTypName,NewNameGrpTyp,
|
||||
Grp_MAX_LENGTH_GROUP_TYPE_NAME);
|
||||
Grp_MAX_BYTES_GROUP_TYPE_NAME);
|
||||
Grp_ReqEditGroups ();
|
||||
}
|
||||
|
||||
|
@ -4005,7 +4005,7 @@ void Grp_RenameGroup (void)
|
|||
extern const char *Txt_The_name_of_the_group_X_has_not_changed;
|
||||
struct GroupData GrpDat;
|
||||
char Query[512];
|
||||
char NewNameGrp[Grp_MAX_LENGTH_GROUP_NAME + 1];
|
||||
char NewNameGrp[Grp_MAX_BYTES_GROUP_NAME + 1];
|
||||
|
||||
/***** Get parameters from form *****/
|
||||
/* Get the code of the group */
|
||||
|
@ -4013,7 +4013,7 @@ void Grp_RenameGroup (void)
|
|||
Lay_ShowErrorAndExit ("Code of group is missing.");
|
||||
|
||||
/* Get the new name for the group */
|
||||
Par_GetParToText ("GrpName",NewNameGrp,Grp_MAX_LENGTH_GROUP_NAME);
|
||||
Par_GetParToText ("GrpName",NewNameGrp,Grp_MAX_BYTES_GROUP_NAME);
|
||||
|
||||
/***** Get from the database the type and the old name of the group *****/
|
||||
GrpDat.GrpCod = Gbl.CurrentCrs.Grps.GrpCod;
|
||||
|
@ -4061,7 +4061,7 @@ void Grp_RenameGroup (void)
|
|||
|
||||
/***** Show the form again *****/
|
||||
Str_Copy (Gbl.CurrentCrs.Grps.GrpName,NewNameGrp,
|
||||
Grp_MAX_LENGTH_GROUP_NAME);
|
||||
Grp_MAX_BYTES_GROUP_NAME);
|
||||
Grp_ReqEditGroups ();
|
||||
}
|
||||
|
||||
|
|
15
swad_group.h
15
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?
|
||||
|
|
|
@ -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 */
|
||||
|
|
20
swad_mail.c
20
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)
|
|||
"<input type=\"email\" id=\"NewEmail\" name=\"NewEmail\""
|
||||
" size=\"18\" maxlength=\"%u\" value=\"%s\" />"
|
||||
"</div>",
|
||||
Usr_MAX_BYTES_USR_EMAIL,
|
||||
Usr_MAX_CHARS_USR_EMAIL,
|
||||
Gbl.Usrs.Me.UsrDat.Email);
|
||||
Lay_PutCreateButtonInline (NumEmails ? Txt_Change_email : // User already has an email address
|
||||
Txt_Save); // User has no email address yet
|
||||
|
|
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 *****/
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -248,7 +248,7 @@ static void Plg_GetListPlugins (void)
|
|||
|
||||
/* Get the IP of the plugin (row[6]) */
|
||||
Str_Copy (Plg->IP,row[6],
|
||||
Cns_MAX_LENGTH_IP);
|
||||
Cns_MAX_BYTES_IP);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -315,7 +315,7 @@ bool Plg_GetDataOfPluginByCod (struct Plugin *Plg)
|
|||
|
||||
/* Get the IP of the plugin (row[5]) */
|
||||
Str_Copy (Plg->IP,row[5],
|
||||
Cns_MAX_LENGTH_IP);
|
||||
Cns_MAX_BYTES_IP);
|
||||
}
|
||||
else
|
||||
PluginFound = false;
|
||||
|
@ -452,7 +452,8 @@ static void Plg_ListPluginsForEdition (void)
|
|||
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"IP\""
|
||||
" size=\"10\" maxlength=\"%u\" value=\"%s\""
|
||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||
Cns_MAX_LENGTH_IP,Plg->IP,Gbl.Form.Id);
|
||||
Cns_MAX_CHARS_IP,Plg->IP,
|
||||
Gbl.Form.Id);
|
||||
Act_FormEnd ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
@ -785,8 +786,8 @@ void Plg_ChangePlgIP (void)
|
|||
extern const char *Txt_The_new_IP_address_is_X;
|
||||
extern const char *Txt_You_can_not_leave_the_IP_address_empty;
|
||||
struct Plugin *Plg;
|
||||
char Query[256 + Cns_MAX_LENGTH_IP];
|
||||
char NewIP[Cns_MAX_LENGTH_IP + 1];
|
||||
char Query[256 + Cns_MAX_BYTES_IP];
|
||||
char NewIP[Cns_MAX_BYTES_IP + 1];
|
||||
|
||||
Plg = &Gbl.Plugins.EditingPlg;
|
||||
|
||||
|
@ -796,7 +797,7 @@ void Plg_ChangePlgIP (void)
|
|||
Lay_ShowErrorAndExit ("Code of plugin is missing.");
|
||||
|
||||
/* Get the new IP for the plugin */
|
||||
Par_GetParToText ("IP",NewIP,Cns_MAX_LENGTH_IP);
|
||||
Par_GetParToText ("IP",NewIP,Cns_MAX_BYTES_IP);
|
||||
|
||||
/***** Check if new IP is empty *****/
|
||||
if (NewIP[0])
|
||||
|
@ -816,7 +817,7 @@ void Plg_ChangePlgIP (void)
|
|||
|
||||
/***** Show the form again *****/
|
||||
Str_Copy (Plg->IP,NewIP,
|
||||
Cns_MAX_LENGTH_IP);
|
||||
Cns_MAX_BYTES_IP);
|
||||
Plg_EditPlugins ();
|
||||
}
|
||||
|
||||
|
@ -919,7 +920,7 @@ static void Plg_PutFormToCreatePlugin (void)
|
|||
" required=\"required\" />"
|
||||
"</td>"
|
||||
"</tr>",
|
||||
Cns_MAX_LENGTH_IP,Plg->IP);
|
||||
Cns_MAX_CHARS_IP,Plg->IP);
|
||||
|
||||
/***** Send button and end frame *****/
|
||||
Lay_EndRoundFrameTableWithButton (Lay_CREATE_BUTTON,Txt_Create_plugin);
|
||||
|
@ -1006,7 +1007,7 @@ void Plg_RecFormNewPlg (void)
|
|||
Par_GetParToText ("URL",Plg->URL,Cns_MAX_BYTES_WWW);
|
||||
|
||||
/* Get plugin IP address */
|
||||
Par_GetParToText ("IP",Plg->IP,Cns_MAX_LENGTH_IP);
|
||||
Par_GetParToText ("IP",Plg->IP,Cns_MAX_BYTES_IP);
|
||||
|
||||
if (Plg->Name[0]) // If there's a plugin name
|
||||
{
|
||||
|
@ -1044,7 +1045,7 @@ static void Plg_CreatePlugin (struct Plugin *Plg)
|
|||
Plg_MAX_LENGTH_PLUGIN_LOGO +
|
||||
Plg_MAX_LENGTH_PLUGIN_APP_KEY +
|
||||
Cns_MAX_BYTES_WWW +
|
||||
Cns_MAX_LENGTH_IP];
|
||||
Cns_MAX_BYTES_IP];
|
||||
|
||||
/***** Create a new plugin *****/
|
||||
sprintf (Query,"INSERT INTO plugins (Name,Description,Logo,AppKey,URL,IP)"
|
||||
|
|
|
@ -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];
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -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 ();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
|
|
|
@ -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 *****/
|
||||
|
|
|
@ -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)
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -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
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -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.");
|
||||
}
|
||||
|
|
15
swad_user.h
15
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 + '<br />' + FirstName
|
||||
|
||||
#define Usr_MAX_BYTES_USR_EMAIL (128 - 1)
|
||||
#define Usr_MAX_CHARS_USR_EMAIL (128 - 1)
|
||||
#define Usr_MAX_BYTES_USR_EMAIL Usr_MAX_CHARS_USR_EMAIL
|
||||
|
||||
#define Usr_MAX_LENGTH_USR_LOGIN (128 - 1) // @nick, email or ID
|
||||
#define Usr_MAX_BYTES_USR_LOGIN (128 - 1)
|
||||
|
||||
#define Usr_BIRTHDAY_STR_DB_LENGTH (4 + 1 + 2 + 1 + 2) // "'%04u-%02u-%02u'"
|
||||
|
||||
|
@ -146,11 +147,11 @@ struct UsrData
|
|||
long CtyCod; // Country
|
||||
char OriginPlace [Cns_MAX_BYTES_STRING + 1];
|
||||
struct Date Birthday;
|
||||
char StrBirthday [Cns_MAX_LENGTH_DATE + 1];
|
||||
char StrBirthday [Cns_MAX_BYTES_DATE + 1];
|
||||
char LocalAddress [Cns_MAX_BYTES_STRING + 1];
|
||||
char LocalPhone [Usr_MAX_BYTES_PHONE + 1];
|
||||
char LocalPhone [Usr_MAX_BYTES_PHONE + 1];
|
||||
char FamilyAddress [Cns_MAX_BYTES_STRING + 1];
|
||||
char FamilyPhone [Usr_MAX_BYTES_PHONE + 1];
|
||||
char FamilyPhone [Usr_MAX_BYTES_PHONE + 1];
|
||||
char *Comments;
|
||||
long InsCtyCod; // Country of the institution
|
||||
long InsCod; // Institution
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue