diff --git a/swad_QR.c b/swad_QR.c index 76afc214..0cd6f8b3 100644 --- a/swad_QR.c +++ b/swad_QR.c @@ -146,7 +146,7 @@ void QR_ImageQRCode (const char *QRString) void QR_LinkTo (unsigned Size,ParCod_Param_t ParCode,long Cod) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_Shortcut; char *URL; diff --git a/swad_action_list.c b/swad_action_list.c index 03a0313e..a5475fe8 100644 --- a/swad_action_list.c +++ b/swad_action_list.c @@ -230,7 +230,7 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActSeePen ] = {1060, 2,TabSys,ActSeePen , 0, 0, 0, 0, 0, 0,0x3C0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Hie_SeePending }, // Links - [ActSeeLnk ] = { 748, 3,TabSys,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x3C7,Act_CONT_NORM,Act_1ST_TAB,NULL ,Lnk_SeeLinks }, + [ActSeeLnk ] = { 748, 3,TabSys,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x3C7,Act_CONT_NORM,Act_1ST_TAB,NULL ,Lnk_SeeLinks }, [ActEdiLnk ] = { 749,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_1ST_TAB,NULL ,Lnk_EditLinks }, [ActNewLnk ] = { 750,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_1ST_TAB,Lnk_ReceiveNewLink ,Lnk_ContEditAfterChgLnk }, [ActRemLnk ] = { 897,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_1ST_TAB,Lnk_RemoveLink ,Lnk_ContEditAfterChgLnk }, @@ -457,8 +457,8 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActLftPrgItm ] = {1834,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Prg_MoveLeftItem }, [ActRgtPrgItm ] = {1833,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Prg_MoveRightItem }, [ActExpSeePrgItm ] = {1944,-1,TabUnk,ActSeePrg ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Prg_ExpandItem }, - [ActExpEdiPrgItm ] = {1946,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Prg_ExpandItem }, [ActConSeePrgItm ] = {1945,-1,TabUnk,ActSeePrg ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Prg_ContractItem }, + [ActExpEdiPrgItm ] = {1946,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Prg_ExpandItem }, [ActConEdiPrgItm ] = {1947,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Prg_ContractItem }, [ActSeeRscCli_InPrg ] = {1970,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,PrgRsc_ViewResourceClipboard }, [ActRemRscCli_InPrg ] = {1971,-1,TabUnk,ActSeePrg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,PrgRsc_RemoveResourceClipboard }, @@ -1327,7 +1327,7 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActLstStd ] = { 678, 1,TabUsr,ActLstStd ,0x3F8,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Usr_SeeStudents }, [ActLstStdAll ] = { 42,-1,TabUnk,ActLstStd ,0x3F8,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_NEW_TAB,NULL ,Usr_ListAllDataStds }, [ActPrnStdPho ] = { 120,-1,TabUnk,ActLstStd ,0x3F8,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_NEW_TAB,NULL ,Usr_SeeStdClassPhotoPrn }, - [ActDoActOnSevStd ] = {1754,-1,TabUnk,ActLstStd ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,Usr_DoActionOnSeveralUsrs1 ,Usr_DoActionOnSeveralUsrs2 }, + [Act_DoAct_OnSevStd ] = {1754,-1,TabUnk,ActLstStd ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,Usr_DoActionOnSeveralUsrs1 ,Usr_DoActionOnSeveralUsrs2 }, [ActSeeRecSevStd ] = { 89,-1,TabUnk,ActLstStd ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Rec_ListRecordsStdsShow }, [ActPrnRecSevStd ] = { 111,-1,TabUnk,ActLstStd ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_NEW_TAB,NULL ,Rec_ListRecordsStdsPrint }, [ActReqMdfOneStd ] = {1415,-1,TabUnk,ActLstStd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_1ST_TAB,NULL ,Enr_ReqRegRemStd }, @@ -1375,7 +1375,7 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActLstTch ] = { 679, 2,TabUsr,ActLstTch ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_1ST_TAB,NULL ,Usr_SeeTeachers }, [ActLstTchAll ] = { 578,-1,TabUnk,ActLstTch ,0x3F8,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,0x3C0,Act_CONT_NORM,Act_NEW_TAB,NULL ,Usr_ListAllDataTchs }, [ActPrnTchPho ] = { 443,-1,TabUnk,ActLstTch ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_NEW_TAB,NULL ,Usr_SeeTchClassPhotoPrn }, - [ActDoActOnSevTch ] = {1755,-1,TabUnk,ActLstTch ,0x3F8,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,Usr_DoActionOnSeveralUsrs1 ,Usr_DoActionOnSeveralUsrs2 }, + [Act_DoAct_OnSevTch ] = {1755,-1,TabUnk,ActLstTch ,0x3F8,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,Usr_DoActionOnSeveralUsrs1 ,Usr_DoActionOnSeveralUsrs2 }, [ActSeeRecSevTch ] = { 22,-1,TabUnk,ActLstTch ,0x3F8,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Rec_ListRecordsTchsShow }, [ActPrnRecSevTch ] = { 127,-1,TabUnk,ActLstTch ,0x3F8,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_NEW_TAB,NULL ,Rec_ListRecordsTchsPrint }, [ActReqMdfOneTch ] = {1416,-1,TabUnk,ActLstTch ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_1ST_TAB,NULL ,Enr_ReqRegRemTch }, @@ -1411,7 +1411,6 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActReqUnfSevTch ] = {1759,-1,TabUnk,ActLstTch ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Fol_ReqUnfollowTchs }, [ActFolSevTch ] = {1761,-1,TabUnk,ActLstTch ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Fol_FollowUsrs }, [ActUnfSevTch ] = {1763,-1,TabUnk,ActLstTch ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Fol_UnfollowUsrs }, - [ActSeeRecOneTch ] = {1175,-1,TabUnk,ActLstTch ,0x3F8,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Rec_GetUsrAndShowRecOneTchCrs }, [ActReqEnrSevNET ] = {1642,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Enr_ReqAdminNonEditingTchs }, [ActRcvFrmEnrSevNET ] = {1643,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_1ST_TAB,NULL ,Enr_ReceiveAdminNonEditTchs }, @@ -1432,7 +1431,7 @@ const struct Act_Actions ActLst_Actions[ActLst_NUM_ACTIONS] = [ActLstGst ] = { 587,-1,TabUnk,ActLstOth ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_1ST_TAB,NULL ,Usr_SeeGuests }, [ActLstGstAll ] = {1189,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_NEW_TAB,NULL ,Usr_ListAllDataGsts }, [ActPrnGstPho ] = {1190,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_NEW_TAB,NULL ,Usr_SeeGstClassPhotoPrn }, - [ActDoActOnSevGst ] = {1753,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_1ST_TAB,Usr_DoActionOnSeveralUsrs1 ,Usr_DoActionOnSeveralUsrs2 }, + [Act_DoAct_OnSevGst ] = {1753,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_1ST_TAB,Usr_DoActionOnSeveralUsrs1 ,Usr_DoActionOnSeveralUsrs2 }, [ActSeeRecSevGst ] = {1187,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_1ST_TAB,NULL ,Rec_ListRecordsGstsShow }, [ActPrnRecSevGst ] = {1188,-1,TabUnk,ActLstOth ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_NEW_TAB,NULL ,Rec_ListRecordsGstsPrint }, [ActReqMdfOneOth ] = {1414,-1,TabUnk,ActLstOth ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_1ST_TAB,NULL ,Enr_ReqRegRemOth }, @@ -3564,9 +3563,9 @@ Act_Action_t ActLst_FromActCodToAction[1 + ActLst_MAX_ACTION_COD] = // Do not re ActChgRooMaxUsr, // #1750 ActUnk, // #1751 (obsolete action) ActChgGrpRoo, // #1752 - ActDoActOnSevGst, // #1753 - ActDoActOnSevStd, // #1754 - ActDoActOnSevTch, // #1755 + Act_DoAct_OnSevGst, // #1753 + Act_DoAct_OnSevStd, // #1754 + Act_DoAct_OnSevTch, // #1755 ActReqFolSevStd, // #1756 ActReqFolSevTch, // #1757 ActReqUnfSevStd, // #1758 diff --git a/swad_action_list.h b/swad_action_list.h index ce7e3a03..bea3390e 100644 --- a/swad_action_list.h +++ b/swad_action_list.h @@ -1298,7 +1298,7 @@ typedef enum ActLstStd, ActLstStdAll, ActPrnStdPho, - ActDoActOnSevStd, + Act_DoAct_OnSevStd, ActSeeRecSevStd, ActPrnRecSevStd, ActReqMdfOneStd, @@ -1347,7 +1347,7 @@ typedef enum ActLstTch, ActLstTchAll, ActPrnTchPho, - ActDoActOnSevTch, + Act_DoAct_OnSevTch, ActSeeRecSevTch, ActPrnRecSevTch, ActReqMdfOneTch, @@ -1404,7 +1404,7 @@ typedef enum ActLstGst, ActLstGstAll, ActPrnGstPho, - ActDoActOnSevGst, + Act_DoAct_OnSevGst, ActSeeRecSevGst, ActPrnRecSevGst, ActReqMdfOneOth, diff --git a/swad_attendance.c b/swad_attendance.c index f4437ccb..5abfe3bd 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -128,7 +128,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, static void Att_PutLinkEvent (struct Att_Event *Event, const char *Title,const char *Txt); static unsigned Att_GetNumUsrsFromAListWhoAreInEvent (long AttCod, - long LstSelectedUsrCods[], + long *LstSelectedUsrCods, unsigned NumUsrsInList); static bool Att_CheckIfUsrIsPresentInEvent (long AttCod,long UsrCod); static bool Att_CheckIfUsrIsPresentInEventAndGetComments (long AttCod,long UsrCod, @@ -2077,7 +2077,7 @@ void Att_RegisterStudentsInEvent (void) /*****************************************************************************/ static unsigned Att_GetNumUsrsFromAListWhoAreInEvent (long AttCod, - long LstSelectedUsrCods[], + long *LstSelectedUsrCods, unsigned NumUsrsInList) { char *SubQueryUsrs; @@ -2231,7 +2231,7 @@ static void Att_ListOrPrintMyAttendanceCrs (Att_TypeOfView_t TypeOfView) /* Get number of students in this event */ Events.Lst[NumAttEvent].NumStdsFromList = Att_GetNumUsrsFromAListWhoAreInEvent (Events.Lst[NumAttEvent].AttCod, - &Gbl.Usrs.Me.UsrDat.UsrCod,1); + &Gbl.Usrs.Me.UsrDat.UsrCod,1); /***** Get list of attendance events selected *****/ Att_GetListSelectedAttCods (&Events); @@ -2344,7 +2344,7 @@ static void Att_ListOrPrintUsrsAttendanceCrs (void *TypeOfView) /* Get number of students in this event */ Events.Lst[NumAttEvent].NumStdsFromList = Att_GetNumUsrsFromAListWhoAreInEvent (Events.Lst[NumAttEvent].AttCod, - LstSelectedUsrCods,NumUsrsInList); + LstSelectedUsrCods,NumUsrsInList); /***** Get list of attendance events selected *****/ Att_GetListSelectedAttCods (&Events); diff --git a/swad_browser.c b/swad_browser.c index bff50fdb..bb792238 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -1213,7 +1213,7 @@ static bool Brw_CheckIfUploadIsAllowed (const char *FileType); static void Brw_PutIconToGetLinkToFile (void *FileMetadata); static void Brw_PutParsToGetLinkToFile (void *FileMetadata); -static bool Brw_CheckIfICanEditFileMetadata (long IAmTheOwner); +static bool Brw_CheckIfICanEditFileMetadata (bool IAmTheOwner); static bool Brw_CheckIfIAmOwnerOfFile (long PublisherUsrCod); static void Brw_WriteBigLinkToDownloadFile (const char *URL, struct Brw_FileMetadata *FileMetadata, @@ -2876,7 +2876,7 @@ void Brw_PutLegalNotice (void) static void Brw_FormToChangeCrsGrpZone (void) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; struct ListCodGrps LstMyGrps; unsigned NumGrp; struct GroupData GrpDat; @@ -4632,8 +4632,7 @@ static void Brw_PutIconFileWithLinkToViewMetadata (const struct Brw_FileMetadata void Brw_PutIconFile (const char *FileName, const char *Class,Frm_PutForm_t PutFormToGo) { - extern unsigned Ext_NUM_FILE_EXT_ALLOWED; - extern const char *Ext_FileExtensionsAllowed[]; + extern const char *Ext_FileExtensionsAllowed[Ext_NUM_FILE_EXT_ALLOWED]; extern const char *Txt_X_file; char *URL; char *Icon; @@ -7890,7 +7889,7 @@ void Brw_DownloadFile (void) /*********** Check if I have permission to change file metadata **************/ /*****************************************************************************/ -static bool Brw_CheckIfICanEditFileMetadata (long IAmTheOwner) +static bool Brw_CheckIfICanEditFileMetadata (bool IAmTheOwner) { switch (Gbl.Action.Act) // Only in actions where edition is allowed { diff --git a/swad_center_config.c b/swad_center_config.c index cf5a49ed..01f8e756 100644 --- a/swad_center_config.c +++ b/swad_center_config.c @@ -544,7 +544,7 @@ static void CtrCfg_FreePhotoAttr (char **PhotoAttribution) static void CtrCfg_Institution (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_HIERARCHY_SINGUL_Abc[Hie_NUM_LEVELS]; unsigned NumIns; const struct Hie_Node *Ins; @@ -623,7 +623,7 @@ static void CtrCfg_Institution (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm) static void CtrCfg_Place (Frm_PutForm_t PutForm) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_Place; extern const char *Txt_Another_place; struct Plc_Places Places; diff --git a/swad_changelog.h b/swad_changelog.h index 64fedb7a..77c3f36c 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -633,10 +633,11 @@ Me sale este error, no s "can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod') */ -#define Log_PLATFORM_VERSION "SWAD 23.71.2 (2024-03-20)" +#define Log_PLATFORM_VERSION "SWAD 23.71.3 (2024-03-22)" #define CSS_FILE "swad23.67.2.css" #define JS_FILE "swad23.53.6.js" /* + Version 23.71.3: Mar 22, 2024 Code refactoring. (334827 lines) Version 23.71.2: Mar 20, 2024 Code refactoring in actions. (334866 lines) Version 23.71.1: Mar 20, 2024 Some functions renamed. (334869 lines) Version 23.71: Mar 20, 2024 Actions for syllabus unified for lectures and practicals. (334868 lines) diff --git a/swad_config.h b/swad_config.h index d64e0f67..30ef3b84 100644 --- a/swad_config.h +++ b/swad_config.h @@ -81,8 +81,6 @@ #define Cfg_TIME_TO_SEND_PENDING_NOTIF ((time_t) (30UL * 60UL)) // After these seconds after first pending notification, all pending notifications are sent by email -#define Cfg_GOOGLE_ANALYTICS "" - #elif defined OPENSWAD_ORG // openswad.org ************************ #define Cfg_PLATFORM_SHORT_NAME "OpenSWAD" @@ -118,29 +116,6 @@ #define Cfg_TIME_TO_SEND_PENDING_NOTIF ((time_t) (30UL * 60UL)) // After these seconds after first pending notification, all pending notifications are sent by email -/* Google Analytics without cookies. - * This code comes from http://stackoverflow.com/a/19995629 - */ -#define Cfg_GOOGLE_ANALYTICS "" - -/* -"" -*/ - #elif defined SWAD_UGR_ES // swad.ugr.es ************************* #define Cfg_PLATFORM_SHORT_NAME "SWAD" @@ -176,26 +151,6 @@ #define Cfg_TIME_TO_SEND_PENDING_NOTIF ((time_t) (30UL * 60UL)) // After these seconds after first pending notification, all pending notifications are sent by email -#define Cfg_GOOGLE_ANALYTICS "" - -/* -"" -*/ - #elif defined SWADBERRY_UGR_ES // swadberry.ugr.es ****************** #define Cfg_PLATFORM_SHORT_NAME "SWADberry" @@ -231,8 +186,6 @@ #define Cfg_TIME_TO_SEND_PENDING_NOTIF ((time_t) (30UL * 60UL)) // After these seconds after first pending notification, all pending notifications are sent by email -#define Cfg_GOOGLE_ANALYTICS "" - #endif /* Database */ diff --git a/swad_country.c b/swad_country.c index 9aae738c..4b19f290 100644 --- a/swad_country.c +++ b/swad_country.c @@ -1383,7 +1383,7 @@ static void Cty_PutParGoToCty (void *CtyCod) static void Cty_PutFormToCreateCountry (void) { extern const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES]; - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_STR_LANG_NAME[1 + Lan_NUM_LANGUAGES]; Lan_Language_t Lan; char StrCtyCod[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; diff --git a/swad_course_config.c b/swad_course_config.c index 313660e5..b906c2fa 100644 --- a/swad_course_config.c +++ b/swad_course_config.c @@ -201,7 +201,7 @@ void CrsCfg_PrintConfiguration (void) static void CrsCfg_Degree (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_HIERARCHY_SINGUL_Abc[Hie_NUM_LEVELS]; unsigned NumDeg; const struct Hie_Node *Deg; diff --git a/swad_degree_config.c b/swad_degree_config.c index 404ab1eb..677c9bce 100644 --- a/swad_degree_config.c +++ b/swad_degree_config.c @@ -194,7 +194,7 @@ static void DegCfg_PutIconsToPrintAndUpload (__attribute__((unused)) void *Args) static void DegCfg_Center (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_HIERARCHY_SINGUL_Abc[Hie_NUM_LEVELS]; unsigned NumCtr; const struct Hie_Node *Ctr; diff --git a/swad_enrolment.c b/swad_enrolment.c index cb47647e..4b0792a7 100644 --- a/swad_enrolment.c +++ b/swad_enrolment.c @@ -173,7 +173,7 @@ void Enr_CheckStdsAndPutButtonToRegisterStdsInCurrentCrs (void) /*****************************************************************************/ void Enr_PutButtonInlineToRegisterStds (long CrsCod, - unsigned Level,Lay_LastItem_t IsLastItemInLevel[], + unsigned Level,const Lay_LastItem_t *IsLastItemInLevel, Lay_Highlight_t Highlight) { extern const char *Lay_HighlightClass[Lay_NUM_HIGHLIGHT]; diff --git a/swad_enrolment.h b/swad_enrolment.h index 8f95f5ea..83a280db 100644 --- a/swad_enrolment.h +++ b/swad_enrolment.h @@ -75,7 +75,7 @@ typedef enum void Enr_CheckStdsAndPutButtonToRegisterStdsInCurrentCrs (void); void Enr_PutButtonInlineToRegisterStds (long CrsCod, - unsigned Level,Lay_LastItem_t IsLastItemInLevel[], + unsigned Level,const Lay_LastItem_t *IsLastItemInLevel, Lay_Highlight_t Highlight); void Enr_PutLinkToRequestSignUp (void); diff --git a/swad_exam.c b/swad_exam.c index 5ca0a079..b6ed6eba 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -804,7 +804,7 @@ void Exa_GetListExams (struct Exa_Exams *Exams,Exa_Order_t SelectedOrder) void Exa_GetListSelectedExaCods (struct Exa_Exams *Exams) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; unsigned MaxSizeListExaCodsSelected; unsigned NumExam; const char *Ptr; @@ -1253,12 +1253,12 @@ void Exa_PutFormsOneExam (struct Exa_Exams *Exams, extern const char *Hlp_ASSESSMENT_Exams_edit_exam; extern const char *Hlp_ASSESSMENT_Exams_new_exam; extern const char *Txt_Exam; - static void (*FunctionToDrawContextualIcons[]) (void *Args) = + static void (*FunctionToDrawContextualIcons[Exa_NUM_EXISTING_NEW_EXAM]) (void *Args) = { [Exa_EXISTING_EXAM] = Exa_PutIconsEditingOneExam, [Exa_NEW_EXAM ] = NULL, }; - static const char **HelpLink[] = + static const char **HelpLink[Exa_NUM_EXISTING_NEW_EXAM] = { [Exa_EXISTING_EXAM] = &Hlp_ASSESSMENT_Exams_edit_exam, [Exa_NEW_EXAM ] = &Hlp_ASSESSMENT_Exams_new_exam, @@ -1317,17 +1317,17 @@ static void Exa_PutFormEditionExam (struct Exa_Exams *Exams, extern const char *Txt_Description; extern const char *Txt_Save_changes; extern const char *Txt_Create; - static Act_Action_t NextAction[] = + static Act_Action_t NextAction[Exa_NUM_EXISTING_NEW_EXAM] = { [Exa_EXISTING_EXAM] = ActChgExa, [Exa_NEW_EXAM ] = ActNewExa, }; - static Btn_Button_t Button[] = + static Btn_Button_t Button[Exa_NUM_EXISTING_NEW_EXAM] = { [Exa_EXISTING_EXAM] = Btn_CONFIRM_BUTTON, [Exa_NEW_EXAM ] = Btn_CREATE_BUTTON, }; - const char *TxtButton[] = + const char *TxtButton[Exa_NUM_EXISTING_NEW_EXAM] = { [Exa_EXISTING_EXAM] = Txt_Save_changes, [Exa_NEW_EXAM ] = Txt_Create, diff --git a/swad_exam_result.c b/swad_exam_result.c index 6aa00864..79358eeb 100644 --- a/swad_exam_result.c +++ b/swad_exam_result.c @@ -554,7 +554,7 @@ static void ExaRes_ShowResultsEnd (void) static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_Exams; extern const char *Txt_Exam; extern const char *Txt_Update_results; diff --git a/swad_exam_type.h b/swad_exam_type.h index e5b4c50d..025aee64 100644 --- a/swad_exam_type.h +++ b/swad_exam_type.h @@ -62,6 +62,7 @@ typedef enum Exa_CHECK_EXA_COD, } Exa_CheckExaCod_t; +#define Exa_NUM_EXISTING_NEW_EXAM 2 typedef enum { Exa_EXISTING_EXAM, diff --git a/swad_file_MIME.c b/swad_file_MIME.c index d3aa1949..2a9ea08d 100644 --- a/swad_file_MIME.c +++ b/swad_file_MIME.c @@ -34,7 +34,8 @@ /*****************************************************************************/ /* MIME types allowed for uploades files */ -const char *MIM_MIMETypesAllowed[] = +#define MIM_NUM_MIME_TYPES_ALLOWED 200 +const char *MIM_MIMETypesAllowed[MIM_NUM_MIME_TYPES_ALLOWED] = { "application/", // "application/acrobat", // PDF @@ -238,11 +239,8 @@ const char *MIM_MIMETypesAllowed[] = "zz-application/zz-winassoc-mpp" // Microsoft Project mpp }; -unsigned MIM_NUM_MIME_TYPES_ALLOWED = sizeof (MIM_MIMETypesAllowed) / - sizeof (MIM_MIMETypesAllowed[0]); - /*****************************************************************************/ -/******** Check if MIME type is allowed **********/ +/*********************** Check if MIME type is allowed ***********************/ /*****************************************************************************/ bool MIM_CheckIfMIMETypeIsAllowed (const char *MIMEType) diff --git a/swad_file_extension.c b/swad_file_extension.c index d9b6e7c4..5aed7fce 100644 --- a/swad_file_extension.c +++ b/swad_file_extension.c @@ -33,7 +33,7 @@ /*****************************************************************************/ /* Extensions allowed for uploaded files */ -const char *Ext_FileExtensionsAllowed[] = +const char *Ext_FileExtensionsAllowed[Ext_NUM_FILE_EXT_ALLOWED] = { "3gp" , // Video Android mobile "7z" , @@ -151,9 +151,6 @@ const char *Ext_FileExtensionsAllowed[] = "zip" , }; -unsigned Ext_NUM_FILE_EXT_ALLOWED = sizeof (Ext_FileExtensionsAllowed) / - sizeof (Ext_FileExtensionsAllowed[0]); - /*****************************************************************************/ /******************* Check if file extension is allowed **********************/ /*****************************************************************************/ diff --git a/swad_file_extension.h b/swad_file_extension.h index 5b7d9c31..7525ab86 100644 --- a/swad_file_extension.h +++ b/swad_file_extension.h @@ -30,6 +30,13 @@ #include // For NAME_MAX #include // For boolean type + +/*****************************************************************************/ +/***************************** Public constants ******************************/ +/*****************************************************************************/ + +#define Ext_NUM_FILE_EXT_ALLOWED 114 + /*****************************************************************************/ /***************************** Public prototypes *****************************/ /*****************************************************************************/ diff --git a/swad_game.c b/swad_game.c index 24e8542c..e7d1c45a 100644 --- a/swad_game.c +++ b/swad_game.c @@ -875,7 +875,7 @@ void Gam_GetListGames (struct Gam_Games *Games,Gam_Order_t SelectedOrder) void Gam_GetListSelectedGamCods (struct Gam_Games *Games) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; unsigned MaxSizeListGamCodsSelected; unsigned NumGame; const char *Ptr; @@ -1258,12 +1258,12 @@ void Gam_PutFormsOneGame (struct Gam_Games *Games, extern const char *Hlp_ASSESSMENT_Games_edit_game; extern const char *Hlp_ASSESSMENT_Games_new_game; extern const char *Txt_Game; - static void (*FunctionToDrawContextualIcons[]) (void *Args) = + static void (*FunctionToDrawContextualIcons[Gam_NUM_EXISTING_NEW_GAME]) (void *Args) = { [Gam_EXISTING_GAME] = Gam_PutIconsEditingOneGame, [Gam_NEW_GAME ] = NULL, }; - static const char **HelpLink[] = + static const char **HelpLink[Gam_NUM_EXISTING_NEW_GAME] = { [Gam_EXISTING_GAME] = &Hlp_ASSESSMENT_Games_edit_game, [Gam_NEW_GAME ] = &Hlp_ASSESSMENT_Games_new_game, @@ -1324,17 +1324,17 @@ static void Gam_PutFormEditionGame (struct Gam_Games *Games, extern const char *Txt_Description; extern const char *Txt_Save_changes; extern const char *Txt_Create; - static Act_Action_t NextAction[] = + static Act_Action_t NextAction[Gam_NUM_EXISTING_NEW_GAME] = { [Gam_EXISTING_GAME] = ActChgGam, [Gam_NEW_GAME ] = ActNewGam, }; - static Btn_Button_t Button[] = + static Btn_Button_t Button[Gam_NUM_EXISTING_NEW_GAME] = { [Gam_EXISTING_GAME] = Btn_CONFIRM_BUTTON, [Gam_NEW_GAME ] = Btn_CREATE_BUTTON, }; - const char *TxtButton[] = + const char *TxtButton[Gam_NUM_EXISTING_NEW_GAME] = { [Gam_EXISTING_GAME] = Txt_Save_changes, [Gam_NEW_GAME ] = Txt_Create, diff --git a/swad_game.h b/swad_game.h index ca54c37e..8f6a87ad 100644 --- a/swad_game.h +++ b/swad_game.h @@ -56,6 +56,7 @@ typedef enum } Gam_AnswerType_t; #define Gam_ANSWER_TYPE_DEFAULT Gam_ANS_UNIQUE_CHOICE +#define Gam_NUM_EXISTING_NEW_GAME 2 typedef enum { Gam_EXISTING_GAME, diff --git a/swad_hierarchy.c b/swad_hierarchy.c index d982bb35..c483b91c 100644 --- a/swad_hierarchy.c +++ b/swad_hierarchy.c @@ -167,7 +167,7 @@ void Hie_SeePending (void) void Hie_WriteMenuHierarchy (void) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_HIERARCHY_SINGUL_Abc[Hie_NUM_LEVELS]; static void (*FunctionWriteSelector[Hie_NUM_LEVELS]) (void) = { diff --git a/swad_hierarchy_config.c b/swad_hierarchy_config.c index f167a7d1..c4bf02e2 100644 --- a/swad_hierarchy_config.c +++ b/swad_hierarchy_config.c @@ -205,7 +205,7 @@ void HieCfg_WWW (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm, void HieCfg_Shortcut (Vie_ViewType_t ViewType,ParCod_Param_t ParCode,long HieCod) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_Shortcut; /***** Short cut *****/ diff --git a/swad_indicator.c b/swad_indicator.c index 6d0dad00..9acfd212 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -100,7 +100,7 @@ static unsigned Ind_GetAndUpdateNumIndicatorsCrs (long CrsCod); void Ind_ReqIndicatorsCourses (void) { extern const char *Hlp_ANALYTICS_Indicators; - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_Scope; extern const char *Txt_Types_of_degree; extern const char *Txt_only_if_the_scope_is_X; diff --git a/swad_institution_config.c b/swad_institution_config.c index c1680231..8b787abd 100644 --- a/swad_institution_config.c +++ b/swad_institution_config.c @@ -299,7 +299,7 @@ static void InsCfg_Map (void) static void InsCfg_Country (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_HIERARCHY_SINGUL_Abc[Hie_NUM_LEVELS]; unsigned NumCty; const struct Hie_Node *Cty; diff --git a/swad_layout.c b/swad_layout.c index 9e90731d..7e8237c4 100644 --- a/swad_layout.c +++ b/swad_layout.c @@ -655,9 +655,6 @@ static void Lay_WriteScripts (void) default: break; } - - /***** Script for Google Analytics *****/ - HTM_Txt (Cfg_GOOGLE_ANALYTICS); } // Change page title @@ -1619,10 +1616,10 @@ void Lay_AdvertisementMobile (void) /*****************************************************************************/ /****************** Indent forum, chat or course tree title ******************/ /*****************************************************************************/ -// IsLastItemInLevel[] is a vector with at least 1 + Level elements +// IsLastItemInLevel is a vector with at least 1 + Level elements void Lay_IndentDependingOnLevel (unsigned Level, - Lay_LastItem_t IsLastItemInLevel[], + const Lay_LastItem_t *IsLastItemInLevel, Lay_HorizontalLineAtRight_t HorizontalLineAtRight) { static const char *Icons[Lay_NUM_HORIZONTAL_LINE_AT_RIGHT][Lay_NUM_LAST_ITEM] = diff --git a/swad_layout.h b/swad_layout.h index 70c497f0..523d20e4 100644 --- a/swad_layout.h +++ b/swad_layout.h @@ -94,7 +94,7 @@ void Lay_WriteHeaderClassPhoto (Vie_ViewType_t ViewType); void Lay_AdvertisementMobile (void); void Lay_IndentDependingOnLevel (unsigned Level, - Lay_LastItem_t IsLastItemInLevel[], + const Lay_LastItem_t *IsLastItemInLevel, Lay_HorizontalLineAtRight_t HorizontalLineAtRight); void Lay_HelpPlainEditor (void); diff --git a/swad_match_result.c b/swad_match_result.c index 594bcf41..6d3f643a 100644 --- a/swad_match_result.c +++ b/swad_match_result.c @@ -518,7 +518,7 @@ static void MchRes_ShowResultsEnd (void) static void MchRes_ListGamesToSelect (struct Gam_Games *Games) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_Games; extern const char *Txt_Game; extern const char *Txt_Update_results; diff --git a/swad_parameter.c b/swad_parameter.c index dd4e3fb6..88a79e20 100644 --- a/swad_parameter.c +++ b/swad_parameter.c @@ -684,7 +684,8 @@ unsigned Par_GetPar (Par_ParamType_t ParType,const char *ParName, static bool Par_CheckIsParCanBeUsedInGETMethod (const char *ParName) { - static const char *ValidParsInGETMethod[] = +#define NUM_VALID_PARAMS 10 + static const char *ValidParsInGETMethod[NUM_VALID_PARAMS] = { "cty", // To enter directly to a country "ins", // To enter directly to an institution @@ -697,7 +698,6 @@ static bool Par_CheckIsParCanBeUsedInGETMethod (const char *ParName) "ses", // To use an open session when redirecting from one language to another "key", // To verify an email address }; -#define NUM_VALID_PARAMS (sizeof (ValidParsInGETMethod) / sizeof (ValidParsInGETMethod[0])) unsigned i; for (i = 0; @@ -714,7 +714,7 @@ static bool Par_CheckIsParCanBeUsedInGETMethod (const char *ParName) void Par_GetMainPars (void) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; long ActCod; char Nick[Nck_MAX_BYTES_NICK_WITH_ARROBA + 1]; char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; @@ -1112,7 +1112,7 @@ void Par_PutParUnsignedDisabled (const char *Id,const char *ParName,unsigned Par void ParCod_PutPar (ParCod_Param_t ParCod,long Cod) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; if (ParCod != ParCod_None && Cod >= 0) // <0 => not specified => don't write parameter diff --git a/swad_parameter_code.c b/swad_parameter_code.c index 7229f84b..664f5017 100644 --- a/swad_parameter_code.c +++ b/swad_parameter_code.c @@ -35,9 +35,9 @@ /***************************** Public constants ******************************/ /*****************************************************************************/ -const char *Par_CodeStr[] = +const char *Par_CodeStr[Par_NUM_PAR_COD] = { - [ParCod_None ] = NULL, + [ParCod_None ] = NULL, [ParCod_Agd ] = "AgdCod", // Agenda event code [ParCod_Ann ] = "AnnCod", // Announcement code [ParCod_Asg ] = "AsgCod", // Assignment code diff --git a/swad_parameter_code.h b/swad_parameter_code.h index 7a602a3a..759112fd 100644 --- a/swad_parameter_code.h +++ b/swad_parameter_code.h @@ -80,6 +80,7 @@ typedef enum ParCod_Tag, // Tag code in assessment question ParCod_Thr, // Thread code in forum } ParCod_Param_t; +#define Par_NUM_PAR_COD ((unsigned) ParCod_Thr + 1) /*****************************************************************************/ /***************************** Public prototypes *****************************/ diff --git a/swad_project.c b/swad_project.c index df7962fe..128f5364 100644 --- a/swad_project.c +++ b/swad_project.c @@ -80,14 +80,13 @@ extern struct Globals Gbl; #define Prj_PAR_FILTER_DPT_COD_NAME "FilDptCod" /***** User roles are shown in this order *****/ -static const Prj_RoleInProject_t Prj_RolesToShow[] = +#define Prj_NUM_ROLES_TO_SHOW 3 +static const Prj_RoleInProject_t Prj_RolesToShow[Prj_NUM_ROLES_TO_SHOW] = { Prj_ROLE_TUT, // Tutor Prj_ROLE_STD, // Student Prj_ROLE_EVL, // Evaluator }; -static unsigned Prj_NUM_ROLES_TO_SHOW = sizeof (Prj_RolesToShow) / - sizeof (Prj_RolesToShow[0]); /***** Assigned/non-assigned project *****/ static const char *AssignedNonassigIcon[Prj_NUM_ASSIGNED_NONASSIG] = @@ -3693,7 +3692,7 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects, bool ItsANewProject) { extern const char *Hlp_ASSESSMENT_Projects_edit_project; - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_Project; extern const char *Txt_Actions[ActLst_NUM_ACTIONS]; extern const char *Txt_Title; diff --git a/swad_project_config.c b/swad_project_config.c index bf931462..ae39284b 100644 --- a/swad_project_config.c +++ b/swad_project_config.c @@ -167,7 +167,7 @@ static void PrjCfg_ShowFormsRubrics (void) static void PrjCfg_ShowFormsRubricsOfType (const struct Rub_Rubrics *Rubrics, PrjCfg_RubricType_t RubricType) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Prj_DB_RubricType[PrjCfg_NUM_RUBRIC_TYPES]; extern const char *Txt_PROJECT_RUBRIC[PrjCfg_NUM_RUBRIC_TYPES]; extern const char *Txt_no_rubric; @@ -385,7 +385,7 @@ void PrjCfg_ChangeRubricsOfType (void) static void PrjCfg_GetListRubCods (const struct Rub_Rubrics *Rubrics, struct PrgCfg_ListRubCods *ListRubCods) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; char *ParLstRubCods; const char *Ptr; char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; diff --git a/swad_record.c b/swad_record.c index cc987bd3..09573f2c 100644 --- a/swad_record.c +++ b/swad_record.c @@ -3178,7 +3178,7 @@ static void Rec_ShowFirstName (struct Usr_Data *UsrDat,Vie_ViewType_t ViewType) static void Rec_ShowCountry (struct Usr_Data *UsrDat,Vie_ViewType_t ViewType) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_HIERARCHY_SINGUL_Abc[Hie_NUM_LEVELS]; extern const char *Txt_Another_country; char *Label; @@ -3846,7 +3846,7 @@ static void Rec_ShowAlertsIfNotFilled (bool IAmATeacher) static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) { extern const char *Hlp_PROFILE_Institution; - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Txt_Institution_center_and_department; extern const char *Txt_HIERARCHY_SINGUL_Abc[Hie_NUM_LEVELS]; extern const char *Txt_Another_institution; diff --git a/swad_rubric.c b/swad_rubric.c index ecc1f34e..dcd0b7eb 100644 --- a/swad_rubric.c +++ b/swad_rubric.c @@ -780,12 +780,12 @@ void Rub_PutFormsOneRubric (struct Rub_Rubrics *Rubrics, extern const char *Hlp_ASSESSMENT_Rubrics_new_rubric; extern const char *Hlp_ASSESSMENT_Rubrics_edit_rubric; extern const char *Txt_Rubric; - static void (*FunctionToDrawContextualIcons[]) (void *Args) = + static void (*FunctionToDrawContextualIcons[Rub_NUM_EXISTING_NEW_RUBRIC]) (void *Args) = { [Rub_EXISTING_RUBRIC] = Rub_PutIconsEditingOneRubric, [Rub_NEW_RUBRIC ] = NULL, }; - static const char **HelpLink[] = + static const char **HelpLink[Rub_NUM_EXISTING_NEW_RUBRIC] = { [Rub_EXISTING_RUBRIC] = &Hlp_ASSESSMENT_Rubrics_edit_rubric, [Rub_NEW_RUBRIC ] = &Hlp_ASSESSMENT_Rubrics_new_rubric, @@ -831,17 +831,17 @@ static void Rub_PutFormEditionRubric (struct Rub_Rubrics *Rubrics, extern const char *Txt_Description; extern const char *Txt_Create; extern const char *Txt_Save_changes; - static Act_Action_t NextAction[] = + static Act_Action_t NextAction[Rub_NUM_EXISTING_NEW_RUBRIC] = { [Rub_EXISTING_RUBRIC] = ActChgRub, [Rub_NEW_RUBRIC ] = ActNewRub, }; - static Btn_Button_t Button[] = + static Btn_Button_t Button[Rub_NUM_EXISTING_NEW_RUBRIC] = { [Rub_EXISTING_RUBRIC] = Btn_CONFIRM_BUTTON, [Rub_NEW_RUBRIC ] = Btn_CREATE_BUTTON, }; - const char *TxtButton[] = + const char *TxtButton[Rub_NUM_EXISTING_NEW_RUBRIC] = { [Rub_EXISTING_RUBRIC] = Txt_Save_changes, [Rub_NEW_RUBRIC ] = Txt_Create, diff --git a/swad_rubric_type.h b/swad_rubric_type.h index 65f21f38..5de2d53d 100644 --- a/swad_rubric_type.h +++ b/swad_rubric_type.h @@ -82,6 +82,7 @@ struct Rub_Rubrics struct RubCri_Criterion Criterion; // Selected/current criterion }; +#define Rub_NUM_EXISTING_NEW_RUBRIC 2 typedef enum { Rub_EXISTING_RUBRIC, diff --git a/swad_statistic.c b/swad_statistic.c index 1f668771..6c425b88 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -220,7 +220,8 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats) extern const char *Txt_results_per_page; extern const char *Txt_Show_hits; extern const char *Txt_No_teachers_or_students_found; - static unsigned RowsPerPage[] = +#define NUM_OPTIONS_ROWS_PER_PAGE 12 + static unsigned RowsPerPage[NUM_OPTIONS_ROWS_PER_PAGE] = { Sta_MIN_ROWS_PER_PAGE * 1, Sta_MIN_ROWS_PER_PAGE * 2, @@ -235,7 +236,6 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats) Sta_MIN_ROWS_PER_PAGE * 5000, Sta_MAX_ROWS_PER_PAGE, }; -#define NUM_OPTIONS_ROWS_PER_PAGE (sizeof (RowsPerPage) / sizeof (RowsPerPage[0])) unsigned NumTotalUsrs; char *Title; Dat_SetHMS SetHMS[Dat_NUM_START_END_TIME]; diff --git a/swad_statistic_database.c b/swad_statistic_database.c index 57b3923f..dce736f8 100644 --- a/swad_statistic_database.c +++ b/swad_statistic_database.c @@ -53,7 +53,7 @@ unsigned Sta_DB_GetHits (MYSQL_RES **mysql_res, const char *LogTable, const char BrowserTimeZone[Dat_MAX_BYTES_TIME_ZONE + 1], unsigned NumUsrsInList, - const long LstSelectedUsrCods[]) + const long *LstSelectedUsrCods) { char SubQueryCountType[256]; char SubQueryRole[256]; diff --git a/swad_statistic_database.h b/swad_statistic_database.h index 5fa3667e..c68ce65d 100644 --- a/swad_statistic_database.h +++ b/swad_statistic_database.h @@ -40,6 +40,6 @@ unsigned Sta_DB_GetHits (MYSQL_RES **mysql_res, const char *LogTable, const char BrowserTimeZone[Dat_MAX_BYTES_TIME_ZONE + 1], unsigned NumUsrsInList, - const long LstSelectedUsrCods[]); + const long *LstSelectedUsrCods); #endif diff --git a/swad_text_action.c b/swad_text_action.c index 4aef002a..52b92ffd 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -24812,7 +24812,7 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] = "Show class photo of students ready to be printed" // Çeviri lazim! #endif , - [ActDoActOnSevStd] = + [Act_DoAct_OnSevStd] = #if L==1 // ca "Do an action on several selected students" // Necessita traducció #elif L==2 // de @@ -25870,7 +25870,7 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] = "Show class photo of teachers ready to be printed" // Çeviri lazim! #endif , - [ActDoActOnSevTch] = + [Act_DoAct_OnSevTch] = #if L==1 // ca "Do an action on several selected teachers" // Necessita traducció #elif L==2 // de @@ -27112,7 +27112,7 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] = "Show class photo of guests ready to be printed" // Çeviri lazim! #endif , - [ActDoActOnSevGst] = + [Act_DoAct_OnSevGst] = #if L==1 // ca "Do an action on several selected guests" // Necessita traducció #elif L==2 // de diff --git a/swad_timetable.c b/swad_timetable.c index 709f6fea..e9df1545 100644 --- a/swad_timetable.c +++ b/swad_timetable.c @@ -1489,7 +1489,7 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable, Tmt_IntervalType_t IntervalType,Tmt_ClassType_t ClassType, unsigned DurationNumIntervals,const char *Info) { - extern const char *Par_CodeStr[]; + extern const char *Par_CodeStr[Par_NUM_PAR_COD]; extern const char *Tmt_DB_ClassType[Tmt_NUM_CLASS_TYPES]; extern const char *Txt_TIMETABLE_CLASS_TYPES[Tmt_NUM_CLASS_TYPES]; extern const char *Txt_Group; diff --git a/swad_user.c b/swad_user.c index 941207d1..87e360a2 100644 --- a/swad_user.c +++ b/swad_user.c @@ -3540,7 +3540,7 @@ void Usr_FreeListSelectedUsrCods (long *LstSelectedUsrCods) /******** from list of users' codes *******/ /*****************************************************************************/ -void Usr_CreateSubqueryUsrCods (long LstSelectedUsrCods[], +void Usr_CreateSubqueryUsrCods (long *LstSelectedUsrCods, unsigned NumUsrsInList, char **UsrsSubQuery) { @@ -5105,7 +5105,7 @@ void Usr_SeeGuests (void) /* Begin form */ if (PutForm == Frm_PUT_FORM) - Frm_BeginForm (ActDoActOnSevGst); + Frm_BeginForm (Act_DoAct_OnSevGst); /* Begin table */ HTM_TABLE_Begin ("TBL_SCROLL"); @@ -5258,7 +5258,7 @@ void Usr_SeeStudents (void) /* Begin form */ if (PutForm == Frm_PUT_FORM) { - Frm_BeginForm (ActDoActOnSevStd); + Frm_BeginForm (Act_DoAct_OnSevStd); Grp_PutParsCodGrps (); } @@ -5426,7 +5426,7 @@ void Usr_SeeTeachers (void) /* Begin form */ if (PutForm == Frm_PUT_FORM) { - Frm_BeginForm (ActDoActOnSevTch); + Frm_BeginForm (Act_DoAct_OnSevTch); Grp_PutParsCodGrps (); } @@ -5651,13 +5651,13 @@ void Usr_DoActionOnSeveralUsrs1 (void) case Usr_OPTION_RECORDS: switch (Gbl.Action.Act) { - case ActDoActOnSevGst: + case Act_DoAct_OnSevGst: Gbl.Action.Act = ActSeeRecSevGst; break; - case ActDoActOnSevStd: + case Act_DoAct_OnSevStd: Gbl.Action.Act = ActSeeRecSevStd; break; - case ActDoActOnSevTch: + case Act_DoAct_OnSevTch: Gbl.Action.Act = ActSeeRecSevTch; break; default: @@ -5667,8 +5667,8 @@ void Usr_DoActionOnSeveralUsrs1 (void) case Usr_OPTION_HOMEWORK: switch (Gbl.Action.Act) { - case ActDoActOnSevStd: - case ActDoActOnSevTch: + case Act_DoAct_OnSevStd: + case Act_DoAct_OnSevTch: Gbl.Action.Act = ActAdmAsgWrkCrs; break; default: @@ -5678,7 +5678,7 @@ void Usr_DoActionOnSeveralUsrs1 (void) case Usr_OPTION_ATTENDANCE: switch (Gbl.Action.Act) { - case ActDoActOnSevStd: + case Act_DoAct_OnSevStd: Gbl.Action.Act = ActSeeLstUsrAtt; break; default: @@ -5688,8 +5688,8 @@ void Usr_DoActionOnSeveralUsrs1 (void) case Usr_OPTION_MESSAGE: switch (Gbl.Action.Act) { - case ActDoActOnSevStd: - case ActDoActOnSevTch: + case Act_DoAct_OnSevStd: + case Act_DoAct_OnSevTch: Gbl.Action.Act = ActReqMsgUsr; break; default: @@ -5699,7 +5699,7 @@ void Usr_DoActionOnSeveralUsrs1 (void) case Usr_OPTION_EMAIL: switch (Gbl.Action.Act) { - case ActDoActOnSevStd: + case Act_DoAct_OnSevStd: Gbl.Action.Act = ActMaiUsr; break; default: @@ -5709,10 +5709,10 @@ void Usr_DoActionOnSeveralUsrs1 (void) case Usr_OPTION_FOLLOW: switch (Gbl.Action.Act) { - case ActDoActOnSevStd: + case Act_DoAct_OnSevStd: Gbl.Action.Act = ActReqFolSevStd; break; - case ActDoActOnSevTch: + case Act_DoAct_OnSevTch: Gbl.Action.Act = ActReqFolSevTch; break; default: @@ -5722,10 +5722,10 @@ void Usr_DoActionOnSeveralUsrs1 (void) case Usr_OPTION_UNFOLLOW: switch (Gbl.Action.Act) { - case ActDoActOnSevStd: + case Act_DoAct_OnSevStd: Gbl.Action.Act = ActReqUnfSevStd; break; - case ActDoActOnSevTch: + case Act_DoAct_OnSevTch: Gbl.Action.Act = ActReqUnfSevTch; break; default: @@ -5756,13 +5756,13 @@ void Usr_DoActionOnSeveralUsrs2 (void) so show again the form to selected users *****/ switch (Gbl.Action.Act) { - case ActDoActOnSevGst: + case Act_DoAct_OnSevGst: Usr_SeeGuests (); break; - case ActDoActOnSevStd: + case Act_DoAct_OnSevStd: Usr_SeeStudents (); break; - case ActDoActOnSevTch: + case Act_DoAct_OnSevTch: Usr_SeeTeachers (); break; default: diff --git a/swad_user.h b/swad_user.h index 0e748a2c..b3762f83 100644 --- a/swad_user.h +++ b/swad_user.h @@ -386,7 +386,7 @@ void Usr_GetListSelectedUsrCods (struct Usr_SelectedUsrs *SelectedUsrs, long **LstSelectedUsrCods); void Usr_FreeListSelectedUsrCods (long *LstSelectedUsrCods); -void Usr_CreateSubqueryUsrCods (long LstSelectedUsrCods[], +void Usr_CreateSubqueryUsrCods (long *LstSelectedUsrCods, unsigned NumUsrsInList, char **SubQueryUsrs); void Usr_FreeSubqueryUsrCods (char *SubQueryUsrs);