forked from aniani/vim
		
	patch 8.1.0455: checking for empty quickfix stack is not consistent
Problem: Checking for empty quickfix stack is not consistent. Solution: Use qf_stack_empty(). (Yegappan Lakshmanan)
This commit is contained in:
		| @@ -1498,6 +1498,15 @@ restofline: | |||||||
|     return QF_OK; |     return QF_OK; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Returns TRUE if the specified quickfix/location stack is empty | ||||||
|  |  */ | ||||||
|  |     static int | ||||||
|  | qf_stack_empty(qf_info_T *qi) | ||||||
|  | { | ||||||
|  |     return qi == NULL || qi->qf_listcount <= 0; | ||||||
|  | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Returns TRUE if the specified quickfix/location list is empty. |  * Returns TRUE if the specified quickfix/location list is empty. | ||||||
|  */ |  */ | ||||||
| @@ -3220,8 +3229,7 @@ qf_jump(qf_info_T	*qi, | |||||||
|     if (qi == NULL) |     if (qi == NULL) | ||||||
| 	qi = &ql_info; | 	qi = &ql_info; | ||||||
|  |  | ||||||
|     if (qi->qf_curlist >= qi->qf_listcount |     if (qf_stack_empty(qi) || qf_list_empty(qi, qi->qf_curlist)) | ||||||
| 	|| qf_list_empty(qi, qi->qf_curlist)) |  | ||||||
|     { |     { | ||||||
| 	EMSG(_(e_quickfix)); | 	EMSG(_(e_quickfix)); | ||||||
| 	return; | 	return; | ||||||
| @@ -3412,8 +3420,7 @@ qf_list(exarg_T *eap) | |||||||
| 	} | 	} | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if (qi->qf_curlist >= qi->qf_listcount |     if (qf_stack_empty(qi) || qf_list_empty(qi, qi->qf_curlist)) | ||||||
| 	|| qf_list_empty(qi, qi->qf_curlist)) |  | ||||||
|     { |     { | ||||||
| 	EMSG(_(e_quickfix)); | 	EMSG(_(e_quickfix)); | ||||||
| 	return; | 	return; | ||||||
| @@ -3601,8 +3608,7 @@ qf_history(exarg_T *eap) | |||||||
|  |  | ||||||
|     if (is_loclist_cmd(eap->cmdidx)) |     if (is_loclist_cmd(eap->cmdidx)) | ||||||
| 	qi = GET_LOC_LIST(curwin); | 	qi = GET_LOC_LIST(curwin); | ||||||
|     if (qi == NULL || (qi->qf_listcount == 0 |     if (qf_stack_empty(qi) || qf_list_empty(qi, qi->qf_curlist)) | ||||||
| 				&& qf_list_empty(qi, qi->qf_curlist))) |  | ||||||
| 	MSG(_("No entries")); | 	MSG(_("No entries")); | ||||||
|     else |     else | ||||||
| 	for (i = 0; i < qi->qf_listcount; ++i) | 	for (i = 0; i < qi->qf_listcount; ++i) | ||||||
| @@ -3830,9 +3836,9 @@ ex_cwindow(exarg_T *eap) | |||||||
|      * close the window.  If a quickfix window is not open, then open |      * close the window.  If a quickfix window is not open, then open | ||||||
|      * it if we have errors; otherwise, leave it closed. |      * it if we have errors; otherwise, leave it closed. | ||||||
|      */ |      */ | ||||||
|     if (qi->qf_lists[qi->qf_curlist].qf_nonevalid |     if (qf_stack_empty(qi) | ||||||
| 	    || qf_list_empty(qi, qi->qf_curlist) | 	    || qi->qf_lists[qi->qf_curlist].qf_nonevalid | ||||||
| 	    || qi->qf_curlist >= qi->qf_listcount) | 	    || qf_list_empty(qi, qi->qf_curlist)) | ||||||
|     { |     { | ||||||
| 	if (win != NULL) | 	if (win != NULL) | ||||||
| 	    ex_cclose(eap); | 	    ex_cclose(eap); | ||||||
| @@ -4342,7 +4348,7 @@ qf_fill_buffer(qf_info_T *qi, buf_T *buf, qfline_T *old_last) | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /* Check if there is anything to display */ |     /* Check if there is anything to display */ | ||||||
|     if (qi->qf_curlist < qi->qf_listcount) |     if (!qf_stack_empty(qi)) | ||||||
|     { |     { | ||||||
| 	char_u	dirname[MAXPATHL]; | 	char_u	dirname[MAXPATHL]; | ||||||
|  |  | ||||||
| @@ -5333,7 +5339,7 @@ ex_vimgrep(exarg_T *eap) | |||||||
|     if ((eap->cmdidx != CMD_grepadd && eap->cmdidx != CMD_lgrepadd |     if ((eap->cmdidx != CMD_grepadd && eap->cmdidx != CMD_lgrepadd | ||||||
| 		&& eap->cmdidx != CMD_vimgrepadd | 		&& eap->cmdidx != CMD_vimgrepadd | ||||||
| 		&& eap->cmdidx != CMD_lvimgrepadd) | 		&& eap->cmdidx != CMD_lvimgrepadd) | ||||||
| 					|| qi->qf_curlist == qi->qf_listcount) | 					|| qf_stack_empty(qi)) | ||||||
| 	/* make place for a new list */ | 	/* make place for a new list */ | ||||||
| 	qf_new_list(qi, title != NULL ? title : qf_cmdtitle(*eap->cmdlinep)); | 	qf_new_list(qi, title != NULL ? title : qf_cmdtitle(*eap->cmdlinep)); | ||||||
|  |  | ||||||
| @@ -6107,11 +6113,11 @@ qf_get_properties(win_T *wp, dict_T *what, dict_T *retdict) | |||||||
|  |  | ||||||
|     flags = qf_getprop_keys2flags(what, (wp != NULL)); |     flags = qf_getprop_keys2flags(what, (wp != NULL)); | ||||||
|  |  | ||||||
|     if (qi != NULL && qi->qf_listcount != 0) |     if (!qf_stack_empty(qi)) | ||||||
| 	qf_idx = qf_getprop_qfidx(qi, what); | 	qf_idx = qf_getprop_qfidx(qi, what); | ||||||
|  |  | ||||||
|     /* List is not present or is empty */ |     /* List is not present or is empty */ | ||||||
|     if (qi == NULL || qi->qf_listcount == 0 || qf_idx == INVALID_QFIDX) |     if (qf_stack_empty(qi) || qf_idx == INVALID_QFIDX) | ||||||
| 	return qf_getprop_defaults(qi, flags, retdict); | 	return qf_getprop_defaults(qi, flags, retdict); | ||||||
|  |  | ||||||
|     qfl = &qi->qf_lists[qf_idx]; |     qfl = &qi->qf_lists[qf_idx]; | ||||||
| @@ -6313,7 +6319,7 @@ qf_setprop_get_qfidx( | |||||||
| 		 * stack. | 		 * stack. | ||||||
| 		 */ | 		 */ | ||||||
| 		*newlist = TRUE; | 		*newlist = TRUE; | ||||||
| 		qf_idx = qi->qf_listcount > 0 ? qi->qf_listcount - 1 : 0; | 		qf_idx = qf_stack_empty(qi) ? 0 : qi->qf_listcount - 1; | ||||||
| 	    } | 	    } | ||||||
| 	    else if (qf_idx < 0 || qf_idx >= qi->qf_listcount) | 	    else if (qf_idx < 0 || qf_idx >= qi->qf_listcount) | ||||||
| 		return INVALID_QFIDX; | 		return INVALID_QFIDX; | ||||||
| @@ -6324,7 +6330,7 @@ qf_setprop_get_qfidx( | |||||||
| 		&& di->di_tv.vval.v_string != NULL | 		&& di->di_tv.vval.v_string != NULL | ||||||
| 		&& STRCMP(di->di_tv.vval.v_string, "$") == 0) | 		&& STRCMP(di->di_tv.vval.v_string, "$") == 0) | ||||||
| 	{ | 	{ | ||||||
| 	    if (qi->qf_listcount > 0) | 	    if (!qf_stack_empty(qi)) | ||||||
| 		qf_idx = qi->qf_listcount - 1; | 		qf_idx = qi->qf_listcount - 1; | ||||||
| 	    else if (*newlist) | 	    else if (*newlist) | ||||||
| 		qf_idx = 0; | 		qf_idx = 0; | ||||||
| @@ -6452,7 +6458,7 @@ qf_set_properties(qf_info_T *qi, dict_T *what, int action, char_u *title) | |||||||
|     int		qf_idx; |     int		qf_idx; | ||||||
|     int		newlist = FALSE; |     int		newlist = FALSE; | ||||||
|  |  | ||||||
|     if (action == ' ' || qi->qf_curlist == qi->qf_listcount) |     if (action == ' ' || qf_stack_empty(qi)) | ||||||
| 	newlist = TRUE; | 	newlist = TRUE; | ||||||
|  |  | ||||||
|     qf_idx = qf_setprop_get_qfidx(qi, what, action, &newlist); |     qf_idx = qf_setprop_get_qfidx(qi, what, action, &newlist); | ||||||
|   | |||||||
| @@ -792,6 +792,8 @@ static char *(features[]) = | |||||||
|  |  | ||||||
| static int included_patches[] = | static int included_patches[] = | ||||||
| {   /* Add new patch number below this line */ | {   /* Add new patch number below this line */ | ||||||
|  | /**/ | ||||||
|  |     455, | ||||||
| /**/ | /**/ | ||||||
|     454, |     454, | ||||||
| /**/ | /**/ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user